المعلوماتية > عام
جولة في عالَم قواعد البيانات - الجزء الأول
ربّما سمعتَ مسبقاً بمصطلح قواعد البيانات، لكنك قد لا تعلمُ بأنها منتشرة بشكلٍ كبير جداً؛ فهي تكمنُ وراء التكنولوجيا المُستخدمة من قِبل معظم الناس كل يوم، فمثلًا، هي جزءٌ كبير من المواقع الإلكترونية، وتعد جزءًا أساسيًا من أنظمة الاتصالات والأنظمة المصرفية وحتى ألعاب الفيديو. باختصار فإنها موجودة في أي برامج أو أجهزة إلكترونية تحتاج لتخزين بعض المعلومات بشكل دائم.
تختصرُ قواعد البيانات الكثيرَ من الوقت اللازم لعمليات ترتيب وإدارة الملفات الورقية؛ إذ أن عمليةَ جمع وحفظ البيانات بمفردها تتطلب الكثير من الجهد، بالإضافة للاحتمالات العالية لضياع أو تلف البيانات المهمة. دون الحاجة لذكر
المساحات الكبيرة الضائعة لتخزين الكمٍّ الهائل من المستندات والمصنفات الورقية والموارد المهدورة على تصنيع الورق والمصنفات... إلخ.
بعد أن عرفنا أهمية قواعد البيانات، دعونا نتعرف إليها بشكل أعمق!
قواعد البيانات (Database - DB)
قبل أن نعرّف قواعد البيانات، ما هي البيانات؟
البيانات هي عبارة عن حقائقَ خامٍّ تشكل اللبنةَ الأساسية للمعلومات، وهي بمثابة القلب لأنظمة قواعد البيانات. لكن البياناتِ بشكلها الخامِّ لن تعطينا معلومات مفيدة، فهي بحاجة للمعالجة أولًا.
تُقسّم البيانات في نظم إدارة قواعد البيانات إلى نوعين رئيسيين؛ الأول هو مجموعة المعلومات اللازمة للمؤسسة التي تستخدم قاعدةَ البيانات، والثاني هو البيانات الوصفية (metadata) أو المعلومات عن قاعدة البيانات.
البيانات هي الجزء الأكثر استقرارًا في نظام معلومات أي مؤسسة؛ إذ أن المؤسسةَ بحاجة إلى تخزين معلومات عن الموظفين مثلًا والأقسام والرواتب، وهي ما تُسمى البيانات، وبالتخزين الدائم لهذه البيانات فإنها تُسمّى البيانات الدائمة. لتصبح هذه البيانات مفيدة، نقوم بمجموعةِ عملياتٍ على البيانات أو عناصر البيانات لتزويدنا ببعض المعلومات عن كينونة ما. على سبيل المثال المكتبة تحتفظُ بقائمة للأعضاء والكتب والتواريخ والأجرة وغيرها التي تسمّى كل منها كينونة (entity).
أما قاعدة البيانات، فهي عبارة عن تجميع منظّم للبيانات التي ترتبط مع بعضها بطريقة مُجدية، والتي يمكن الوصول إليها بطرائق منطقية مختلفة. يجب أن تحتوي قاعدةُ البيانات على كل البيانات المطلوبة من قِبل مؤسسة ما ونتيجة لذلك، فإن الكمَّ الهائل من البيانات والحاجةَ إلى تخزينٍ طويل الأجل للبيانات والوصولِ إلى البيانات من قِبل عدد كبير من المستخدمين هي أهم الخصائص التي تميزُ نظمَ قواعد البيانات؛ وهي النُّظمُ التيتكون فيها عملية تفسير وتخزين المعلومات عملية بمنتهى الأهمية.
أنظمة إدارة قواعد البيانات (Database Management Systems - DBMS):
يتكوّنُ نظام إدارة قواعد البيانات (DBMS) من مجموعةٍ من البيانات المترابطة (قاعدة بيانات) ومجموعةٍ من البرامج للوصول إلى تلك البيانات؛ أي أنها عبارة عن برامجَ تمكّنُ مجموعةً من المستخدمين من إدارة قاعدة البيانات والاستفادة منها.
لنفهم كيف تعمل أنظمة إدارة قواعد البيانات أكثر، سنأخذ مثالًا عن كلية ما لتكن كلية الهندسة المعلوماتية، والتي تحتفظ بمعلومات عن طلابها ودكاترتها والمواد التي تقوم بتدريسها وعلامات الطلاب وغيرها الكثير من المهام الإدارية العديدة.
تُسمّى البيانات السابقة بالبيانات التشغيلية؛ لأن الكلية بحاجتها لكي تعمل. يتمُّ بناء البيانات التشغيلية أو جمعها من خلال ما يسمى ببيانات الدخل (مثل استمارات التسجيل للطلاب وقوائم العلامات والجداول… إلخ)، وتُستعمل هذه البيانات لتوليد ما يُسمّى ببيانات الخرج (كشوف العلامات وقوائم التسجيل أو التقارير الإدارية… إلخ). لاحظ بأنه لا حاجة للكومبيوتر لعملِ كل ما سبق، وبالإمكان اتباع هذه الآلية بشكل ورقي كما كان الوضع سابقًا، لكن، ومع اختراع الحاسوب، تغيرت معطيات وتطلعات المستخدم، أصبحنا نتطلع إلى تخزين كمية أكبر من البيانات واستخدامها بشكل أكثر فاعلية.
المهمة الرئيسية لنظام إدارة قواعد البيانات هو توفير طرائق فعالة وموثوقة لعملية استخراج (retrieve) البيانات لخدمة عدةِ مستخدمين. لو فرضنا بأن كلية المعلوماتية لديها ١٠٠٠٠ طالب كل عام، وكل طالب لديه ١٠ سجلات علامات سنوياً. هذا معناه بأنه خلال ١٠ سنوات فقط، سوف تركمُ الكلية ما مجموعه ١٠٠٠٠٠٠ سجل علامات. ليس من السهل استخراجُ سجل يحقق شروطًا معينة من هذه المجموعة. هذا مع العلم بأنه وفق المعايير الحالية، فإن هذا الرقم من السجلات يعدُّ صغيراً.
باستخدام المعطيات الحالية فإن أحد التساؤلات التي قد نحاول الإجابة عنها مثلًا هو تطور معدّل العلامات في مادة البرمجة خلال العشرة أعوامٍ الماضية. لذلك فإنه من الواضح الآن أن الاستخراجَ الفعّال للمعلومات هو وظيفةٌ أساسية لنظام إدارة قواعد البيانات.
تتعاملُ معظم أنظمة إدارة قواعد البيانات مع عدة مستخدمين يحاولون الوصول إلى بيانات مختلفة، أو في حالات كثيرة إلى البيانات عينها. على سبيل المثال؛ لنفترض بأننا نريد تقديمَ خدمة التسجيل الإلكتروني للطلاب على مادة معينة. يمكن للطلاب التسجيل من خلال حواسيبهم الشخصية أو أجهزة الكلية أو غيرها. نفترض أن قاعدةَ البيانات تحوي معلوماتٍ عن الحدِّ الاستيعابي الأقصى لكل مادة وكميةِ المقاعد الحالية المتوفرة. لنفترض بأن عددًا من الطلاب يرغبون بالتسجيل في مادة هندسة البرمجيات للفصل الأول من عام 2017، للأسف فإن عدد المقاعد المتاحة محدود ولن تتمَّ الموافقة على جميع الطلبات، فلو كان هناك مقعد واحد متبقي، فإن على قاعدة البيانات التعامل مع هذا الأمر والسماح فقط لطلب واحد بالتسجيل.
برمجيات نظم قواعد البيانات:
يتعامل المستخدمُ مع أنظمة قواعد البيانات باستخدام لغات الاستعلام، والتي تملكُ مهمتين رئيسيتين: تعريف بُنى البيانات التي تستخدم كأوعية لبيانات قاعدة البيانات، والسماح بالوصول والتعديل السريع على البيانات. بناءً على ذلك، يمكنُ التميز بين مكونين رئيسيين للغة الاستعلام: مكونُ معرِّف البيانات ومكوِّن معالج البيانات.
المهمةُ الرئيسية لمعالج البيانات هي استرجاعُ البيانات والتعديل عليها. أما استرجاع البيانات فهو للحصول على البيانات المخزّنة في قاعدة البيانات والتي تحقق شرطًا معينًا مكتوبًا من قِبل المستخدم بواسطة لغة الاستعلام. أما التعديل على البيانات فيشملُ الحذفَ والتحديث والإضافة.
تختلفُ البرمجة باستخدام لغات الاستعلام عن البرمجة بلغات البرمجة الأعلى مستوى؛ إذ يقومُ برنامجٌ مكتوب بلغة الـ«سي» أو الـ«باسكال» بتطبيق خوارزميةٍ ما لحل مشكلة معينة. بينما يقوم استعلامٌ مكتوبٌ بلغة استعلامات قواعد بيانات بتحديد المشكلة فقط ويتركُ مهمةَ بناء الكود البرمجي لحلِّها لمكِّونٍ خاٍّص من مكونات نظامإادارة قواعد البيانات. تُسمَّى هذه الطريقة بالبرمجة غير الإجرائية (nonprocedural).
إحدى المهام الرئيسية لنظم ادارة قواعد البيانات هي إدارةُ المعاملات* والتي يجب تنفيذها بكاملها أو عدم تنفيذها على الإطلاق. تُعرّف خاصية المعاملات هذه بالذريّة؛ أي كل شيء أو لا شيء.
مثال نموذجي على هذه الخاصية هو عملية تحويل مالي بين حسابين بنكيين (أ) و(ب) تتم على قاعدة بياناتِ مصرفٍ ما. بعد تنفيذِ كامل العملية، لا يجب أن تتغيرَ الكمية الإجمالية من المال لمجموع الحسابي، وهو شرطٌ بديهي لاتساق البيانات في قواعد البيانات. تتكوّن هذه المعاملة من العمليَّتَين التاليتَيْن بالترتيب:
١- انقاص الحساب (أ) بالمقدار (س) ليرة سورية.
٢- زيادة الحساب (ب) بالمقدار (س) ليرة سورية.
إذا نُفِّذت العملية الأولى فقط، فإن المقدار (س) من المال سوف ينقص من المصرف. أو إذا نُفِّذت العملية الثانية فقط، فإن المقدار (س) من المال سوف يزيد. في كلتا الحالتين فإن شرط الاتساق لم يعد محققًا.
ولهذا يمكننا القول بأن كل معاملة تنقلُ قاعدةَ البيانات من حالة متّسقة إلى حالة متسقة أخرى، وهذه الخاصية تعرف بالاتساق/التناغم (consistency).
عادةً وفي أية لحظة زمنية، يمكن أن توجدَ كميةٌ كبيرة من المعاملات التي يجبُ تنيفهاذ في وقت واحد على قاعدة بيانات واحدة. يتأكدُ مكوّنُ إدارة عملياتالمعاملات بأنها لا تتضارب أو تؤثرُ على بعضها البعض،و هذه الخاصية هي ما تعرفُ بالعزل (isolation). أخيرا فإن تأثيرَ معاملةٍ ما على حالة قاعدة البيانات يجب أن يكونَ دائمًا؛ بمعنى أن أي تغيير تُحدثه المعاملة على قاعدة البيانات، يجب أن يبقى موجودًا حتى بعد انتهاء تنفيذ المعاملة، وهذه الخاصية هي الثبات (durability).
وهكذا نرى بأن المعاملاتِ تمتلكُ أربعَ خصائص رئيسية هي الذرية والاتساق والعزل والثبات.
عادةً ما تحتوي أنظمةُ إدارة قواعد البيانات على تطبيقاتِ تطوير أخرى بالإضافة إلى لغة الاستعلام. دور هذه الأدوات هو تسهيل تطوير واجهات المستخدمين. وتتضمنُ هذه التطبيقاُت أنظمةَ الاستمارات ولغاتِ برمجةٍ إجرائية وغير إجرائية تقوم بدمج استعلامات قواعد البيانات مع واجهات المستخدم.
المستخدمين لقواعد البيانات:
يتضمنُ مجتمعُ مستخدمي أنظمة إدارة قواعد البيانات أفراًدا ومؤسسات مختلفة. ويُصنَّـف المستخدمون تبعًا لأداورهم واهتماماتهم في الوصول إلى قاعدة البيانات وإدارتها.
بمجرد إنشاء قاعدة البيانات تبدأ مهمةُ «مدير قاعدة البيانات» بالعمل على اتخاذ قرارات تتعلقُ بطبيعة البيانات التي ُيراد تخزينها وتحديد الصلاحيات للوصول إلى أجزاء معينة من قاعدة البيانات بالإضافة إلى مراقبة وضبط أداء قاعدة البيانات.
في الطرف الاخر من نطاقِ أنواع المستخدمين نجدُ «المستخدمين النهائيين لقاعدة البيانات، وهم الذين لديهم صلاحياتُ وصول محدودةٌ، ويتطلبُ استخدامُهم لقاعدة البياناتِ معرفةً تقنية بسيطة عن قواعد البيانات بشكل عام. على سبيل المثال، يستخدمُ موظفٌ نظامَ حجز التذاكر لدى شركة طيران أو موظفو البنك أو حتى مستخدم آلة الصراف الآلي.
الفئةُ الأهم من مستخدمي أنظمة إدارة قواعد البيانات هي مبرمجو التطبيقات، والذين يكمنُ دورُهم بالعمل داخلَ نظام إدارة قواعد البيانات الحالي باستخدام خليطٍ من لغات الاستعلام واللغات الأعلى مستوى لإنشاءِ تقاريرَ مختلفة عن البيانات الموجودة داخل قاعدة البيانات. في بعض الحالات يقومون بكتابة برامجَ أكثر عمومية تعتمد على هذه البيانات.
في الجزء الثاني من هذا الموضوع، سوف نتعرف إلى بنية قاعدة البيانات وأنواعها ونمذجتها ومعلومات أخرى، فانتظرونا!
-----------
حاشية المحتوى:
المعاملات: سلسلة من عمليات قواعد البيانات، والتي عادةً ما تكون عمليات تعديل على البيانات وأحيانا عمليات استرجاع بيانات.
المراجع: