تصميم قواعد البيانات العلاقية

Download Report

Transcript تصميم قواعد البيانات العلاقية

T. Aishah Khawaji
‫قواعد بيانات‬
T. Aishah Khawaji
‫الفصل الرابع‪:‬‬
‫تصميم قواعد البيانات العالقية‬
‫‪T. Aishah Khawaji‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫سنكمل في هذا الفصل ما بدأناه في الفصول الثالثة السابقة لنقترب من‬
‫مرحلة تصميم قواعد البيانات العالقية‪.‬‬
‫في الفصل األول تعرفنا على مقدمة عن قواعد البيانات ومعناها‬
‫ومصطلحاتها ومميزاتها ومراحل تصميمها‪.‬‬
‫في الفصل الثاني تحدثنا مفاهيم أساسية في قواعد البيانات العالقية ورموزها‬
‫وأنواع روابطها‪.‬‬
‫الفصل الثالث تعرفنا فيه على طريقة تصميم نموذج ‪ ERD‬لكي نتمكن من‬
‫استخدامه في دراستنا لتصميم قواعد البيانات العالقية‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫• ذكرنا في المحاضرات السابقة مراحل إنتاج قواعد البيانات وهي‪:‬‬
‫‪ .1‬تحليل النظم‪.‬‬
‫‪ .2‬تصميم قاعدة البيانات‪.‬‬
‫‪ .3‬تطوير قاعدة البيانات‪.‬‬
‫‪ .4‬تطوير تطبيقات قاعدة البيانات‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫‪ -1‬تحويل الكيان إلى عالقة‬
‫‪ .1‬يتم تحويل جميع الكيانات الموجودة في نموذج ‪ ERD‬ألي تطبيق إلى‬
‫عالقات‪.‬‬
‫‪ .2‬اسم العالقة سيكون هو نفسه اسم الكيان ثم نضع أمامه أسماء كافة‬
‫خصائص الكيان بين قوسين‪.‬‬
‫‪ .3‬يجب أن ال ننسى أن نضع خطا ً تحت المفتاح األساسي لكل كيان‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫تطبيق حسابات العمالء والمصارف‬
‫‪T. Aishah Khawaji‬‬
‫ الخاص بتطبيق حسابات العمالء نستطيع تحديد العالقات‬ERD ‫• مثال نموذج‬
:‫الخاصة بالكيانات في هذا النموذج كما يلي‬
CUSTOMER ( ID, idtype, Cname, Address, Phone )
ACCOUNT ( ACC#, balance, Currency )
BANK ( Bank#, Bname, Baddress, manager )
T. Aishah Khawaji
‫‪ -2‬تحويل العالقة الرابطة إلى عالقة‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫يتم تحويل أي عالقة موجودة في نموذج ‪ ERD‬لتطبيق ما إلى عالقات‬
‫مثلما فعلنا مع الكيانات‪.‬‬
‫خصائص هذه العالقة فتتكون من الخصائص الخارجة من العالقة في‬
‫نموذج ‪ – ERD‬إن وجدت – مع المفتاحين األساسيين للكيانين اللذان‬
‫تربط بينهما العالقة‪.‬‬
‫بعد ذلك علينا أن نحدد مفتاحا ً أساسيا ً للعالقة الناشئة وتختلف طريقة تحديد‬
‫المفتاح تبعا ً لنوع العالقة الرابطة‪.‬‬
‫ثم أخيراً نقوم بتحديد المفاتيح المفاتيح الخارجية لكل جدول بوضع خط‬
‫متقطع أسفلها‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫العالقة الرابطة ‪one-to-one‬‬
‫إختيار مفتاح العالقة الناتجة من‬
‫عالقة رابطة من نوع ‪one-to-one‬‬
‫يكون إختياريا ألحد مفتاحي الكيانين‬
‫اللذين تربط بينمها العالقة‬
‫‪T. Aishah Khawaji‬‬
‫العالقة الرابطة ‪one-to-many‬‬
‫إختيار مفتاح العالقة الناتجة من عالقة‬
‫رابطة من نوع ‪one-to-many‬‬
‫يكون إجباريا ويكون هو المفتاح‬
‫األساسي ناحية الكيان ‪Many‬‬
‫‪T. Aishah Khawaji‬‬
‫العالقة الرابطة ‪many-to-many‬‬
‫إختيار مفتاح العالقة الناتجة من عالقة‬
‫رابطة من نوع ‪many-to-many‬‬
‫يكون إجباريا ويكون هو المفتاحين‬
‫األساسيين للكيانين اللذان تربط بينهما‬
‫العالقة‪.‬‬
‫‪T. Aishah Khawaji‬‬
T. Aishah Khawaji
‫تطبيق حسابات العمالء والمصارف‬
Many-To-Many
T. Aishah Khawaji
One-To-Many
1)
2)
3)
4)
5)
:‫ عالقات من الكيانات‬.1
CUSTOMER ( ID, idtype, Cname, Address, Phone )
ACCOUNT ( Acc#, balance, Currency )
BANK ( Bank#, Bname, Baddress, manager )
:‫ عالقات من العالقة الرابطة‬.2
ACCESS ( ID, Acc#, Ptype, Pdate, money )
OPENED ( Acc#, Bank# )
T. Aishah Khawaji
‫‪ -3‬تحسين قاعدة البيانات‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫بعد تحويل نموذج ‪ ERD‬ألي تطبيق إلى عالقات يمكن إجراء تحسين‬
‫لقاعدة بيانات أي تطبيق‪.‬‬
‫وذلك باستخدام بعض القواعد للوصل إلى قاعدة البيانات ال ُمثلى‪.‬‬
‫نقوم بذلك عن طريق دمج العالقات التي لها نفس المفتاح األساسي في‬
‫عالقة واحدة‪.‬‬
‫تضم خصائص كل منهم باإلضافة إلى المفتاح األساسي المشترك‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫تحسين قاعدة البيانات‬
2&5
1) CUSTOMER ( ID, idtype, Cname, Address, Phone )
2) OPENED_ACCOUNT ( Acc#, balance, Currency,
Bank# )
3) BANK ( Bank#, Bname, Baddress, manager )
4) ACCESS ( ID, Acc#, Ptype, Pdate, money )
‫ والتي كانت من‬OPENED ‫ ناتجة من العالقة الرابطة‬OPENED ‫العالقة‬.many ‫ لذلك تم دمجها مع العالقة الناشئة عن الكيان‬one-to-many ‫نوع‬
many-to- ‫ فهي ناتجة عن عالقة رابطة من نوع‬ACCESS ‫العالقة‬.‫ واليمكن دمجها مع أي عالقة أخرى‬many
T. Aishah Khawaji
‫الكيانات الضعيفة‬
‫• تضم قواعد البيانات أنواع من الكيانات‪ ,‬نستهدف منها نوعين هامين هما‪:‬‬
‫‪ .1‬الكيان القوي‪.‬‬
‫‪ .2‬الكيان الضعيف‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫الكيان القوي ( مستقل ومسيطر )‬
‫• هو كيان مستقل له خصائصه ومن ضمنها خاصية المفتاح األساسي التي‬
‫تميز أي سجل ينتمي له عن باقي السجالت‪.‬‬
‫• جميع الكيانات التي مرت علينا حتى اآلن هي كيانات قوية‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫الكيان الضعيف ( تابع وخاضع )‬
‫•‬
‫•‬
‫•‬
‫•‬
‫هو كيان تابع لكيان آخر قوي ومسيطر‪.‬‬
‫ال يوجد مفتاح أساسي للكيان الضعيف‪ ,‬بل نستخدم المفتاح األساسي للكيان‬
‫القوي الذي يتبعه الكيان الضعيف كمفتاح أساسي للكيان الضعيف باإلضافة‬
‫إلى خاصية من خصائص الكيان الضعيف ويسمى المفتاح الجزئي‪.‬‬
‫نوضح الكيان الضعيف بوضع اسمه في مستطيل مزدوج‪.‬‬
‫و نوضح العالقة الرابطة بينه وبين الكيان القوي بوضع اسمها في معين‬
‫مزدوج‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫ للكيان الضعيف‬ERD ‫نموذج‬
one-to-many
one-to-many
T. Aishah Khawaji
‫ للكيان الضعيف‬ERD ‫نموذج‬
:‫ أئوالً عالقات من الكيانات‬.1
1) EMPLOYEE ( ID, Ename, salary )
2) DEPARTMENT ( Dept#, Dname, location )
3) DEPENDENT ( ID, name, relationship, gender, birthdate )
:‫ عالقات من العالقات الرابطة‬.2
4) WORKS_IN ( ID, Dept#, Sdate, Edate )
5) ‫ال نحتاج إلى تمثيل العالقة الضعيفة‬
:‫ تحسين قاعدة البيانات‬.3
1&4 6) EMPWORKS ( ID, Ename, salary, Dept#,Sdate, Edate )
7) DEPARTMENT ( Dept#, Dname, location )
8) DEPENDENT ( ID, name, relationship, gender, birthdate )
T. Aishah Khawaji
‫تصميم قواعد بيانات من مستندات‬
‫• في تطبيقات قواعد البيانات التي درسناها في الفصل الثالث بنينا نموذج‬
‫‪ ERD‬ومن ثم صممنا قاعدة البيانات بناء على معطيات وصفية تصف جهه‬
‫معينة‪.‬‬
‫• في بعض األحيان يختلط الوصف أو ينفصل عن الموجود على الواقع وهذا‬
‫ما سنعاجه في هذا الجزء‪.‬‬
‫‪T. Aishah Khawaji‬‬
‫البيانات الغير ممثلة في قواعد البيانات‪:‬‬
‫الشعارات أو اسم‬
‫الجهة صاحبة‬
‫المستند‬
‫الرقم المسلسل أو‬
‫رقم كل صفحة‬
‫مطبوعة أة تاريخ‬
‫الطباعة‬
‫البيانات التي‬
‫يمكن اشتقاقها‬
‫أو حسابها من‬
‫بيانات أخرى‬
‫المالحظات‬
‫والتوقيعات‬
‫والتعليقات‬
‫‪T. Aishah Khawaji‬‬
‫تطبيق مستندات المستشفى‬
‫• تصدر مستشفى الملك فهد التخصصي التقرير التالي عن المرضى‬
‫المتعاملين مع أقسام المستشفى في التخصصات المختلفة وغرف التنويم‬
‫واألدوية المنصرفة لكل مريض وكمياتها‪.‬‬
‫• صممي قاعدة بيانات لهذا التقرير‪.‬‬
‫‪T. Aishah Khawaji‬‬
T. Aishah Khawaji
‫تطبيق مستندات المستشفى‬
‫• الحل‪:‬‬
‫علينا أوالً استبعاد البيانات التي ال يتم معالجتها أو تسجيلها وهي كاآلتي‪:‬‬
‫‪ .1‬اسم المستشفى والشعارات واألهلة‪.‬‬
‫‪ .2‬عنوان الهاتف وفاكس المستشفى‪.‬‬
‫‪ .3‬رقم الصفحة وتاريخ الطباعة‪.‬‬
‫‪T. Aishah Khawaji‬‬
One-To-Many
0
m
1
1
1
m
0
0
m
m
0
1
One-To-Many
Many-To-Many
T. Aishah Khawaji
‫ للكيان الضعيف‬ERD ‫نموذج‬
1)
2)
3)
4)
:‫ أئوالً عالقات من الكيانات‬.1
DOCTOR ( Dno, Dname, specialty, salary )
PATIENT ( P#, Pname, Romm# )
WORK ( Wname, Waddres )
MEDICINE ( M#, Mname )
:‫عالقات من العالقات الرابطة‬
5) TREAT ( P#, Dno )
6) WORKS_IN ( P#, Wname)
7) TAKE ( P#, M# )
:‫تحسين قاعدة البيانات‬
1) DOCTOR ( Dno, Dname, specialty, salary )
2&5 2) PATIENT ( P#, Pname, Room#, Dno, Wname )
&6 3) MEDICINE ( M#, Mname )
4) WORK ( Wname,Waddres)
5) TAKE ( P#, M# )
T. Aishah Khawaji
.3
T. Aishah Khawaji