الوحدة 4: نمذجة البيانات وأنواعها

تُقدِّم هذه الوحدة مفاهيم نمذجة البيانات، مستويات التجريد المختلفة، وطبقات التخطيط المستخدمة في تصميم قواعد البيانات، مع توضيح الاستقلالية المنطقية والمادية وأهم المصطلحات الأساسية.

الهدف من الوحدة

تُقدِّم هذه الوحدة مفاهيم نمذجة البيانات، مستويات التجريد المختلفة، وطبقات التخطيط المستخدمة في تصميم قواعد البيانات، مع توضيح الاستقلالية المنطقية والمادية وأهم المصطلحات الأساسية.

4.1 أنواع نماذج البيانات (Types of Data Models)

نماذج البيانات هي أدوات مفاهيمية تُستخدم لوصف هيكل قاعدة البيانات على مستويات مختلفة من التجريد. تُصنَّف هذه النماذج عادةً حسب مستوى التجريد والغرض منها في عملية تصميم قاعدة البيانات:

  • 1. النماذج المفاهيمية عالية المستوى (High-Level Conceptual Models):

    تركز هذه النماذج على وصف البيانات من منظور المستخدم النهائي أو متطلبات العمل، دون الخوض في التفاصيل التقنية لتخزين البيانات. تُستخدم في المراحل الأولى من التصميم لفهم متطلبات النظام والعلاقات بين الكيانات الرئيسية.

    أمثلة:

    • نموذج الكيان والعلاقة (Entity-Relationship Model - ER Model): من أشهر النماذج المفاهيمية، يُعرّف الكيانات (مثل الطالب، المقرر)، سمات كل كيان، والعلاقات بينها (الطالب يسجل في مقرر).
    • نموذج الكائن (Object Model): يعتمد على مفهوم الكائنات (Objects) وخصائصها وسلوكياتها (Methods)، ويُستخدم بشكل خاص في قواعد البيانات الكائنية أو عند نمذجة الأنظمة الموجهة للكائنات.
    الاستخدام: تُستخدم هذه النماذج في المراحل الأولى من التصميم لإنشاء مخطط مفاهيمي عالي المستوى يساعد في فهم متطلبات النظام قبل البدء في التنفيذ الفعلي.
  • 2. النماذج المنطقية القائمة على السجلات (Logical Record-Based Models):

    تصف هذه النماذج كيفية تخزين البيانات في هياكل محددة تُستخدم عادةً بواسطة أنظمة إدارة قواعد البيانات (DBMS). تُقدم تفاصيل أكثر من النماذج المفاهيمية، ولكنها لا تزال مجردة من التفاصيل المادية للتخزين.

    أنواعها الرئيسية:

    • النموذج العلاقي (Relational Model): هو النموذج الأكثر استخدامًا وشيوعًا اليوم. يعتمد على تنظيم البيانات في جداول (Tables)، حيث تتكون الجداول من صفوف وأعمدة. تُربط الجداول ببعضها البعض باستخدام المفاتيح الأساسية والخارجية.
      أمثلة: MySQL, Oracle, SQL Server, PostgreSQL.
    • النموذج الهرمي (Hierarchical Model): يُنظّم البيانات على شكل شجرة، حيث كل سجل "ابن" (Child) يمكن أن يكون له سجل "أب" (Parent) واحد فقط. تُستخدم بشكل أساسي في أنظمة قواعد البيانات القديمة (Legacy Systems).
      مثال (نظام قديم): IBM IMS.
    • النموذج الشبكي (Network Model): تطور للنموذج الهرمي، يسمح للسجل الواحد بأن يكون له عدة آباء، مما يجعله أكثر مرونة في تمثيل العلاقات المعقدة. ومع ذلك، لا يزال أكثر تعقيدًا من النموذج العلائقي في إدارته.
      مثال (نظام قديم): CODASYL DBTG.
  • 3. النماذج المادية (Physical Models):

    تركز هذه النماذج على كيفية تخزين البيانات فعليًا على وسائط التخزين (مثل القرص الصلب أو الذاكرة). تُقدم تفاصيل حول تنظيم الملفات، هياكل الفهارس، تقنيات التجزئة (Partitioning)، وكيفية الوصول إلى البيانات على أدنى مستوى. عادةً ما يتعامل معها مطورو نظام الـ DBMS أو مسؤولو قواعد البيانات لضبط الأداء.

    أمثلة:

    • نموذج الملفات المسطحة (Flat Files): أبسط أشكال التخزين، حيث تُخزن البيانات في ملف نصي بسيط (مثال: ملف CSV).
    • نموذج التخزين العمودي (Columnar Storage): يخزن البيانات عمودًا تلو الآخر بدلاً من صف تلو الآخر، مما يحسن أداء الاستعلامات التحليلية التي تتناول أعمدة محددة.

