تصميم قواعد البيانات العلاقية
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