ER Model

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

ER Model

أحد الخطوات الهامة في تطوير قواعد البيانات تصميم نموذج الـ ER Model، حيث يساهم في فهم وتوثيق هيكل البيانات والعلاقات بينها في نظام المعلومات. من خلال استخدام نموذج الـ ER Model يمكن للمحللين والمصممين تحليل متطلبات البيانات وترجمتها إلى تصميم قواعد البيانات بشكل دقيق وفعال. فما هي الخطوات الأساسية لتصميم الـ ER Model ؟ وما الأدوات التي يمكن استخدامها لإنشاء الـ ER-Model .؟؟!!

ER-Model

يعتبر نموذج الـ ER Model، أحد الأدوات الشائعة والفعالة المستخدمة في تصميم قواعد البيانات، ويساعد على توضيح وتوثيق تفاصيل البيانات المهمة والعلاقات بينها. كما يساعد في تحليل وتصميم هيكل البيانات والعلاقات بين الكيانات المختلفة في نظام المعلومات. يهدف هذه المقال إلى استعراض أهمية تصميم نموذج  الـ ER Model وكيفية استخدامه في تحليل وتصميم قواعد البيانات. سنناقش المفاهيم الأساسية لنموذج ER فضلاً عن الخطوات الرئيسية لتصميم نموذج الـ ER .لنبدأ...

في هذا المقال نتعرف على:



قواعد البيانات العلائقية (Relational Databases)

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

فيما يلي بعض المفاهيم الرئيسية في قواعد البيانات العلائقية:

  • الجداول (Tables): تعتبر الجداول العنصر الأساسي في قواعد البيانات العلائقية. تتكون الجداول من أعمدة و يسمى العمود حقل Field وصفوف الجدول تسمى سجلات Records حيث يمثل كل صف أو السجل مجموعة من البيانات المرتبطة بكيان معين، في حين يمثل كل عمود عنصر واحد من من البيانات.
  • المفاتيح الرئيسية (Primary Keys): هو العمود أو مجموعة من الأعمدة التي تحتوي على قيم فريدة لكل صف في الجدول. تستخدم المفاتيح الرئيسية لتمييز السجلات بشكل فريد (قيم غير مكررة) وتمكين البحث والارتباط بين الجداول.
  • المفاتيح الأجنبية (Foreign Keys): هو العمود أو مجموعة من الأعمدة في جدول التي تشير إلى مفتاح رئيسي في جدول آخر. تستخدم المفاتيح الأجنبية لإنشاء العلاقات بين الجداول.
  • العلاقات (Relationships): قواعد البيانات العلائقية مبنية على العلاقات بين الجداول. وتستخدم المفاتيح الرئيسية والمفاتيح الأجنبية لإنشاء العلاقات بين الجداول.
  • عمليات قاعدة البيانات (Database Operations): تشمل عمليات قاعدة البيانات الأساسية إدراج (Insert)، استعلام (Query)، تحديث (Update)، حذف (Delete)، وإنشاء الجداول وتعديلها (Create and Alter Tables).

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



أنواع العلاقات لقواعد البيانات العلائقية

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

  • العلاقة واحد إلى واحد (One-to-One Relationship):

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

  • العلاقة واحد إلى متعدد (One-to-Many Relationship):

    في هذا النوع من العلاقة، يتم ربط سجل واحد في جدول مع عدد من السجلات في جدول آخر. على سبيل المثال، أن يكون لدينا جدول للعملاء وجدول آخر للطلبات، حيث يمكن أن يكون لكل عميل العديد من الطلبات في جدول الطلبات.

  • العلاقة مجموعة إلى مجموعة (Many-to-Many Relationship):

    في هذا النوع من العلاقة، يتم ربط عدد من السجلات في جدول مع عدد من السجلات في جدول آخر. ولا يمكن تمثيل هذا النوع من العلاقة مباشرة في قاعدة البيانات العلائقية، وعادةً ما يتم استخدام جدول وسيط (Join Table) لتمكين هذا النوع من العلاقة. على سبيل المثال، يمكن أن يكون لديك جدول للطلبات وجدول آخر للمنتجات، ويتم استخدام جدول وسيط لربط الطلبات بالمنتجات المختلفة التي تم طلبها.

إذن مهمة العلاقات في قواعد البيانات العلائقية هي ربط الكيانات بشكل فعال، ولتحقيق أفضل عمليات الربط بين الـ Entities في قاعدة البيانات العلائقية نستخدم نموذج الـ ER Model أو ERD - Entity Relationship Diagram