4.2 مدى تجريد البيانات (Data Abstraction Levels)

يشير تجريد البيانات (Data Abstraction) إلى إخفاء التفاصيل غير الضرورية عن المستخدم، وتقديم المعلومات في مستوى مناسب من التفصيل. في قواعد البيانات، يتم تنظيم عرض البيانات على عدة مستويات من التجريد لتلبية احتياجات المستخدمين المختلفة:

المستوى الوصف مثال
الخارجي (External Level) واجهة المستخدم النهائي. كل مستخدم أو مجموعة مستخدمين ترى جزءًا مختلفًا ومخصصًا من قاعدة البيانات حسب صلاحياتهم واحتياجاتهم. يُعرف هذا أيضًا بـ "واجهات العرض" أو "Views". مدير المبيعات يرى "التقارير الشهرية للمبيعات" و"أداء المنتجات". المحاسب يرى "التدفقات المالية" و"سجلات الفواتير". كل منهم يرى بياناته الخاصة دون أن يرى التفاصيل الأخرى.
المفاهيمي (Conceptual Level) يُمثل الهيكل العام لقاعدة البيانات كاملة، ويصف جميع الكيانات، سماتها، والعلاقات بينها، بالإضافة إلى القيود الأمنية وقيود سلامة البيانات. لا يتضمن تفاصيل التخزين المادية. مخطط ER (Entity-Relationship Diagram) يوضح أن هناك كيان "الطالب" وكيان "المقرر الدراسي" وأن "الطالب" يسجل في "المقرر الدراسي".
الداخلي (Internal Level) يصف كيفية تخزين البيانات داخل نظام إدارة قواعد البيانات (DBMS). يُحدد أنواع البيانات، هياكل التخزين (مثل كيفية تنظيم الجداول والفهارس)، ومواقعها داخل النظام. "اسم الطالب" يُخزَّن كـ `VARCHAR(50)` في جدول "الطلاب". "معرف الطالب" هو مفتاح رئيسي من نوع `INT`.
المادي (Physical Level) المستوى الأدنى، ويركز على التفاصيل التقنية الدقيقة لكيفية تخزين البيانات فعليًّا على وسائط التخزين. يشمل تفاصيل مثل أنواع الأجهزة (SSD/HDD)، طرق التشفير، تقسيم البيانات (Partitioning)، ومواقع الفهارس. تخزين جدول "الطلاب" في ملف اسمه `students.dat` على القرص الصلب، مع فهرس (Index) على عمود `StudentID` لسرعة البحث.

4.3 طبقات تجريد البيانات (Data Abstraction Layers)

بناءً على مستويات التجريد، يمكننا تصور قاعدة البيانات كأنها مبنية من عدة طبقات، كل طبقة تخفي تفاصيل الطبقة الأدنى وتوفر واجهة للطبقة الأعلى:

  • الطبقة الخارجية (External Layer):

    هذه هي الطبقة التي يتفاعل معها المستخدمون النهائيون. توفر لهم واجهات مخصصة (مثل تقارير المبيعات، شاشات إدخال الطلبات، صفحات الويب) تعرض فقط جزءًا معينًا من البيانات ووفقًا لاحتياجاتهم وصلاحياتهم. يتم إخفاء تعقيدات هيكل قاعدة البيانات الأساسي عنهم تمامًا.

  • الطبقة المفاهيمية (Conceptual Layer):

    تمثل نموذجًا موحدًا ومركزيًا لكل متطلبات البيانات في المؤسسة. تصف ما هي البيانات المخزنة والعلاقات بينها، دون التطرق لكيفية تخزينها. يمثلها عادةً مخطط الكيان والعلاقة (ER Diagram)، الذي يوفّر رؤية شاملة للمعلومات. هذه الطبقة هي أساس التصميم المنطقي لقاعدة البيانات.

  • الطبقة الداخلية (Internal Layer):

    تصف كيفية تنفيذ النموذج المفاهيمي في نظام إدارة قواعد البيانات (DBMS). تحدد الهيكل المنطقي للبيانات (مثل الجداول والعلاقات في SQL)، وأنواع البيانات الفعلية، وكيفية تنظيم الملفات على مستوى النظام. هذه الطبقة هي أقرب إلى التنفيذ الفعلي داخل الـ DBMS.

  • الطبقة المادية (Physical Layer):

    هي الطبقة الأقل تجريدًا، وتتعامل مع إدارة التخزين الفعلي للبيانات على القرص أو عبر الشبكة. تُحدد تفاصيل مثل كيفية تخزين البيانات في الكتل (Blocks)، استخدام الفهارس (Indexes)، تقنيات ضغط البيانات (Compression)، وكيفية الوصول المادي للبيانات. هذه الطبقة عادةً ما تكون مسؤولية نظام الـ DBMS نفسه.

