نموذج الكيانات والعلاقات ERD

نموذج الكيانات والعلاقات ERD


نموذج الكيانات والعلاقات نموذج الكيانات والعلاقات ERD تعريف الكيان في قواعد البيانات وما هو الكيان في قواعد البيانات وتصميم مخطط علاقة الكيانات ERD

=====================

نموذج علاقة الكيانات ERD

Entity Relationship Model

تعريف نموذج علاقة الكيانات (Entity Relationship Model) :

هو أحد الأساليب الشائعة لتصور لقاعدة البيانات العلاقية وهو يعتمد على :

  • تقسيم النظام إلي ما يسمي كيانات (مثل كيان موظف وكيان قسم في نظام شركة
  • كل كيان يحتوي على خصائص معينة تصفه وتحدده ( مثل الاسم والعنوان … لكيان موظف)
  • تحديد العلاقات بين هذه الكيانات وتوصيف خصائص هذه العلاقات 
  • تمثيل ذلك من خلال رسم يعبر عنه يسمي مخطط علاقة الكيانات Entity Relationship Diagram) ERD)

تعريف نموذج علاقة الكيانات


أهمية نموذج مخطط (علاقة الكيانات):

هو خطوة سابقة على تنفيذ قاعدة البيانات بأحد برامج نظم إدارة قواعد البيانات العلاقية

RDBMS Relational Database Management System 

وهو يساعد في عمل جداول أو ملفات قاعدة البيانات والعلاقات بينها على أسس علمية وصحيحة.


لنأخذ مثال عن كيفية تنفيذ هذا المفهوم  "مثال الشركة" :

مطلوب إنشاء نظام قاعدة بيانات لشركة ما


في البداية:

يجب الجلوس مع الشخص المسئول الذي يريد قاعدة البيانات ومعرفة متطلبات النظام

ولنفرض أن متطلبات الشركة هي كما يلي:

  1. الشركة مقسمة إلى أقسام وكل قسم له رقم واسم وحيد أي لا يتكرر
  2. يوجد لكل قسم موظف معين يديره ومن المهم معرفة تاريخ بداية إدارته لهذا القسم 
  3. القسم يمكن أن يكون له أكثر من مكان 
  4. يجب الاحتفاظ ببيانات الموظف والتي تشمل رقمه (وهو رقم وحيد لا يتكرر) واسمه ونوعه وعنوانه وتليفونه وراتبه الشهري
  5. الموظف يجب أن يعمل بقسم واحد محدد ومن المهم معرفة عدد الموظفين بكل قسم.
  6. يجب أن يعمل الموظف في مشروع واحد على الأقل والذي له رقم وحيد لا يتكرر ومن المهم جدا معرفة عدد الساعات الأسبوعية التي يعملها كل موظف في كل مشروع.



الخطوات التفصيلية للوصول لمخطط علاقة الكيانات:

الخطوة الأولى:

أولا: تحديد الكيانات وخصائصها:

تعريف الكيان في قواعد البيانات

ما هو الكيان في قواعد البيانات؟

تعريف الكيان Entity:

هو شئ له وجود مستقل قد يكون وجود فعلي (مثل موظف - سيارة - …) أو وجود اعتباري (مثل مشروع - دورة تدريبية - ….) وكل كيان له خصائص Properties تصفه وتحدده.


وفي مثال الشركة نجد

يتم تحديد الكيانات بناء على المعلومات السابق عرضها حيث نلاحظ وجود مفردات كثيرة مثل موظف - تاريخ البداية - اسم القسم رقم القسم - موقع المشروع … ولكننا نجد أن:

رقم الموظف و اسم الموظف ونوعه .. وكلها خصائص تصف الموظف وبالتالي يكون الكيان وهو "موظف" 

رقم المشروع و اسمه وموقعه كلها خصائص تصف المشروع وبالتالي يوجد كيان "مشروع"

رقم القسم و اسمه ومكانه وعدد الموظفين به كلها خصائص تصف القسم وبالتالي يوجد كيان "قسم"

نستخلص مما سبق وجود 3 كيانات هي "موظف" - "قسم" - "مشروع"



ويمكن عرض كل كيان وخصائصه كما بالجدول التالي:


الكيان الخصائص مفتاح الكيان
موظف رقم الموظف - اسم - نوع - تاريخ الميلاد - عنوان - مرتب رقم الموظف
قسم رقم القسم - اسم - مكان - عدد الموظفين رقم القسم أو اسم
مشروع رقم المشروع - اسم - موقع رقم المشروع أو اسم


ملاحظات على الجدول السابق:
تم اختيار خاصية أو أكثر من خصائص الكيان تصلح أن تكون مفتاح لكل كيان بالجدول السابق

تعريف خاصية مفتاح الكيان:

مفتاح الكيان هو الخاصية التي لا يمكن أن تتكرر قيمتها داخل هذا الكيان وبالتالي تكون مميزة لكل كيان عن غيره فمثلا لا يمكن لموظف أن يكون له نفس الرقم القومي…

خاصية "عدد الساعات" والتي يقصد بها "عدد ساعات العمل الأسبوعية لموظف معين في مشروع معين" لا يمكن اعتبارها خاصية لكيان "موظف" ولا خاصية لكيان "مشروع" ولكنها تعتبر خاصية لعلاقة عمل موظف معين بمشروع معين. ولذلك لم تكتب بالجدول السابق.

خاصية "تاريخ البداية" والتي يقصد بها "تاريخ بداية إدارة موظف معين لقسم معين"
لا يمكن اعتبارها خاصية لكيان "موظف" ولا خاصية لكيان "قسم" ولكنها تعتبر خاصية لعلاقة إدارة موظف معين لقسم معين. لذلك لم تكتب بالجدول السابق.


الخطوة الثانية:

ثانيا: تحديد العلاقات بين الكيانات وخصائصها :

يتم تحديد العلاقات بين كل كيان والكيانات الاخري من حيث:
أ- نوع العلاقة : رأس برأس أو رأس بأطراف أو أطراف بأطراف 
ب - نوع مشاركة كل كيان في العلاقة: (مشاركة كلية أو مشاركة)
ج - خصائص العلاقة

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

1- رأس برأس One To One :

تكون العلاقة رأس برأس عندما يرتبط سجل واحد من الكيان الأول بسجل واحد من الكيان الثاني والعكس 

2- رأس بأطراف One To Many :

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

3- أطراف بأطراف Many To Many :

تكون العلاقة أطراف بأطراف عندما يرتبط سجل واحد من الكيان الأول بعدة سجلات من الكيان الثاني يرتبط سجل واحد من الكيان الثاني  بعدة سجلات من الكيان الأول.

ب - تعريف نوع المشاركة:

يقصد بها إذا ما كان كيان معين كل حقوله مشتركة في العلاقة تكون المشاركة كلية Total Participation أو ليست كل الحقول مشتركة في العلاقة تكون المشاركة جزئية Partial Participation 

مثال:
في علاقة إدارة الموظف لقسم نجد أنه توجد مشاركة كلية لكيان "قسم" في هذه العلاقة أي لا يوجد قسم بدون موظف يديره ، في حين توجد مشاركة جزئية لكيان "موظف" في هذه العلاقة أي ليس كل موظف يدير قسم.
خصائص العلاقة ويقصد بها الخصائص التي تصف علاقة معينة ولا تصف أي كيان في العلاقة.


ج - خصائص العلاقة: 

ويقصد بها الخصائص التي تصف علاقة معينة ولا تصف أي كيان في العلاقة.

مثال:
خاصية عدد ساعات العمل للموظف في مشروع فهي تصف علاقة عمل موظف معين في مشروع معين لا يمكن منطقيا اعتبارها خاصية لكيان "موظف" ولا خاصية لكيان "مشروع".

العلاقات الموجودة في مثال الشركة

1-  بين كيان "موظف" وكيان "قسم" يوجد علاقتين هما:

( أ ) علاقة "يعمل في قسم" وتوصيفها كالتالي من متطلبات النظام:

1- كل قسم يجب أن يعمل به عدد من الموظفين والموظف الواحد لا يعمل في أكثر من قسم.
2- لا يوجد قسم بدون موظفين يعملون به ولا يوجد موظف دون أن يعمل بقسم.
3- لا توجد خصائص لهذه العلاقة

إذاً: 
العلاقة من نوع رأس بأطراف One To Many من ناحية كيان "قسم" (من 1)
مشاركة كلية لكيان "قسم" ومشاركة كلية لكيان "موظف" في هذه العلاقة (من 2)
لا توجد خصائص لهذه العلاقة (من 3)

مثال توضيحي للعلاقة السابقة:

علاقة "يعمل في قسم"

(ب) علاقة "يدير قسم" وتوصيفها كما يلي:

1- كل قسم له موظف واحد يديره ولا يوجد موظف مدير لأكثر من قسم.
2- لا يوجد قسم بدون موظف مدير ويوجد موظفين لا يديرون أي أقسام.
3- من المهم معرفة تاريخ بداية إدارة الموظف للقسم.

إذاً:
العلاقة رأس برأس One To One  بين كيان "موظف" وكيان "قسم" (من 1) 
مشاركة كلية لكيان "قسم" ومشاركة جزئية لكيان "موظف" في هذه العلاقة (من 1)
توجد خاصية واحدة لهذه العلاقة وهي خاصية تاريخ البداية (من 3)

مثال توضيحي للعلاقة السابقة:

علاقة "يدير قسم"



2- بين كيان "موظف" وكيان "مشروع" توجد علاقة واحدة:

(ج) علاقة "يعمل في مشروع" وتوصيفها كالتالي:

1- يجب أن يعمل الموظف في مشروع واحد على الأقل وكل مشروع يعمل به عدد من الموظفين.
2- لا يوجد مشروع بدون موظفين ولا يوجد موظف دون أن يعمل في مشروع واحد على الأقل.
3- من المهم معرفة عدد الساعات الأسبوعية التي يعملها الموظف في كل مشروع.

