1 / 31

بسم الله الرحمن الرحيم Lecture ( 7 )

بسم الله الرحمن الرحيم Lecture ( 7 ). The Relational Model النموذج العلائقي. مقدمة. قدمه الباحث Ted Codd في 1970 ( IBM Research ). يعتبر من أشهر أنواع الـ Implementation models ويستخدم في كثير من الـ DBMS الحالية .

Download Presentation

بسم الله الرحمن الرحيم Lecture ( 7 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. بسم الله الرحمن الرحيمLecture (7) The Relational Model النموذج العلائقي

  2. مقدمة • قدمه الباحثTed Codd في 1970 (IBM Research ). • يعتبر من أشهر أنواع الـImplementation models ويستخدم في كثير من الـ DBMS الحالية . • يمتاز بسهولة وبساطة مفاهيمه وأساسه الرياضي(Mathematical Foundation) • يعتمد علي أساس مفهوم العلاقة الرياضية Mathematical Relation))ويخضع لقوانين نظرية المجموعات Set theory)).

  3. المفاهيم العامة للنموذج • تعرف قاعدة البيانات في النموذج العلائقي عليأنها مجموعة من العلاقات (set of relations) . • العلاقة تمثل بجدول من القيم (Table of values) وهي تشبه لحد ما ملف السجلات المسطح. • وتعرف العلاقة علي انها مجموعة من الصفوف ((set of rows. • اي صف (row) يمثل مجموعة من القيم (valuesof set) والتي تمثل حقيقة . • أعمدة الجدول أوالعلاقة تسمي بـ(columns) وتمثل صفات العلاقة (attributes). • الصفوف في النموذج العلائقي يطلقعليها (tuples) . • اسم العلاقة وأسماء الاعمدة (name of attributes) تساعد علي تفسير القيم في صفوف العلاقة

  4. مثال العلاقة تتحدث عن نوع الكائن Student وأن القيم في أي صف من صفوف العلاقة تتحدث عن (particularentity) (طالب خاص) .

  5. المجال (Domain) • اي صفة في العلاقة لها مجال. • المجال هو مجموعة عناصر القيم (Atomic values) التي يمكن أن تأخذها الصفة التي تنتمي لهذا المجال. • يمكن أن تعتبر الـ Data types المعروفة (int,char,…) مجالات للصفات . • يمكن أيضا تعريف المجال ويكون له اسم ،نوع ،نسق(format) ويسمي هذا بالتعريف المنطقي للمجال (logical definition of domain). • مثال: المجال للصفة StdNo في العلاقة Student اسم المجال: Student Number ، النوع: char(5) ، الشكل (format): dd-dd .

  6. Relation Schema andRelationState( الرموز الاصطلاحية المستخدمة في النموذج العلائقي) • خارطة العلاقة R توضح كالأتيR(A1: dom(A1), A2: dom(A2),., An: dom(An)) اوR(A1, A2,…....., An) • اسم العلاقة :R (يختلف عن أسماء كل العلاقات في داخل قاعدة البيانات الواحدة) • صفات العلاقة: A1 ، A2،.....، An. • ولكل صفة Ai مجال dom(Ai) . • درجة العلاقة: تعني عدد صفات العلاقة. R )من الدرجة n) .

  7. Cont. • حالة العلاقة: تعني مجموعة الصفوف الحالية المكونة للعلاقة (current set of tuples)) ويرمز لها بـr(R) ولها نفس اسم خارطة العلاقة وهي عبارة عن مجموعة من الـm-tuples(cardinality of R) . r(R)={t1,t2,….,tm} • حيث كل صف t يحتوي علي (n values). • t=<v1,………,vn> • vi هي عبارة عن عنصر في المجال (dom(Ai حيث n ≥ i ≥1 أو قيمة خالية)(null. • vi is the value corresponding to attribute Ai • t[Ai] is the ith value in the tuple t , which corresponds to the attribute Ai

  8. Cont. • r (R ) هي عبارة عن علاقة رياضية من الدرجة n للمجالات dom(A1)، dom(A2)،....، dom(An). • r (R) dom(A1)×dom(A2) ×….....× dom(An) • وهي تمثل مجموعة جزئية من الحاصل الكارتيزي لمجالات الصفات وهي المجموعات المختلفة التي يمكن تكوينها من عناصر المجالات.

  9. مثال • خارطة العلاقة Student: • Student (Std-Name,Std-No,Tel-No,Address,Average,Age) • درجة العلاقة =6 • الصفة A للعلاقة R تكتب R.A(Dot Notation) ،مثلا Student.Std-Name، Student.Age . • في العلاقة Student إذا كان لدينا الصف • t=('Ali', '02-11', '554612', 'Omdurman','87', '22') • t[Std-Name] = <'Ali> • t[Std-No,Address,Age] = <'02-11', 'Omdurman', '22'> • حالة العلاقة تتغير باستمرار(عند تحديث البيانات)ولكن الخارطة نادرا ما تتغير(كما ذكر سابقا)

  10. Characteristics of Relations • ترتيب الصفوف في العلاقة:- العلاقة معرفة علي أساس أنها مجموعة من الصفوف، رياضيا عناصر المجموعة لا يشترط فيها الترتيب . وبالتالي فتعريف العلاقة لا يحتوي علي أي شرط للترتيب. أحيانا يكون الترتيب منطقياً. • ترتيب القيم في الصف:- علي حسب ترتيب الصفات في خارطة العلاقة، ترتيب الصفات أيضا غير محدد في العلاقة وقد يكون أيضا منطقيا.

  11. Cont. • القيم في الصفوف:- أي قيمة في الصف يجب أن تكون صماء (Atomic) . بعض القيم في الصفوف قد تأخذ القيمة)Null).

  12. تفسير العلاقة • أي صف في العلاقة إما يوضح حقيقة لكائنات خاصة (Particular Entities) كما في العلاقة Student أو حقيقة لعلاقة بين الكائنات. • مثال: • خارطة العلاقة Majors(Std-No , Dep-No) : يوضح كل صف في هذه العلاقة علاقة كل طالب والقسم الذي يتبع له (علاقة بين كائنات مختلفة).

  13. قيود النموذج العلائقي • قيود المجال Domain Constraints • قيود المفتاح Key Constraints • قيود التكاملية للكائن Entity Integrity Constraints • قيود التكاملية المرجعية Referential Integrity Constraints • يعرف القيدان الأخيران بقيود التكاملية (Integrity Constraints) ويرمز لها بـ IC) )

  14. قيود المجال • تقتضي أن أي قيمة للصفة A في dom(A) يجب أن تكون صماء.

  15. قيود المفتاح • تعرف العلاقة علي أنها مجموعة من الصفوف، وأي عنصر في المجموعة يجب أن لا يتكرر وبالتالي فلا يسمح بتكرار أي صف في العلاقة ولضمان ذلك يجب أن يكون هنالك مفتاح أساسي (Primary Key) لكل علاقة وهو يتكون من صفة أو أكثر من صفات العلاقة ويستخدم لتمييز أي صف عن الأخر وقيمته لاتتكرر فى صفوف العلاقة (خاصيةالتفرد Uniqueness) • اذاً المفتاح الاساسى PK للعلاقة R يحقق الاتى: t1(PK)<>t2(PK)<>…………..tm(PK)

  16. (راجع مفهوم ال SUPERKEY من الكتاب)

  17. مثال :في العلاقة Student يمكن أن تكون الصفة Std-No هي المفتاح الأساسي للعلاقة . • قد يكون للعلاقة أكثر من صفة يمكن أن تمثل المفتاح الأساسي( كل صفة علي حدة تمتاز بخاصية التمييز) وتسمي هذه الصفات بـ Candidate Keys (المفاتيح المرشحة). ولكن يتم اختيار صفة واحدة من بين هذه الصفات لتمثل الـ PK • . يوضح الـPK في خارطة العلاقة بوضع خط تحت الصفة التي تمثل صفة المفتاح الأساسي . • R (A , B, C) Simple PK, R (A , B, C) Composite PK

  18. أحيانا نحدد ايضا ما إذا كانت الصفة يمكن أن تأخذ القيمة Null فمثلا نحدد أن الصفة Std-Name دائما Not Null وهذا يعتبر قيد بالنسبة للصفة .

  19. خارطة قاعدة البيانات العلائقيةRelational Database Schema:- قاعدة البيانات العلائقية عبارة عن مجموعة من العلاقات وبالتالي فخارطة قاعدة البيانات S تمثل مجموعة خرط العلاقات المكونة لقاعدة البيانات S ={ R1 , R2, ….., Rm} ومجموعة من قيود التكاملية Integrity Constraints. • حالة قاعدة البيانات العلائقية Relational Database State:- هي مجموعة حالات العلاقات المكونة لقاعدة البيانات{r1, r2, ………,rm} وهي حالات صحيحة (Valid States) أي مستوفية لكل القيود( قيود قاعدة البيانات IC).

  20. مثال

  21. ملاحظات • الصفة DNumber في العلاقة Department وفي العلاقة Dep-Location يمثلان نفس المفهوم. • لا يشترط في الصفات التي تمثل نفس المفهوم أن يكون لها نفس الاسم في العلاقات المختلفة. • الصفة DNo في العلاقة Employee والصفة Dnum في العلاقة Project يشيران الي نفس المفهوم وهو رقم القسم. • نستطيع أن نتعرف علي أن الصفتان لهما نفس المفهوم من فهم معني العلاقات Semantic meaning of the relations • نستخدم الـ DDL لانشاء خارطة قاعدة البيانات (وهي جزء من أوامر الـSQL) بالاضافة الي تحديد كل القيود الخاصة بقاعدة البيانات.

  22. قيد تكاملية الكائن(Entity Integrity Constraints) • تقتضى ان قيمة المفتاح الاساسى لإى صف فى العلاقة لا يمكن ان تكون NULL وذلك لأن هذه الصفة تستخدم للتمييز بين الصفوف.

  23. قيود التكاملية المرجعيةReferential Integrity Constraints • قيود المفتاح وقيود التكاملية للكائن تحدد فى علاقة واحدة فقط (individual relation) ولكن قيود التكاملية المرجعية تكون مشتركة بين علاقتين specified between two relations)) وهى مفيدة للحفاظ على صحة البيانات(Data Consistency) بين صفوف العلاقتين.

  24. Cont. • التكاملية المرجعية بين العلاقتين R1وR2 تقتضى الأتي : • وجود عمود او صفة( اوصفات) فى علاقة R1يمثل مفتاح خارجى ((foreign key ويرمز له ب(FK) وتسمى R1العلاقة الراجعة الى المرجع( referencing relation) بحيث يمثل هذا المفتاح الخارجى نفس مفهوم ويكون له نفس مجال المفتاح الاساسى(PK) فى العلاقة R2،وتسمى R2 بالعلاقه المرجع((referenced relation. • قيمة المفتاح الخارجى فى R1 إما ان تكون NULL او تكون قيمة من قيم المفتاح الاساسى فى العلاقة المرجع R2. • اذا لم يتحقق الشرطان اعلاه فاذاً لايوجد FK فى R1 وبالتالي لاتتحقق شروط التكاملية المرجعية بين R1وR2.

  25. Another definition:- • (When a foreign key value is not null ( in referencing relation ) then it must be exist as a value of PK in another relation ( referenced relation) otherwise is not a foreign key).

  26. مثال • Student (Std-No, Std-name, Project-No) • Project(Pr-No, Pr-Name) هنا يمكن القول بأن شروط التكاملية المرجعيه مستوفاة لآن Project – No فى Student تمثل الـ FK لمادا ؟

  27. Cont. • مادا يحدث للمفتاح الخارجى FK لو عدلنا او حذفنا المفتاح الاساسى فى العلاقة المرجع : هنالك ثلاثة خيارات : • منع الحذف او التعديل لقيم المفتاح الاساسى عند وجود مفتاح خارجى FK يحمل نفس القيمة (Restrict ) . • جعل قيمة المفتاح الخارجى NULL عند حذف المفتاح الاساسى (Nullify ) . • متابعة حذف او تعديل قيم المفتاح الخارجى عند حذف او تعديل المفتاح الاساسى (Cascade ) .

  28. Cont. • من المثال السابق لو حذفنا الصف الاول فى العلاقه Project الخيارات :- • منع الحذف للصف الاول لان قيمة المفتاح الاساسى فى هذا الصف تمثل قيمة لمفتاح خارجى فى العلاقة student فى الصف الاول • جعل قيمة المفتاح الخارجى فى الصف الاول فى العلاقه student تساوى Null . • او حذف الصف الاول للعلاقه Student • كل قيود التكاملية توضح فى خارطة قاعدة البيانات القاعدية باستخدام اوامر الـ DDL • ( تعرف كجزء من تعريف قاعدة البيانات ) وبعض القيود الاخرى توضح باستخدام مايعرف بـ assertion او triggers .

  29. cont. • يمكن توضيح قيد تكاملية المرجع على خارطة قاعدة البيانات العلائقية برسم خطوط تربط بين العلاقة المرجع والعلاقة الراجعة للمرجع بحيث رأس السهم في العلاقة المرجع. • انظر الشكل ادناه.

More Related