نظام ادارة قواعد البيانات (Database Management System) و الذي يُختصر دائماً بـ DBMS، هو نظام، و أعني بهذا التأكيد أن أوصل فكرة أن نظم إدارة قواعد البيانات هي نظم عادية، و لكن نُغير مسماها إلى DBMS حين تقوم بأداء مهام معينة، فأنت بإمكانك أن تُشئ نظاماً لإدارة قواعد البيانات وفق مفهومك بعد وضع النموذج الخاص بك.
مفاهيم أساسية في قواعد البيانات :
الكثير منا -إن لم يكن الجميع- قد طرقت آذانهُ كلمة “قاعدة البيانات” وفي هذا الدرس أود أن أشرح لك عزيزي أهم المفاهيم الأساسية في قواعد البيانات والتي بدون معرفتها لن تستطيع التقدم في أو تعلم قواعد البيانات ومتي يجب انشاءها.
سأتخذك مثالاً، إذا ذهبت لتُسجل بالمدرسة أو الجامعة، فإن المسجل سوف يسجل عنك بعض البيانات مثل إسمك، في أي فصل تدرس، عمرك، … إلخ. و بعد بدء الدراسة و عند كل إختبار تُجريه تُسند -تُضاف- نتيجة الإختبار إلى هذه البيانات. ثم بنهاية الإختبارات يتم إستخدام هذه البيانات في تحديد نتيجتك النهائية من ناحية نسبة مئوية أو تقييم أو ترتيب أو غيره. و من المؤكد أننا نستخدم مستودعاً واحداً لنسجل عليه هذه البيانات، مثلاً دفتر أو قاعدة بيانات.
1. ما هي قاعدة البيانات [Database]:
قاعدة البيانات هي عبارة عن مجوعة البيانات المتعلقة أو ذات الصلة يبعضها ( كما في المثال أعلاه فإن بياناتك متعلقة ببعضها مثل الفصل و إسمك و نتائج إختباراتك فجميعها تخصك) و تنظم و تسجل بطريقة واضحة محددة. عادة ما تتكون قاعدة البيانات من مجموعة من الجداول، إحفظ إسم “جدول” في مخيلتك و واصل القراءة.
2. هل الحقل في قواعد البيانات له علاقة بالزراعة [Field]:
لا تذهب بعيداً، تعلم بكل تأكيد أنه لكل طالب إسم و هذا الإسم يُسجل في حقل واحد. وكل الحقول التي نسجل عليها الأسماء ذات طبيعة واحدة أي أن المُسجل الذي سجل بياناتك بالدفتر لن يضع في حقل الاسم معلومة أخرى سوى الإسم و لن يضع الأسماء في أي مكان غير حقل الإسم ، و هكذا فإنك تملك بنهاية عملية تسجيلك حقولاً تحوي إسمك و فصلك و عمرك. ألخصها لك بأن الحقل هو المكان المخصص لتسجيل معلومة واحدة خاصة بك وتكون ذات طبيعة واحدة. ولا توجد زراعة بالبيانات.
3. ما هو السجل في قواعد البيانات [Record]:
السجل هو مجموعة الحقول التي تصف كائناً محدداً، مثلاً إذا أخذنا بياناتك الكاملة من رقمك و إسمك و صفك و هاتفك، فإن هذه البيانات تمثل سجل لك شخصياً، نعم.
4.لقواعد البيانات جدوالها، فلنتعرف على الجدول [Table]:
إحدى الطرق التي تمكننا من تنظيم البيانات في شكل مرتب تكون نتيجتها جداول، هذا بصورة عامة، أما في مثالنا عندما ذهبت بشخصك للتسجيل، إن المسجل إذا إتبع مفاهيمنا فإنه سيتحصل على بيانات الطلاب في جدول كما بالصورة التالية ويتكون الجدول من مجموعة سجلات (صفوف) والحقول تمثل (الأعمدة) .
5.ما هي البيانات [Data]:
عندما ذهبت إلى مدرستك أو جامعتك لتقوم بالتسجيل، قام المسجل بأخذ بعض البيانات عنك و سجلها لديه، جميل؟ ذهبت إلى دفع الرسوم الدراسية و تم تسجيل البيانات عن ما دفعت و ما يتوجب دفعه أيضا؟ هل توصلت إلى مفهوم ما للبيانات؟ لاحظ أننا ذكرناها في الجملة السابقة مرتين. البيانات تمثل الحقائق و الإحصائيات التي تُجمع. و بذلك نستطيع القول أن كل حقل يتم به تسجيل (بيان).
6.البيانات مختلفة عن المعلومات؟!!! لنتعرف على المعلومات [Information]:
درجاتك التي يتم تسجيلها في جدول هي عبارة عن بيانات، فإذا اردت معرفة نتيجتك النهائية (معلومة) فلا بد من معالجة هذه البيانات. فربما علمت الآن أن المعلومة هي ناتج المعالجات التي تطبقها علي البيانات. بيانات ثم معالجة ثم معلومات، هكذا هي العلاقة.
7.ما هي القيود [Restrictions] :
كل شئ على وجه هذه البسيطة لهُ قيود، و بدون هذه القيود تفسد الحياة و يفسد كل شئ حتى قواعد البيانات، فإذا سمحنا لشخص ما أن يضيف في حقل الإسم ما يريد فهل يصبح هناك معنى لأن نسميه حقل الإسم؟!! و بدقة أكبر إذا كانت المدرسة في دولة عربية و التلاميذ ذوو أسماء عربية، فلا بد أن نقيد الأسماء بأن تكون عربية فقط. و هذا متاح بقواعد اليانات. وقس على ذلك فليس بإمكاننا أن نسجل أحرف في الحقل المخطط لرقم الهاتف فيجب أن يحتوي هذا الحقل علي أرقام فقط. و هذا أيضاً متاح. نخلص من هذا أن القيود هي مجموعة الشروط التي نضعها لضبط تسجيل البيانات. و هي بكل تأكيد حديدية في المعنى و الفائدة.
كانت هذه سبع مفاهيم أساسية في قواعد البيانات بمعرفتها تفتح لك أبواباً أخرى في هذا العلم الواسع. إذا التبس عليك أحد المفاهيم لا تتردد في أن تضع تعليقاً بالأسفل.
أنواع قواعد البيانات :
تعتبر قواعد البيانات من أهم أسباب تطور و تقدم نظم المعلومات. إذ تستقبل بيانات العالم في قواعد بيانات، كما تغذي قواعد البيانات أنظمةً و تقاريرَ أخرى لأهداف مختلفة. إختلاف البرامج التي تغذي قواعد البيانات و إختلاف الأهداف من وجودها يحتم عليها أن تتخذ أشكالاً و نماذج عدة.
كل شيء يجمع دون تنظيم يصعب الوصول إليه، وقواعد البيانات ليست استثناءً من هذه القاعدة.
لذا وجدت منهجيات تنظيم وترتيب لقواعد البيانات لتسهيل وتسريع عمليات البحث والوصول إلى البيانات المخزنة. بعضها تقليدي وبعضها حديث، ولكن في كلا الحالتين يجب أن يمتلك المبرمج معلوماتٍ عمّا سبق وعمّا يوجد الآن. يمكنك الاطلاع لاحقا علي متى يجب إنشاء قاعدة بيانات؟
قواعد البيانات اليدوية Manual Database :
تلك البيانات المبعثرة في الأرفف والأوراق التي تملأ المكتبات والمخازن تمثل قواعد البيانات اليدوية . و بسبب هذه البعثرة جاءت تصنيفات مهمة ومنطقية لتصنف البيانات حسب علاقتها ببعضها أو حسب بنيتها الرياضية او المنطقية، و بناء على ما ذكرتُ لك تُعتبر الملفات المخزنة في الأرفف و فواتير المبيعات المجدولة إلكترونياً و عناوين الأشخاص في ملف وثائقي أمثلةً لبيانات يدوية.
قواعد البيانات العلائقية Relational Database:
هذا النوع من قواعد البيانات من أكثر الأنواع إستخداماً من قبل الإنسان من أجل تنسيق المعلومات، فهو يعتمد على ربط الجداول والمعلومات بطريقة أسهل من أجل سرعة الوصول إلى المعلومات المطلوبة. و هي من الطرق التي يستخدمها العقل البشري كثيراً في محاولات التذكر للأحداث القديمة. علاقة بسيطة قد تجعلك تتذكر أحداثاً كبيرة.
يمتلك هذا النوع من قواعد البيانات المعلومات مميزات جيدة، كأن يتم إدخالها البيانات مرة واحدة فقط فلا داعي للتكرار. كما أن الجداول الصغيرة يمكن إنشائها وتعديلها بسهولة. فالصغير الواضح ذو العلاقات البينة أسهل في التعديل، إضافة إلى إمكانية إضافة الجداول إلى قاعدة البيانات في أي وقت.
قواعد البيانات غير العلائقية Non-relational Database :
وفى هذا النظام يُنشأ جدول كبير يحتوى على جميع البيانات. كأن كل ما تملك من معلومات في ورقة وحيدة.
لا يخفى عليك غرابة هذه الطريقة و ربما تخيلت عدة مساوئ لها، ففي هذا النوع من قواعد البيانات تتكرر البيانات بكثرة ، ففي حالة إدخالك لمنتج 10 مرات فسيكتب رقم هاتف المورد مثلاً 10 مرات كذلك!! ولا يخفي عليك عند التعديل سيُعدل الرقم كذل 10 مرات أيضاً!!.
قواعد بيانات ذات الشكل هرمي Hierarchy Database :
وتعتمد هذه القاعدة على مبدأ التسلسل الهرمي في العمل . حيث أنها تقوم بعمل تسلسل من الأصل ، أو الجذر ، حيث أن هذا النظام يبدأ في التفرع على شكل أقسام ، ويقوم مبدأ عمله على الوصول إلى البيانات بطريقة متسلسلة ومتفرعة ، وتكون إما من أسفل للأعلى أو من الأعلى للأسفل .
قواعد البيانات الشبكية Network Database:
ظهر هذا النوع من قواعد البيانات في زمن شهرة قواعد البيانات ذات الشكل الهرمي. يعتمد الشكل الهرمي على أن يكون الأب وحيد و له عدة أبناء، و لكن وُجد أن بعض البيانات ترتبط بطريقة عدة أبناء مع عدة آباء و العكس صحيح. ربما ليس من المنطقي تعدد الآباء في الحقيقه لكنه في قواعد البيانات يحدُث.
يقتصر النوعان الرابع والخامس على الإحتياجات الكبيرة لأنهما يتطلبان عادة ذواكر بأحجام كبيرة. ولكن رغم ذلك فإنها لها مزايا عديدة، فهي أكثر كفاءة من قواعد البيانات العلائقية ، وتتعامل مع كم كبير جداً من المعلومات ، بإضافة إلى توفير بناء على طريقة تنظيم الملفات التي تتبعها مساحات كبيرة من وسائط لتخزين البيانات Storage Data base.
الفرق بين الهرمية والشبكية والعلائقية :
يستخدم النموذجان الهرمي والشبكي روابط (links) أو مؤشرات (pointers) لوصل السجلات (Records) ببعضها البعض في النظام ، وتدعى هذه الأنظمة بالأنظمة الساكنة (static) أو المتراصة (monolithic) لأن السجلات فيها مربوطة ببعضها بشكل فيزيائي من خلال تعاريفها، وتتميز هذه الأنظمة بأنها معقدة العمل وصعبة التعديل، إلا أن سرعة الوصول فيها تغطي عيوبها .
أما في الأنظمة العلائقية فالربط بين السجلات لا يجري فيزيائياً عن طريق المؤشرات، وإنما عن طريق الأسماء الحقيقية للحقول ، كحقول رقم الموظف أو الإسم أو رقم البطاقة، فالسجلات في هذا النظام قابلة للعنونة بالمحتوى (connect-addressable) بحيث يجري الوصول إليها بمطابقة قيم البيانات المخزنة مع بعضها.
تضم الأسواق حالياً مالا يقل عن 200 نظام (Data Base Managements Systems DBMS) لإدارة قواعد البيانات ، نصفها تقريباً يستخدم اللغة SQL (أنظمة علائقية) على مختلف أنواع الحاسبات.
المهام الرئيسية لنظام ادارة قواعد البيانات الذي بإستطاعتك تطويره تتمثل في :
- توضيح العلاقات بين البيانات المؤرشفة، فإذا كان لملف رئيسي ملفات فرعية فيتم تخزين وإدارة هذه العلاقات.
- إدارة طرق تخزين البيانات، فمستخدم النظام لا يعلم كيف يتم تخزين البيانات و بأي هيكلة، و لكن النظام يهتم بهذا الأمر.
- إمكانية تخزين البيانات و إسترجاعها، و هذا يعني تحويل البيانات من هيكلتها الطبيعية إلى هيكلتها التخزينية ثم إسترجاعها كما كانت من قبل دون تغيير.
- من أهم المهام و التي مثلت معاناة لكل صاحب إرشيف هي توفير الحماية لهذه البيانات، و هي كذلك من أهم المهام التي يجب على نظام إدارة قواعد البيانات توفيرها.
- إدارة الوصول المتعدد إلى قواعد البيانات دون التأثير على سلامة البيانات، و هذه من الخصائص الجميلة لقواعد البيانات، فالإرشيف التقليدي لا يسمح بالوصول المتعدد، كما أن السماح بالوصول المتعدد مع المحافظة على سلامة البيانات مهمة عظيمة جداً تحتاج لسياسة ذكية لإدارتها.
إمكانية النسخ الإحتياطي و إستعادة البيانات السابقة :
- وفقاً للنسخ الإحتياطي السابق، هذه الخاصية تسمح لنظم إدارة قواعد البيانات بتقليل الخسائر في الحالات التي تحدث بها خسائر.
- بعد توفير كل هذه الخصائص، ألا يتطلب ذلك توفير طريقة لإسترجاع هذه البيانات المخزنة، فلا بد لنظام إدارة قواعد البيانات من توفير لغة قياسية لإسترجاع البيانات سليمة دون تغيير أو فقد أو إسترجاع بيانات غير مرغوبة، مثل لغة SQL.
- أن يوفر هذا النظام واجهة للنظم المختلفة للإتصال مع قواعد البيانات، فعند تخزينك لعدد كبير من البيانات ربما تحتاج اليوم أن تستخدمها مع نظام مطور بلغة جافا و غداً بنظام مطور بلغة C++.
من هو مخترع نظم إدارة قواعد البياناتبدأت فكرة نظم إدارة قواعد البيانات في النصف الثاني من القرن السابق، في ستينيتات القرن الماضي حيث تكفلت شركة IBM الرائدة في مجالات عدة ولا سيما نظم المعلومات بإصدار أول نظام لإدارة قواعد البيانات و سمته IMS، يعتمد هذا النظام على فكرة بسيطة جداً، و هي الشجرة الثنائية.أمثلة لنظم إدارة قواعد البياناتكان نظام إدارة قواعد البيانات IMS معتمداً على مبدأ قديم بإستطاعة أي مبتدئ في عالم البرمجة اليوم تصميمه، و لكن مع تطور التقنية و التطور المستمر تتوفر اليوم عشرات نظم إدارة قواعد البيانات المعروفة عالمياً، أذكر منها مثلاً:
متى تستخدم نظام ادارة قواعد البيانات :
على كُل ليس كُل نظام بحاجة إلى إستخدام نظام لإدارة قواعد البيانات، فالآلة الحاسبة في الويندوز نظام بلا قاعدة بيانات أصلاً، كما أن نظام يحتاج إلى تخزين رقمين ليس بحاجة إلى إستخدام كامل قواعد البيانات.
- تحكم مركزي في قواعد البيانات.
- دعم الوصول المتعدد المتزامن لقواعد البيانات.
- توفير أمان عالٍ و إدارة جيدة للتحكم في الوصول.
- توفير درجة عالية من سلامة البيانات.
- تخزين بيانات بحجم كبير و إستعادتها مستقبلاً.