إذاً:
العلاقة أطراف بأطراف Many To Many بين كيان "موظف" وكيان "مشروع" (من 1)
مشاركة كلية بالنسبة لكيان "مشروع" ومشاركة كلية لكيان "موظف" في هذه العلاقة (من 2)
توجد خاصية واحدة لهذه العلاقة وهي خاصية عدد الساعات (من 3)

مثال توضيحي للعلاقة السابقة:

علاقة "يعمل في مشروع"




من توصف العلاقات السابق يمكن تلخيص العلاقات الموجودة بالنظام كما بالجدول التالي:

اسم العلاقة الكيان الأول الكيان الاخر نوع العلاقة خصائص العلاقة المشاركة الكلية للكيان
يعمل في قسم موظف قسم رأس بأطراف من ناحية قسم لا يوجد موظف وقسم
يدير قسم موظف قسم رأس برأس تاريخ البداية قسم فقط
يعمل في مشروع موظف مشروع أطراف بأطراف عدد الساعات موظف ومشروع


الخطوة الثالثة:

ثالثا: تصميم مخطط علاقة الكيانات ERD:

يتم تمثيل الكيانات وخصائصها وعلاقاتها بأشكال قياسية معبرة عن متطلبات نظام الشركة وفقا للتحليل السابق كما يلي:

(1) بين كيان "موظف" وكيان "قسم" يكون الرسم كالتالي:


رسم العلاقة بين كيان "موظف" وكيان "قسم"




ملاحظات على الرسم:

تم وضع اسم الكيان داخل مستطيل والعلاقة داخل معين 

تم وضع خصائص الكيان أو العلاقة داخل شكل بيضاوي.

تم وضع خط تحت اسم الخاصية التي تمثل مفتاح للكيان.

بالنسبة لخاصية عدد الموظفين في القسم تم وضعها داخل خط متقطع للدلالة على أنها خاصية مستنتجة (محسوبة) حيث يمكن استنتاجها من علاقة عمل الموظفين بكل قسم.


تعريف الخاصية المستنتجة Derived Attribute

هي خاصية لكيان يمكن استنتاجها أو حسابها من خصائص اخرى أو من علاقة هذا الكيان بكيانات أخرى



مثال:

بفرض أن نسبة الحافز هو أحد خصائص الكيان "موظف" وبفرض أن نسبة الحافز هي نسبة % من الراتب 

إذاً يمكن حساب نسبة الحافز من خاصية راتب الموظف لذلك يجب تمييزها بخط متقطع في مخطط علاقة الكيانات.


تم وضع خاصية المكان للكيان قسم والتي تمثل أماكن كل قسم داخل خط مزدوج لكي تدل على أنها خاصية متعددة القيم للقسم الواحد أي أنه يمكن لقسم معين أن يكون له أكثر من مكان.


تعريف الخاصية متعددة القيم Multi valued Attribute :

هي خاصية لكيان يمكن أن تحتوي على أكثر من قيمة لكيان فردي واحد.




مثال:
بفرض أن المؤهل هو أحد الخصائص لكيان "موظف" ولكن في حالة أن يكون لبعض الموظفين أكثر من مؤهل(بكالوريوس + ماجستير …) إذاً يجب اعتبارها متعددة القيم وتمييزها بخط مزدوج في علاقة الكيانات.

بالنسبة لعلاقة "يعمل في قسم" من الرسم:
فهي رأس من ناحية "قسم" وأطراف من ناحية "موظف" يعني أن العلاقة رأس بأطراف من ناحية قسم
الخط المزدوج من ناحية "قسم" يدل على المشاركة الكلية لكيان "قسم" في هذه العلاقة.
الخط المزدوج من ناحية "موظف" يدل على المشاركة الكلية لكيان "موظف" في هذه العلاقة.

بالنسبة لعلاقة "يدير قسم":
فهي رأس من ناحية "موظف" و رأس من ناحية "قسم" يعني أن العلاقة رأس برأس one to one
الخط المزدوج من ناحية "قسم" يدل على المشاركة الكلية لكيان "قسم" في هذه العلاقة.
الخط المفرد من ناحية "موظف" يدل على المشاركة الجزئية لكيان "موظف" في هذه العلاقة.

(2)  بين كيان "موظف" وكيان "مشروع":

يكون الرسم كالتالي

رسم العلاقة بين كيان "موظف" وكيان "مشروع"




بعد رسم كل الكيانات والعلاقات بينها وتجميع الكل في مخطط واحد يصبح كما يلي:


تجميع كل الكيانات والعلاقات في مخطط واحد





اقرأ ايضا
الحاسوب:
تعريف الحاسب الآلي ومميزاته وأنواعه وأجياله


الانترنت:



برامج:
ما هي البرامج الضارة بالحاسوب؟ - الفيروسات



إرسال تعليق

أحدث أقدم