ماهو الـ ER Model ؟

الـ ER Model أو مخطط الـ ERD (Entity-Relationship Diagram) وهو نموذج بيانات مفاهيمي عالي المستوى يُعمل على تسهيل تصميم قواعد البيانات العلائقية Relational Databases . أو يمكن القول أنه مجموعة من المفاهيم التي تصف بنية قاعدة البيانات، الغرض الرئيسي من تطوير نموذج بيانات الـ ER Model هو دعم تصور المستخدم للبيانات في قاعدة البيانات.

الـ ER Model مستقل عن نظام إدارة قواعد البيانات (DBMS) والنظام الأساسي للأجهزة المستخدمة لتنفيذ قاعدة البيانات.( المزيد عن DAMS في مقال مقدمة في قواعد البيانات).

تساعد مخططات الـ ERD (Entity Relationship Diagrams) محلل النظم على فهم النظام التنظيمي للبيانات المخزنة في منظمة ما. حيث يتم التركيز فيها على الكيانات (Entities) وعلاقاتها داخل النظام التنظيمي، وقد يكون الكيان (Entity) شخصًا أو مكانًا أو شيئًا أو حدثًا. والعلاقة (Relationship) هي طريقة الارتباط التي تصف التفاعل بين الكيانات.

ويستخدم مخطط الـ ER (Entity-Relationship) في تصميم قواعد البيانات العلائقية .ولا يهدف هذا المخطط إلى توضيح العلاقات بين الكيانات (Entities) في نظام قاعدة البيانات فقط. بل يشمل السمات (Attributes) التي تحدد معلومات كل كيان.

فيمكن القول أن مخطط الـ ER (Entity-Relationship) هو نموذج يُستخدم في تصميم قواعد البيانات لتمثيل هيكلة وعلاقات البيانات الموجودة في نظام معين. يستخدم هذا المخطط لوصف الكيانات (Entities) والعلاقات (Relationships) بين تلك الكيانات والسمات (Attributes) المرتبطة بها.

بجانب الكيانات والعلاقات والسمات (Attributes)، يشمل مخطط ER أيضًا المفاتيح الرئيسية (Primary Keys) والمفاتيح الأجنبية (Foreign Keys) والقيود (Constraints) الأخرى التي تحدد علاقات البيانات.

إذن باستخدام مخطط الـ ER، يمكن توضيح بنية قاعدة البيانات والعلاقات بين الكيانات بشكل بصري، مما يسهل فهم التصميم وتطوير قواعد البيانات. هذا يمكن أن يساعد المطورين والمصممين في تحليل وتصميم قواعد البيانات بطريقة منظمة وفعالة.



مكونات الـ ER Model

ذكرنا أن نموذج ER (ER Model) يوفر فهم تصوري لتصميم قاعدة البيانات حيث يسمح للمصممين بفهم الهيكل العام للبيانات والعلاقات قبل تنفيذها في قاعدة البيانات الفعلية. فنموذج الـ ER Model يساعد في تحديد العناصر الرئيسية الكيانات (Entities) و السمات (Attributes)  والعلاقات (Relationship) ونوع العلاقة بين الكيانات. لتكون مكونات  نموذج ER كتالي :

  • الكيانات (Entities): هي العناصر الرئيسية (الجداول) في نموذج ER وتمثل كائنًا حقيقيًا أو مفهومًا مستقلًا يحتوي على سماته الخاصة. و في الـ ER-Model يعبر عن الكيانات Entities بشكل مستطيلات ويتم تحديد السمات Attributes الرئيسية لكل Entity. على سبيل المثال، إذا كان لدينا قاعدة بيانات لنظام مدرسة، فإن الكيانات المحتملة قد تكون "الطلاب"، "المدرسون"، و"المواد الدراسية".
  • السمات (Attributes): تمثل السمات المحددة لكل Entity (أعمدة الجدول)، مثل الاسم والعمر والعنوان وما إلى ذلك و السمات (Attributes) تصف البيانات المرتبطة بها. ,ويعبر عن الـ Attributes في الـ ER-Model بشكل بيضاوي .
  • العلاقات (Relationships): وتوضح الصلة أو الربط بين الكيانات المختلفة. يمكن أن تكون العلاقات ثنائية الاتجاه أو أحادية الاتجاه وتحتوي على سمات خاصة بها. و يتم تمثيل العلاقات (Relationships) بين Entities بشكل مُعين وخطوط توصيل. ويتم تسمية العلاقات وتحديد نوع العلاقة بين الكيانات. على سبيل المثال، يمكن أن يكون لدينا علاقة "يدرس" بين جدول "الطلاب" وجدول "المواد الدراسية".
  • المفتاح الرئيسي (Primary Key): يستخدم لتحديد تعريف فريد لكل جدول. يتم استخدامه لتمييز السمات (الأعمدة ) التي لها قيم فريدة (قيم غير مكررة ) في قاعدة البيانات.ويعبر عن الـ Key Attribute في الـ ER-Model بوضع خط تحت اسم السمة.

