اليوم إن شاء الله سوف ندرس كيفية عمل نموذج العلاقات بين الجداول وسنتعرف سويا على أنواع العلاقات التي سنتعامل معها للربط بين الجداول ونبدأ الآن :

 

لابد فى البداية أن نعرف ما هو Entity Relationship Model 

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

*
1-تقسيم قاعدة البيانات إلى جداول مثل (جدول الموظف أو القسم أو جدول طلاب وجدول المرحلة والدرجات وغيره ).
2-كل جدول يحتوى على خصائص معينة تصف هذا الجدول مثل (الاسم والعنوان والسن والوظيفة ).

.
وتحديد العلاقة بين هذة الجداول والخصائص نستطيع أن نعبر عنه بما يسمى Entity Relationship Model

*

أهمية Entity Relationship Model؟
الأهمية الأكبر أنه يساعد على عمل قاعدة بيانات على أساس علمي صحيح وبالتالي يعتبر خطوة مهمة جداً قبل البدء فى إنشاء قاعدة البيانات .

*


والآن سنتعرف  على كيفية التفكير بطريقة صحيحة لإنشاء قاعدة بيانات :

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

.
فى البداية يجب الجلوس مع الشخص المسؤول عن الشركة الذى يريد قاعده البيانات هذه ومعرفة متطلبات النظام وماذا يريد هو منها.
نفرض أن متطلبات الشركة كالآتى :-

.
1- الشركة مقسمة إلى أقسام وكل قسم له رقم يميزه عن القسم الآخر .
2- يوجد لكل قسم موظف يدير القسم ويجب أن نعرف متى بدأ العمل في هذا القسم .
3- القسم يمكن ان يكون له أكثر من مكان .
4- يجب أن يكون لدى بيانات جميع الموظفين كالاسم والسن وتاريخ التعين وغيره.
5- كل موظف يجب ان يعمل فى قسم واحد فقط كل موظف يعمل مشروع واحد على الاقل ومن المهم معرفة عدد ساعات العمل الاسبوعية التى يعملها كل موظف فى المشروع .
*
نبدأ الآن فى تحليل هذا الوصف اتبع معي هذه الخطوات :

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

والآن نستنتج الجداول الآتية :

*
أولاً جدول الموظفين (رقم الموظف-اسم الموظف-نوع -تاريخ التعيين -الراتب ).

.
ثانيا جدول الاقسام (رقم القسم -اسم القسم -عدد الموظفين ).

.
ثالثا جدول المشاريع (رقم المشروع -اسم المشروع ).

.
رابعا-جدول الادارة (رقم الادارة-رقم الموظف-رقم القسم ).

.
خامسا-جدول الموظف-مشروع(رقم تسلسل-رقم الموظف-رقم المشروع-عدد الساعات) .

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

*
الخطوة الثانية :
تحديد العلاقة بين كل جدول  والآخر
يتم تحديد ذلك عن طريق :-   1- نوع العلاقة       2- نوع المشاركة

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

.
1- one To one
وهي تتكون عندما يكون سجل field من الجدول الأول يرتبط بسجل من الجدول الثاني أو العكس .

.
2-One To Many
تتكون عندا يكون سجل Fieldsمن الجدول الاون بععده سجلات من الجدول الثانى وليس العكس .

.
3-Many To Many 
هى تتكون عندما يكون عدة سجلات من الجدول الأول يرتبط بعدة سجلات من الجدول الثاني وهذه العلاقة تعرف بالعلاقة الوهمية أى أنها لاتحدث بمفرها وعند حدوثها يتم تعريف جدول بين هذا الجدولين ويعرف هذا الجدول بالجدول الوسيط أى انها تتحول هذه غلى علاقتين من نوع one To many.

*

الآن جاء دور تعريف نوع المشاركة :

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

.
مثال هنا :
ان كل موظف يجب ان يكون له مشاركة للقسم اى لايوجد قسم بدون موظف يديرة  وهنا تكون علاقة كلية بينما  توجد ايضا علاقة جزئية للموظف اى ليس كل موظف سيدير قسم .

*

الآن نقوم بتحديد العلاقات فى قاعد بيانات الشركة وهي كالآتي :-

نأخد جدول الموظفين وجدول الأقسا م نحلل العلاقة سوياً :
-كل قسم يجب أن يعمل فيها عدد من الموظفين والموظف الواحد لا يعمل  فى اكثر من قسم كما لايوجد قسم لايعمل به موظف،و لايوجد موظف يعمل بدون قسم، فالآن نسأل ما نوع العلاقة هنا؟
هنا العلاقة من نوع One To many   بين جدول الموظف وجدول القسم  ونوع العلاقه هنا كلية
.

sqldata

.

نأخذ جدول الموظفين هنا ونعمل جدول آخر اسمه الإدارة لأنه فى الوصف هنا يريد أن موظف يدير القسم ومن الوصف ستكون العلاقة هنا One To One ونوع المشاركة كلية للقسم وجزئية للموظف

.

 

sqldatas

.

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

.
هنا العلاقة Mant To Many كما تكون المشاركة هنا كلية

.

sqldata3

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

تحويل هذا إلى مخطط العلاقة بين الجداول (ERD)
يتم رسم الجداول وخصائصه بشكل يوضح العلاقات بين هذه الجداول وسيكون ناتج العلاقات السابقة كالشكل التوضيحى الاتى

.

sqldata4

ملاحظه هامة

كل هذا يعتبر تفكير للمشكلة وعمل تحليل لهذه المشكلة بخطوات علمية وهنا نكون قد نهينا هذا الجزء والدرس القادم سوف نتعرف على كيفية تحويل هذه العلاقات والرسومات التوضيحة إلى قاعدة بيانات كاملة بالSql Server .