طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 121 · مبادئ قواعد البيانات
الدرس 8 · الوحدة 4: مفهوم لغة نمذجة البيانات

أنواع العلاقات ورموزها

واحد لواحد، وواحد لمتعدد، ومتعدد لمتعدد، وكيف نرسمها. ⏱ نحو 25 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تحدد تعددية العلاقة بسؤالين من الاتجاهين.
  • تميّز علاقات 1:1 و 1:N و M:N وطريقة تنفيذ كل منها.
  • تقرأ رموز قدم الغراب الأربعة وتفرّق بين الإلزامي والاختياري.
  • تحوّل علاقة M:N إلى جدول وسيط.

١التعددية: كم نسخة ترتبط بكم؟

بعد أن نحدد العلاقة (الطالب ينتمي إلى قسم)، نسأل سؤالين، من كل اتجاه سؤال:

الجوابان معًا يعطيان تعددية العلاقة Cardinality: هنا «واحد لمتعدد». والعلاقات ثلاثة أنواع:

النوعالرمزمثالكيف تُنفَّذ؟
واحد لواحد1:1المواطن وجواز سفرهمفتاح أجنبي فريد UNIQUE في أحد الجدولين، أو دمجهما.
واحد لمتعدد1:Nالقسم وطلابه، العميل وطلباتهمفتاح أجنبي في جدول «المتعدد».
متعدد لمتعددM:Nالطلاب والمقرراتجدول وسيط فيه مفتاحان أجنبيان.

٢رموز قدم الغراب

كل طرف من الخط يحمل رمزين: الأقرب إلى الكيان يقول الحد الأعلى (واحد أو كثير)، والأبعد يقول الحد الأدنى (صفر = اختياري، أو واحد = إلزامي):

1واحد فقط (إلزامي)0..1صفر أو واحد1..Nواحد أو أكثر0..Nصفر أو أكثر
اقرأ الرمز عند الطرف القريب من الكيان.
studentsالطلابidPKnamedept_idFKdepartmentsالأقسامidPKnameينتمي إلى

اقرأ الرمز عند الطرف البعيد عنك: من القسم نحو الطلاب نجد «صفر أو أكثر»، أي: القسم فيه صفر أو أكثر من الطلاب (قسم الأمن السيبراني الجديد ليس فيه طلاب بعد). ومن الطالب نحو القسم نجد «صفر أو واحد»، أي: الطالب في قسم واحد على الأكثر، وقد لا يُحدَّد قسمه بعد. وهذا ما في البيانات فعلًا:

الجدول students · 3 صفوف
idnamedept_id
1001أحمد السلمي1
1003عمر الحربي2
1011زياد القرشيNULL

٣الإلزامي والاختياري

الحد الأدنى يسمى المشاركة Participation، وله أثر مباشر في الجدول:

في المخططالمعنىفي الجدول
الطلب ← واحد فقط من العملاءلا طلب بلا عميلcustomer_id INTEGER NOT NULL
الطالب ← صفر أو واحد من الأقسامقد لا يُحدَّد القسمdept_id INTEGER (يقبل NULL)
query.sql
SELECT name FROM students WHERE dept_id IS NULL;
النتيجة · صف واحد
name
زياد القرشي

زياد بلا قسم، والقاعدة تقبل ذلك لأن العلاقة اختيارية من جهة الطالب.

٤علاقة متعدد لمتعدد والجدول الوسيط

الطالب يسجّل في مقررات كثيرة، والمقرر فيه طلاب كثيرون. لا يمكن وضع رقم المقرر في جدول الطلاب (أي مقرر من الثلاثة؟)، ولا العكس. الحل: جدول وسيط كل صف فيه تسجيل واحد: طالب + مقرر، ومعه خصائص العلاقة نفسها مثل الدرجة:

studentsالطلابidPKnameenrollmentsالتسجيلstudent_idPKFKcourse_idPKFKgradecoursesالمقرراتidPKcodetitle
علاقة M:N تتحول إلى علاقتين 1:N عبر الجدول الوسيط enrollments.
query.sql
-- تسجيلات الطالب أحمد (1001): ثلاثة مقرراتSELECT student_id, course_id, gradeFROM enrollmentsWHERE student_id = 1001;
النتيجة · 3 صفوف
student_idcourse_idgrade
1001195
1001292
1001388
query.sql
-- وطلاب المقرر 2 (مبادئ قواعد البيانات)SELECT student_id, gradeFROM enrollmentsWHERE course_id = 2;
النتيجة · 5 صفوف
student_idgrade
100192
100285
100497
100760
101076

٥المخطط الكامل لمتجر الواحة

customersالعملاءidPKnamecityphoneordersالطلباتidPKcustomer_idFKorder_datestatusorder_itemsالأصنافorder_idPKFKproduct_idPKFKqtypriceproductsالمنتجاتidPKnamecategorypricestock
مخطط «متجر الواحة»: العميل له صفر أو أكثر من الطلبات، والطلب فيه صنف أو أكثر، والمنتج يظهر في صفر أو أكثر من الأصناف.
العلاقةالتعدديةنقرؤها
العملاء ← الطلبات1:Nالعميل له صفر أو أكثر من الطلبات، والطلب لعميل واحد فقط.
الطلبات ← الأصناف1:Nالطلب فيه صنف واحد أو أكثر، والصنف يتبع طلبًا واحدًا.
المنتجات ← الأصناف1:Nالمنتج قد يظهر في أصناف كثيرة، أو لا يُطلب أبدًا.
الطلبات ↔ المنتجاتM:Nعبر الجدول الوسيط order_items، وفيه الكمية والسعر وقت البيع.

توقّع وتحقّق

العلاقة بين العميل وطلباته:

عميل واحد، طلبات كثيرة.

العلاقة بين الطلاب والمقررات:

تحتاج جدولًا وسيطًا.

الدائرة في طرف الخط تعني:

اختياري.

في علاقة 1:N يوضع المفتاح الأجنبي في جدول:

الطالب يحمل رقم القسم.

الخلاصة

تحدٍّ تصميمي: مخطط مكتبة الكلية

متوسط

ارسم مخطط ERD كاملًا بترميز قدم الغراب لمكتبة: «للكتاب ISBN وعنوان وسنة نشر. للكتاب مؤلف أو أكثر، والمؤلف قد يكتب كتبًا كثيرة. العضو يستعير كتبًا كثيرة عبر الزمن، ونسجل تاريخ الإعارة وتاريخ الإرجاع.»

المطلوب:
  • حدد الكيانات: الكتب والمؤلفون والأعضاء.
  • حدد تعددية كل علاقة، وارسم رموز الطرفين.
  • حوّل كل علاقة M:N إلى جدول وسيط بمفتاحين أجنبيين.
☑ راجع عملك قبل التسليم:
💡 تلميح 1
الإعارة حدث له خصائص (التاريخان)، فهي كيان وسيط بين العضو والكتاب.
💡 تلميح 2
كتاب ↔ مؤلف: M:N.
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس