اذهب إلى المحتوى

نموذج الكيان والعلاقة ER لتمثيل البيانات وتخزينها في قاعدة البيانات


زائر

ظهر نموذج الكيان والعلاقة entity relationship - أو ER اختصارًا- لتمثيل البيانات منذ أكثر من 35 عام، وهو مناسب تمامًا لنمذجة البيانات للاستخدام مع قواعد البيانات، وذلك لأنه ذو طبيعة مجردة إلى حد ما، وسهل المناقشة والشرح.

تترجم نماذج الكيان والعلاقة للبيانات إلى علاقات بسهولة، كما تسمى تخطيط الكيان والعلاقة ER schema، حيث تُمثَّل بواسطة مخططات الكيان والعلاقة ER diagrams.

تعتمد عملية إنشاء نماذج الكيان والعلاقة للبيانات ER modelling على مفهومين هما:

  • الكيانات Entities: وتُعرَّف على أنها الجداول التي تحتوي على معلومات خاصّة -أي بيانات-.
  • العلاقات Relationships: وتُعرَّف على أنها الارتباطات أو التفاعلات بين الكيانات.

فيما يلي مثال على كيفية دمج هذين المفهومين في نموذج الكيان والعلاقة: يكون في قولنا "يدرِّس البروفيسور دورة أنظمة قواعد البيانات" الكيان هو كل من البروفيسور، ودورة أنظمة قواعد البيانات؛ أما العلاقة فهي كلمة يدرِّس.

سنستخدم في هذا المقال قاعدة بيانات تسمى الشركة COMPANY لتوضيح مفاهيم نموذج الكيان والعلاقة، حيث تحتوي على معلومات حول الموظفين employees، والأقسام departments، والمشاريع projects، كما يجب ملاحظة النقاط التالية:

  • هناك عدة أقسام في الشركة، ولكل منها قسم مُعرِّف فريد، واسم، وموقع المكتب، وموظف معين يدير القسم.
  • يتحكم القسم في عدد من المشاريع، ولكل منها اسم فريد، ورقم فريد، وميزانية.
  • كل موظف له اسم، ورقم تعريف، وعنوان، وراتب، وتاريخ ميلاد، كما يُعيَّن الموظف في قسم واحد، ويمكنه الانضمام لعدة مشاريع، كما نحتاج إلى تسجيل تاريخ بدء الموظف في كل مشروع، ومعرفة المشرف المباشر لكل موظف.
  • نريد تتبّع المُعالِين لكل موظف، حيث يملك كل مُعال اسم، وتاريخ ميلاد، وعلاقته بالموظف.

الكيان ومجموعة الكيان ونوع الكيان

الكيان entity هو كائن في العالم الحقيقي له وجود مستقل، كما يمكن تمييزه عن الكائنات الأخرى، وقد يكون هذا الكيان:

  • كائن له وجود مادي physical existence، مثل: محاضر، وطالب، وسيارة.
  • كائن له وجود مفاهيمي conceptual existence، مثل دورة، ووظيفة، ومنصب.

يمكن تصنيف الكيانات بناءً على قوتها، حيث يُعَدّ الكيان ضعيفًا في الحالات التالية:

  • وجوده غير ممكن بدون علاقة مع كيان آخر.
  • مفتاحه الرئيسي مشتق من المفتاح الرئيسي للكيان الأب.
  • يُعَدّ جدول الزوج Spouse في قاعدة بيانات الشركة كيانًا ضعيفًا لأن مفتاحه الرئيسي يعتمد على جدول الموظف، أي لن يكون سجل الزوج موجودًا إذا لم يتواجد سجل الموظف المقابل.

يُعَدّ الكيان قويًا إذا كان يمكن أن يوجد مستقلًا عن جميع الكيانات المرتبطة به.

  • الأنوية Kernels هي كيانات قوية.
  • يُعَدّ الجدول كيانًا قويًا إذا لم يحتوي على مفتاح خارجي foreign key، أو إذا احتوى على مفتاح خارجي يقبل القيم الفارغة null.

يجب معرفة مصطلح آخر، وهو نوع الكيان entity type الذي يحدِّد تجميعةً من الكيانات المتشابهة، كما تُعَدّ مجموعة الكيان entity set تجميعةً من نوع الكيان entity type في وقت معيَّن.

يُمثَّل نوع الكيان في مخطط الكيان والعلاقة entity relationship diagram -أي ERD اختصارًا- في صندوق، فمثلًا، نوع الكيان في الشكل التالي هو موظف EMPLOYEE.

EntitySet.png

الشكل 1: نوع الكيان هو الموظف

ارتباط الوجود

يعتمد وجود الكيان على وجود الكيانات ذات الصلة به، ويُعَدّ الكيان ارتباطي الوجود Existence dependency إذا كان يحتوي على مفتاح خارجي إلزامي -أي سمة مفتاح خارجي لا يمكن أن تكون فارغة null-، فمثلًا، يكون في قاعدة بيانات الشركة COMPANY كيان الزوج Spouse معتمدًا على وجود كيان الموظف.

أنواع الكيانات

يجب أيضًا أن تكون على دراية بأنواع الكيانات المختلفة بما في ذلك الكيانات المستقلة independent entities، والكيانات المعتمِدة dependent entities، والكيانات المميَّزة characteristic entities.

الكيانات المستقلة

تُعَدّ الكيانات المستقلة Independent entities -والتي يشار إليها أيضًا باسم الأنوية kernels- العمود الفقري لقاعدة البيانات، إذ تستند عليه الجداول الأخرى، ولها الخصائص التالية:

  • هم اللبنات الأساسية لقاعدة البيانات.
  • قد يكون المفتاح الرئيسي primary key بسيطًا، أو مركبًا.
  • لا يمكن أن يكون المفتاح الرئيسي مفتاحًا خارجيًا.
  • لا تعتمد على أي كيان آخر في وجودها.

إذا عدنا إلى قاعدة بيانات الشركة COMPANY الخاصة بنا، فتتضمن أمثلة الكيانات المستقلة جدول العميل Customer table، أو جدول الموظف Employee table، أو جدول المنتَج Product table.

الكيانات المعتمِدة

تستند الكيانات المعتمِدة Dependent entities - والتي يشار إليها باسم الكيانات المشتقة derived entities أيضًا- على جداول أخرى حتى يكون لها معنى، ولها الخصائص التالية:

  • تُستخدَم الكيانات المعتمِدة لربط نواتين معًا.
  • يَعتمد وجودها على وجود جدولين أو أكثر في قاعدة البيانات، حيث لا يمكن وجود كيانات معتمِدة في قاعدة بيانات تحتوي على جدول واحد فقط.
  • تُنشِئ علاقات (متعدد إلى متعدد) جداول ترابطية associative tables بمفتاحين خارجيين على الأقل.
  • قد تحتوي على سمات أخرى.
  • يحدِّد كل مفتاح خارجي جدولًا مرتبطًا بالكيان نفسه.
  • هناك ثلاثة خيارات للمفتاح الرئيسي:
  1. استخدِم مزيجًا من المفاتيح الخارجية للجداول المرتبطة إذا كانت فريدة.
  2. استخدِم مزيجًا من المفاتيح الخارجية وعمودًا مؤهِلًا.
  3. أنشِئ مفتاح رئيسي بسيط جديد.

الكيانات المتميزة

توفر الكيانات المميَّزة Characteristic entities مزيدًا من المعلومات حول جدول آخر، ولهذه الكيانات الخصائص التالية:

  • تمثِّل سمات متعددة القيم.
  • تصِف كيانات أخرى.
  • عادة ما يكون لديها علاقة علاقة واحد إلى متعدِّد one to many relationship.
  • يُستخدَم المفتاح الخارجي foreign key لتحديد الجدول المميز characterized table.
  • خيارات المفتاح الرئيسي هي:
  1. استخدِم مزيجًا من المفاتيح الخارجية وعمودًا مؤهِلًا.
  2. أنشِئ مفتاحًا رئيسيًا بسيطًا جديدًا في قاعدة بيانات الشركة COMPANY، والتي قد تشمل:
    • جدول الموظف Employee (المعرف EID، الاسم، العنوان، العمر، الراتب) - EID هو المفتاح الرئيسي البسيط.
    • جدول هاتف الموظف EmployeePhone (معرف الموظف EID، رقم الهاتف)، EID هنا هو جزء من مفتاح رئيسي مركب، وهو مفتاح خارجي مرتبط بجدول الموظف السابق.

السمات

يوصَف كل كيان بمجموعة من السمات attributes، فمثلًا، يمكن وصف كيان الموظف بالسمات التالية: الاسم، أو العنوان، أو تاريخ الميلاد، أو الراتب. تملك كل سمة اسمًا محدَّدًا، وترتبط بكيان معيَّن، وبمجال من القيم المسموحة التي يمكن أخذها، ولكن لا تُعرَض المعلومات حول مجال السمة في مخطط الكيان والعلاقة ERD.

تمثَّل كل سمة في مخطط الكيان والعلاقة الموضح في الشكل التالي تمثيلًا بيضويًا مع اسم بداخله.

Attributes.thumb.png

الشكل 2: تمثيل السِمات في نموذج العلاقات الكائني للبيانات

أنواع السمات

هناك أنواع قليلة من السمات التي يجب أن تكون على دراية بها، ويجب ترك بعضها كما هي، لكن يحتاج بعضها الآخر إلى تعديل ليسهل تمثيلها في النموذج العلائقي relational model، وسيناقش هذا القسم أنواع السمات؛ أما لاحقًا فسنناقش تعديل السمات لتلائم النموذج العلائقي بصورة صحيحة.

السمات البسيطة

السمات البسيطة Simple attributes هي السمات المستمدة من مجالات القيمة الذَرية، ويطلق عليها أيضًا اسم السمات وحيدة القيمة single-valued، فمثلًا، تجد في قاعدة بيانات الشركة COMPANY أن الاسم والعمر هما نموذجان للسمات البسيطة.

السمات المركبة

السمات المركَّبة Composite attributes هي التي تتكون من مجموعة متسلسلة هرميًا من السمات، فمثلًا، قد يتكون العنوان باستخدام مثال قاعدة البيانات الشركة COMPANY والموضَّح في الشكل التالي، من رقم الشارع، واسم الشارع، واسم الحي، حيث يُمثَّل بالطريقة التالية: العنوان = {59 + "شارع خالد بن الوليد" + "حي القنوات"}.

Simple-and-Composite-Attributes.thumb.png

الشكل 3: مثال للسمات المركبة

السمات متعددة القيم

السمات متعددة القيم Multivalued attributes هي التي تحمل مجموعةً من القيم لكل كيان، فمثلًا، يمكن أن تحمل سمة الدرجات العلمية degrees لموظف معيَّن في قاعدة بيانات الشركة COMPANY العديد من القيم، مثل: دكتوراه PhD، الجامعة العربية للعلوم، إجازة في العلوم BSc كما هو موضَّح في الشكل التالي:

Multivalued-Attribute.thumb.png

الشكل 4: مثال على السمات متعددة القيم

السمات المشتقة

السمات المشتقة Derived attributes هي سمات تحتوي على قيم محسوبة من سمات أخرى، فمثلًا، يمكن اشتقاق العمر في الشكل التالي من تاريخ الميلاد، يسمى تاريخ الميلاد في هذه الحالة سمة مخزنة stored attribute، وهي التي تُحفظ ماديًا لقاعدة البيانات.

Derived-Attribute.thumb.png

الشكل 5: مثال على السِمات المشتقة

المفاتيح

يُعَدّ المفتاح key أحد القيود المهمة التي يجب وجودها في جميع الكيانات، وهو عبارة عن سمة أو مجموعة من السمات التي تُستخدم قيمها لتعريف كيان منفصل individual entity تعريفًا فريدًا في مجموعة الكيانات.

أنواع المفاتيح

هناك عدة أنواع من المفاتيح، نذكر منها:

المفتاح المرشح

يُعَدّ المفتاح المرشَّح candidate key مفتاحًا بسيطًا أو مركَّبًا، كما يكون فريدًا وبسيطًا، وهو فريد لأنه لا يمكن أن يكون لصفين المفتاح المرشَّح نفسه في الجدول في أيّ وقت، فمثلًا، تكون المفاتيح المرشَّحة الممكنة في كيان الموظف الموجود في قاعدة البيانات COMPANY، والذي يتكون من السمات التالية: معرِّف الموظف، الاسم الأول، اسم العائلة، رقم التأمين الاجتماعي SIN، العنوان، الهاتف، تاريخ الميلاد، الراتب، معرِّف القسم، هي ما يلي:

  • رقم التأمين الاجتماعي SIN، أو معرف الموظف EID.
  • الاسم الأول واسم العائلة، بافتراض عدم وجود شخصين في الشركة لهما الاسم نفسه.
  • اسم العائلة ومعرِّف القسم، بافتراض عدم عمل شخصين لهما اسم العائلة نفسه في القسم نفسه.

المفتاح المركب

يتكون المفتاح المركَّب composite key من سمتين أو أكثر، ويستحسن الإبقاء على الحد الأدنى من السِمات فيه. باستخدام المثال السابق نفسه، تكون المفاتيح المركَّبة الممكنة هي:

  • الاسم الأول واسم العائلة، بافتراض عدم وجود شخصين في الشركة لهما الاسم نفسه.
  • اسم العائلة ومعرِّف القسم، بافتراض عدم عمل شخصين لهما اسم العائلة نفسه في القسم نفسه.

المفتاح الرئيسي

المفتاح الرئيسي primary key هو مفتاح مرشَّح candidate key يُحدَّد بواسطة مصمم قاعدة البيانات لاستخدامه على أساس آلية تعريف لمجموعة الكيانات بأكملها، كما يجب أن يُحدِّد أسطر الجدول تحديدًا فريدًا، ولا يمكن تركه فارغًا.

يُشار إلى المفتاح الرئيسي في نموذج الكيان والعلاقة ER model عن طريق وضع خط تحت السمة التي تُمثِّله.

  • يُحدَّد مفتاح مرشِّح بواسطة مصمم قاعدة البيانات لتحديد أسطر الجدول تحديدًا فريدًا، ولا يمكن تركه فارغًا.
  • يُختار مفتاح معيِّن من قِبَل مصمم قاعدة البيانات لاستخدامه على أساس آلية تعريف لمجموعة الكيانات بأكملها، ويُشار إلى هذا المفتاح بالمفتاح الرئيسي primary key، كما يُشار إليه عن طريق وضع خط تحت السمة الممثِّلة له في نموذج الكيان والعلاقة ER model.

إذا أخذنا المثال التالي، يتكون كل صف في جدول الموظف من (EID، الاسم الأول، اسم العائلة، SIN، العنوان، الهاتف، تاريخ الميلاد، الراتب، معرف القسم)، فإن المفتاح الرئيسي هو EID.

المفتاح الثانوي

المفتاح الثانوي secondary key هو سمة تُستخدَم استخدامًا صارمًا لأغراض الاسترجاع، ويمكن أن يكون هذا المفتاح مركبًا من عدة سمات مثل أن يتكون من الهاتف واسم العائلة معًا.

المفتاح البديل

المفاتيح البديلة Alternate keys هي جميع المفاتيح المرشَّحة التي لم تُستخدَم على أساس مفتاح رئيسي.

المفتاح الخارجي