4.4 تخطيطات قاعدة البيانات (Schemas)

في سياق قواعد البيانات، يُشير مصطلح التخطيط (Schema) إلى الوصف الهيكلي العام لقاعدة البيانات. إنه يُحدد المكونات التي تتكون منها قاعدة البيانات، مثل أسماء الجداول، الأعمدة في كل جدول، أنواع بيانات الأعمدة، العلاقات بين الجداول، والقيود المفروضة على البيانات. التخطيط هو بمثابة "مخطط" أو "بصمة" لقاعدة البيانات.

أنواع التخطيطات:

  • التخطيط الخارجي (External Schema):

    يصف جزء قاعدة البيانات الذي يراه مستخدم معين أو تطبيق معين. يتم إنشاؤه عادةً باستخدام الـ Views (واجهات العرض). يوفر تخصيصًا وإخفاء للبيانات غير ذات الصلة أو الحساسة.

  • التخطيط المفاهيمي (Conceptual Schema):

    يمثل الهيكل المنطقي الكامل لقاعدة البيانات لجميع المستخدمين، ويعكس جميع الكيانات، سماتها، وعلاقاتها. إنه تمثيل مستقل عن أي DBMS معين أو طريقة تخزين مادية. غالباً ما يُصمم باستخدام نموذج الكيان والعلاقة (ER Model).

  • التخطيط الداخلي (Internal Schema):

    يصف كيفية تنفيذ الهيكل المفاهيمي فعليًا داخل نظام إدارة قواعد البيانات (DBMS). يُحدد الهيكل المنطقي للتخزين، مثل كيفية تنظيم الجداول في الملفات، وتفاصيل الفهارس، وأنواع البيانات المخزنة. يمثل مستوى أدنى من التجريد من التخطيط المفاهيمي.

  • التخطيط المادي (Physical Schema):

    أدنى مستوى من التخطيط، ويصف التفاصيل الدقيقة لكيفية تخزين البيانات على القرص. يشمل تفاصيل مثل هياكل الملفات، طرق الوصول (Indexing methods)، وتقنيات التجزئة (Partitioning) لتعزيز الأداء. هذا التخطيط عادةً ما يكون مسؤولية مهندس قواعد البيانات المتقدم أو نظام الـ DBMS نفسه.

مثال تطبيقي: نظام جامعة

تخيل نظام قاعدة بيانات لجامعة:

  • التخطيط المفاهيمي: قد يوضح وجود كيان "الطالب" وكيان "المقرر الدراسي" وعلاقة "التسجيل" بينهما.
  • التخطيط الداخلي: يتم تنفيذ كيان "الطالب" كجدول SQL باسم `Students` وكيان "المقرر الدراسي" كجدول SQL باسم `Courses`. يتم الربط بينهما باستخدام مفتاح خارجي (FK) في جدول `Enrollments` (التسجيلات).
  • التخطيط المادي: قد تُخزن بيانات جداول `Students` و`Courses` في ملفات بيانات منفصلة على القرص الصلب، مع إنشاء فهرس على `StudentID` في جدول `Students` لتحسين سرعة البحث عن الطلاب.
  • التخطيط الخارجي: يمكن إنشاء `View` لـ "معدلات الطلاب" ليراها المستشار الأكاديمي، بينما يرى الموظفون في شؤون الطلاب `View` تعرض بيانات الاتصال الخاصة بالطلاب فقط.

4.5 استقلالية البيانات المنطقية والمادية (Logical & Physical Data Independence)

استقلالية البيانات هي قدرة نظام قواعد البيانات على تغيير جزء من هيكله دون التأثير على الأجزاء الأخرى. تُقسم إلى نوعين رئيسيين:

  • الاستقلالية المنطقية (Logical Data Independence):

    هي القدرة على تعديل التخطيط المفاهيمي (أي، الهيكل المنطقي العام لقاعدة البيانات) دون الحاجة إلى تغيير التطبيقات أو واجهات العرض (External Schemas) التي تستخدم هذه البيانات.

    مثال:
    • إذا قررت المؤسسة إضافة حقل جديد مثل "البريد الإلكتروني" لجدول "الطلاب"، أو دمج جدولين منفصلين في جدول واحد، فلن يتطلب ذلك تعديل برامج التسجيل أو نظام درجات الطلاب الحالي التي لا تستخدم هذا الحقل الجديد أو التغيير في الدمج.
    • نظام الـ DBMS يتولى "ترجمة" الطلبات من التطبيقات القديمة لتعمل مع الهيكل الجديد.
  • الاستقلالية المادية (Physical Data Independence):

    هي القدرة على تعديل التخزين الفعلي للبيانات (أي، التخطيط المادي) دون الحاجيد إلى تغيير التخطيط المنطقي (Conceptual Schema) أو التطبيقات التي تستخدم قاعدة البيانات.

    مثال:
    • يمكن نقل قاعدة البيانات من قرص صلب تقليدي (HDD) إلى قرص الحالة الصلبة (SSD) لتحسين الأداء.
    • يمكن تغيير طريقة تنظيم البيانات على القرص، أو تغيير طريقة بناء الفهارس، أو حتى تقسيم الجدول الواحد إلى عدة أقسام (Partitioning) لتوزيع الحمل.
    • كل هذه التغييرات في البنية التحتية التخزينية لن تتطلب أي تعديل في كود تطبيقات المستخدمين أو كيفية رؤيتهم المنطقية للبيانات.