كلاً من مكونات الـ ER-Model الرئيسة تتضمن مجموعة من الرموز المتنوعة توضح تصميم قاعدة البيانات بشكل دقيق، يظهر الشكل التالي بعض هذه الرموز:

مكونات الـ ER-Model

كمانرى  الشكل أعلاه تعدد الرموز للمكونات الـ ER Model ا لرئيسية، ولنتعرف على الفرق بينها فيما يلي:

الكيانات Entities

الكيانات تمثل الجداول وهي إما أن تكون:

  • كيانات قوية (Strong Entity )

    وترمز للجداول قاعدة البيانات الأساسية هذه الجداول لا تعتمد في وجودها في قاعدة البيانات على جداول أخرى، من الأمثلة عليها جدول الطلاب في قاعدة بيانات المدرسة و جدول المرضى في قاعدة بيانات المستشفى .أي لا يمكن إنشاء قاعدة البيانات بدونها ،وكما نلاحظ في الشكل في نموذج الـ ER يرمز المستطيل للكيانات الأساسية .

  • الكيانات الضعيفة (Weak Entity)

    وتسمى بعض الأحيان بالأطفال وهي الكيانات غير الأساسية في قاعدة البيانات، يتعمد وجودها في قاعدة البيانات على الكيانات الأساسية لهذا يجب أن ترتبط بعلاقة مع أحد الـ Strong Entity. الـ Weak Entity ليس لها سمة رئيسية (No Key Attribute ) لكن تعين أحد السمات كمفتاح جزئي ( A partial key Attribute ) و تتمثل في نموذج الـ ER بمستطيل يكون بخط رسم مزدوج.


العلاقات Relationship

في الشكل نرى شكلين لتمثيل العلاقات في الـ ER وهي:

  • علاقة قوية (Relationship) وهي الشكل الأساسي والعام للعلاقات .
  • علاقة محدودة أو ضعيفة ( Identifying Relationship ) تكون العلاقة بكيان ضعيف (Weak Entity) علاقة ضعيفة ويرمز لها بالشكل المعين بخط مزدوج .

السمات Attributes

تأخذ السمات ( حقول الجدول) الشكل البيضاوي في نموذج الـ ER لكل سمة اسم يكتب داخلها فيما يلي تفصيل أنواع السمات:

  • السمة الرئيسية (Key Attribute) : وتمثل حقل المفتاح الرئيسي للجدول و لتمييز السمة الرئيسة يكتب اسم الحقل الرئيسي بتنسيق تحته خط (Underline). ولابد أن يحتوي كل Entity على سمة رئيسة واحدة على الأقل. حيث يمكن تعيين أكثر من سمة في الجدول كسمة رئيسية.
  • السمة البسيطة (Simple Attribute) : وتمثل السمات العادية للجدول، تحمل هذه قيمة واحدة مثل الجنس الذي قد يكون ذكر أو انثى.
  • السمة المركبة ( Composite Attribute) : وهي السمة التي قد تتكون من عدة مكونات. على سبيل المثال:
    • العنوان (رقم المنزل، الشارع، المدينة، الرمز البريدي، البلد).
    • الاسم (الاسم الأول، الاسم الأوسط، اسم العائلة).

    قد يشكل التركيب في Composite Attribute تسلسلاً هرميًا حيث تكون بعض المكونات مركبة في حد ذاتها.

  • السمة متعددة القيم (Multi-value Attribute) : في هذا النوع من السمات يكون لدى Entity قيم متعددة لتلك السمة. على سبيل المثال، لون السيارة أو الدرجات السابقة للطالب. السمات متعددة القيم تُمثل في نموذج ER بشكل بيضاوي بخط رسم مزدوج.
  • السمات الجزئية (Partial Key Attribute) : تستخدم مفتاح جزئي مع الكيانات الضعيفة (Weak Entities ) في قاعدة البيانات.و تُميز عن السمات بخط منقط تحت قيمة السمة.
  • السمة المشتقة (Derived Attribute) : هي سمة أو حقل الجدول التي يتم حسابها أو اشتقاقها باستخدام سمات أخرى في قاعدة البيانات. يتم استخلاص بيانات السمة المشتقة أو نسخها من سمات جدول آخر موجود في نفس قاعدة البيانات. أنها غير موجودة فعليا في قاعدة البيانات.

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



