برجاء تسجيل الإعجاب بالصفحة لتصلك كتاباتي على فيسبوك

المتابعون للمدونة

الأحد، 24 أبريل، 2016

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



أنواع العلاقات بين الجداول:

توجد أربعة أنواع رئيسية للعلاقات بين الجداول: 

1- علاقة "واحد بمتعدّد" One-to-many Relationship:
تسمّى العَلاقة بين جدول المؤلفين وجدول الكتب في المثال السابق بعلاقة "واحد بمتعدّد" One-to-many Relationship، وذلك لأنّ مؤلفًا واحدا يمكن أن يكون له أكثر من كتاب. 

2- علاقة "متعدّد بمتعدّد" Many-to-many Relationship:
افترض أن لدينا كتابا اشترك في تأليفه أكثر من مؤلف.. في هذه الحالة لن نضع العمود AuthorID في جدول الكتب، وبدلا من هذا سننشئ جدولا ثالثا هو جدول "مؤلفو الكتب" BooksAuthors.. هذا الجدول يسمى جدول الربط Link Table أو جدول الاتصال Junction table، وهو يتكون من عمودين فقط: رقم الكتاب BookID ورقم المؤلف AuthorID كالتالي: 

AuthorID
BookID
23
1
106
1
8
2
8
3


حيث اشترك المؤّلفان رقما 23 و 106 في تأليف الكتاب رقم 1، بينما قام المؤلف رقم 8 بتأليف الكتابين رقمي 2 و 3.. هذه هي علاقة متعدّد بمتعدّد Many-to-many. 

3- علاقة "واحد إلى واحد" One-to-one:
في هذه العلاقة يتم تقسيم السجل الواحد على جدولين، وذلك إذا كان عدد أعمدة الجدول كبيرا جدا، وكان بعضها قليل الأهمية ونادر الاستخدام، أو إذا كانت هذه الأعمدة تحتوي على بيانات سرية، لهذا يجب وضعها في جدول خاص ومنح صلاحية التعامل معها لمدير النظام مثلا.. بهذه الطريقة يكون جزء من السجل في الجدول الأول متاحا لكل المستخدمين، وباقي السجل في جدول آخر مخصص لمستخدمين بعينهم.
وفي علاقة "واحد بواحد" يكون كل من المفتاح الأساسي والمفتاح الفرعي متفردا Unique غير قابل للتكرار، وبهذا نضمن ارتباط كل مفتاح أساسي بمفتاح فرعي واحد فقط.
وكمثال: افترض أن لدينا جدولا لبيانات الموظفين اسمه Employees يبدو كالتالي: 

ID
Employee
Phone
eMail
Address
1
أحمد شريف
....
....
....
2
مجدي نوارة
....
....
....
3
صالح رشدان
....
....
....
4
ياسر الهواري
....
....
....

في هذه الحالة سنحتاج إلى جدول آخر نضع فيه اسم المستخدم وكلمة السر الخاصة بكل موظف، وليكن اسمه EmployeesPasswords، وسنربطه بالجدول Employees باستخدام مفتاح فرعي اسمه EmployeeID مع جعله مفتاحا متفردا Unique:
 

ID
UserName
Password
EmployeeID
1
ash
....
1
2
mgdy
....
2
3
rshdan
....
3
4
ysrhwary
....
4

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

 

4- العلاقة الذاتية Self-Relation:
سنتعرف عليها في المنشور القادم بإذن الله!

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET

للتنزيل من مكتبة الكتب العربية برابط مباشر:


 

 


ليست هناك تعليقات:

إرسال تعليق

صفحة الشاعر