يُعَدّ المفتاح الخارجي foreign key -أو FK اختصارًا- سمةً موجودةً في جدول معيَّن بحيث تشير إلى المفتاح الرئيسي في جدول آخر، أو يمكن تركه فارغًا، ويجب أن تكون كل من المفاتيح الخارجية والرئيسية من نوع البيانات نفسه، فمثلًا يُمثِّل مُعرِّف القسم DepartmentID المفتاح الخارجي ضمن قاعدة بيانات الشركة COMPANY، أي كما يلي:

  • جدول الموظف Employee (معرف الموظف EID ، الاسم الأول، اسم العائلة، رقم التأمين الاجتماعي SIN، العنوان، الهاتف، تاريخ الميلاد، الراتب، معرف القسم)

القيم الفارغة Nulls

تُعَدّ القيمة الفارغة Null رمزًا خاصًا ليس له علاقة بنوع بيانات محدَّد، مما يعني أنه إما غير معروف unknown أو غير قابل للتطبيق inapplicable، ولا يعني صفرًا أو فراغًا، ومن صفات هذه القيمة:

  • لا توجد بيانات محددة لإدخالها.
  • لا يمكن تواجدها في المفتاح الرئيسي.
  • يجب تجنبها في جميع السمات الأخرى.
  • يمكنها تمثيل ما يلي:
  • قيمة سمة غير معروفة.
  • قيمة سمة معروفة، ولكنها مفقودة.
  • شرط "غير قابل للتطبيق".
  • يمكنها تسبيب العديد من المشاكل عند استخدام بعض الدوال، مثل: COUNT، وAVERAGE، وSUM.
  • يمكنها تسبيب مشاكل منطقية عند ربط الجداول العلائقية ببعضها البعض.
اقتباس

ملاحظة: تكون نتيجة عملية الموازنة القيمة الفارغة null عندما يكون أحد الحدود قيمةً فارغةً null، كما تكون النتيجة قيمةً فارغةً null في العمليات الحسابية إذا كان أحد الحدود قيمةً فارغةً null باستثناء الدوال التي تتجاهل هذه القيمة.

مثال لكيفية استخدام القيمة الفارغة null

استخدم جدول الرواتب Salary_tbl الموجود في الشكل التالي لمعرفة كيفية استخدام القيمة الفارغة null.

emp# JopName Salary Commission
E10 Sales 12500 32090
E11 Null 25000 8000
E12 Sales 44000 0
E13 Sales 44000 Null

جدول الرواتب فيه أحد أعمدته قيمة فارغة null

على أساس خطة أولى، إبدأ بإيجاد جميع الموظفين في عمود الموظف emp#‎ في قسم المبيعات Sales تحت عمود اسم الوظيفة jobName، والذين تزيد رواتبهم salary بالإضافة إلى عمولتهم commission عن 30000.

SELECT emp# FROM Salary_tbl
WHERE jobName = Sales AND
(commission + salary) > 30,000

يكون ناتج العملية أعلاه الموظفَين E10، وE12، إذ لا تتضمن هذه النتيجة الموظف E13 بسبب القيمة الفارغة null في عمود العمولة commission، حيث ستكون النتيجة القيمة الفارغة null عند جمع الراتب مع العمولة، لذا سنحتاج إلى إلقاء نظرة على الحقول بصورة منفصلة للتأكد من تضمين الصف الذي يحتوي على القيمة الفارغة null، كما هو مبين في الحل أدناه.