العلاقات والقيود (Relationship and Constraints) في ER

تقوم العلاقات بربط جداول قواعد البيانات العلائقية مع بعضها البعض في نموذج الـ ER يتم تمثيل العلاقة بشكل المعين يحتوي على مسمى العلاقة بالاضافة الى خطوط الربط التي تتصل مع الجداول المرتبطة بعلاقة. وكما أوضحنا أعلاة أن هناك شكلين لتمثيل العلاقات في الـ ER وهي قوية (Relationship) وعلاقة محدودة أو ضعيفة ( Identifying Relationship).

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

يتم تحديد القيود Constraints على العلاقات Relationship بين جداول قواعد البيانات العلائقية من خلال تخيل الوضع الفعلي للعلاقة في العالم الحقيقي مثل ربط جدول الطلبات بجدول العملاء فيكون للعميل الواحد أكثر من طلب كذلك يمكن لابد أن تتشارك جميع السجلات في جدول الطلبات في هذه العلاقة فلا يمكن وجود طلب بدون عميل. في العموم تمثل القيود على العلاقات في الـ ER Model في شكلين رئيسيين من قيود العلاقة وهي :

  • نسبة الكاردينالية (Cardinality Ratio) تُعرف أيضًا باسم قيود النسبة.
  • قيد المشاركة (Participation Constraint) ويسمى أيضًا قيد تبعية الوجود .

يظهر الشكل التالي أشكال القيود على العلاقات في الـ ER Model:

العلاقات والقيود (Relationship and Constraints) في ER

نسبة الكاردينالية Cardinality Ratio

تمثل قيود نسبة الكاردينالية أنواع العلاقات في قواعد البيانات العلائقية، وتظهر في الـ ER Model كا أرقام على العلاقة ، حيث توضح طريقة الاشتراك بين سجلات الجداول المشاركة، حيث تحدد الحد الأقصى لنسبة التشارك في العلاقة والتي يمكن للجدول المشاركة فيها فتكون نسبة الكاردينالية إما :

  • واحد لواحد (1:1) : مثال عليها علاقة الإدارة بين الأقسام والموظفين فلكل قسم مدير واحد.
  • واحد إلى متعدد (1:N) : أو متعدد إلى واحد (N:1) مثل علاقة يعمل في بين الأقسام والموظفين (فكل قسم معين يعمل فيه عدد معين من الموظفين)
  • متعدد إلى متعدد (M:N) : مثل علاقة يعمل على بين المشاريع والموظفين ( فكل مشروع يعمل عليه عدد معين من الموظفين وفي المقابل يمكن أن يعمل الموظف الواحد على عدد من المشاريع ).

قيد المشاركة Participation Constraint:

يعمل قيد المشاركة على تحديد كمية السجلات Records (الصفوف) المشاركة في العلاقة بين الجداول المشاركة في العلاقة، ويسمى أيضًا قيد التبعية للوجود. حيث تحدد هذه القيود الحد الأدنى لعدد السجلات التي يمكن لكل كيان المشاركة فيها، وهناك نوعان من قيود المشاركة وهي:

  • مشاركة كاملة (Total Participation):

    في هذا النوع تكون المشاركة الزامية على سجلات الجدول فيمكن أن يكون واحدة أو أكثر (المشاركة الإلزامية، تعتمد على الوجود). و تُمثل في الـ ER Model بخط مزدوج .

  • المشاركة الجزئية (Partial Participation) :

    في هذا النوع تكون المشاركة اختارية على سجلات الجدول يمكن أن لا يشارك أي منها في العلاقة ، فعدد السجلات المشاركة يمكن أن يكون صفر (مشاركة اختيارية، غير معتمدة على الوجود).وتمثل في الـ ER Model بخط مفرد.


