قواعد البيانات - المفهوم والتطبيق
قواعد البيانات
كثيراً ما نسمع عن قواعد البيانات، ولكن البعض قد ألِفَ هذا المسمى ولكنه غير مدركٍ فعلياً لحقيقة معناه وكيفية الاستفادة منه.
في هذا المقال سنتعرف على قواعد البيانات، من حيث منظومة قواعد البيانات، وتطبيقاتها الموجودة في حياتنا اليومية، ومكوناتها، وتعريف قواعد البيانات، وأشهر الأنظمة الموجودة حالياً والمتخصصة في إدارة قواعد البيانات، وكيفية دخول الأفراد لعالم قواعد البيانات.
قواعد البيانات - المفهوم والتطبيق |
في نهاية المقال ستكون لدينا إن شاء الله فكرة واضحة عن عالم قواعد البيانات وعن طريقة دخول الأفراد لهذا العالم حتى يتمكن كل فرد من عمل أي قاعدة بيانات يحتاجها بنفسه في أي منحى من مناحي حياته.
منظومة قواعد البيانات
ولكي نفهم معنى قواعد البيانات دعونا بدايةً نتعرف على منظومة قواعد البيانات من خلال ثلاثة أمثلة على بعض منظومات قواعد البيانات من واقع حياتنا اليومية ليكون الشرح عملياً.
المثال الأول: موقع الـ Facebook.
هذا الموقع غني عن التعريف، والمعظم إن لم يكن الجميع لديهم حساب أو أكثر على هذا الموقع.
لو كان شخص ما لديه على سبيل المثال لابتوب شخصي وحاسوب في مكان عمله وهاتفه الذكي، وأراد هذا الشخص أن يدخل إلى حسابه على الـ Facebook من خلال هذه الأجهزة الثلاث، فإنه سيصل إلى صفحته ومشاركاته ومشاركات غيره بنسبة تطابق على جميع هذه الأجهزة تصل إلى 100%، ولا أتكلم هنا عن المظهر الذي سيظهر به على كل جهاز ولكن أتكلم عن البيانات التي ستظهر والتي تم استدعاؤها بمجرد دخوله إلى حسابه، لأن المظهر يعتمد على مساحة الشاشة وتصميم تجاوبية صفحة الإنترنت أو التطبيق مع هذه المساحة، وهذا موضوع آخر ليس له علاقة بموضوعنا.
نعود للبيانات التي ستظهر، ونطرح السؤال التالي … كيف ظهرت هذه البيانات في جميع الأجهزة بنسبة التطابق الكاملة 100%؟
الجواب أن مصدر هذه البيانات هو مصدر واحد، وعند الدخول إلى حساب الـ Facebook يتم تبادل البيانات بين واجهات أجهزة المستخدم المختلفة وبين قاعدة بيانات خاصة بالـ Facebook مخزنة على مجموعة من الأجهزة المخصصة لتخزين قواعد البيانات، والجهاز الواحد من هذه الاجهزة يسمى بالـ "سيرفر"، بحيث أن هذا الجهاز يشبه جهاز الحاسوب ولكن بمواصفات عالية جداً.
أما بخصوص نقل البيانات بين الأجهزة وقاعدة البيانات المخزنة داخل سيرفرات الـ Facebook فإنها تتم من خلال وسيط لنقل البيانات، وهذا الوسيط هو شبكة الإنترنت.
الوصول لنفس البيانات في موقع الـ Facebook من عدة أجهزة مختلفة |
المثال الثاني: أنظمة الـ ERP
ERP اختصار Enterprise Resource Planning ومعناه "تخطيط موارد المؤسسة"، بحيث يتم في هذا النظام التفاعل بين قاعدة بيانات مركزية وبين عدة أقسام في المؤسسة أو الشركة أو في أي مكان آخر.
وتتشابه أنظمة الـ ERP من حيث المبدأ، ولكن تختلف بتفاصيل التعامل مع هذه الأنظمة من مكان إلى مكان آخر، فعلى سبيل المثال لو تم تفعيل هذا نظام ERP في شركة صناعية فإن الأقسام التي ستتعامل مع هذا النظام ستكون في أغلب الحالات أقسام المالية والمستودعات والمشتريات والإنتاج والتصنيع وشؤون الموظفين وغيرهم من الأقسام، وكل قسم له تفاصيله.
وإذا تم تفعيل نظام ERP داخل مدرسة ما فإنه بالتأكيد سيكون هناك اختلاف بين الأقسام التي ستتعامل مع هذا النظام داخل هذه المدرسة وتفاصيل هذه الأقسام، وبين الأقسام التي ستتعامل مع نظام ERP داخل شركة صناعية.
والأمثلة كثيرة على استخدام أنظمة الـ ERP، ولكن كما قلنا المبدأ واحد بين جميع هذه الأنظمة، بحيث أن جميع هذه الأنظمة تحتوي على قاعدة بيانات مخزنة داخل سيرفر، وجميع أجهزة الحاسوب في أي قسم مفعل على أي نظام من أنظمة الـ ERP سوف يتصل مع السيرفر لكي يتم تبادل البيانات مع قاعدة البيانات المخزنة بداخله من خلال ناقل بيانات والذي قد يكون سلكياً أو شبكة الإنترنت.
نظام الـ ERP |
المثال الثالث والأخير: أنظمة الكاشير
عندما نكون في إحدى أماكن التسوق، وننتهي من تجميع الأصناف التي نريدها، فإننا نذهب إلى الكاشير (محاسب الزبائن) لدفع أثمان هذه الأصناف التي قمنا باختيارها، فيقوم الكاشير بأخذ كل صنف والبحث عن الباركود المسجل عليه وتمرير هذا الباركود على جهاز مخصص لقراءة الباركود المسجل عليه، فيظهر على شاشة الحاسوب التي أمامه اسم الصنف وسعر الوحدة الواحدة لهذا الصنف.
هذه المنظومة باختصار عبارة عن قاعدة بيانات مخزنة داخل سيرفر بالإضافة إلى أجهزة حاسوب عند كل كاشير تكون موصولة مع قاعدة البيانات هذه من خلال ناقل بيانات والذي قد يكون سلكياً أو شبكة الإنترنت.
أنظمة الكاشير |
وخلاصة الكلام أعلاه أننا نعيش في عالم من قواعد البيانات وأصبحت حياتنا مرتبطة بشكل وثيق بأنظمة قواعد البيانات على اختلاف أنواعها.
مكونات أنظمة قواعد البيانات
جميع الأنظمة التي ذكرناها والتي لم نذكرها تشترك بمكونات محددة، بحيث أننا لو قمنا بعمل مراجعة لها فإننا سنجد أن مكونات أنظمة قواعد البيانات تتلخص بثلاثة مكونات:
- مستخدم.
- وسيط لنقل البيانات، سواء كان سلكياً أو شبكة الإنترنت.
- سيرفر مخزن عليه قاعدة البيانات.
مكونات أنظمة قواعد البيانات |
ما هي قاعدة البيانات؟
والآن وبعد أن تعرفنا على أنظمة قواعد البيانات نأتي لسؤال مهم … ما هي قاعدة البيانات؟
قاعدة البيانات هي المكان الذي يحتوي على جدول واحد أو أكثر ويتم تخزين البيانات بداخل هذه الجداول وفق تنظيم محدد مسبقاً.
وعليه فإن العنصر الأساسي الأول في قاعدة البيانات هو "الجدول".
وكل جدول يحتوي على أعمدة وصفوف، وفي عالم قواعد البيانات يمكن أن نسمي العمود بالحقل والصف بالسجل.
ونقطة تلاقي الحقل مع السجل تسمى خلية، والتي يتم تخزين البيانات بداخلها.
ما الهدف من استخدام قواعد البيانات؟
الهدف من استخدام قواعد البيانات هو تحويل البيانات إلى معلومات مفيدة تساعد على اتخاذ القرارات والتخطيط.
بحيث أن تخزين البيانات ليس هو الغاية المطلوبة، ولكن المطلوب هو التعامل مع هذه البيانات لاحقاً من خلال البحث والفرز والدمج للخروج بنتائج مبنية على المقارنات والتعامل بين مجموع هذه البيانات الموجودة في قاعدة البيانات، والنتائج التي سنحصل عليها ما هي إلا معلومات سيتم البناء عليها إما لاتخاذ بعض القرارات أوللتخطيط المستقبلي.
فعلى سبيل المثال لو تم تسجيل بيانات سكان مدينة معينة، فإن التعامل مع جميع بيانات هؤلاء السكان سيخرج لنا معلومات مفيدة مثل:
- عدد السكان.
- عدد تلاميذ المدارس.
- عدد تلاميذ الجامعات.
- عدد العاملين.
- عدد العاطلين عن العمل.
- توزيع السكان في هذه المدينة.
وغيرها من المعلومات المفيدة التي ستساعد على اتخاذ بعض القرارات، مثل تحويل نظام الدراسة في إحدى المدارس الموجودة في منطقة معينة من المدينة من نظام الفترة الواحدة إلى نظام الفترتين الصباحية والمسائية، ومن ثم التخطيط لاحقاً لبناء مدرسة جديدة في هذه المنطقة لاستعياب جميع الطلاب الساكنين فيها.
وعلى شاكلته فإننا يمكن أن نحصل على ما نريد من المعلومات المفيدة واتخاذ القرارات السليمة والتخطيط المستقبلي المبني على هذه المعلومات.
ويمكن اختصار ما ذكر آنفاً إلى أن النظر والتعامل بشمولية مع البيانات سيخرج لنا المعلومات.
وتتم عمليات التعامل مع البيانات المخزنة في قاعدة البيانات من خلال العنصر الأساسي الثاني في قاعدة البيانات ألا وهو "الاستعلام".
وعليه فإن العناصر الأساسية في قواعد البيانات هي:
- الجداول
- الاستعلامات
أشهر أنواع قواعد البيانات
أنواع قواعد البيانات كثيرة، ولكن أشهرها على الإطلاق هي:
"قواعد البيانات العلائقية"
Relational Data Bases
وهذا النوع تم اختراعه من قبل عالم الكمبيوتر البريطاني "إدجار كود"، وهذا النوع يعتمد على العلاقات بين الجداول. ويستخدم لغة خاصة بقواعد البيانات العلائقية تسمى SQL (Structured query language).
أشهر أنظمة إدارة قواعد البيانات
ولكي يتم إنشاء قاعدة بيانات وإدارتها فإننا بحاجة إلى أحد أنظمة إدارة قواعد البيانات، ويوجد الكثير من هذه الأنظمة في يومنا الحالي، ولكن البعض منها قد حاز على شهرة واسعة وشعبية جارفة أكثر من باقي الأنظمة، وهذه الأنظمة هي:
- نظام Oracle من شركة أوراكل
- نظام SQL Server من شركة مايكروسوفت
- نظام MySQL المملوك لشركة Oracle
وكل نظام من هذه الأنظمة الثلاثة له ما يميزه عن باقي الأنظمة.
ومنذ نشأة هذه الأنظمة وهي تتنافس فيما بينها فيما يخص تحسين الميزات في كل نظام والتي تشمل السعات التخزينية وعدد المستخدمين وأنظمة الحماية وغيرها من الميزات.
عالم قواعد البيانات وعالم البرمجة
وكما رأينا أصبحت جميع الشركات والمؤسسات الحكومية والخاصة تتجه للاستفادة من عالم قواعد البيانات الإلكتروني. بحيث أنه لو أرادت إحدى المؤسسات إضافة نظام بيانات إلكتروني في نظام عملها جنباً إلى جنب مع نظامها الورقي أو استبدال النظام الورقي بالكامل بالنظام الإلكتروني فإنها بالتأكيد بحاجة إلى التواصل مع جهة قادرة على تصميم هذا النظام، وهذه الجهة أما أنها ستكون شركة برمجيات عملاقة في حالة كان المشروع يخدم أكثر من فرع في أكثر من بلد، أو أن النظام المطلوب ليس بالحجم الكبير ويكفي أن يقوم مبرمج واحد بتصميم هذا النظام.
وبجميع الأحوال فإن أي مؤسسة تريد امتلاك نظام من أنظمة إدارة قواعد البيانات فإنه سيكون هناك تدخل إجباري من عالم البرمجة لتصميم هذا النظام أو تثبيته إن كان مصمماً مسبقاً.
قواعد البيانات للاستخدام الفردي
ولكن … ماذا لو أراد شخص كفرد عادي عمل قاعدة بيانات تخدمه في مكان عمله، وكان عمله لا يحتاج إلى قاعدة بيانات عملاقة لتغطي احتياجاته. فإنه إذا قام بالتحدث إلى معارفه وأصدقائه حول هذا الموضوع فإنهم بالمجمل سيقومون بنصيحته بواحدة من اثنتين:
- الأولى أن يقوم بفتح ملف Excel وتخزين البيانات فيه.
- الثانية أن يقوم بالتواصل مع مبرمج لكي يقوم بهذه المهمة.
فإذا بدأنا بالنصيحة الثانية وهي التواصل مع مبرمج لكي يقوم بهذه المهمة، فإن هذا المبرمج إما أنه سيأخذ مبلغاً مالياً مقابل عمله، أو أن هذا المبرمج قد يكون صديقاً مقرباً وأنه سيقوم بهذه المهمة بشكل مجاني من مبدأ "التعاون بين الأصدقاء"، وهذا أمر جيد، ولكن قد تكون له ضريبة غير مرضية، لأن التواصل مع هذا المبرمج في هذه الحالة وطلب تحديد التصميم أو التعديل عليه لاحقاً لن يكون من ضمن أولوياته.
وبخصوص النصيحة الأولى وهي فتح ملف Excel وتخزين البيانات فيه، فهي نصيحة جيدة، ولكن هل باعتقادكم أن أنظمة إدارة قواعد البيانات هي عبارة عن ملفات مثل ملفات برنامج الـ Excel؟
الجواب قطعاً لا، وإذا أراد أي شخص يعمل على برنامج الـ Excel أن يخرج بنفس النتيجة التي يخرج بها في حالة التعامل مع أحد أنظمة إدارة قواعد البيانات العلائقية فإنه سيضطر إلى عمل خطوات أكثر ومستمرة للخروج بنفس النتيجة.
وعليه، فإن عملاق البرمجيات -شركة ميكروسوفت- فطنت إلى هذا الأمر مبكراً، وقامت بعمل خطوة ذكية جداً، فقامت بإلحاق برنامج خاص بإدارة قواعد البيانات يثبت منفصلاً أو مع بعض حزم Microsoft Office، بحيث يستهدف هذا البرنامج الأشخاص الذين يريدون امتلاك وتصميم نظام قاعدة بيانات بأنفسهم للاستخدام الفردي أو للاستخدام الصغير، وهذا البرنامج هو برنامج الـ Access.
وإذا ما قارنا برنامج الـ Access مع أنظمة إدارة قواعد البيانات الكبيرة مثل نظام الـ SQL Server والذي هو أيضاً كما ذكرنا سابقاً من تصميم شركة ميكروسوفت فإنه لا يوجد مجال للمقارنة من حيث السعات التخزينية وعدد المستخدمين لقاعدة البيانات وأنظمة الحماية وغيرها من الخصائص، ولكن برنامج الـ Access كما قلنا سابقاً تم تصميمه للأعمال الصغيرة وأحياناً المتوسطة، وهو في هذا المجال (للأعمال الصغيرة) يعتبر من البرامج الجبارة والتي تقوم بعملها على أكمل وجه.
بالإضافة إلى أن هذا البرنامج يعتبر من برامج الاكتفاء الذاتي، بحيث أن العناصر الأساسية في أنظمة إدارة قواعد البيانات كما ذكرنا سابقاً هي الجداول والاستعلامات، ولكن هناك أيضاً عناصر مساعدة وضرورية، وهذه العناصر هي النماذج والتقارير، بحيث أن النماذج هي واجهات المستخدم والتقارير هي الشكل النهائي للنتائج والذي يتم من خلالها التعامل مع البيانات خارج نطاق قاعدة البيانات، وفي كثير من أنظمة إدارة قواعد البيانات تجد أن النماذج والتقارير يتم تصميمها بشكل منفصل عن أنظمة إدارة قواعد البيانات، ولكن بخصوص برنامج الـ Access فإنه يحتوي على واجهات مستخدم وتقارير يتم تصميمهما بداخله.
وعليه فإن برنامج الأكسس كما قلنا يعتبر من برامج الاكتفاء الذاتي.
لماذا لا يميل المعظم إلى استخدام برنامج الأكسس ويفضلون برنامج الإكسل عليه؟
المشكلة الحقيقة والفعلية والتي تواجه الكثير من المتعلمين والمستخدمين المبتدئين لبرنامج الأكسس هي طريقة التعامل مع هذا البرنامج، بحيث يتم التعامل من قبلهم مع هذا البرنامج على أساس أنه الغاية، ولكن الذي يجب أن يحدث أن يتم التعامل مع هذا البرنامج على أنه أداة أو وسيلة.
لم أفهم!!!!
حتى تتضح الصورة، فإن برامج إدارة قواعد البيانات التي ذكرناها سابقاً عندها مرجعية تعمل على أساسها وهي "مبادئ قواعد البيانات العلائقية"، وعليه فإنه يجب في البداية التعرف على هذه المبادئ، ومن ثم يأتي البحث عن نظام أو برنامج لتطبيق هذه المبادئ، وهنا يأتي دور اختيار نظام أو برنامج إدارة قواعد البيانات، حيث أن هذا النظام أو هذا البرنامج هو فقط أداة وليس هو مطلب بحد ذاته.
ولكن للأسف وأقولها بشيء من التعجب أن الدورات التي تقوم بتدريس برامج ميكروسوفت أوفيس ومن ضمنها دورة الرخصة الدولية لقيادة الكمبيوتر ICDL تعطي معلومات سطحية عن برنامج الأكسس، ويظن المتدرب المنهي لهذه الدورة أنه أصبح عملاقا من عمالقة قواعد البيانات… ولكن الواقع مختلف تماماً، وسيظهر له ذلك عند التطبيق العملي، بحيث أنه سيجد نفسه أمام مجموعة من المطبات الغير قادر على تجاوزها إلا بالتفافات طويلة ولن يحصل في النهاية على النتيجة المرجوة في كثير من الأحيان، فتجده عندها يتوقف عن استخدام برنامج الأكسس ويتحول لبرنامج الإكسل الذي نجد أن كثير من الدورات تركز على تدريسه بشيء من التفصيل.
وذكرت دورة ICDL لشهرتها وطلب الكثيرين لامتلاك هذه الشهادة.
وكتوضيح إضافي فإن برنامج الأكسس ليس كباقي البرامج النواة لحزمة ميكروسوفت أوفيس (البرامج النواة مثلا: الوورد و الاكسل و البور بوينت)، لأننا لو قمنا على سبيل المثال بفتح ملف وورد فإننا سنجد صفحة بيضاء ومطلوب منا تعلم ملء وتنسيق هذه الصفحة، وإذا قمنا بفتح ملف إكسل فإننا سنجد مجموعة كبيرة من الخلايا والمطلوب منا تعلم كيفية التعامل مع إمكانيات هذا البرنامج الذي يمكن أن يستخدمه جميع الناس بشكل عام والعاملين بالمجال المالي والمحاسبي بشكل خاص، ولو قمنا بفتح برنامج البور بوينت فإننا سنجد صفحة بيضاء بشكل أفقي والمطلوب منا تعلم ملء هذه الصفحة والتحكم بها وبمكوناتها ومن ثم تكرار نفس الأمر مع باقي الصفحات في حالة كان الملف يحتوي على أكثر من صفحة.
أما بخصوص برنامج الأكسس فإن الوضع مختلف تماماً، لأنه لو قمنا بفتح ملف أكسس فإننا سنجد جدول فارغ أو قد لا نجد أي شيئاً (يعتمد ذلك على طريقة فتح ملف الأكسس) والمطلوب منا هو البدء بتصميم الجداول وعمل العلاقات فيما بينها وتصميم الاستعلامات والنماذج والتقارير، وكل ذلك ليس بشكل عشوائي بل هو ضمن مرجعية رئيسية وهي "مبادئ قواعد البيانات العلائقية"، لذلك فإن أنظمة تشغيل الهواتف الذكية تجدها تحتوي على برامج لفتح وقراءة ملفات الوورد والإكسل والبور بوينت والتعديل عليها، ولكن لا نجد معهم برامج للتعامل مع ملفات الأكسس، لأن برنامج الأكسس كما قلنا هو برنامج يتعمد على بناء وتصميم نظام إدارة قاعدة بيانات وفق مرجعية محددة وليس كباقي البرامج.
ماذا عن كاتب هذا المقال… ما الطريق الذي سلكه في تعلم قواعد البيانات؟
بالنسبة لي، فإن بدايتي مع عالم قواعد البيانات لم تكن بأفضل حالاً من غيري، لإني دخلت هذا العالم (عالم قواعد البيانات) في العام 2006م، ولكن للأسف دخلته مثلما دخله كثير من الأشخاص بطريقة خاطئة، وهي أني اشتريت بعض الكتيبات والكتب الخاصة بتعليم برنامج الأكسس، وظننت بعد الانتهاء من هذه الكتب أنه عليَّ فقط أن أنتظر هاتفاً من "بيل جيتس" -مؤسس شركة ميكروسوفت- لكي يجعلني ضمن فريق عمله، ولكن مع محاولة التطبيق العملي وجدت أن عندي ضعفاً يصعب تجاوزه في تصميم قواعد البيانات.
ولكن ومع مرور السنين بما يعادل 18 سنة من التعامل مع قواعد البيانات وكثرة البحث والمحاولات… تحولت من شخص هش في مجال قواعد البيانات إلى معلم لخارطة طريق في التعامل مع قواعد البيانات بالطريقة الصحيحة وليست بالطريقة الخاطئة التي كلفتني سنوات وطاقات مهدورة في غير محلها.
ما هي خارطة طريق تعلم قواعد البيانات للأفراد؟
تعلم قواعد البيانات وتطبيقها على برنامج الأكسس هو متعة أحسست بها ووجدتها أيضاً عند جميع من قمت بمشاركتهم خارطة طريق تعلم قواعد البيانات، حيث أن منهم من قال لي أنه كان ينسى نفسه عندما يجلس أمام جهاز الحاسوب ويمضي وقتاً ممتعاً وهو يتعلم ويطبق مبادئ قواعد البيانات على برنامج الأكسس، ويصنع في النهاية بنفسه قاعدة بيانات تخدمه في مكان عمله، ومن ثم يعدل عليها بنفسه وقتما شاء.
ويمكن تلخيص خارطة طريق تعلم قواعد البيانات للأفراد بالخطوات التالية:
- تعلم مبادئ قواعد البيانات.
- اختيار أداة لتطبيق هذه المبادئ، وهذه الأداة إما أن تكون نظاماً أو برنامجاً لإدارة قواعد البيانات، وأنصح هنا للمبتدئين ببرنامج الأكسس.
- محاولة التمكن من إجادة استخدام أهم إمكانيات هذه الأداة في البداية، ومن ثم التعلم التدريجي لباقي الإمكانيات.
- التطبيق العملي لمشروع واحد والتجريب فيه قدر المستطاع، ومن ثم التوسع لاحقاً لعدة مشاريع.
- البحث الدائم عن كل ما يخص عالم قواعد البيانات، والتطوير المستمر للقدرات الذاتية الخاصة بالتعامل مع هذا العالم.
الخاتمة: عالم قواعد البيانات عالم مفيد جداً، وشئنا أم أبينا فإن هذا العالم قد اقتحم جميع مناحي حياتنا وأصبحنا نحن جزءً من هذا العالم، وهذا العالم غير مقتصر على المؤسسات أوالشركات بحيث يمكن للأفراد أيضاً الدخول على هذا العالم وتعلمه وإنشاء قواعد بيانات بأنفسهم تخدمهم في أي منحى من مناحي حياتهم.
ولمن يريد من الأفراد دخول هذا العالم وتعلم إنشاء قواعد البيانات وإدارتها بالطريقة الصحيحة فإنه يوجد على هذه المدونة دورة بعنوان "تصميم قواعد البيانات باستخدام الأكسس"، بحيث تقوم بأخذ يد المتعلم والسير معه خطوة بخطوة نحو تعلم مبادئ قواعد البيانات العلائقية ومن ثم تطبيق هذه المبادئ على مشروع عملي، وكل ذلك من خلال استخدام برنامج الأكسس، وللإطلاع على تفاصيل هذه الدورة قم بالضغط هنا.
والله ولي التوفيق.