4.6 مصطلحات أساسية (Key Terms)

المصطلح (الإنجليزية) المصطلح (العربية) التعريف
Data Model نموذج البيانات مجموعة من المفاهيم تُستخدم لوصف هيكل قاعدة البيانات.
Conceptual Model النموذج المفاهيمي نموذج عالي المستوى يصف الكيانات، السمات، والعلاقات من منظور المستخدم.
Entity-Relationship Model (ER) نموذج الكيان والعلاقة (ER) نموذج مفاهيمي شهير يُعرّف الكيانات وعلاقاتها في النظام.
Relational Model النموذج العلاقي نموذج منطقي يصف البيانات على شكل جداول مترابطة.
Physical Model النموذج المادي نموذج يصف كيفية تخزين البيانات فعليًّا على وسائط التخزين.
Data Abstraction تجريد البيانات إخفاء التفاصيل غير الضرورية وتقديم البيانات على مستويات مختلفة من التفصيل.
Schema تخطيط قاعدة البيانات الوصف الهيكلي العام لقاعدة البيانات (الجداول، العلاقات، القيود).
External Schema التخطيط الخارجي وصف لجزء قاعدة البيانات الذي يراه مستخدم معين (عادة View).
Conceptual Schema التخطيط المفاهيمي الوصف المنطقي الكامل لقاعدة البيانات لجميع المستخدمين.
Internal Schema التخطيط الداخلي وصف كيفية تنفيذ الهيكل المفاهيمي داخل الـ DBMS.
Physical Schema التخطيط المادي وصف تفاصيل التخزين الفعلي للبيانات على القرص.
Logical Data Independence استقلالية البيانات المنطقية القدرة على تعديل التخطيط المفاهيمي دون التأثير على التطبيقات الموجودة.
Physical Data Independence استقلالية البيانات المادية القدرة على تغيير التخزين الفعلي دون تعديل التخطيط المنطقي.
View واجهة العرض جدول افتراضي (Virtual Table) يُظهر مجموعة محددة من البيانات من الجداول الأساسية.

ملخص الوحدة

  • تُصنف نماذج البيانات إلى مفاهيمية عالية المستوى (مثل ER)، منطقية قائمة على السجلات (مثل العلائقية)، ومادية (تخزين فعلي).
  • يتم عرض البيانات على عدة مستويات من التجريد: الخارجي (واجهات المستخدم)، المفاهيمي (الهيكل العام)، الداخلي (تنفيذ الـ DBMS)، والمادي (التخزين الفعلي).
  • تخطيطات قاعدة البيانات (Schemas) هي الأوصاف الهيكلية لقاعدة البيانات على المستويات المختلفة.
  • استقلالية البيانات (المنطقية والمادية) هي خاصية مهمة تسمح بتعديل هيكل البيانات أو طريقة تخزينها دون التأثير على التطبيقات الحالية.

التمارين المقترحة (Suggested Exercises)

اختبر فهمك لمفاهيم هذه الوحدة بالإجابة على الأسئلة التالية:

  1. صمم نموذج ER مبسط لقاعدة بيانات مكتبة تضم الكيانات: كتاب، عضو، إعارة، وحدد السمات الرئيسية والعلاقات بينها.
  2. اشرح الفرق الجوهري بين النموذج المفاهيمي والنموذج المادي في نمذجة البيانات، مع تقديم مثال لكل منهما.
  3. ما هو الفرق بين التخطيط المفاهيمي (Conceptual Schema) والتخطيط الداخلي (Internal Schema) لقاعدة البيانات؟
  4. كيف تحقق أنظمة قواعد البيانات الاستقلالية المادية (Physical Data Independence)؟ اذكر مثالاً عملياً يوضح أهمية هذه الخاصية.
  5. أعطِ مثالًا عمليًا على تجريد البيانات (Data Abstraction) في نظام إدارة شركة، موضحًا كيف يرى المستخدمون المختلفون مستويات مختلفة من التفاصيل.