القيود باستخدام طريقة الترميز البديل (min، max)

ايضاً لابد أن نذكر طريقة استخدام الترميز البديل (min، max) للقيود الهيكلية للعلاقة (Alternative (min, max) notation for relationship structural constraints) حيث نحدد العدد للحد الأقصى و الأدنى للسجلات المشاركة في ال علاقة من جدول معين فيكون:

الوضع الافتراضي (بدون قيد): الحد الأدنى min = 0، الحد الأقصى max = n (مما يدل على عدم وجود حد).

كما يجب أن يكون:

  • الحد الأدنى أقل من أو يساوي الحد الأعلى min <= max .
  • الحد الأدنى ايضاً أكبر من أو يساوي الصفر min >= 0 .
  • الحد الأقصى اكبر من أو يساوي الواحد max >= 1 .

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

  • الحد الأدنى min = 0 يعني المشاركة الجزئية Partial Participation.
  • الحد الأدنى min > 0 يعني المشاركة الكاملة Total Participation .


خطوات تصميم الـ ER Model

التصميم الأساسي لمخطط ER يتضمن عدة خطوات لتحديد الكيانات والعلاقات والسمات المرتبطة بها. هنا هي الخطوات الأساسية لتصميم مخطط ER:

  1. تحديد المتطلبات: قم بفهم متطلبات النظام والمشروع وتحديد البيانات التي يجب تخزينها وتتبعها في قاعدة البيانات.
  2. تحديد الـ Entities: حدد الكيانات Entities الرئيسية في النظام، وهي الأشياء الحقيقية أو الاعتبارية التي يجب تمثيلها في قاعدة البيانات. قد تشمل الكيانات الأشخاص والمنتجات والموظفين وغيرها.
  3. تحديد الـ Attributes: حدد السمات (Attributes) أو البيانات التي ترتبط بكل كيان. على سبيل المثال، للعميل يمكن أن تكون هناك سمات مثل الاسم والعنوان ورقم الهاتف.
  4. تحديد المفاتيح الرئيسية (Primary Keys): حدد المفتاح الرئيسي لكل كيان (جدول)، وهو الخاصية التي تميز كل سجل فريدًا في جدول الكيان.
  5. تحديد الـ Relationships: حدد العلاقات (Relationships) بين الـ Entities . ما هي الصلة والارتباطات التي تربط بين الكيانات؟ على سبيل المثال، العلاقة بين العميل والطلب أو العلاقة بين المستخدم والمنتج..
  6. رسم مخطط الـ ER : استخدم رموز المخطط ER لرسم الكيانات (Entities) والعلاقات والسمات (Attributes) والمفاتيح الرئيسية في مخطط واحد. يمكنك استخدام برامج تصميم القواعد مثل "ERDPlus" أو "Lucidchart" للمساعدة في رسم المخطط.
  7. التحقق والتعديل: قم بمراجعة مخطط الـ ER والتحقق من صحته واكتماله. قد تحتاج إلى إجراء تعديلات وتعديلات إضافية لتحسين التصميم وفقًا لمتطلبات النظام واحتياجات البيانات.

تذكر أن تصميم مخطط ER هو عملية تصميمية متكررة، وبعد الانتهاء من المخطط الأولي، يمكن إجراء تعديلات وتحسينات بناءً على التغيرات المستمرة في متطلبات النظام والبيانات.



تطبيق تصميم الـ ER Model

فيما يلي سنقوم بشرح طريقة بناء ER-Model لقاعدة بيانات و لنوضح تفاصيل عناصر الـ ER-Model. نحتاج إلى إنشاء تصميم مخطط قاعدة البيانات بناءً على المتطلبات (المبسطة) التالية لقاعدة بيانات شركة:

