تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
▪ جدول هاتف الموظف ( EmployeePhoneمعرف الموظ ف ،EIDرقم اله اتف) EID ،هن ا ه و
جزء من مفتاح رئيسي مركب ،وهو مفتاح خارجي مرتبط بجدول الموظف السابق.
6.4السمات
يو َصف كل كيان بمجموعة من السمات ،attributesفمثاًل ،يمكن وصف كيان الموظف بالس مات التالي ة:
الاسم ،أو العنوان ،أو تاريخ الميلاد ،أو الراتب .تملك كل سمة اس ًما مح َّد ًدا ،وترتب ط بكي ان مع َّين ،وبمج ال من
القيم المس موحة ال تي يمكن أخ ذها ،ولكن لا تُع َرض المعلوم ات ح ول مج ال الس مة في مخط ط الكي ان
والعلاقة .ERD
تم َّثل كل سمة في مخطط الكيان والعلاقة الموضح في الشكل التالي تمثياًل بيضويًا مع اسم بداخله.
الشكل :6.2تمثيل ال ِسمات في نموذج العلاقات الكائني للبيانات
6.4.1أنواع السمات
هناك أنواع قليلة من السمات التي يجب أن تكون على دراية بها ،ويجب ترك بعض ها كم ا هي ،لكن يحت اج
بعضها الآخر إلى تعديل ليسهل تمثيلها في النموذج العلائقي ،relational modelوسيناقش هذا القس م أن واع
السمات؛ أما لاح ًقا فسنناقش تعديل السمات لتلائم النموذج العلائقي بصورة صحيحة.
6.4.2السمات البسيطة
السمات البسيطة Simple attributesهي السمات المستمدة من مجالات القيمة ال َذري ة ،ويطل ق عليه ا
أي ًضا اسم السمات وحيدة القيمة ،single-valuedفمثاًل ،تجد في قاعدة بيان ات الش ركة COMPANYأن الاس م
والعمر هما نموذجان للسمات البسيطة.
6.4.3السمات المركبة
السمات المر َّكبة Composite attributesهي التي تتك ون من مجموع ة متسلس لة هرم ًي ا من الس مات،
فمثاًل ،قد يتكون العنوان باستخدام مثال قاعدة البيانات الشركة COMPANYوالمو َّض ح في الش كل الت الي ،من
51
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
رقم الشارع ،واسم الشارع ،واسم الحي ،حيث يُم َّثل بالطريقة التالية :العنوان = {" + 59ش ارع خال د بن الولي د"
" +حي القنوات"}.
الشكل :6.3مثال للسمات المركبة
6.4.4السمات متعددة القيم
السمات متعددة القيم Multivalued attributesهي ال تي تحم ل مجموع ًة من القيم لك ل كي ان ،فمثاًل ،
يمكن أن تحمل سمة الدرجات العلمية degreesلموظف مع َّين في قاعدة بيان ات الش ركة COMPANYالعدي د
من القيم ،مثل :دكتوراه ،PhDالجامعة العربية للعلوم ،إجازة في العلوم BScكما هو مو َّضح في الشكل التالي:
52
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
الشكل :6.4مثال على السمات متعددة القيم
6.4.5السمات المشتقة
السمات المشتقة Derived attributesهي سمات تحت وي على قيم محس وبة من س مات أخ رى ،فمثاًل ،
يمكن اش تقاق العم ر في الش كل الت الي من ت اريخ الميلاد ،يس مى ت اريخ الميلاد في ه ذه الحال ة س مة
مخزنة ،stored attributeوهي التي تُحفظ ماديًا لقاعدة البيانات.
الشكل :6.5مثال على ال ِسمات المشتقة
53
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
6.5المفاتيح
يُ َع ّد المفتاح keyأحد القيود المهمة التي يجب وجودها في جميع الكيانات ،وهو عبارة عن سمة أو مجموع ة
من السمات التي تُستخدم قيمها لتعريف كيان منفصل individual entityتعري ًفا فري ًدا في مجموعة الكيانات.
6.5.1أنواع المفاتيح
هناك عدة أنواع من المفاتيح ،نذكر منها:
ا .المفتاح المرشح
يُ َع ّد المفتاح المر َّشح candidate keyمفتا ًحا بسي ًطا أو مر َّك ًبا ،كما يكون فري ًدا وبس ي ًطا ،وه و فري د لأن ه لا
يمكن أن يكون لصفين المفتاح المر َّشح نفسه في الجدول في أ ّي وقت ،فمثاًل ،تكون المفاتيح المر َّشحة الممكنة
في كيان الموظف الموجود في قاعدة البيانات ،COMPANYوالذي يتكون من السمات التالية :معرِّف الموظف،
الاسم الأول ،اسم العائلة ،رقم التأمين الاجتماعي ،SINالعنوان ،الهاتف ،تاريخ الميلاد ،ال راتب ،مع رِّف القس م،
هي ما يلي:
• رقم التأمين الاجتماعي ،SINأو معرف الموظف .EID
• الاسم الأول واسم العائلة ،بافتراض عدم وجود شخصين في الشركة لهما الاسم نفسه.
• اسم العائلة ومعرِّف القسم ،بافتراض عدم عمل شخصين لهما اسم العائلة نفسه في القسم نفسه.
ب .المفتاح المركب
يتك ون المفت اح الم ر َّكب composite keyمن س متين أو أك ثر ،ويستحس ن الإبق اء على الح د الأدنى من
ال ِسمات فيه .باستخدام المثال السابق نفسه ،تكون المفاتيح المر َّكبة الممكنة هي:
• الاسم الأول واسم العائلة ،بافتراض عدم وجود شخصين في الشركة لهما الاسم نفسه.
• اسم العائلة ومعرِّف القسم ،بافتراض عدم عمل شخصين لهما اسم العائلة نفسه في القسم نفسه.
ج .المفتاح الرئيسي
المفتاح الرئيسي primary keyهو مفتاح مر َّشح candidate keyيُح َّدد بواس طة مص مم قاع دة البيان ات
لاستخدامه على أساس آلية تعريف لمجموعة الكيانات بأكملها ،كما يجب أن يُح ِّدد أسطر الجدول تحدي ًدا فري ًدا،
ولا يمكن تركه فار ًغا.
يُش ار إلى المفت اح الرئيس ي في نم وذج الكي ان والعلاق ة ER modelعن طري ق وض ع خ ط تحت الس مة
التي تُم ِّثله.
54
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
• يُح َّدد مفتاح مر ِّشح بواس طة مص مم قاع دة البيان ات لتحدي د أس طر الج دول تحدي ًدا فري ًدا ،ولا يمكن
تركه فار ًغا.
يُختار مفتاح مع ِّين من ِق َب ل مص مم قاع دة البيان ات لاس تخدامه على أس اس آلي ة تعري ف لمجموع ة •
الكيانات بأكملها ،ويُشار إلى هذا المفتاح بالمفتاح الرئيس ي ،primary keyكم ا يُش ار إلي ه عن طري ق
وضع خط تحت السمة المم ِّثلة له في نموذج الكيان والعلاقة .ER model
إذا أخذنا المثال التالي ،يتكون ك ل ص ف في ج دول الموظ ف من ( ،EIDالاس م الأول ،اس م العائل ة،SIN ،
العنوان ،الهاتف ،تاريخ الميلاد ،الراتب ،معرف القسم) ،فإن المفتاح الرئيسي هو .EID
د .المفتاح الثانوي
المفتاح الثانوي secondary keyهو سمة تُستخ َدم استخدا ًما صار ًما لأغراض الاس ترجاع ،ويمكن أن يك ون
هذا المفتاح مرك ًبا من عدة سمات مثل أن يتكون من الهاتف واسم العائلة م ًعا.
ه .المفتاح البديل
المفاتيح البديلة Alternate keysهي المفاتيح المر َّشحة التي لم تُستخ َدم على أساس مفتاح رئيسي.
و .المفتاح الخارجي
يُ َع ّد المفت اح الخ ارجي - foreign keyأو FKاختص ا ًرا -س م ًة موج ود ًة في ج دول مع َّين بحيث تش ير إلى
المفتاح الرئيسي في جدول آخر ،أو يمكن تركه فار ًغا ،ويجب أن تكون ك ل من المف اتيح الخارجي ة والرئيس ية من
ن وع البيان ات نفس ه ،فمثاًل يُم ِّثل ُمع رِّف القس م DepartmentIDالمفت اح الخ ارجي ض من قاع دة بيان ات
الشركة ،COMPANYأي كما يلي:
• جدول الموظف ( Employeeمعرف الموظف ،EIDالاسم الأول ،اسم العائل ة ،رقم الت أمين الاجتم اعي
،SINالعنوان ،الهاتف ،تاريخ الميلاد ،الراتب ،معرف القسم).
6.5.2القيم الفارغة Nulls
تُ َع ّد القيم ة الفارغ ة Nullرم ًزا خا ًص ا ليس ل ه علاق ة بن وع بيان ات مح َّدد ،مم ا يع ني أن ه إم ا غ ير
معروف unknownأو غير قابل للتطبيق ،inapplicableولا يعني صفرًا أو فرا ًغا ،ومن صفات هذه القيمة:
• لا توجد بيانات محددة لإدخالها.
• لا يمكن تواجدها في المفتاح الرئيسي.
• يجب تجنبها في جميع السمات الأخرى.
• يمكنها تمثيل ما يلي:
55
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
◦ قيمة سمة غير معروفة.
◦ قيمة سمة معروفة ،ولكنها مفقودة.
◦ شرط "غير قابل للتطبيق".
• يمكنها تسبيب العديد من المشاكل عند استخدام بعض الدوال ،مثل COUNT :و AVERAGEو .SUM
• يمكنها تسبيب مشاكل منطقية عند ربط الجداول العلائقية ببعضها البعض.
تكون نتيجة عملية الموازنة القيمة الفارغة nullعندما يكون أحد الحدود قيم ًة فارغ ًة ،nullكما تكون النتيجة قيم ًة
فارغ ًة nullفي العمليات الحسابية إذا كان أحد الحدود قيم ًة فارغ ًة nullباستثناء الدوال التي تتجاهل هذه القيمة.
6.5.3مثال لكيفية استخدام القيمة الفارغة null
استخدم جدول الرواتب Salary_tblالتالي لمعرفة كيفية استخدام القيمة الفارغة .null
emp# JopName Salary Commission
E10 Sales 12500 32090
E11 Null 25000 8000
E12 Sales 44000 0
E13 Sales 44000 Null
على أساس خطة أولى ،ابدأ بإيجاد جميع الموظفين في عمود الموظ ف emp#في قس م المبيع ات Sales
تحت عمود اسم الوظيفة ،jobNameممن تزيد رواتبهم salaryمع عمولتهم commissionعن .30000
SELECT emp# FROM Salary_tbl
WHERE jobName = Sales AND
(commission + salary) > 30,000
يكون ناتج العملية أعلاه الموظ َفين ،E10و ،E12إذ لا تتض من ه ذه النتيج ة الموظ ف E13بس بب القيم ة
الفارغة nullفي عمود العمولة ،commissionحيث ستكون النتيجة القيمة الفارغة nullعن د جم ع ال راتب م ع
العمولة ،لذا سنحتاج إلى إلقاء نظرة على الحقول بصورة منفصلة للتأك د من تض مين الص ف ال ذي يحت وي على
القيمة الفارغة ،nullكما هو مبين في الحل أدناه.
SELECT emp# FROM Salary_tbl
WHERE jobName = Sales AND
(commission > 30000 OR
salary > 30000 OR
(commission + salary) > 30,000
56
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
سيكون ناتج العملية أعلاه هو الموظ ِفين E10و E12و .E13
6.5.4العلاقات
العلاقات Relationshipsهي الرابط الذي يرب ط الج داول ببعض ها البعض في قاع دة البيان ات ،وتُس تخ َدم
لربط المعلومات ذات الصلة بين الجداول.
تعتمد قوة العلاقة Relationship strengthعلى كيفية تعريف المفتاح الرئيسي للكيانات المترابطة ،إذ تُ َع ّد
العلاقة ضعيفة ،weakأو غير محددة non-identifyingإذا كان المفتاح الرئيسي للكيان المرتب ط لا يحت وي على
المفتاح الرئيسي للكيان الأب .parent entityوتتضمن قاعدة بيانات الشركة Companyبعض الأمثلة التالية:
• جدول العميل Customerيحوي الحقلين التاليين:
◦ CustIDرقم العميل
◦ CustNameاسم العميل
• جدول الطلب Orderيحوي الحقول التالية:
◦ OrderIDرقم الطلب
◦ CustIDرقم العميل
◦ Dateتاريخ الطلب
يحتوي المفتاح الرئيسي للكيان المرتبط في العلاقة القوية أو المحددة على المفت اح الرئيس ي للكي ان الأب،
مثل التالي:
• جدول الدورة التدريبية Courseيحوي الحقول التالي:
◦ CrsCodeرمز الدورة
◦ DeptCodeرمز القسم
◦ Descriptionوصف الدورة
• جدول الصف Classيحوي الحقول التالية:
◦ CrsCodeرمز الدورة
◦ Sectionالقسم
◦ ClassTimeوقت الصف ...إلخ
57
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
6.5.5أنواع العلاقات
هناك عدة أنواع من العلاقات منها:
ا .علاقة واحد إلى متعدد
تُ َع ّد علاقة واح د إلى متع ِّدد - one to manyأو 1:Mاختص ا ًرا -الأس اس في أي تص ميم لقاع دة البيان ات
العلائقي ة ،وتوج د في جمي ع بيئ ات قواع د البيان ات العلائقي ة ،فمثاًل ،يحت وي القس م الواح د على العدي د من
الموظفين ،ويو ِّضح الشكل التالي علاقة أحد هؤلاء الموظفين بالقسم.
الشكل :6.6علاقة واحد إلى متعدد
ب .علاقة واحد إلى واحد
تُ َع ّد علاق ة واح د لواح د - one to oneأو 1:1اختص ا ًرا -علاق ة كي ان واح د بكي ان واح د آخ ر فق ط،
والعكس صحيح.
يُ َع ّد هذا النوع من العلاقات نو ًعا ناد ًرا ج ًدا في تصميم قواعد البيانات العلائقية ،ومن الممكن أن يشير وجود
ه ذه العلاق ة إلى انتم اء كي انَين بالفع ل إلى الج دول نفس ه ،فمثاًل ،يك ون الموظ ف في قاع دة بيان ات
الشركة COMPANYمرتب ًطا بزوجة واحدة ،وتكون الزوجة الواحدة مرتبط ًة بموظف واحد.
ج .علاقة متعدد إلى متعدد
ضع في بالك النقاط التالية عند التعامل مع علاقة متع َِدد إلى متع َِدد - many to manyأو M:Nاختصا ًرا:-
• لا يمكن تمثيلها بهذه الصورة -أي متع َِدد إلى متع َِدد -في النموذج العلائقي .relational model
• يمكن تحويلها إلى علاقتين من النوع واحد إلى متع ِّدد.
• يمكن تنفيذها عن طريق كسرها لمجموعة علاقات من نوع واحد إلى متع ِّدد.
58
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
• تنطوي على تنفيذ كيانات مر َّكبة.
• تُن ِشئ علاقتين أو أكثر من النوع واحد إلى متع ِّدد.
• يجب أن يحتوي جدول الكيان المر َّكب على المفاتيح الرئيسية للجداول الأصلية على الأقل.
• يحتوي جدول الربط على تكرارات متعددة لقيم المفتاح الخارجي.
• قد تُس َند سمات إضافية حسب الحاجة.
يمكن ك تجنب المش اكل الموج ودة في علاق ة متع ِّدد إلى متع ِّدد عن طري ق إنش اء كي ان
م ر َّكب ،composite entityأو كي ان جس ري ،bridge entityفمثاًل ،يمكن للموظ ف العم ل في العدي د من
المشاريع ،أو يمكن أن يعمل في المشروع الواح د العدي د من الم وظفين ،اعتم ا ًدا على قواع د العم ل؛ أو يمكن
للطالب أخذ العديد من الدروس ،كما يمكن للدرس الواحد أن يؤخذ بواسطة العديد من الطلاب.
يو ِّضح الشكل التالي جان ًبا آخ ًرا من علاقة ،M:Nحيث يك ون للموظ ف العدي د من ت واريخ البداي ة المتعلِّق ة
بمشاريع مختلفة ،لذلك نحتاج إلى ج دول رب ط JOINبحيث يحت وي على مع رِّف الموظ ف ،EIDوالرم ز ،Code
وتاريخ البداية .StartDate
الشكل :6.7للموظف العديد من تواريخ البدء المتعلقة بمشاريع مختلفة
إليك مثال على تعيين علاقة ثنائية من نوع متع ِّدد إلى متع ِّدد :M:N
• ح ِّدد علاقتين لكل علاقة ثنائية من نوع متع ِّدد إلى متع ِّدد ،ح ِّدد علاقتين.
• تمثل ،Aو Bنو َعين من الكيانات المشاركة في .R
• أنشئ علاقة جديدة Sلتمثيل .R
59
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
• تحت اج Sأن تتض من المف اتيح الرئيس ية الخاص ة بـ ،Aو ،Bحيث يمكن أن تك ون ه ذه م ًع ا المفت اح
الرئيس ي في الج دول ،Sأو يمكن أن تض اف له ا س مة بس يطة أخ رى في الج دول الجدي د Rلتك وين
المفتاح الرئيسي.
• تكون مجموعة المفاتيح الرئيسية لـ ،Aو Bالمفتاح الرئيسي لـ .S
د .العلاقة الأحادية -أو التكرارية-
العلاقة الأحادية - Unary relationshipوالتي تسمى العلاقة التكراري ة recursiveأي ًض ا -هي العلاق ة ال تي
توجد فيها علاقة بين تكرارات مجموعة الكيانات نفسها ،ويكون في هذه العلاق ة المفتاح ان الرئيس ي والخ ارجي
متماثلَين لكنهما يمثلان كيانين لهما أدوار مختلفة .تُ َع ّد مجموعة الكيان مجموع ًة من نوع مماثل من الكيانات.
الشكل :6.8العلاقات الأحادية (التكرارية)
يمكن إنشاء عمود منفصل بحيث يشير إلى المفت اح الرئيس ي لمجموع ة الكي ان نفس ها في بعض كيان ات
العلاقة الأحادية.
ه .العلاقة الثلاثية n-ary
العلاقة الثلاثية ternary relationshipهي نوع من العلاقات يضمن إنشاء علاقة متع ِّدد إلى متع ِّدد بين ثلاثة
جداول ،والشكل التالي هو مثال عن هذه العلاقة.
يشير مصطلح n-aryإلى جداول متع ِّددة في العلاقة ،وتذ َّكر أ ّن Nتكافئ manyأي .N = many
• لكل علاقة ( )n-aryحيث ،n > 2أنشئ جدواًل جدي ًدا لتمثيل تلك العلاقة.
• المفتاح الرئيسي للجدول الجديد هو مزيج من المفاتيح الرئيسية للكيانات المشاركة التي تمثل الج انب
المتع ِّدد .N
• تملك جميع الكيانات المشاركة في معظم حالات علاقة n-aryالطرف المتع ِّدد من جانبها.
60
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
الشكل :6.9العلاقة الثلاثية
6.6مصطلحات أساسية
• المفتاح البديل :alternate keyالمفاتيح البديلة هي جميع المفاتيح المر َّشحة التي لم تُستخ َدم على
أساس مفتاح رئيسي.
• المفتاح المر َّشح :candidate keyهو مفتاح بسيط أو مركب يتصف بأنه فريد أي لا يمكن أن يتكرر
وجوده في سطرين وأي ًضا أدنى minimalأي وجوده ضروري ومطلوب في كل الأعمدة المشتركة فيه.
• الكيانات المميزة :characteristic entitiesهي الكيانات التي توفر مزي ًدا من المعلومات حول
جدول آخر.
• السمات المركَّبة :composite attributesهي السمات التي تتكون من العديد من السمات
المتسلسلة هرم ًيا.
• المفتاح المركَّب :composite keyيتك ّون المفتاح المركب من سمتين أو أكثر ،ويستحسن الإبقاء على
الحد الأدنى من ال ِسمات فيه.
• الكيانات المعت ِمدة :dependent entitiesهي الكيانات التي تعتمد على جداول أخرى حتى يكون
لها معنى.
61
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
• السمات المشتقة :derived attributesهي التي تحتوي على قيم محسوبة من سمات أخرى.
• الكيانات المشتقة :derived entitiesانظر الكيانات المعت ِمدة.
• ُ :EIDمعرِّف الموظف.
• الكيان :entityشيء ما أو كائن ما في العالم الحقيقي ،وله وجود مستقل ،ويمكن تمييزه عن الكائنات
الأخرى.
• نموذج الكيان والعلاقة لتمثيل البيانات أو :ERيسمى أي ًضا تخطيط الكيان والعلاقة ،ويُم َّثل بواسطة
مخططات الكيان والعلاقة ،والتي هي مناسبة تما ًما لنمذجة البيانات للاستخدام مع قواعد البيانات.
• تخطيط الكيان والعلاقة :entity relationship schemaانظر إلى نموذج الكيان والعلاقة لتمثيل
البيانات.
• مجموعة الكيان :entity setتجميعة من الكيانات من النوع نفسه في وقت مع َّين.
• نوع الكيان :entity typeتجميعة من الكيانات المتشابهة.
• المفتاح الخارجي foreign keyأو :FKهو سمة موجودة في جدول مع َّين بحيث تشير إلى المفتاح
الرئيسي في جدول آخر ،أو يمكن تركه فار ًغا .null
• الكيان المستقل :independent entityالكيانات المستقلة هي اللبنات الرئيسية لبناء قواعد
البيانات ،ولا يعتمد وجودها على أي كيانات أخرى.
• النواة :kernelانظر الكيان المستقل .independent entity
• المفتاح :keyسمة أو مجموعة من السمات التي تُستخدم قيمها لتعريف كيان منفصل individual
entityتعري ًفا فري ًدا في مجموعة الكيانات.
• السمات متعددة القيم :multivalued attributesهي التي لها مجموعة من القيم لكل كيان.
• :n-aryعلاقة بين جداول متع ِّددة.
• القيمة الفارغة :nullرمزًا خا ًصا ليس له علاقة بنوع بيانات مح َّدد ،مما يعني أنه إما غير
معروف unknownأو غير قابل للتطبيق ،inapplicableولا يعني صف ًرا أو فرا ًغا
• العلاقات :relationshipsهي الرابط الذي يربط الجداول ببعضها البعض في قاعدة البيانات،
وتُستخ َدم لربط المعلومات ذات الصلة بين الجداول.
• قوة العلاقة :relationship strengthتُح َّدد قوة العلاقة استنا ًدا إلى كيفية تعريف المفتاح الرئيسي
للكيانات ذات الصلة.
62
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
• المفتاح الثانوي :secondary keyهو سمة تُستخ َدم استخدا ًما صار ًما لأغراض الاسترجاع.
• السمات البسيطة :simple attributesمستمدة من مجالات القيم الذرية.
• :SINرقم التأمين الاجتماعي.
• السمات ُأحادية القيمة :single-valued attributesانظر السمات البسيطة.
• السمة المخزنة :stored attributeهي السمة التي تُحفظ ماديًا في قاعدة البيانات.
• العلاقة الثلاثية :ternary relationshipهي نوع من العلاقات التي تضمن إنشاء علاقة متع ِّدد إلى
متع ِّدد بين ثلاثة جداول.
• العلاقة الأحادية :unary relationshipهي العلاقة التي توجد فيها علاقة بين تكرارات مجموعة
الكيانات نفسها وتدعى أي ًضا علاقة تكرارية .recursive relationship
6.7تمارين
.1ما المفهومان اللذان يعتمد عليهما نموذج الكيان والعلاقة ER؟
.2تتكون قاعدة البيانات التالية من جدولين ،لذلك أجب على الأسئلة التالية عبر استخدامها:
◦ ح ِّدد المفتاح الرئيسي لكل جدول.
◦ ح ِّدد المفتاح الخارجي في الجدول .PLAY
◦ ح ِّدد المفاتيح المر َّشحة في كلا الجدولين.
◦ ارسم نموذج الكيان والعلاقة .ER
◦ هل يحقق الجدول PLAYسلام ًة مرجعي ًة؟ ول َم؟ أو ل َم لا؟
الجدول :DIRECTOR
DIRNUM DIRNAME DIRDOB
100 J_.Broadway 01/08/39
101 J.Namath 11/12/48
102 W.Blake 06/15/44
63
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
الجدول :PLAY
PLAYNO PLAYNAME DIRNUM
Cat on a cold bare roof 102
1001 Hold the mayo, pass the bread 101
1002 I never promised you coffee 102
1003 Silly putty goes to Texas 100
1004 See no sound, hear no sight 101
1005
.3عرف المصطلحات التالية ،حيث قد تحتاج إلى البحث في الإنترنت.
◦ المخطط .schema
◦ لغة المضيف .host language
◦ اللغات الفرعية للبيانات .data sublanguage
◦ لغة تعريف البيانات .data definition language
◦ العلاقة اُألحادية .unary relation
◦ المفتاح الخارجي .foreign key
◦ العلاقة الافتراضية .virtual relation
◦ الربط .connectivity
◦ المفتاح المر َّكب .composite key
◦ جداول الربط .linking table
.4تضمن قاعدة بيانات شركة PREالجداول الثلاثة أدناه ،لذلك أجب عن الأسئلة التالية مستخد ًما إياها:
◦ ح ِّدد المفتاح الرئيسي والمفتاح الخارجي في كل جدول.
◦ هل يحقق الجدول TRUCKسلام ًة مرجعي ًة؟ اشرح إجابتك.
◦ ما نوع العلاقة بين الجدولين ،TRUCKو.BASE
◦ كم عدد الكيانات في الجدول .TRUCK
◦ ح ِّدد المفاتيح المر َّشحة في الجدول .TRUCK
64
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
الجدول :TRUCK
TNUM BASENUM TYPENUM TMILES TBOUGHT TSERIAL
1001 501 1 5900.2 11/08/90 as-125
1002 502 2 64523.9 11/08/90 ac-213
1003 501 2 32116.0 09/29/91 ac-215
1004 2 3256.9 01/14/92 ac-315
الجدول :BASE
BASENUM BASECITY BASESTATE BASEPHON BASE MGR
501 Dallas TX 893-9870 J. Jones
502 New York NY 234-7689 K. Lee
الجدول :TYPE
TYPENUM TYPEDESC
1 single box, double axle
2 tandem trailer, single axle
.5لنفترض أنك تستخدم قاعدة البيانات أدناه والمكونة من جدولين ،أجب عن الأسئلة الآتية:
◦ ح ِّدد المفتاح الرئيسي في كل جدول.
◦ ح ِّدد المفتاح الخارجي في الجدول .BookOrders
◦ هل هناك أي مفاتيح مر َّشحة في أي من الجدولين؟
◦ ارسم نموذج الكيان والعلاقة .ER
◦ هل يحقق الجدول BookOrdersالسلامة المرجعية؟
◦ هل تحتوي الجداول على بيانات مكررة؟ ما هي؟
الجدول :Customer
CustID CustName AccntNo
100 Joe Smith
101 Andy Blake 010839
102 Sue Brown 111248
061544
65
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
الجدول :BookOrders
OrderlD Title CustID Price
1001 The Dark Tower 102 12.00
1002 Incubus Dreams 101 19.99
1003 Song of Susannah 102 23.00
1004 The Time Traveler's Wife 100 21.00
1005 The Dark Tower 101 12.00
1006 Tanequil 102 15.00
1007 Song of Susannah 101 23.00
.6بالنظر إلى جدول الطالب الموضح في الشكل أدناه ،اكتب قائم ة بجمي ع المف اتيح المر َّش حة الممكن ة،
واذكر سبب اختيارك لكل واحد من المفاتيح.
الشكل :6.10السؤال السادس
.7أجب عن الأسئلة التالية مستخد ًما مخطط الكيان والعلاقة ERDلقاعدة بيانات المدرس ة الموض حة في
الشكل أدناه.
◦ ح ِّدد جميع الأنوية والكيانات المعت ِمدة والمميزة في مخطط الكيان والعلاقة .ERD
◦ أي من الجداول لها علاقات ضعيفة ،وأيها لديها علاقات قوية؟
◦ بالنظر إلى كل جدول من جداول قاع دة بيان ات المدرس ة ،م ا هي الس مات ال تي يمكنه ا أن تأخ ذ
القيمة الفارغة ،Nullولماذا؟
66
تصميم قواعد البيانات نموذج الكيان والعلاقة ERوتمثيل البيانات
◦ ما هي الجداول التي ُأن ِشئت على أساس نتيجة لعلاقات متع ِّدد إلى متع ِّدد؟
الشكل :6.11السؤال السابع
67
.7قواعد السلامة وقيودها لضمان
سلامة البيانات
تُ َع ّد القيود Constraintsميز ًة مهم ًة ج ًدا في النموذج العلائقي relational modelالذي يدعم نظري ًة محدد ًة
للقيود ال ُمط َّبقة على ال ِس مات attributesأو الج داول ،tablesكم ا تُ َع ّد ه ذه القي ود مفي د ًة بس بب س ماحها
لمصمم قواعد البيانات بتحديد دلالات semanticsالبيانات ،فهذه القيود هي القواعد التي تجبر نظم إدارة قواعد
البيان ات - Database management systemsأو DBMSsاختص ا ًرا -على التحق ق من تواف ق البيان ات مع
هذه الدلالات.
7.1سلامة النطاق Domain Integrity
يُ َع ّد النطاق قي ًدا من قيود النموذج العلائقي ،حيث يُق ّيد قيم السمات في العلاقة ،لكن هناك دلالات واقعية
للبيانات التي لا يمكن تحديدها إذا اُستخ ِدمت مع قيود النطاق فقط ،لذلك نحتاج إلى ط ر ٍق أك ثر تحدي ًدا لبي ان
قيم البيانات المسموح بها أو غير المسموح بها والتنس يق المناس ب لك ل س مة ،فمثاًل ،يجب أن يك ون مع رّف
الموظ ف - Employee IDأو EIDاختص ا ًرا -في قاع دة البيان ات فري ًدا ،أو يجب أن يك ون ت اريخ ميلاد
الموظف Birthdateضمن المجال [ ،]Jan 1, 1950 - Jan 1, 2000حيث تو َّفر هذه المعلومات ضمن تعليمات
منطقية تسمى قيود السلامة ،integrity constraintsويوجد عدة أنواع من قيود السلامة كما هو مو َّضح أدناه.
7.1.1سلامة الكيان Entity integrity
يجب احتواء كل جدول على مفتاح رئيسي primary keyلضمان سلامة الكي ان ،ولا يمكن احت واء المفت اح
الرئيسي PKأو أي جزء منه على قيم فارغة ،nullحيث لا يمكننا تحديد بعض الص فوف rowsعن دما تك ون قيم
المفت اح الرئيس ي فارغ ة ،فمثاًل ،لا يمكن أن يك ون اله اتف Phoneفي ج دول الموظ ف EMPLOYEEمفتا ًح ا
رئيس ًيا نظ ًرا لعدم امتلاك بعض الأشخاص أ ّي هاتف.
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
7.1.2السلامة المرجعية Referential integrity
تتطلب السلامة المرجعية وجود مفتاح رئيسي مقابل للمفتاح الخارجي ،foreign keyوإلا فيجب أن يك ون
فار ًغا .ويُح َّدد هذا القيد بين جدولين أي الجدول الأب والجدول الابن؛ حيث يحا ِفظ على المطابق ة بين الص فوف
في هذين الجدولَين ،وهذا يعني أن المرجع من ص ٍف في جدول إلى جدول آخر يجب أن يكون صالحًا.
فيما يلي مثال على قيود السلامة المرجعية في قاعدة بيانات العملاء/الطلب ات Customer/Orderالخاص ة
بالشركة :Company
• جدول العميل Customerيحوي الحقلين التاليين:
◦ CustIDرقم العميل
◦ CustNameاسم العميل
• جدول الطلب Orderيحوي الحقول التالية:
◦ OrderIDرقم الطلب
◦ CustIDرقم العميل
◦ Dateتاريخ الطلب
يجب فرض السلامة المرجعية لضمان عدم وج ود س جلات معزول ة أو يتيم ة ،orphan recordsفالس جل
المعزول هو السجل الذي تكون قيمة مفتاح ه الخ ارجي FKغ ير موج ودة في الكي ان المقاب ل -أي الكي ان ال ذي
يحوي المفتاح الرئيسي ،PKوتذ ّكر أ ّن عملية الضم joinتكون بين المفتا َحين الرئيسي PKوالخارجي .FK
ينص قيد السلامة المرجعي ة في المث ال الس ابق على وج وب تط ابق CustIDفي ج دول الطلب ات Order
مع CustIDصالح في جدول العملاء .Customer
تملك معظم قواعد البيانات العلائقية س لامة مرجعي ة تص ريحية ،declarative referential integrityأي
يجري إعداد قيود السلامة المرجعية عند إنشاء الجداول.
فيما يلي مثال آخر على قاعدة بيانات صفوف دراسية/مقرَّرات :Course/Class
• جدول الدورة التدريبية Courseيحوي الحقول التالي:
◦ CrsCodeرمز الدورة
◦ DeptCodeرمز القسم
◦ Descriptionوصف الدورة
• جدول الصف Classيحوي الحقول التالية:
69
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
◦ CrsCodeرمز الدورة
◦ Sectionالقسم
◦ ClassTimeوقت الصف
ينص قيد السلامة المرجعية هنا على وجوب تطابق المفتاح الخارجي CrsCodeفي جدول Classمع مفتاح
رئيس ي CrsCodeص الح في ج دول ،Courseحيث لا يكفي في ه ذه الحال ة أن تش كِّل الس متان CrsCode
و Sectionفي جدول Classالمفتاح الرئيسي ،PKإذ يجب علينا فرض السلامة المرجعية.
يجب امتلاك المفتاح الرئيسي PKوالمفتاح الخارجي FKأنواع البيانات نفسها ،كما يجب أن يأتي ا من نفس
النط اق عن د إع داد الس لامة المرجعي ة ،وإلا فلن يس مح نظ ام إدارة قاع دة البيان ات العلائقي ة RDBMSبعملية
الضم .join
يُ َع ّد نظام RDBMSنظام قاعدة بيانات شائع ،حيث يعتمد على النموذج العلائقي الذي قدمه إدجار كود (E.F.
)Coddمن مختبر أبحاث سان خوسيه ( )San Joseالتابع لشركة ،IBMكما تُ َع ّد أنظمة قواعد البيانات العلائقي ة
أسهل في الاستخدام والفهم من أنظمة قواعد البيانات الأخرى.
7.1.3السلامة المرجعية في نظام مايكروسوفت أكسس
يج ري إع داد الس لامة المرجعي ة في نظ ام مايكروس وفت أكس س MS Accessمن خلال ض م المفت اح
الرئيسي PKالذي هو معرّف العميل CustIDفي جدول العملاء إلى معرّف العميل CustIDفي ج دول الطلب ات
،Orderويو ِّضح الشكل التالي طريقة عم ل ذل ك على شاش ة تحري ر العلاق ات Edit Relationshipsفي نظ ام
مايكروسوفت أكسس:
70
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
7.1.4السلامة المرجعية في الإصدار Transact-SQLمن لغة SQL
تُض َبط الس لامة المرجعي ة في الإص دار ( Transact-SQLاختص ا ًرا )T-SQLالمس تخدمة في
خادم MS SQL Serverعند إنشاء جدول الطلبات Orderباستخدام المفتاح الخارجي ،FKحيث تُظ ِهر التعليمات
المدرجة أدناه المفتاح الخارجي FKفي جدول الطلبات Orderالذي يك ون مرج ًع ا إلى المفت اح الرئيس ي PKفي
جدول العملاء :Customer
CREATE TABLE Customer
( CustID INTEGER PRIMARY KEY,
) )CustName CHAR(35
CREATE TABLE Orders
( OrderID INTEGER PRIMARY KEY,
CustID INTEGER REFERENCES Customer(CustID),
) OrderDate DATETIME
7.1.5قواعد المفاتيح الخارجية
يمكن إضافة قواعد مفاتيح خارجية إضافية عند ضبط السلامة المرجعية مثل ما نفعله بالصفوف الأبناء -في
جدول -Ordersعندما يُح َذف أو يُغ َّير -أي يُح َّدث -السجل وهو جزء من الجدول الأب -Customer-وال ذي يمل ك
مفتا ًحا رئيس ًيا ،PKفمثاًل ،تَعرض نافذة تحرير العلاقات في MS Accessفي الشكل الس ابق خي ارين إض افيين
لقواعد المفتاح الخارجي ،FKهما :التحديث المتسلسل أو التع اقبي ،Cascade Updateوالح ذف المتسلس ل
،Cascade Deleteفإذا لم يُح َّدد هذان الخياران ،فسيمنع النظام حذف أو تحديث قيم المفتاح الرئيس ي PKفي
جدول الأب -أي جدول العملاء -Customerفي حالة وجود سجل ابن ،فالس جل الابن ه و أي س جل م ع مفت اح
رئيسي PKمطابق.
يوجد خيار إضافي في بعض قواعد البيانات عند تحديد خيار الح ذف ويس مى ،Set to Nullحيث يُح َذف
صف المفتاح الرئيسي PKفي هذا الاختي ار ،ولكن يُض َبط المفت اح الخ ارجي FKفي الج دول الابن على القيم ة
الفارغة ،NULLفعلى الرغم من أ ّن هذا يؤدي إلى إنشاء صف يتيم ،إلا أنه أمر مقبول.
7.2قيود المؤسسة Enterprise Constraints
يشار إلى قي ود المؤسس ة أحيانً ا ب القيود الدلالي ة ،semantic constraintsوهي قواع د إض افية يح ددها
المستخدمون أو مسؤولو قاعدة البيانات ،كما يمكنها الاستناد إلى جداول متعددة ،وفيما يلي بعض الأمثلة عنها:
• يمكن للصف الدراسي classضم ثلاثين طال ًبا على أساس حد أقصى.
71
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
• يمكن للمد ّرس teacherتدريس أربعة صفوف في الفصل الواحد على أساس حد أقصى.
• لا يمكن للموظف employeeالمشاركة في أكثر من خمسة مشاريع.
• لا يمكن لراتب الموظف تجاوز راتب مديره.
7.3قواعد العمل Business Rules
نحصل على قواعد العمل من المستخ ِدمين عن د جم ع المتطلب ات ،gathering requirementsكم ا تُ َع ّد
عملية جمع المتطلبات عملي ًة مهم ًة للغاية ،ويجب على المستخ ِدم أن يتحقق من نتائجها قبل بناء تصميم قاعدة
البيانات ،فإذا كانت قواعد العمل غير صحيحة ،فسيكون التصميم غير ص حيح ،وفي النهاي ة لن يعم ل التط بيق
على النحو الذي تو ّقعه المستخ ِدمون ،وفيما يلي بعض الأمثلة عن قواعد العمل ،وهي:
• يمكن للمد ّرس تدريس طلاب متعددين.
• يمكن للصف الدراسي امتلاك 35طال ًبا على أساس حد أقصى.
• يمكن تدريس ال ُمقرَّر courseعدة مرات ،ولكن يدرِّسه مدرِّس واحد فقط.
• لا يد ّرس جميع المدرِّسين صفو ًفا دراسية.
7.3.1تعددية العلاقة Cardinalityوالارتباط connectivity
تُستخ َدم قواعد العمل لتحديد عددية العلاقة والارتباط ،حيث تصف عددية العلاقة Cardinalityالعلاق ة بين
جدولي بيانات من خلال التعبير عن الحد الأدنى والحد الأقصى لعدد مرات حدوث الكيان المرتبط بح دوث كي ا ٍن
آخر ذي صلة ،ويم ّكنك الشكل التالي من رؤي ة أن عددي ة العلاق ة مم َّثل ة من خلال العلام ات الداخلي ة على رم ز
العلاقة ،حيث تكون درجة العلاقة Cardinalityهي 0على اليمين بينما هي 1على اليسار.
72
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
يمثل الرمز الخارجي لرمز العلاقة الارتباط Connectivityبين الجدولين ،فالارتب اط ه و العلاق ة بين ج دولين
مثل علاقة واحد إلى واحد ،one to oneأو واحد إلى متعدد one to many؛ والمرة الوحي دة ال تي يك ون فيه ا
الارتباط صفرًا هي عندما يكون للمفتاح الخارجي FKقيمة فارغة .null
يوجد ثلاثة خيارات للعلاقة بين هذه الكيانات عندما يتعلق الأمر بالمشاركة ،وهي ،0 :أو ،1أو متعدد ،many
فمثاًل ،قيمة الارتب اط Connectivityهي 1في الش كل الس ابق على الج انب الخ ارجي الأيس ر من ه ذا الخ ط،
ومتعدد على الجانب الخارجي الأيمن.
يظهر الشكل التالي الرمز الذي يمثل علاقة واحد إلى متعدد :one to many
يعرض الشكل الآتي كاًل من العلامات الداخلية -التي تمثل عددية العلاقة -Cardinalityوالعلامات الخارجي ة
-التي تمثل الارتباط ،-Connectivityإذ يُقرأ الجانب الأيسر من هذا الرمز على أن الحد الأدنى 1والحد الأقصى ،1
بينما يُقرأ الجانب الأيمن على النحو التالي :الحد الأدنى 1والحد الأقصى متعدد.
7.4أنواع العلاقات
يشير السطر ال ذي يرب ط ج دولين في مخط ط الكي ان والعلاق ة - entity relationship diagramأو ERD
اختصا ًرا -إلى نوع العلاقة بين الجدولين؛ فهي إما وثيقة أو معرَّفة identifyingأو غير وثيقة .non-identifying
73
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
العلاقة الوثيقة هي خط متصل بحيث يحتوي المفتاح الرئيسي PKعلى المفتاح الخارجي ،FKكما يش ار إلى
العلاقة الغير وثيقة بخط متقطع مع عدم وجود المفتاح الخارجي FKضمن المفتاح الرئيسي .PK
7.4.1العلاقات الاختيارية
يمكن أن يكون للمفتاح الخارجي FKقيم ًة فارغ ًة في العلاقة الاختياري ة أو لا يحت اج الج دول الأب إلى وج ود
جدول ابن مطابق.
نو ًعا مك َّونًا من صفر وثلاث ب روزات -تش ير إلى متع دد -وال ذي يُف َّس ر يوضح الرمز المب َّين في الشكل
على أنه علاقة صفر أو متعدد .zero OR many
إذا نظرت إلى جدول الطلبات Order tableعلى الجانب الأيمن من الشكل الآتي مثاًل ،فستلاحظ عدم حاجة
العميل customerإلى تقديم طلب ليكون عمياًل ،أي أن الجانب المتعدد اختياري ،ويو ِّضح الشكل التالي المث ال
السابق عن كيفية استخدام رمز العلاقة الاختيارية صفر إلى متعدد :zero to many
74
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
يمكن أي ًضا قراءة رمز العلاقة في الشكل السابق على النحو التالي:
• الجانب الأيسر :يجب احتواء كيان الطلب order entityعلى كيان واحد مرتبط على أساس حد أدنى في
جدول العميل ،Customer tableوكيان واحد مرتبط على أساس حد أقصى.
• الج انب الأيمن :يمكن للعمي ل ع دم تق ديم طلب ات (أي ص فر طلب) على أس اس ح د أدنى ،أو تق ديم
طلبات متعددة على أساس حد أقصى.
نو ًع ا آخ رًا من رم وز العلاق ة الاختياري ة بص فر وواح د ،أي علاق ة ص فر أو يو ِّض ح الش كل
واحد ،zero OR oneحيث جانب الواحد اختياري.
يو ِّضح الشكل التالي مثااًل عن كيفية استخدام رمز العلاقة الاختيارية صفر إلى واحد :zero to one
75
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
7.4.2العلاقات الإلزامية Mandatory relationships
يتطلب حدوث كيان واحد حدوث كيان مقابل في العلاقة الإلزامية .يُظ ِهر رمز هذه العلاقة علاق ة واح د فق ط
one and only oneكما في الشكل ،أي أن الجانب واحد one sideإلزامي.
يو ِّضح الشكل مثااًل عن كيفية استخدام رمز العلاقة الإلزامية واحد فقط :one and only one
يو ِّضح الشكل رمز علاقة واحد إلى متع دد one to manyحيث يك ون الج انب المتع دد many side
إلزام ًيا ،ويو ِّضح الشكل التالي مثااًل عن كيفية استخدام رمز العلاقة الإلزامية واحد إلى متعدد:
76
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
رأينا أن الجانب الداخلي من رمز العلاقة المو َّضح على الج انب الأيس ر من الرم ز في الش كل الآتي يمكن أن
يكون له تعددية العلاقة cardinalityقيمتها 0وارتباط connectivityمتعدد كما هو مو َّض ح على الج انب الأيمن
ولا يمكن أن يك ون لدي ه من الرمز في الشكل التالي ،أو ارتباط قيمته واحد وه و غ ير مو َّض ح في الش كل
ارتباط قيمته ،0كما هو في الشكل ،إذ يمكن أن يكون الارتباط 1فقط.
تُظ ِهر رموز الارتباط الحدود القصوى ،فإذا أظهر رمز الارتباط على الجانب الأيسر القيم ة ،0فلن يك ون هن اك
ارتباط بين الجداول.
فيما يلي طريقة قراءة رمز العلاقة مثل الرمز الموجود في الشكل الآتي:
• يجب العث ور على مع رِّف العمي ل CustIDفي ج دول الطلب ات Order tableوفي ج دول العملاء
Customer tableأي ًضا بحد أدنى 0وبحد أقصى 1مرة.
• تعني القيمة 0أن معرِّف العميل CustIDفي جدول الطلبات Order tableقد تكون قيمته فارغة .null
• تشير القيمة 1الموجودة أقصى اليسار -أي قبل القيمة 0مباشر ًة ال تي تمث ل الارتب اط -إلى أن ه إذا ك ان
هناك معرِّف عميل CustIDفي جدول الطلبات ،Order tableفيمكن وجود ه ذا المع رِّف في ج دول
العملاء Customer tableمر ًة واحد ًة فقط.
• يمكنك افتراض شيئين عندما ترى الرمز 0لتعددية العلاقة :cardinality
.1يسمح المفتاح الخارجي FKفي جدول الطلبات Order tableبوجود القيم الفارغة.
.2ليس المفتاح الخارجي FKجز ًءا من المفتاح الرئيسي PKلأن ه يجب ألا تحت وي المف اتيح الرئيس ية
على قيم فارغة .null
77
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
7.5مصطلحات أساسية
• قواعد العمل :business rulesنحصل عليها من المستخ ِدمين عند جمع المتطلبات ،وتُستخ َدم
لتحديد عددية العلاقة .cardinality
• عددية العلاقة :cardinalityتُع ِبّر عن الحد الأدنى والحد الأقصى لعدد مرات حدوث الكيان المرتبط
بحدوث كيان ذي صلة.
• الارتباط :connectivityوهو يم ِّثل العلاقة بين جدولين ،مثل :علاقة واحد إلى واحد ،أو علاقة واحد
إلى متعدد.
• القيود :constraintsتُم ِّثل القواعد التي تجبر نظم إدارة قواعد البيانات DBMSsعلى التحقق من أن
البيانات توافق الدلالات .semantics
• سلامة الكيان :entity integrityتتطلب وجود مفتاح رئيسي primary keyلكل جدول ،كما لا يمكن
أن يحتوي المفتاح الرئيسي ولا أي جزء منه على قيم فارغة .null
• العلاقة ال ُمع َّرفة :identifying relationshipحيث يحتوي المفتاح الرئيسي على المفتاح الخارجي
،foreign keyويشار إليها في مخطط ERDبخ ٍط متصل.
• قيود السلامة :integrity constraintsهي التعليمات المنطقية التي تحدد قيم البيانات المسموح
بها أو غير المسموح بها ،كما تحدد التنسيق المناسب للسمة .attribute
• العلاقة الإلزامية :mandatory relationshipيتطلب حدوث كيان واحد حدوث كيان مقابل.
• العلاقة الغير ُمع َّرفة :non-identifying relationshipلا تحتوي على المفتاح الخارجي ضمن المفتاح
الرئيسي ،ويشار إليها في مخطط ERDبخط من َّقط.
• العلاقة الاختيارية :optional relationshipحيث يمكن أن يكون للمفتاح الخارجي FKقيم ًة فارغ ًة،
أو عندما لا يحتاج الجدول الأب إلى وجود جدول ابن مطابق.
• السجل اليتيم :orphan recordهو السجل الذي لم يُع َثر على قيمة مفتاحه الخارجي في الكيان
المقابل أي في الكيان الذي يوجد به المفتاح الرئيسي.
78
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
• السلامة المرجعية :referential integrityتتطلب أن يكون للمفتاح الخارجي مفتاحًا رئيس ًيا مطاب ًقا،
وإاّل فيجب أن يكون للمفتاح الخارجي قيم ًة فارغ ًة.
• نظام إدارة قواعد البيانات العلائقية relational database management systemأو :RDBMS
وهو نظام قاعدة بيانات شائع ،حيث يعتمد على النموذج العلائقي الذي ق ّدمه إدجار
كود E.F. Coddمن مختبر أبحاث سان خوسيه San Joseالتابع لشركة .IBM
• نوع العلاقة :relationship typeهو نوع العلاقة بين جدولين في مخطط ،ERDأي إما علاقة وثيقة أو
معرَّفة ،identifyingأو غير وثيقة ،non-identifyingويُشار إلى هذه العلاقة بخط مرسوم بين جدولين.
7.6تمارين
اقرأ الوصف التالي ثم أجب عن الأسئلة:
ُص ِّممت قاعدة بيان ات ن ادي الس باحة في الش كل الآتي لتحت وي على معلوم ات ح ول الطلاب students
المس جَلين enrolledفي ص فوف الس باحة ،حيث خُزِّنت المعلوم ات التالي ة :الطلاب ،studentsوالتس جيل
،enrollmentوص فوف الس باحة ،swim classesوالمس ابح poolsال تي تق ام فيه ا الص فوف ،وم دربو
instructorsصفوف السباحة ،والمستويات levelsالمختلفة من صفوف السباحة.
استخدم الشكل التالي للإجابة على الأسئلة:
حُ ِّددت المفاتيح الرئيسية ،primary keysو ُعرِّفت أنواع البيانات التالية في خادم .SQL Server
79
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
**tblLevels**
Level – Identity PK
ClassName – text 20 – nulls are not allowed
**tblPool**
Pool – Identity PK
PoolName – text 20 – nulls are not allowed
Location – text 30
**tblStaff**
StaffID – Identity PK
FirstName – text 20
MiddleInitial – text 3
LastName – text 30
Suffix – text 3
Salaried – Bit
PayAmount – money
**tblClasses**
LessonIndex – Identity PK
Level – Integer FK
SectionID – Integer
Semester – TinyInt
Days – text 20
Time – datetime (formatted for time)
Pool – Integer FK
Instructor – Integer FK
Limit – TinyInt
Enrolled – TinyInt
Price – money
**tblEnrollment**
LessonIndex – Integer FK
SID – Integer FK (LessonIndex and SID) Primary Key
Status – text 30
Charged – bit
80
تصميم قواعد البيانات قواعد السلامة وقيودها لضمان سلامة البيانات
AmountPaid – money
DateEnrolled – datetime
****tblStudents
SID – Identity PK
FirstName – text 20
MiddleInitial – text 3
LastName – text 30
Suffix – text 3
Birthday – datetime
LocalStreet – text 30
LocalCity – text 20
LocalPostalCode – text 6
LocalPhone – text 10
ط ّبق هذا المخطط في خادم ،SQL Serverأو باس تخدام نظ ام accessوعن دها س تحتاج إلى اختي ار أن واع
بيانات قابلة للموازنة.
.1اش رح قواع د العلاق ة relationship rulesلك ل علاق ة مث ل العلاق ة بين الج دولين tblEnrollment
و tblStudentsالتي تم ِّثل إمكانية تسجيل الطالب في صفوف سباحة متعددة.
.2ح ّدد عددية cardinalityكل علاقة بافتراض القواعد التالية:
◦ قد يكون أو لا يكون للمسبح poolص ًفا classللسباحة.
◦ يجب ارتباط جدول المستويات levels tableدائ ًما بصف سباحة واحد على الأقل.
◦ قد لا يدرِّس جدول فريق التدريب staff tableأ َّي صف سباحة.
◦ يجب تسجيل جميع الطلاب في صف سباحة واحد على الأقل.
◦ يجب احتواء صف السباحة على طلاب مسجلين فيه.
◦ يجب امتلاك صف السباحة على مسبح صالح.
◦ قد لا يُع َّين مدرب لصف السباحة.
◦ يجب ارتباط صف السباحة دائ ًما بمستوى موجود.
.3ح ّدد الجداول الضعيفة ،والجداول القوية التي شرحناها في مقا ٍل سابق.
.4ح ّدد الجداول ال ُمعرَّفة ،identifyingوالجداول غير ال ُمعرَّفة .non-identifying
81
.8نمذجة الكيان العلاقي ERعند
تصميم قواعد البيانات
تتض من إح دى النظري ات المهم ة ال تي طُ ِّورت لنم وذج الكي ان العلاقي ) entity relational (ERفك رة
الاعتمادي ة الوظيفي ة ( functional dependencyاختص ا ًرا ،)FDواله دف من دراس تها ه و تحس ين فهم ك
للعلاقات بين البيانات ،واكتساب المنهجية الكافية للمساعدة في التصميم العملي لقاعدة البيانات.
تُستخلَص الاعتماديات الوظيفية FDمن دلالات semanticsنطاق التطبيق ،أي مث ل القي ود constraints
التي شرحناها في الفصل السابق ،وت ِصف كيفي ة ارتب اط الس مات المنفص لة individual attributesببعض ها
البعض ،كما تُ َع ّد الاعتماديات الوظيفي ة FDنو ًع ا من القي ود بين الس مات داخ ل علاق ة ،وتس اهم في تص ميم
مخطط علاقي جيد ،حيث سنلقي في هذا الفصل نظر ًة على:
• نظرية الاعتمادية الوظيفية الأساسية وتعريفها.
• منهجية تحسين تصميمات المخططات ،وتسمى أي ًضا التوحيد .normalization
8.1التصميم العلاقي Relational Designوالتكرار Redundancy
يجب احتواء التصميم الجيد لقاعدة البيانات العلاقية على جميع السمات والارتباط ات الض رورية ،إذ يق وم
التصميم بذلك بأقل قدرٍ ممكن من المعلومات المخزَّنة مع عدم وجود بيانات مكرَّرة .redundant
يُ َع ّد التكرار أم ًرا غير مرغوب فيه في تصميم قاعدة البيانات ،وذلك لأنه يسبب المش كلات في الحف اظ على
التناسق بعد التحديثات ،لكن يمكن أن ي ؤدي التك رار إلى تحس ينات في الأداء في بعض الأحي ان مث ل إمكاني ة
استخدام التكرار بداًل من عملية الض م joinلرب ط البيان ات ،حيث تُس تخ َدم عملي ة الض م joinعن د الحاج ة إلى
الحصول على معلومات تستند إلى جدولين مرتبطين.
تصميم قواعد البيانات نمذجة الكيان العلاقي ERعند تصميم قواعد البيانات
ض ع في بال ك الج دول الآتي ال ذي يو ِّض ح مث ااًل عن التك رار ال ُمس تخ َدم في الحس ابات
المصرفية ،Bank Accountsوفروع المصرف ،Branchesحيث يَظه ر العمي ل رقم 1313131م رتين ،أي م ر ًة
للحساب ذو الرقم ،A-101ومر ًة أخرى للحساب رقم A-102؛ إذ لا يك ون رقم العمي ل زائ ًدا في ه ذه الحال ة على
الرغم من وجود حالات حذ ٍف ش اذة deletion anomaliesفي الج دول ،وس يحل ه ذه المش كلة وج ود ج دول
منفصل للعملاء.
إذا تغير عنوان الفرع ،branch addressفيجب تحديثه في أماكن متعددة ،وإذا تُرِك رقم العميل في الجدول
كما هو ،فلن تحتاج إلى جدول للفرع ،branchولن تكون هناك حاجة إلى عملية ضم ،وبالتالي ،سيتح ّسن الأداء.
accountNo blance customer branch address assets
A-101 500 1313131 Downtown Brooklyn 9000000
A-102 400 1313131 Perryridge Horseneck 1700000
A-113 600 9876543 Round Hill Horseneck 8000000
A-201 900 9676543 brighton Brooklyn 7100000
A-215 700 1111111 Manus Horseneck 400000
A-222 700 1111111 Redwood Palo Alto 2100000
A-305 350 1234567 Round Hill Horseneck 8000000
8.2حالة الإدخال الشاذة Insertion Anomaly
تحدث ه ذه الحال ة عن د إدخ ال معلوم ات متض اربة في ج دول ،حيث نحت اج إلى التحق ق من أن بيان ات
الفرع branchمتوافقة مع الصفوف الموجودة عن دما ن دخل س جاًل جدي ًدا مث ل رقم الحس اب ،A-306كم ا في
الجدول التالي:
accountNo blance customer branch address assets
1313131 Downtown Brooklyn 9000000
A-101 500 1313131 Perryridge Horseneck 1700000
9876543 Round Hill Horseneck 8000000
A-102 400 9676543 brighton Brooklyn 7100000
1111111 Manus Horseneck 400000
A-113 600 1111111 Redwood Palo Alto 2100000
1234567 Round Hill Horseneck 8000000
A-201 900 1111111 Round Hill Horseneck 8000800
A-215 700
A-222 700
A-305 350
A-306 800
83
تصميم قواعد البيانات نمذجة الكيان العلاقي ERعند تصميم قواعد البيانات
8.3حالة التحديث الشاذة Update Anomaly
إذا غ ّير أحد فروع المصرف عنوانه مثل الفرع راون د هي ل Round Hillفي الج دول الآتي ،فنحن بحاج ة إلى
تحديث جميع الصفوف التي تشير إلى هذا الفرع ،حيث يس ّمى تغيير المعلومات الموجودة بصورة غ ير ص حيحة
بحالة تحديث شاذة.
accountNo blance customer branch address assets
A-101 500 1313131 Downtown Brooklyn 9000000
A-102 400 1313131 Perryridge Horseneck 1700000
A-113 600 9876543 Round Hill Horseneck 8000000
A-201 900 9676543 brighton Brooklyn 7100000
A-215 700 1111111 Manus Horseneck 400000
A-222 700 1111111 Redwood Palo Alto 2100000
A-305 350 1234567 Round Hill Horseneck 8000000
8.4حالة الحذف الشاذة Deletion Anomaly
تحدث هذه الحالة عند حذف سجل قد يحتوي على سمات لا ينبغي حذفها ،إذا أزلنا معلومات حول الحساب
الأخير في أحد الفروع مثل الحساب رقم A-101في الفرع داون تاون Downtownفي الجدول التالي على سبيل
المثال ،فستختفي جميع معلومات ذلك الفرع.
accountNo blance customer branch address assets
A-101 500 1313131 Downtown Brooklyn 9000000
A-102 400 1313131 Perryridge Horseneck 1700000
A-113 600 9876543 Round Hill Horseneck 8000000
A-201 900 9676543 brighton Brooklyn 7100000
A-215 700 1111111 Manus Horseneck 400000
A-222 700 1111111 Redwood Palo Alto 2100000
A-305 350 1234567 Round Hill Horseneck 8000000
مشكلة حذف الصف A-101هي عدم معرفتنا مك ان الف رع ،Downtownوأنن ا س نفقد جمي ع المعلوم ات
المتعلقة بالعميل .1313131
نحتاج إلى تفكيك الجدول الأصلي إلى جداول أصغر متعددة بحيث يكون لكل جدول ح ًدا أدنى من الت داخل
مع الجداول الأخرى ،وذلك لتجنب هذه الأنواع من مشاكل التحديث أو الحذف.
84
تصميم قواعد البيانات نمذجة الكيان العلاقي ERعند تصميم قواعد البيانات
يجب احتواء كل جدول حساب مصرفي على معلومات حول كيان entityواحد فقط ،مث ل :الف رع ،Branch
أو العميل ،Customerكما هو موضح في الشكل التالي:
سيضمن اتباع هذه العملية أن إضافة معلومات الفرع أو تحديثها س يؤثر على س جل واح د فق ط ،ل ذلك لن
تع َّدل معلومات الفرع عن طريق الخطأ ،ولن تُسجَّل بصورة غ ير ص حيحة ،وذل ك عن د إض افة معلوم ات العميل
أو حذفها.
8.4.1مثال تطبيقي :جدول مشروع-موظف والحالات الشاذة
يو ِّضح الجدول الآتي مثااًل لجدول مشروع-موظف ،employee project tableكما يمكننا الافتراض من هذا
الجدول أن:
.1معرِّف الموظف ،EmpIDومعرِّف المشروع ProjectIDهما المفتاح الرئيسي المر َّكب .composite PK
.2يحدد معرِّف المشروع الميزانية ،Budgetأي أ ّن للمشروع P1ميزاني ًة لفترة 32ساعة.
EmpID Budget ProjectID Hours
S75 32 P1 7
S75 40 P2 3
S79 32 P1 4
S79 27 P3 1
S80 40 P2 5
17 P4
فيم ا يلي بعض الح الات الش اذة anomaliesالمحتمل ة ال تي ق د تح دث م ع ه ذا الج دول خلال
الخطوات التالية:
.1الإجراء :إضافة الصف Add rowالذي هو {.}S85, 35, P1, 9
.2المشكلة :هناك صفان tuplesبميزانيات متضاربة.
.3الإجراء :حذف الصف Delete tupleالذي هو {.}S79, 27, P3, 1
.4المشكلة :الخطوة رقم 3تحذف ميزانية المشروع .P3
85
تصميم قواعد البيانات نمذجة الكيان العلاقي ERعند تصميم قواعد البيانات
.5الإجراء :تحديث الصف Update tupleمن { }S75, 32, P1, 7إلى {.}S75, 35, P1, 7
.6المشكلة :تُن ِشئ الخطوة رقم 5ص َّفين بقيم مختلفة لميزانية المشروع .P1
.7الحل :إنشاء جدول منفصل separate tableلكل من المشاريع Projectsوالموظفين ،Employeesأي
كما هو مو َّضح في الشكل التالي:
8.5كيفية تجنب الحالات الشاذة
أفضل طريقة لإنشاء جداول بدون حالات شاذة هي التأكد من توحيد الجداول ،ويتحق ق ذل ك من خلال فهم
الاعتماديات الوظيفية ،حيث تضمن الاعتمادية الوظيفية FDفي جدول انتم اء جمي ع الس مات attributesإلى
هذا الجدول ،أي ستزيل التكرار والحالات الشاذة.
8.5.1مثال تطبيقي :جدولا المشاريع والموظفين المنفصلان
جدول المشروع Project
ProjectID Budeget
P1 32
P2 40
P3 27
P4 17
جدول الموظف Employee
Emp ID Project ID Hours
S75 P1 7
S75 P2 3
S79 P1 4
S79 P3 1
S80 P2 5
يكون من خلال الاحتفاظ بالبيانات منفصلة باستخدام جدول مشاريع وجدول موظفين ما يلي:
• لن تُن َشأ حالات شاذة إذا تغيرت الميزانية.
86
تصميم قواعد البيانات نمذجة الكيان العلاقي ERعند تصميم قواعد البيانات
• ليست هناك حاجة إلى قيم وهمية للمشاريع التي لم يُع َّين لها موظفون.
• إذا حُ ِذفت مساهمة موظف ما ،فلن تُف َقد بيانات مهمة.
• لن تُن َشأ حالات شاذة إذا ُأضيفت مساهمة موظف.
8.6مصطلحات أساسية
• حالة الحذف الشاذة :deletion anomalyوتحدث هذه الحالة عند حذف سجل قد يحتوي على سمات
لا ينبغي حذفها.
• الاعتمادية الوظيفية functional dependencyأو :FDت ِصف كيفية ارتباط السمات المنفصلة
individual attributesببعضها البعض.
• حالة الإدخال الشاذة :insertion anomalyتحدث عند إدخال معلومات متضاربة في جدول.
• عملية الضم :joinتُستخدم هذه العملية عندما تحتاج إلى الحصول على معلومات بنا ًء على جدولين
متعلقين ببعضهما.
• حالة التحديث الشاذة :update anomalyتغيير المعلومات الموجودة بصورة غير صحيحة.
8.7تمارين
أواًل :طبِّق التوحيد normalizationعلى الجدول التالي:
Attribute Name Sample Value Sample Value Sample Value
2 3
StudentID 1 Sandy Law Sue Rogers
2 3
StudentName John Smith Programming Level 1 Business
61% 81%
CourselD 2 Jan 5th, 2014 Jan 7th, 2014
CourseName Programming Level 1
Grade 75%
CourseDate Jan 5th, 2014
87
تصميم قواعد البيانات نمذجة الكيان العلاقي ERعند تصميم قواعد البيانات
ثان ًيا :أن ِشئ مخطط ERDمنطقي لخدمة تأجير الأفلام عبر الإنترنت ،حيث لا توجد علاقات من النوع متع دد
إلى متع دد ،many to manyواس تخدم الوص ف الت الي للعملي ات ال تي يجب أن تس تند عليها
قواعد عملك:
تُص ّنِف خدمة تأجير الأفلام عبر الإنترنت عناوين الأفلام وف ًقا لنوعها إلى :الأفلام الكوميدية ،comedyوأفلام الغرب
الأمريكي ،westernوالأفلام الكلاسيكية ،classicalوأفلام الخيال العلمي ،science fictionوأفلام الرسوم
المتحركة ،cartoonوأفلام الحركة ،actionوالأفلام الموسيقية ،musicalوالأفلام المصدرة حدي ًثا .new release
يحتوي كل نوع على العديد من العن اوين المحتمل ة ،وتت وفر نس خ copiesمتع ددة لمعظم العن اوين داخ ل
النوع ،فمثاًل ،لاحظ الملخَّص التالي:
TYPE TITLE .1
Musical My Fair Lady (Copy 1) .2
My Fair Lady (Copy 2) .3
Oklahoma (Copy 1) .4
Oklahoma (Copy 2) .5
Oklahoma (Copy 3) .6
... .7إلخ.
ثال ًثا :ما هي الحالات الشاذة الثلاثة للبيانات التي من المحتمل تَشكّلها نتيج ًة لتكرار البيانات؟ وكي ف يمكن
القضاء على مثل هذه الحالات الشاذة؟
سنتطرق في فصل لاحق لمثال عملي حول تصميم قاعدة بيانات كاملة من الصفر كتدريب عملي.
88
.9الاعتماديات الوظيفية Functional
Dependencies
الاعتمادية الوظيفية - functional dependencyأو FDاختصا ًرا -هي علاقة بين سم َتين ،attributesحيث
تكون عاد ًة بين المفتاح الرئيسي PKوالسمات الأخرى التي ليست مفاتيحًا non-key attributesداخل الجدول،
إذ تعتمد السمة Yوظيف ًيا على السمة - Xوالتي تُ َعد مفتا ًحا رئيس ًيا -PKفي علاق ة Rإذا ح ّددت قيم ُة الس مة X
قيم َة السمة Yبصور ٍة فريدة لكل نسخ ٍة صالحة من السمة ،Xويشار إلى هذه العلاقة من خلال التمثيل التالي:
X ——> Y
يسمى الجانب الأيسر من مخطط الاعتمادية الوظيفية FDالسابق بالمح ِّدد ،determinantويسمى الجانب
الأيمن بالاعتمادي ،dependentوفيما يلي بعض الأمثلة على ذلك.
تح ِّدد الس مة SINالاس م ،Nameوالعن وان ،Addressوت اريخ الميلاد Birthdateفي المث ال الأول أدن اه،
حيث يمكننا تحديد أي من السمات الأخرى داخل الجدول باستخدام السمة .SIN
SIN ——> Name, Address, Birthdate
تح ِّدد السمتان ،SINو Courseت اريخ الانته اء DateCompletedفي المث ال الث اني ،حيث يجب أن يعم ل
هذا أي ًضا مع مفتاح رئيسي مر ّكب .composite PK
SIN, Course ——> DateCompleted
يشير المثال الثالث إلى أن السمة ISBNتح ّدد العنوان .Title
ISBN ——> Title
تصميم قواعد البيانات الاعتماديات الوظيفية Functional Dependencies
9.1قواعد الاعتماديات الوظيفية
انظر إلى جدول البيانات ( r(Rلمخطط العلاقة ( R(ABCDEالتالي:
ABCDE
a1 b1 c1 d1 e1
a2 b1 c2 d2 e1
a3 b2 c1 d1 e1
a4 b2 c2 d2 e1
a5 b3 c3 d1 e1
قد تسأل نفسك عند النظر إلى هذا الجدول :ما نوع الاعتمادي ات ال تي يمكنن ا ملاحظته ا بين الس مات في
الجدول R؟
بما أ ّن قيم السمة Aفريدة a1, a2, a3, etcفيمكن القول اعتما ًدا على تعريف الاعتمادية الوظيفية FDأ ّن:
A —> B,
A —> C,
A —> D,
A —> E
• ويترتب على ذلك أي ًضا أن ،A → BCأو أي مجموعة فرعية أخرى من المجموعة .ABCDE
• يمكن تلخيص ذلك على أساس .A → BCDE
• تُ َع ّد السمة Aمفتا ًحا رئيس ًيا.
بما أن قيم السمة Eهي نفسها دائ ًما أي كلها لها القيمة ،e1فهذا يعني أ ّن:
A —> E,
B —> E,
C —> E,
D —> E
ولكن لا يمكننا تلخيص ما سبق باستخدام ،ABCD → Eوذلك لأ ّن:
A —> E,
B —> E,
AB —> E
90
تصميم قواعد البيانات الاعتماديات الوظيفية Functional Dependencies
9.1.1ملاحظات أخرى
.1تركيبات BCفريدة ،لذلك .BC → ADE
.2تركيبات BDفريدة ،لذلك .BD → ACE
.3إذا كانت قيم السمة Cمتطابقة ،فإن قيم السمة Dمتطابقة كذلك.
.4لذلك .C → D
.5ولكن لا تح ِّدد قيم السمة Dقيم السمة .C
.6لذلك لا تح ّدد السمة Cالسمة ،Dولا تح ِّدد السمة Dالسمة .C
يمكن مساعدة النظر إلى البيانات الفعلي ة في توض يح الس مات ال تي هي س مات اعتمادي ة ،dependent
والسمات التي هي سمات مح ِّددة .determinant
9.2قواعد الاستدلال Inference Rules
تُ َع ّد بديهيات أرمسترونغ Armstrong's axiomsمجموع ًة من قواعد الاستدلال المستخ َدمة لاستنتاج جميع
الاعتمادي ات الوظيفي ة في قاع دة بيان ات علائقي ة ،حيث ط َّور ويلي ام أرمس ترونغ William W. Armstrong
هذه البديهيات.
لنفترض أ ّن ( R(Uهو مخطط علاقة لمجموع ة س مات ،Uحيث سنس تخدم الأح رف ،Xو ،Yو Zلتمثي ل أي
مجموعة فرعية ،أو اتحاد unionمجموعتين من السمات اختصا ًرا ،بداًل من استخدام .X U Y
9.2.1بديهية الانعكاس Axiom of reflexivity
تنص هذه البديهية على أنه إذا كانت Yمجموعة فرعية subsetمن ،Xفإ ّن Xتح ِّدد ،Yكما في المعادلة:
if Y ⊆ X then X →Y
اف ترض الاعتمادي ة الوظيفي ة PartNo —> NT123على س بيل المث ال ،حيث ت تر ّكب ( X(PartNoمن
معلومات متعددة ،وهي ،Y(NT( :و (.partID(123
9.2.2بديهية الزيادة Axiom of augmentation
تنص بديهية الزيادة -والمعروفة باسم الاعتمادية الجزئية partial dependencyأي ًضا -على أن ه إذا ك انت X
تح ِّدد ،Yفإ ّن XZتحدد YZمهما كانت :Z
if X →Y then XZ →YZ for any Z
91
تصميم قواعد البيانات الاعتماديات الوظيفية Functional Dependencies
تنص بديهية الزيادة على أن يجب على كل سمة ليست مفتا ًحا non-key attributeالاعتماد على المفت اح
الرئيسي PKبصورة كاملة ،فمثاًل ،تعتمد الس مات التالي ة :اس م الط الب ،StudentNameوالعن وان ،Address
والمدينة ،Cityو ،Provو- PCأي الرم ز البري دي -postal codeعلى س مة رقم الط الب StudentNoفق ط ،ولا
تعتمد على السمتين ،StudentNoو Gradeم ًعا.
StudentNo, Course ——> StudentName, Address, City, Prov, PC, Grade,
DateCompleted
هذا الوضع غير مرغوب به لأنه يجب على كل سمة ليس ت مفتا ًح ا الاعتم اد على المفت اح PKتما ًم ا ،ولكن
تعتمد معلومات الطلاب في هذه الحالة جزئ ًيا فقط على المفتاح الرئيسي PKأي .StudentNo
يجب إصلاح هذه المشكلة من خلال تقسيم الجدول الأصلي إلى جدولين على النحو التالي:
• الجدول الأول :1يحوي الحقول التالية:
◦ StudentNo
◦ Course
◦ Grade
◦ DateCompleted
• الجدول الثاني :2ويحوي الحقول التالية:
◦ StudentNo
◦ StudentName
◦ Address
◦ City
◦ Prov
◦ PC
9.2.3البديهية المتعدية Axiom of transitivity
تنص البديهية المتع ِّدية على أنه إذا كانت Xتح ِّدد ،Yو Yتح ِّدد ،Zفإ ّن Xتح ِّدد Zأي ًضا:
if X →Y ∧Y → Z then X →Z
92
تصميم قواعد البيانات الاعتماديات الوظيفية Functional Dependencies
يحت وي الج دول أدن اه على معلوم ات غ ير مرتبط ة مباش ر ًة بالط الب ،فيجب أن يك ون لمع رِّف
البرنامج ،ProgramIDواسم البرنامج ProgramNameجدواًل خا ًصا بهما ،حيث لا يعتمد اسم البرن امج على رقم
الطالب ،وإنما يعتمد على معرِّف البرنامج.
StudentNo ——> StudentName, Address, City, Prov, PC, ProgramID,
ProgramName
هذه الحالة غير مرغوب بها بسبب اعتماد السمة التي ليست مفتا ًحا -أي -ProgramNameعلى سمة أخرى
ليست مفتاحًا أي ًضا -أي .-ProgramID
نحل هذه المشكلة من خلال تقسيم هذا الجدول إلى جدولين :جدول لمعلومات الطالب ،والآخ ر لمعلوم ات
البرنامج ،أي كما يلي:
• الجدول :1
StudentNo —> StudentName, Address, City, Prov, PC, ProgramID
• الجدول :2
ProgramID —> ProgramName
لكن لا ن زال بحاج ة إلى مفت اح خ ارجي FKفي ج دول الط الب لنتمكن من تحدي د البرن امج ال ذي ُس جِّل
الطالب به.
9.2.4الاتحاد Union
تشير هذه القاعدة إلى أنه إذا كان جدولان منفصلان ،والمفتاح الرئيسي PKهو نفسه ،فقد ت رغب في وض ع
الجدولين م ًعا إذ تنص هذه القاعدة على أنه إذا كانت Xتح ِّدد ،Yو Xتح ِّدد ،Zفيجب على Xأن تح ِّدد Yو Zأي ًضا:
if X →Y ∧ X → Z then X →YZ
افترض على سبيل المثال أ ّن:
SIN ——> EmpName
SIN ——> SpouseName
قد ترغب في ضم هذين الجدولين في جدول واحد على النحو التالي:
SIN ——> EmpName, SpouseName
قد يختار بعض مسؤولي قاع دة البيان ات - database administratorsأو DBAاختص ا ًرا -الاحتف اظ به ذه
الجداول مفصول ًة لسببين ،هما :السبب الأول هو أ ّن كل جدول ي ِصف كيانًا مختل ًفا ،ل ذلك يجب إبق اء الكيان ات
93
تصميم قواعد البيانات الاعتماديات الوظيفية Functional Dependencies
منفصل ًة عن بعضها البعض ،والس بب الث اني ه و إذا تُرِك اس م ال زوج SpouseNameفار ًغ ا NULLفي معظم
الأوقات ،فلا حاجة إلى تضمينه في نفس جدول اسم المو ّظف .EmpName
9.2.5التفكك Decomposition
التف ُّكك Decompositionهو عكس قاعدة الاتحاد ،Unionفإذا كان لديك جدواًل يبدو أنه يحتوي على كيانين
يح ِّددهما المفتاح الرئيسي PKنفسه ،فستفكِّر في تقس يمه إلى ج دولين ،حيث تنص ه ذه القاع دة على أن ه إذا
كانت Xتح ِّدد Yو Zم ًعا ،فستكون Xتح ِّدد Yو Xتح ِّدد Zبصور ٍة منفصلة:
if X →YZ then X →Y ∧X →Z
9.3مخطط الاعتمادية Dependency Diagram
يو ِّضح مخطط الاعتمادية والمب َّين في الشكل الآتي العديد من الاعتماديات المختلفة التي قد تكون موجود ًة
في جدول لم تط َّب ٍق عليه عملية التوحيد ،non-normalized tableأي الجدول الذي يحتوي على تكرار بيانات.
تُح َّدد الاعتماديات التالية في هذا الجدول كما يلي:
• يتألف المفتاح الأساسي من مجموع ProjectNoو.EmpNo
• الاعتماديات الجزئية :PDs
◦ .ProjectNo —> ProjName
◦ .EmpNo —> EmpName, DeptNo
◦ .ProjectNo, EmpNo —> HrsWork
94
تصميم قواعد البيانات الاعتماديات الوظيفية Functional Dependencies
• الاعتمادية المتعددية :Transitive Dependency
◦ DeptNo —> DeptName
9.4مصطلحات أساسية
• بديهيات أرمسترونغ :Armstrong's Baciomsهي مجموعة من قواعد الاستدلال المستخدمة
لاستنتاج جميع الاعتماديات الوظيفية في قاعدة بيانات علائقية.
• :DBAأي ،database administratorوتعني مسؤول قاعدة البيانات.
• التفكُّك :decompositionقاعدة تشير إلى أنه إذا كان لديك جدول يبدو أنه يحتوي كيانَين يح ّددهما
المفتاح الرئيسي PKنفسه ،ففكِّر في تقسيمه إلى جدولين.
• الاعتمادي :dependentالجانب الأيمن من مخطط الاعتمادية الوظيفية.
• المح ِّدد :determinantالجانب الأيسر من مخطط الاعتمادية الوظيفية.
• الاعتمادية الوظيفية functional dependencyأو :FDعلاقة بين سم َتين ،عاد ًة ما تكون بين
المفتاح الرئيسي PKوالسمات الأخرى التي ليست مفاتيح داخل جدول.
• جدول غير موحد :non-normalized tableالجدول الذي يحتوي على تكرار بيانات فيه.
• الاتحاد :Unionقاعدة تشير إلى أنه إذا كان جدولان منفصلان ،ولهما المفتاح الرئيسي PKنفسه ،ففكِّر
في وضعهما م ًعا.
95
.10فهم عملية التوحيد
Normalization
يجب أن يكون التوحيد جز ًءا من عملية تصميم قاعدة البيانات ،ولكن من الصعب فصل عملية التوحي د عن
عملية نمذجة الكيان العلائقي ،ER modellingلذلك يجب استخدام الطريقتين بالتزامن.
يُستخ َدم مخطط علاقات الكائنات - entity relation diagramأو ERDاختصا ًرا -لتوف ير الرؤي ة الكب يرة أو
الشاملة لمتطلبات بيانات المؤسسة وعملياتها ،إذ يَنشأ ذلك من خلال عملية تكراري ة تتض من تحدي د الكيان ات
المرتبطة ،وسماتها ،وعلاقاتها؛ بينما ير ِّكز إجراء التوحيد على خصائص كيان ات مح د َّدة ،كم ا يم ِّثل رؤي ًة ُمص َّغر ًة
للكيانات داخل مخطط .ERD
10.1ما هو التوحيد Normalization؟
التوحي د ه و ف رع من ف روع النظري ة العلائقي ة ال ذي ي وفر رؤى التص ميم ،وه و عملي ة تحدي د مق دار
التكرار redundancyالموجود في الجدول.
أهداف التوحيد هي:
• القدرة على وصف مستوى التكرار في مخطط علائقي.
• توفير آليات لتغيير المخططات بهدف إزالة التكرار.
تعتمد نظرية التوحيد على نظرية الاعتمادي ات الوظيفي ة اعتم ا ًدا كب يرًا ،وتح ِّدد ه ذه النظري ة س تة نم اذج
موحَّدة - normal formsأو NFاختصا ًرا ،-حيث يتضمن كل نموذج موحَّد مجموع ًة من خصائص الاعتمادية التي
يجب أن يفي المخطط بها ،كما يعطي كل نموذج موحَّد ض مانات ح ول وج ود /أو ع دم وج ود ح الات تح ديث
شاذة ،update anomaliesوهذا يع ني احت واء النم اذج الموح دة الأعلى على ع دد أق ل من التك رار ،وبالت الي،
مشاكل تحديث أقل.
تصميم قواعد البيانات فهم عملية التوحيد Normalization
10.2النماذج الموحدة Normal Forms
يمكن أن تكون جميع الجداول الموجودة في قواعد البيان ات ض من أح د النم اذج الموحَّدة ال تي سنناقش ها
الآن .نريد الحد الأدنى من التكرار بين المفتاح الرئيسي ،PKوالمفتاح الخارجي FKمن الناحية المثالية ،كما يجب
اشتقاق كل شيء آخر من جداول أخرى.
هناك ستة نماذج موحَّدة ،ولكننا سنلقي نظرة على النماذج الأربعة الأولى فقط ،وهي:
• النموذج الموحَّد الأول ،First normal formأو 1NFاختصا ًرا.
• النموذج الموحَّد الثاني ،Second normal formأو 2NFاختصا ًرا.
• النموذج الموحَّد الثالث ،Third normal formأو 3NFاختصا ًرا.
• نموذج بويس-كود الموحَّد ،Boyce-Codd normal formأو BCNFاختصا ًرا ،وهو نادر الاستخدام.
10.3النموذج الموحد الأول First Normal Formأو 1NFاختصا ًرا
يُس َمح فقط بقيم غير مكرَّرة في النموذج الموحد الأول عند تقاطع ك ل ص ف وعم ود ،وه ذا ي ؤدي إلى ع دم
وجود مجموعات مكرَّرة ،repeating groupحيث يجب إزالة المجموع ة المك رَّرة ،وتش كيل علاق تين جدي دتين
لتوحيد علاقة تحتوي على مجموعة مكرَّرة ،ويكون المفتاح الرئيسي PKللعلاقة الجديدة ه و ت ركيب من المفت اح
الرئيسي PKللعلاقة الأصلية بالإضافة إلى سمة من العلاقة المن َشأة حدي ًثا للحصول على تعريف فريد.
10.3.1عملية نموذج 1NF
سنس تخدم ج دول تقري ر درج ات الط الب Student_Grade_Reportأدن اه ،من قاع دة بيان ات المدرس ة
Schoolعلى أساس مثال لشرح عملية نموذج .1NF
**Student_Grade_Report** (StudentNo, StudentName, Major, CourseNo,
)CourseName, InstructorNo, InstructorName, InstructorLocation, Grade
• تكون المجموعة المكرَّرة في ج دول تقري ر درج ات الط الب Student Grade Reportهي معلوم ات
المقرر الدراسي ،courseإذ يمكن للطالب أخذ مقررات متعددة.
• أزِل المجموعة المكر َّرة ،إذ إن المجموعة المكرَّرة في هذه الحالة هي معلومات المقرر لكل طالب.
• ح ِّدد المفتاح الرئيسي PKلجدولك الجديد.
• يجب أن يح ِّدد المفتاح الرئيسي PKقيم َة السمة StudentNoو CourseNoتحدي ًدا فري ًدا.
• يبقى جدول مقررات الطلاب StudentCourseبعد إزالة جميع السمات المتعلِّقة بالمقرر والطالب.
97
تصميم قواعد البيانات فهم عملية التوحيد Normalization
• أصبح جدول الطالب Studentالآن بصيغة النموذج الموحَّد الأول مع إزالة المجموعة المكرَّرة.
• الجدولان الجديدان مو َّضحان كما يلي:
)Student (StudentNo, StudentName, Major
StudentCourse (StudentNo, CourseNo, CourseName, InstructorNo,
)InstructorName, InstructorLocation, Grade
10.3.2كيفية تحديث حالات نموذج 1NFالشاذة
بالنظر إلى الجدولين السابقين:
• نحتاج طال ًبا لإضافة مقرَّر جديد.
• قد يكون لدينا تناقضات عندما تحتاج معلومات المقرَّر إلى تحديث.
• قد نحذف أي ًضا معلومات هامة حول مقرر عند حذف طالب.
10.4النموذج الموحد الثاني Second Normal Formأو 2NF
يجب أن تك ون العلاق ة أواًل بص يغة نم وذج 1NFللانتق ال إلى النم وذج الموحَّد الث اني ،2NFحيث تك ون
العلاقة تلقائ ًيا بصيغة نموذج 2NFإذا وفقط إذا اشتمل المفتاح الرئيسي PKعلى سمة واحدة.
إذا احتوت العلاقة على مفتاح رئيسي مر ّكب ،composite PKفيجب أن تعتمد ك ل س م ٍة ليس ت مفتاحً ا
على المفتاح الرئيسي PKبأكمله اعتما ًدا كاماًل ،ولا تعتمد على مجموع ة فرعي ة من المفت اح الرئيس ي ،PKأي لا
يجب وجود اعتمادية جزئية ،partial dependencyأو ما يُس َّمى بالزيادة .augmentation
10.4.1عملية نموذج 2NF
يجب أواًل أن يكون الجدول بصيغة نموذج 1NFللانتقال إلى النموذج .2NF
• جدول الطالب Studentموجود بالفعل بصيغة نموذج 2NFلأنه يحتوي على عمود مفتاح رئيس ي واح د
فقط بالفعل.
• ليست كل السمات -وتحدي ًدا جمي ع معلوم ات المق رر -course informationمعتم د ًة بالكام ل على
المفت اح الرئيس ي عن د فحص ج دول مق ررات الطلاب ،Student Courseإذ تك ون الس مة الوحي دة
المعتمدة بالكامل على المفتاح الرئيسي هي الدرجة .grade
• عرِّف الجدول الجديد الذي يحتوي على معلومات المقرَّر.
98
تصميم قواعد البيانات فهم عملية التوحيد Normalization
• عرِّف المفتاح الرئيسي PKللجدول الجديد.
• الجداول الثلاثة الجديدة مو َّضحة أدناه.
)Student (StudentNo, StudentName, Major
)CourseGrade (StudentNo, CourseNo, Grade
CourseInstructor (CourseNo, CourseName, InstructorNo, InstructorName,
)InstructorLocation
10.4.2كيفية تحديث حالات نموذج 2NFالشاذة
بالنظر إلى الجداول الثلاثة السابقة:
• نحتاج إلى مقرَّر courseعند إضافة مدرِّس جديد.
• قد يؤدي تحديث معلومات المقرر إلى وجود تناقضات في معلومات المدرِّس.
• قد يؤدي حذف المقرر أي ًضا إلى حذف معلومات المدرِّس.
10.5النموذج الموحد الثالث Third Normal Formأو 3NF
يجب أن تكون العلاقة بصيغة النموذج الموحَّد الثاني 2NFللانتقال إلى النم وذج الموحَّد الث الث ،3NFكم ا
يجب إزالة جميع الاعتماديات المتعدية transitive dependenciesأي ًضا ،فق د لا تعتم د الس مة ال تي ليس ت
مفتا ًحا اعتما ًدا وظيف ًيا على سمة أخرى ليست مفتا ًحا.
10.5.1عملية نموذج 3NF
• أزِل كافة السمات الاعتمادية dependent attributesفي العلاق ة ،أو في العلاق ات المتعدي ة من ك ل
جدول من الجداول التي لها علاقة متعدية.
• أن ِشئ جدواًل ،أو جداول جديدة مع إزالة الاعتمادية.
• تحقق من الجدول أو الجداول الجديدة ،كما تحقق من الجدول أو الجداول المع َّدلة أي ًضا وذلك للتأكد من
احتواء كل جدول على مح ِّدد determinantومن عدم وجود جدول يحتوي على اعتماديات غير مناسبة.
• الجداول الأربعة الجديدة مو َّضحة أدناه.
99
تصميم قواعد البيانات Normalization فهم عملية التوحيد
Student (StudentNo, StudentName, Major)
CourseGrade (StudentNo, CourseNo, Grade)
Course (CourseNo, CourseName, InstructorNo)
Instructor (InstructorNo, InstructorName, InstructorLocation)
.يجب ألا تكون هناك حالات شاذة في النموذج الموحَّد الثالث في هذه المرحلة
حيث تتمث ل الخط وة الأولى في،لنل ِق نظر ًة على مخطط الاعتمادية المو َّضح في الشكل الآتي له ذا المث ال
.إزالة المجموعات المكرَّرة
Student (StudentNo, StudentName, Major)
StudentCourse (StudentNo, CourseNo, CourseName, InstructorNo,
InstructorName, InstructorLocation, Grade)
قاع دة بيان اتnormalization تلخِّص الاعتمادي ات المو َّض حة في الش كل الت الي عملي ة توحي د
:School database المدرسة
:الاختصارات المستخدمة في الشكل السابق هي كما يلي
.partial dependency الاعتمادية الجزئية:PD •
.transitive dependency الاعتمادية المتعدية:TD •
100