SELECT emp# FROM Salary_tbl
WHERE jobName = Sales AND
  (commission > 30000 OR
  salary > 30000 OR
  (commission + salary) > 30,000 

سيكون ناتج العملية أعلاه هو الموظفِين E10، وE12، وE13.

العلاقات

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

تعتمد قوة العلاقة Relationship strength على كيفية تعريف المفتاح الرئيسي للكيانات المترابطة، إذ تُعَدّ العلاقة ضعيفة weak، أو غير محددة non-identifying إذا كان المفتاح الرئيسي للكيان المرتبط لا يحتوي على المفتاح الرئيسي للكيان الأب parent entity. وتتضمن قاعدة بيانات الشركة Company بعض الأمثلة التالية:

  • جدول العميل Customer يحوي الحقلين التاليين:
    • CustID رقم العميل.
    • CustName اسم العميل.
  • جدول الطلب Order يحوي الحقول التالية:
    • OrderID رقم الطلب.
    • CustID رقم العميل.
    • Date تاريخ الطلب.

يحتوي المفتاح الرئيسي للكيان المرتبط في العلاقة القوية أو المحددة على المفتاح الرئيسي للكيان الأب، مثل:

  • جدول الدورة التدريبية Course يحوي الحقول التالي:
    • CrsCode رمز الدورة.
    • DeptCode رمز القسم.
    • Description وصف الدورة.
  • جدول الصف Class يحوي الحقول التالية:
    • CrsCode رمز الدورة.
    • Section القسم.
    • ClassTime وقت الصف.

أنواع العلاقات

هناك عدة أنواع من العلاقات منها:

علاقة واحد إلى متعدد

تُعَدّ علاقة واحد إلى متعدِّد one to many -أو ‎1:M اختصارًا- الأساس في أي تصميم لقاعدة البيانات العلائقية، وتوجد في جميع بيئات قواعد البيانات العلائقية، فمثلًا، يحتوي القسم الواحد على العديد من الموظفين، ويوضِّح الشكل التالي علاقة أحد هؤلاء الموظفين بالقسم.

One-to-Many-Relationships.thumb.png

الشكل 6: علاقة واحد إلى متعدد

علاقة واحد إلى واحد

تُعَدّ علاقة واحد لواحد one to one -أو 1:1 اختصارًا- علاقة كيان واحد بكيان واحد آخر فقط، والعكس صحيح.

يُعَدّ هذا النوع من العلاقات نوعًا نادرًا جدًا في تصميم قواعد البيانات العلائقية، ومن الممكن أن يشير وجود هذه العلاقة إلى انتماء كيانَين بالفعل إلى الجدول نفسه، فمثلًا، يكون الموظف في قاعدة بيانات الشركة COMPANY مرتبطًا بزوجة واحدة، وتكون الزوجة الواحدة مرتبطةً بموظف واحد.

علاقة متعدد إلى متعدد

ضع في بالك النقاط التالية عند التعامل مع علاقة متعدَِد إلى متعدَِد many to many -أو M:N اختصارًا-:

  • لا يمكن تمثيلها بهذه الصورة -أي متعدَِد إلى متعدَِد- في النموذج العلائقي relational model.
  • يمكن تحويلها إلى علاقتين من النوع واحد إلى متعدِّد.
  • يمكن تنفيذها عن طريق كسرها لمجموعة علاقات من نوع واحد إلى متعدِّد.
  • تنطوي على تنفيذ كيانات مركَّبة.
  • تُنشِئ علاقتين أو أكثر من النوع واحد إلى متعدِّد.
  • يجب أن يحتوي جدول الكيان المركَّب على المفاتيح الرئيسية للجداول الأصلية على الأقل.
  • يحتوي جدول الربط على تكرارات متعددة لقيم المفتاح الخارجي.
  • قد تُسنَد سمات إضافية حسب الحاجة.

يمكنك تجنب المشاكل الموجودة في علاقة متعدِّد إلى متعدِّد عن طريق إنشاء كيان مركَّب composite entity، أو كيان جسري bridge entity، فمثلًا، يمكن للموظف العمل في العديد من المشاريع، أو يمكن أن يعمل في المشروع الواحد العديد من الموظفين، اعتمادًا على قواعد العمل؛ أو يمكن للطالب أخذ العديد من الدروس، كما يمكن للدرس الواحد أن يؤخذ بواسطة العديد من الطلاب.

يوضِّح الشكل التالي جانبًا آخرًا من علاقة M:N، حيث يكون للموظف العديد من تواريخ البداية المتعلِّقة بمشاريع مختلفة، لذلك نحتاج إلى جدول ربط JOIN بحيث يحتوي على معرِّف الموظف EID، والرمز Code، وتاريخ البداية StartDate.

Many-to-Many-Relationships.thumb.png

الشكل 7: للموظف العديد من تواريخ البدء المتعلقة بمشاريع مختلفة

إليك مثال على تعيين علاقة ثنائية من نوع متعدِّد إلى متعدِّد M:N:

  • حدِّد علاقتين لكل علاقة ثنائية من نوع متعدِّد إلى متعدِّد، حدِّد علاقتين.
  • تمثل A، وB نوعَين من الكيانات المشاركة في R.
  • أنشئ علاقة جديدة S لتمثيل R.
  • تحتاج S أن تتضمن المفاتيح الرئيسية الخاصة بـ A، وB، حيث يمكن أن تكون هذه معًا المفتاح الرئيسي في الجدول S، أو يمكن أن تضاف لها سمة بسيطة أخرى في الجدول الجديد R لتكوين المفتاح الرئيسي.
  • تكون مجموعة المفاتيح الرئيسية لـ A، وB المفتاح الرئيسي لـ S.

العلاقة الأحادية -أو التكرارية-

العلاقة الأحادية Unary relationship -والتي تسمى العلاقة التكرارية recursive أيضًا- هي العلاقة التي توجد فيها علاقة بين تكرارات مجموعة الكيانات نفسها، ويكون في هذه العلاقة المفتاحان الرئيسي والخارجي متماثلَين لكنهما يمثلان كيانين لهما أدوار مختلفة. تُعَدّ مجموعة الكيان مجموعةً من نوع مماثل من الكيانات.

 

Unary-Relationships.png

الشكل 8: العلاقات الأحادية (التكرارية)

يمكن إنشاء عمود منفصل بحيث يشير إلى المفتاح الرئيسي لمجموعة الكيان نفسها في بعض كيانات العلاقة الأحادية.

العلاقة الثلاثية n-ary

العلاقة الثلاثية ternary relationship هي نوع من العلاقات يضمن إنشاء علاقة متعدِّد إلى متعدِّد بين ثلاثة جداول، والشكل التالي هو مثال عن هذه العلاقة.

اقتباس

ملاحظة: يشير مصطلح n-ary إلى جداول متعدِّدة في العلاقة، وتذكَّر أنّ N تكافئ many أي N = many.

  • لكل علاقة (n-ary) حيث n > 2، أنشئ جدولًا جديدًا لتمثيل تلك العلاقة.
  • المفتاح الرئيسي للجدول الجديد هو مزيج من المفاتيح الرئيسية للكيانات المشاركة التي تمثل الجانب المتعدِّد N.
  • تملك جميع الكيانات المشاركة في معظم حالات علاقة n-ary الطرف المتعدِّد من جانبها.

Ternary-Mapping-Relationships.thumb.png

الشكل 9: العلاقة الثلاثية

تمارين

  1. ما المفهومان اللذان يعتمد عليهما نموذج الكيان والعلاقة ER؟
  2. تتكون قاعدة البيانات في الشكل التالي من جدولين، لذلك أجب على الأسئلة التالية مستخدمًا هذا الشكل.

جدول DIRECTOR:

DIRNUM DIRNAME DIRDOB
100 J_.Broadway 01/08/39
101 J.Namath 11/12/48
102 W.Blake 06/15/44

جدول PLAY:

PLAYNO PLAYNAME DIRNUM
1001 Cat on a cold bare roof 102
1002 Hold the mayo, pass the bread 101
1003 I never promised you coffee 102
1004 Silly putty goes to Texas 100
1005 See no sound, hear no sight 101
1006 Starstruck in Biloxi 102
1007 Stranger in parrot ice 101

جداول التمرين

1. حدِّد المفتاح الرئيسي لكل جدول.
2. حدِّد المفتاح الخارجي في الجدول PLAY.
3. حدِّد المفاتيح المرشَّحة في كلا الجدولين.
4. ارسم نموذج الكيان والعلاقة ER.
5. هل يحقق الجدول PLAY سلامةً مرجعيةً؟ ولمَ؟ أو لمَ لا؟
  1. عرف المصطلحات التالية، حيث قد تحتاج إلى البحث في الانترنت

  • المخطط schema.
  • لغة المضيف host language.
  • اللغات الفرعية للبيانات data sublanguage.
  • لغة تعريف البيانات data definition language.
  • العلاقة الأُحادية unary relation.
  • المفتاح الخارجي foreign key.
  • العلاقة الافتراضية virtual relation.
  • الربط connectivity.
  • المفتاح المركَّب composite key.
  • جداول الربط linking table.
  1. تضمن قاعدة بيانات شركة PRE الجداول الثلاثة الموضحة في الشكل أدناه، لذلك أجب عن الأسئلة التالية مستخدمًا هذه الجداول:

TNUM BASENUM TYPENUM TMILES TBOUGHT TSERIAL
1001 501 1 5900.2 11/08/90 as-125
1002 502 2 64523.9 11/08/90 ac-213
1003 501 2 32116.0 09/29/91 ac-215
1004   2 3256.9 01/14/92 ac-315

الجدول TRUCK

BASENUM BASECITY BASESTATE BASEPHON BASE MGR
501 Dallas TX 893-9870 J. Jones
502 New York NY 234-7689 K. Lee

الجدول BASE

TYPENUM TYPEDESC
1 single box, double axle
2 tandem trailer, single axle

الجدول TYPE

  • حدِّد المفتاح الرئيسي والمفتاح الخارجي في كل جدول.
  • هل يحقق الجدول TRUCK سلامةً مرجعيةً؟ اشرح إجابتك.
  • ما نوع العلاقة بين الجدولين TRUCK، و BASE.
  • كم عدد الكيانات في الجدول TRUCK.
  • حدِّد المفاتيح المرشَّحة في الجدول TRUCK.
  1. لنفترض أنك تستخدم قاعدة البيانات الموضحة في الشكل أدناه والمكونة من جدولين، أجب عن الأسئلة التالية.
CustID CustName AccntNo.
100 Joe Smith 010839
101 Andy Blake 111248
102 Sue Brown 061544

الجدول Customer

OrderlD Title CustID Price
1001 The Dark Tower 102 12.00
1002 Incubus Dreams 101 19.99
1003 Song of Susannah 102 23.00
1004 The Time Traveler's Wife 100 21.00
1005 The Dark Tower 101 12.00
1006 Tanequil 102 15.00
1007 Song of Susannah 101 23.00

جدول BookOrders

  • حدِّد المفتاح الرئيسي في كل جدول.
  • حدِّد المفتاح الخارجي في الجدول BookOrders.
  • هل هناك أي مفاتيح مرشَّحة في أي من الجدولين؟
  • ارسم نموذج الكيان والعلاقة ER.
  • هل يحقق الجدول BookOrders السلامة المرجعية؟
  • هل تحتوي الجداول على بيانات مكررة؟ ما هي؟
  1. بالنظر إلى جدول الطالب الموضح في الشكل أدناه، اكتب قائمة بجميع المفاتيح المرشَّحة الممكنة، واذكر سبب اختيارك لكل واحد من المفاتيح.

Ch8-Exercises-No6-Student.jpg

الشكل 14: السؤال السادس

أجب عن الأسئلة التالية مستخدمًا مخطط الكيان والعلاقة ERD لقاعدة بيانات المدرسة الموضحة في الشكل أدناه.

Ch8-Exercises-No7-School-Database.jpg

الشكل 15: السؤال السابع

  1. حدِّد جميع الأنوية والكيانات المعتمِدة والمميزة في مخطط الكيان والعلاقة ERD.
  2. أي من الجداول لها علاقات ضعيفة، وأيها لديها علاقات قوية؟
  3. بالنظر إلى كل جدول من جداول قاعدة بيانات المدرسة، ما هي السمات التي يمكنها أن تأخذ القيمة الفارغة Null، ولماذا؟
  4. ما هي الجداول التي أُنشِئت على أساس نتيجة لعلاقات متعدِّد إلى متعدِّد؟

ترجمة وبتصرف للفصل Chapter 8 The Entity Relationship Data Model من كتاب Database Design لصاحبته Adrienne Watt.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...