المتطلبات :

  • يتم تنظيم الشركة في أقسام لكل قسم اسم ورقم وموظف يدير القسم وموقع.
  • يتحكم كل قسم في عدد من المشاريع. كل مشروع له اسم ورقم و قد يكون للمشروع عدة مواقع.
  • نقوم بتنظيم بيانات الموظفين في جدول يضم اسم الموظف رقم لكل موظف وعنوانه وراتبه وجنسه وتاريخ ميلاده.
  • يعمل كل موظف في قسم واحد ولكن قد يعمل على عدة مشاريع.
  • يمكن نتتبع عدد الساعات الأسبوعية التي يعمل فيها الموظف حاليًا في كل مشروع.
  • كما يوضح النظام على بتتبع المشرف المباشر لكل موظف.
  • قد يكون لكل موظف عدد من المعالين.
  • بالنسبة لكل معال، نقوم بتتبع اسمه وجنسه وتاريخ ميلاده وعلاقته بالموظف.

  1. تحديد الكيانات Entities (الجداول):

    من المتطلبات نحتاج جدول للموظفين باسم (EMPLOYEES) و جدول لتنظيم الأقسام باسم (DEPARTMENTS) وجدول للمشاريع بإسم (PROJECTS) أخيراً جدول للمعالين بإسم (DEPENDANTS).

  2. تحديد تحديد الـ Attributes وتعين الـ Primary Keys الخاصة بكل Entities (الحقول لكل جدول):
    • لجدول الموظفين EMPLOYEES نقوم بتعيين حقل اسم الموظف (Name) وحقل تاريخ ميلاد (Brithday) و حقل حنس الموظف (Gender) وحقل الراتب (Salary) وحقل العنوان (Address ) و تعيين حقل رقم الموظف (EmployeeID) كمفتاح رئيسي .
    • لجدول الأقسام DEPARTMENTS نقوم بتعيين حقل إسم القسم (DepartmentName) حقل وموقع القسم (Location)، وتعيين حقل رقم القسم DepartmentID.
    • لجدول المشاريع PROJECTS نقوم بتعيين حقل اسم المشروع (ProjectName) قد يتم العمل على المشروع في أكثر من موقع نعين حقل الموقع متعدد القيم (Locations)، وتعيين حقل رقم المشروع (Project ID) كمفتاح رئيسي.
    • يعتمد جدول المعالين DEPENDANTS في وجوده على جدول الموظفين (EMPLOYEES) الجدول هنا من نوع Weak Entity لا يمتلك مفتاح رئيسي لذا سنعين للجدول الحقول اسم المعال (Name) وتاريخ ميلاده (Brithday) وجنسه (Gender) وصلة قرابته بالموظف (Relationship)

  3. تحديد العلاقات Relationships :
    • بين الموظفين تنشأ علاقة إشراف (Supervision) فموظف واحد يمكن أن يشرف على عدد من الموظفين تمثل هذه العلاقة N:1 وتكون هذه العلاقة من والى جدول EMPLOYEES حيث يمكن ربط سجلات الجدول الواحد مع بعضها البعض.
    • بين جدول الموظفين EMPLOYEES وجدول الأقسام DEPARTMENTS يمكن إنشاء علاقة يعمل لصالح (WorkFor) فكل موظف يتبع عمله قسم معين لهذ تكون العلاقة N:1 كما أن جميع الموظفين في جدول EMPLOYEES وجميع الأقسام في جدول الأقسام DEPARTMENTS تلزمها المشاركة في العلاقة.
    • بين جدول الموظفين EMPLOYEES وجدول الأقسام DEPARTMENTS ويمكن ايضاً إنشاء علاقة إدارة (Manage) حيث تتيح لموظف واحد أن يدير قسم واحد لتكون العلاقة من نوع 1:1 ولا يلزم جميع الموظفين المشاركة في هذه العلاقة ولكن يلزم جميع الأقسام المشاركة فلا يمكن أن يوجد قسم بدون مدير.
    • بين جدول الأقسام DEPARTMENTS و جدول المشاريع PROJECTS تنشأ علاقة تحكم (Controls) فيمكن للقسم الواحد التحكم بعدد من المشاريع لهذا تكون العلاقة من نوع 1:N ، ولا يلزم كل الأقسام المشاركة في العلاقة بينما تُلزم كل المشاريع المشاركة في العلاقة فلا يوجد مشروع لا يتبع لقسم معين.
    • بين جدول الموظفين EMPLOYEES وجدول المشاريع PROJECTS تنشأ علاقة" يعمل على ( WorkOn) ، هذه العلاقة تكون من متعدد الى متعدد من نوع N:M حيث يمكن للموظف الواحد أن يعمل على أكثر من مشروع ، وكذلك المشروع الواحد يمكن أن يعمل عليه أكثر من موظف، في هذه العلاقة كل المشاريع لابد أن تشارك في العلاقة بالمقابل لا يلزم كل الموظفين المشاركة (فمثلاً أن يكون مجال الشركة إنتاج الأفلام موظفون قسم الـ HR هنا لا يشاركون في العمل على المشاريع ).
    • بين جدول الموظفين EMPLOYEES وجدول المعالين DEPENDANTS تنشأ علاقة (DependentOn) هذه العلاقة تكون من نوع N:1 فالموظف الواحد قد يكون له عدد معين من المعالين، كما يلزم جميع المعالين المشاركة في العلاقة ولكن لا يلزم جميع الموظفين. العلاقة هنا محدودة (ضعيفة ) فهي تربط كيان ضعيف (DEPENDANTS) فوجود جدول المعالين يعتمد على سجلات جدول الموظفين.

