
الدرس 6: النموذج المنطقي للبيانات (MLD) - أساسيات النموذج العلائقي
مرحباً بك مجدداً! لقد بنينا معاً النموذج المفاهيمي (MCD) الذي يخبرنا "ما هي" البيانات. الآن، حان وقت النموذج المنطقي (MLD) الذي سيخبرنا "كيف" سننظم هذه البيانات داخل قاعدة البيانات. الـ MCD هو الخطة الأولية، والـ MLD هو الخرائط التفصيلية للأساسات.
1. ما هو النموذج المنطقي للبيانات (MLD)؟
الـ MLD (Modèle Logique de Données) هو الوصف الهيكلي للبيانات بطريقة تلتزم بمبادئ النموذج العلائقي (Relational Model)، لكنها مستقلة عن أي نظام إدارة قواعد بيانات محدد. الهدف الرئيسي للـ MLD هو تحويل الكيانات والعلاقات من الـ MCD إلى جداول (Tables) ومفاتيح (Keys).
2. تعريف الجدول (Table)
الجدول هو المكون الأساسي في قاعدة البيانات العلائقية، وهو هيكل لتخزين البيانات بشكل منظم.
- الأعمدة (Columns/Fields): تمثل خصائص الكيان، ولكل عمود اسم ونوع بيانات (Data Type) محدد مثل
INT
,VARCHAR
,DATE
. - الصفوف (Rows/Records): يمثل كل صف مثيلاً (Instance) واحداً من الكيان.
مثال: كيان "الطالب" من MCD يتحول إلى جدول "الطلاب" في MLD:
رقم_الطالب (INT) | اسم_الطالب (VARCHAR(100)) | تاريخ_الميلاد (DATE) |
---|---|---|
101 | أحمد سعيد | 2003-05-15 |
102 | ليلى محمد | 2004-11-22 |
103 | كريم علي | 2003-01-30 |
3. المفتاح الأساسي (Primary Key - PK)
المُعرّف في MCD يتحول إلى المفتاح الأساسي في MLD. هو البصمة الفريدة لكل صف في الجدول.
الـ المفتاح الأساسي (PK) هو عمود (أو مجموعة أعمدة) يضمن التعريف الفريد لكل صف. لا يمكن أن يتكرر ولا يمكن أن يكون فارغاً (NULL).
مثال: رقم_الطالب
هو المفتاح الأساسي لجدول الطلاب.
رقم_الطالب (PK, INT) | اسم_الطالب (VARCHAR(100)) | تاريخ_الميلاد (DATE) |
---|---|---|
101 | أحمد سعيد | 2003-05-15 |
4. المفتاح الأجنبي (Foreign Key - FK)
هنا يظهر سحر العلاقات! المفاتيح الأجنبية هي الجسور التي تربط الجداول ببعضها.
الـ مفتاح الأجنبي (FK) هو عمود في جدول (الجدول التابع) يشير إلى المفتاح الأساسي (PK) لجدول آخر (الجدول الرئيسي).
وظيفته الأساسية هي إنشاء العلاقات وضمان التكامل المرجعي (Referential Integrity)، أي منع وجود بيانات تشير إلى سجلات غير موجودة.
مثال توضيحي: ربط جدول الموظفين بجدول الأقسام.
- PK رقم_القسم
- اسم_القسم
- PK رقم_الموظف
- اسم_الموظف
- FK رقم_القسم
رقم_القسم (PK, INT) | اسم_القسم (VARCHAR(50)) |
---|---|
10 | المبيعات |
20 | التسويق |
30 | الموارد البشرية |
رقم_الموظف (PK, INT) | اسم_الموظف (VARCHAR(100)) | رقم_القسم (FK, INT) |
---|---|---|
1 | علي أحمد | 10 |
2 | سارة محمود | 20 |
3 | فهد خالد | 10 |
4 | ندى سعيد | 40 (خطأ! القسم 40 غير موجود) |
ملاحظة منيرة جداً: لاحظ السجل رقم 4. قاعدة البيانات ستمنع إدخال هذا السجل لأن قيمة المفتاح الأجنبي (40) لا تشير إلى أي مفتاح أساسي موجود في جدول الأقسام. هذه هي قوة التكامل المرجعي!