بعد تحليل المتطلبات وتحديد الكيانات Entities والسمات Attributes والعلاقات Relationships يمكن رسم الـ ER model على هذا النحو التالي:

ER-Model example

نلاحظ في الشكل

  • في جدول الأقسام DEPARTMENTS قمنا استخدام السمة المشتقة Derived Attribute لتحديد عدد الموظفين العاملين في كل قسم حيث تنشأ من علاقة WorkFor بين جدول الموظفين والأقسام .
  • وفي جدول الموظفين EMPLOYEES استخدمت السمة المركبة Composite Attribute مع حقول الاسم والعنوان.
  • ومع جدول المشاريع PROJECTS استخدمت سمة القيم المتعددة Multi-value Attribute مع مواقع العمل على المشروع.
  • ومع العلاقة WorkOn استخدمت سمة العلاقة ( Relationship Attribute ) في المثال كانت بقيمة ساعات Hours وتصف لكل علاقة عدد الساعات في الأسبوع التي يعمل فيها الموظف في المشروع.


أدوات لإنشاء الـ ER-Model

هناك العديد من الأدوات المتاحة التي يمكنك استخدامها لرسم مخطط ER. مثل برامج التصميم المرئي مثل "ERDPlus" و "Lucidchart" وغيرها. تعد هذه الأدوات سهلة الاستخدام وتوفر واجهات بصرية لرسم المخطط وتحريره بسهولة. هنا بعض الأدوات الشهيرة لرسم مخطط ER:

  • Draw.io: هو تطبيق عبر الإنترنت يتيح لك رسم مخططات ER وغيرها من المخططات بسهولة. يحتوي على مجموعة واسعة من الرموز والقوالب المختلفة لتصميم مخطط ER.
  • Microsoft Visio: هو أداة تصميم مخططات متعددة الاستخدامات التي تتضمن أيضًا قالبًا لمخططات ER. يوفر العديد من الأشكال والرموز المخصصة لتصميم مخططات ER بشكل مرئي وسهل الاستخدام.
  • SmartDraw: هو برنامج رسم قواعد البيانات ومخططات ER الذي يوفر واجهة سهلة الاستخدام وميزات متقدمة لتصميم المخططات بشكل احترافي.
  • Creately: هو أداة تصميم عبر الإنترنت تتيح لك رسم مخططات ER بطريقة بصرية. يتضمن قوالب جاهزة ورموز لتسهيل عملية التصميم.
  • Gliffy: هو أداة تصميم عبر الإنترنت تسمح لك برسم مخططات ER وغيرها من المخططات بسهولة. يوفر واجهة سهلة الاستخدام وميزات تعاونية للعمل الجماعي.

تذكر أنه يمكنك استخدام أي أداة تصميم تعتمد على الرسم البياني لإنشاء مخطط ER، حيث يمكنك استخدام الشكل المستطيل لتمثيل الكيانات والخطوط لتمثيل العلاقات والسمات المناسبة.

في ختام هذا المقال، يمكننا استنتاج أن تصميم نموذج الـ ER Model يساعد في توضيح وتوثيق هيكل البيانات والعلاقات بين الكيانات في نظام المعلومات، ويسهم في تحليل متطلبات البيانات وترجمتها إلى تصميم قواعد البيانات بشكل دقيق كما.يجب علينا أن ندرك أن تصميم نموذج ER هو عملية مستمرة ومتطورة. يمكن أن يتطلب تحديث النموذج بناءً على تغيرات في متطلبات البيانات أو تطور النظام. لذا، يجب علينا أن نكون مرنين ومستعدين لتعديلات وتحسينات مستقبلية في تصميم النموذج.



إرسال تعليق

فضلاً اترك تعليق
موافقة ملفات تعريف الارتباط
لتحسين تجربتك… يستخدم موقعنا ملفات تعريف الارتباط (Cookies)
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.