You are on page 1of 53

1

‫عناصر المحاضرة‬

‫• أنواع قواعد البيانات‬


‫قواعد بیانات عالئقیة‬ ‫•‬
‫مراحل انشاء قاعدة بیانات‬ ‫•‬
‫تحديد الكیانات ‪Entities‬‬ ‫•‬
‫تحديد الخصائص (الصفات) ‪Attributes‬‬ ‫•‬
‫العالقات ‪Relationship‬‬ ‫•‬

‫‪2‬‬
‫أنواع قواعد البيانات‬

‫في الماضي كانت قواعد البيانات المتعارف عليها هي ‪:‬‬


‫• قواعد البيانات الشبكية ‪Network Database‬‬
‫نالحظ في الشكل التالي أن كل مستطيل يمثل سجل ‪.‬‬ ‫•‬

‫والخطوط الواصلة بين هذه المستطيالت تمثل االرتباط بين السجالت وبعضها البعض‬ ‫•‬
‫كل سجل يكون له عنوان محدد ويتم تخزين بيانات هذا السجل في مكان محدد ا‬ ‫•‬
‫يضا داخل السجل )بيانات موظف مثال(‪،‬‬ ‫•‬
‫كما يحتوي السجل على مؤشر يشير إلى عناوين جميع السجالت المرتبطة بهذا السجل‬ ‫•‬
‫في هذا النوع من قواعد البيانات تكون جميع السجالت تقريباً مرتبطة ببعضها‬ ‫•‬
‫ولكن االرتباط هنا لم يتولد تلقائياً كما هو الحال في قواعد البيانات العالئقية بل تم تصميمه من‬ ‫•‬
‫قبل المبرمج ولذلك يسمى هذا النوع من الربط "ربط فيزيائي‪".‬‬

‫‪3‬‬
4
‫قواعد البيانات الهرمية ‪Hierarchal Database‬‬

‫كل سجل يتكون من ثالثة أجزاء‪ ,‬كما هو الحال في قواعد البيانات الشبكية أن االرتباط بين السجالت‬
‫وبعضها البعض يكون عن طريق المؤشرات (ربط فيزيائي)‪ ،‬ولكن االختالف الظاهر بين قواعد البيانات‬
‫الشبكية وقواعد البيانات الهرمية أن األولى يمكن الوصول إلى أي سجل من سجالتها من أي نقطة‪ ،‬ولكن‬
‫الثانية ال بد من البدء من أول سجل (الجذر) حتى تصل إلى أي سجل تريده‪ ،‬وليست هذه العملية خاصة‬
‫باضافة سجل جديد فقط ولكن أيضاً عند االستعالم عن سجل أو حذف سجل أو التعديل على بيانات سجل‬
‫البد أن نبدأ من الجذر ‪.‬وتعتبر قواعد البيانات الشبكية والهرمية قواعد بيانات غير عالئقية حيث أنها ال‬
‫يوجد بها أي عالقات )جداول(‪ ،‬وجميع الروابط بين سجالتها روابط فيزيائية وليست منطقية‪ ،‬وتمتاز‬
‫قواعد البيانات غير العالئقية بالسرعة الفائقة حيث وجود المؤشرات كروابط سريعة للوصول إلى‬
‫السجالت‪ ،‬ولكنها يعيبها شئء خطير جداً وهو التعقيد في التصميم‪ ،‬فميزة السرعة يمكن التغلب عليها‬
‫بالتعامل مع أجهزة متطورة تمتاز بسرعة المعالج الفائقة والذاكرة الكبيرة‪ ،‬ولكن صعوبة التصميم شئ من‬
‫الصعب التغلب عليه‪ ،‬وبالتالي أصبحت قواعد البيانات العالئقية هي األكثر استخداماً وانتشاراً وذلك‬
‫لسهولة تصميمها وسهولة برمجتها وسهولة أيضاً تعامل المستخدمين معها‪.‬‬

‫‪5‬‬
‫قواعد البيانات الهرمية ‪Hierarchal Database‬‬

‫وظلت هذه األنواع هي المستخدمة حتى ظهرت قواعد البيانات العالئقية ونظرا لقوة نظم إدارة‬
‫قواعد البيانات العالئقية فقد طغت على األنواع األخرى وأصبحت هي النوع الوحيد المستخدم‪.‬‬

‫‪6‬‬
7
‫عناصر المحاضرة‬

‫• أنواع قواعد البیانات‬

‫• قواعد بيانات عالئقية‬


‫مراحل انشاء قاعدة بیانات‬ ‫•‬
‫تحديد الكیانات ‪Entities‬‬ ‫•‬
‫تحديد الخصائص (الصفات) ‪Attributes‬‬ ‫•‬
‫العالقات ‪Relationship‬‬ ‫•‬

‫‪8‬‬
‫قواعد بيانات عالئقية ‪RELATIONAL DATABASE‬‬

‫• هي قواعد البيانات التي تتكون من مجموعة من العالقات )الجداول) ويكون‬


‫بها روابط داخلية بين محتويات كل عالقة )جدول) بمعنى أن تكون العالقة‬
‫عالقة منطقية بين السجالت لربطها سويا‪.‬‬

‫فمثال جدول الموظفين الذي يمثل عالقة من قاعدة بيانات الموظفين‪،‬‬


‫فالمقصود بالرابط الداخلي هنا هو اشتراك جميع بيانات الموظفين في كونها‬
‫مكونة من رقم واسم وعنوان وراتب وتاريخ ميالد‪ ،‬فجميع الموظفين لهم رقم‬
‫ولهم اسم ولهم عنوان‬
‫‪.‬‬
‫وأيضا نجد ان كل بيان من هذه البيانات له نفس النوع لجميع الموظفين‪،‬‬
‫بمعنى أن رقم الموظف لجميع الموظفين رقم‪ ،‬وأن اسم الموظف لجميع‬
‫الموظفين نص‪ ،‬وكذلك تاريخ الميالد لجميع الموظفين تاريخ‪...‬‬

‫‪9‬‬
‫قواعد بيانات عالئقية ‪RELATIONAL DATABASE‬‬

‫ومن هنا نشأ االرتباط الداخلي المعتمد على الشكل التصميمي‬


‫الجدولي لقاعدة البيانات‪ ،‬وبالتالي تكون قاعدة البيانات عالئقية‬
‫حتى ولو كانت مكونة من عالقة واحدة )جدول واحد(‬

‫وليس كما يعتقد البعض من أن قواعد البيانات العالئقية سميت‬


‫بذلك لوجود ارتباط بين الجداول المكون منها قاعدة البيانات‪ ،‬ولكن‬
‫كما ذكرنا أنها سميت بذلك لوجود ارتباط داخلي داخل كل جدول‬
‫بها وذلك االرتباط الداخلي يسمى "ربط منطقي "وسمي بذلك‬
‫لكونه نشأ تلقائيا وليس للمصمم أي دخل به‪.‬‬

‫‪10‬‬
‫مبادئ قواعد البيانات العالئقية‪-:‬‬
‫نموذج قاعدة بيانات بسيطة (قاعدة بيانات مستشفى)‬
‫المرضى‬
‫الغرف‬
‫رقم‬ ‫اسم‬ ‫رقم‬
‫الجنس‬ ‫الطبيب‬ ‫رقم‬ ‫رقم‬
‫المريض‬ ‫المريض‬ ‫الغرفة‬
‫عدد األسرة‬
‫الغرفة‬ ‫التحويلة‬
‫‪313‬‬ ‫محمد‬ ‫‪1‬‬ ‫‪100‬‬ ‫سيف‬
‫‪100‬‬ ‫‪435‬‬ ‫‪3‬‬
‫‪345‬‬ ‫حنان‬ ‫‪2‬‬ ‫‪300‬‬ ‫محمد‬
‫‪200‬‬ ‫‪342‬‬ ‫‪2‬‬
‫‪988‬‬ ‫خالد‬ ‫‪1‬‬ ‫‪100‬‬ ‫دعاء‬
‫‪456‬‬ ‫منى‬ ‫‪2‬‬ ‫‪200‬‬ ‫عزة‬ ‫‪300‬‬ ‫‪676‬‬ ‫‪1‬‬

‫األدويه‬ ‫يعالج بواسطة‬


‫رقم‬ ‫رقم‬
‫اسم الدواء‬ ‫المصنع‬ ‫رقم الدواء‬ ‫الكمية‬
‫الدواء‬ ‫المريض‬
‫‪s123‬‬ ‫‪FDG‬‬ ‫‪HG‬‬ ‫‪313‬‬ ‫‪s123‬‬ ‫‪3‬‬

‫‪s153‬‬ ‫‪PANADOL‬‬ ‫‪AB‬‬ ‫‪345‬‬ ‫‪s153‬‬ ‫‪2‬‬

‫‪s173‬‬ ‫‪FIFA‬‬ ‫‪AB‬‬ ‫‪988‬‬ ‫‪s173‬‬ ‫‪1‬‬

‫‪11‬‬
‫‪ ..‬فنالحظ أن هذه الجداول يوجد بينهم عالقات ‪ ،‬فمثال ‪:‬المريض محمد له‬
‫عالقة مع سجل في جدول (يعالج بواسطة) والذي يحدد نوع وكمية الدواء التي‬
‫يتناولها محمد ‪.‬‬
‫إذن لو أردنا أن نستعلم عن شيء معين داخل قاعدة البيانات ‪ ،‬فسيقوم الحاسب‬
‫باسترجاعه عن طريق العالقات التي بين تلك الجداول ‪.‬‬
‫مثال لو أردنا اسم المريض رقم ‪ 313‬ورقم الغرفة التي يرقد بها وتحويلة هذه‬
‫الغرفة واسم الدواء الذي يتناوله ؟‬
‫أولا يستخرج الحاسب اسم المريض والغرفة التي يرقد بها من جدول المرضى‬
‫(اسم المريض محمد الغرفة ‪ ) 100‬ثم ينتقل إلى جدول الغرف ليأخذ رقم‬
‫التحويلة للغرفة ‪ ( 100‬التحويلة ‪ )435‬ثم ينتقل إلى جدول يعالج بواسطة ليأخذ‬
‫رقم الدواء ومن ثم يتجه لجدول األدوية ليأخذ اسم هذا الدواء‪FDG‬‬

‫‪12‬‬
‫بعض المصطلحات المستخدمه في نموذج قاعدة البیانات‬

‫المفتاح االبتدائي‪ /‬االساسي ‪Primary Key‬‬ ‫•‬


‫هو المفتاح األساسي وله قيمه وحيدة على مستوى جميع‬ ‫•‬
‫الصفوف ‪ /‬أو سجالت قاعدة البيانات و اليمكن أن يكون بدون‬
‫قيمة‪.‬‬
‫المفتاح األجنبي ‪ /‬الخارجي ‪Foreign Key‬‬ ‫•‬
‫هو المفتاح األساسي لجدول اخر ويحدد العالقة بين الجداول‬ ‫•‬
‫ويمكن له أن يحتوى على قيمه فارغه‪.‬‬
‫القيود ‪Constraints‬‬ ‫•‬
‫هي قواعد المنطق التي يتم استخدامها لضمان اتساق‬ ‫•‬
‫البيانات أو تجنب بعض األخطاء عند اجراء عمليات على البيانات‪.‬‬

‫‪13‬‬
‫ممیزات قواعد البیانات العالقیه‬
‫‪ADVANTAGES OF RDB‬‬
‫• توافق مفهوم قواعد البيانات العالقية و األسلوب الشائع لتعامل‬
‫المستخدم مع البيانات حيث يفضل المستخدم التعامل مع‬
‫البيانات في صورة قوائم وجداول ‪Tables/lists‬‬
‫• سهولة وبساطة العمليات التى تجرى على البيانات بالمقارنه‬
‫بباقي األنواع المختلفة حيث تعتمد على شكل معياري لخطوات‬
‫و أوامر تعرف باسم لغة االستفسار الهيكلية ‪ SQL‬والتى تشبه‬
‫لحد كبير طريقة وأسلوب تعامل المستخدم مع البيانات‪.‬‬
‫• اعتماد العمليات التى تجرى على قواعد البيانات العالقيه على‬
‫عمليات سبق استخدامها وتجربتها من قبل مثل عمليات الجبر‬
‫العالقي ‪ Relational Algebra‬حيث يتم مناظرة الجدول الى‬
‫مجموعه ‪ Set‬وبالتالي يمكن تطبيق عمليات مثل االتحاد‬
‫والتقاطع ‪ Union-Intersection‬وغيرها من العمليات‪.‬‬

‫‪14‬‬
‫مثال‬
‫‪EXAMPLE‬‬
‫الجدولً‪( :A‬رقمًالطالبً– اسمًالطالبً– التخصص)‬

‫التخصص‬ ‫اسم الطالب‬ ‫رقم الطالب‬


‫حاسب‬ ‫أحمد محمد‬ ‫‪100‬‬
‫بنوك‬ ‫نرمين خالد‬ ‫‪101‬‬
‫بترول‬ ‫فاطمه حسين‬ ‫‪102‬‬

‫الجدولً‪( :B‬رقمًالطالبً– السنهًالدراسيهً– التقدير)‬

‫التقدير‬ ‫السنه الدراسيه‬ ‫رقم الطالب‬


‫‪A‬‬ ‫رابعة‬ ‫‪100‬‬
‫‪B‬‬ ‫الثالثه‬ ‫‪101‬‬
‫‪D‬‬ ‫الثالثه‬ ‫‪102‬‬

‫‪15‬‬
‫مثال‬
‫‪EXAMPLE‬‬
‫نتيجةًاالتحادًبينًالجدولينًهوًجدولًثالثًيضمًاألعمدهًجميعها‬

‫التخصص‬ ‫السنه‬ ‫التخصص‬ ‫اسم الطالب‬ ‫رقم الطالب‬


‫الدراسيه‬
‫‪A‬‬ ‫رابعه‬ ‫حاسب‬ ‫أحمد محمد‬ ‫‪100‬‬
‫‪B‬‬ ‫الثالثه‬ ‫بنوك‬ ‫نرمين خالد‬ ‫‪101‬‬
‫‪D‬‬ ‫الثالثه‬ ‫بترول‬ ‫فاطمه حسين‬ ‫‪102‬‬

‫‪16‬‬
‫عناصر المحاضرة‬

‫• أنواع قواعد البیانات‬


‫• قواعد بیانات عالئقیة‬

‫• مراحل انشاء قاعدة بيانات‬


‫• تحديد الكیانات ‪Entities‬‬
‫• تحديد الخصائص (الصفات) ‪Attributes‬‬
‫• العالقات ‪Relationship‬‬

‫‪17‬‬
‫إلنشاء قاعدة بيانات سوف ندرس المراحل التالية‪:‬‬

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


‫(رسم نموذج الكيان والعالقة الرابطة) ‪ERD‬‬

‫تحويل نموذج الكيان‬


‫والعالقة الرابطة إلى جداول‬

‫تخزين قاعدة البيانات في‬


‫الحاسب عن طريق برنامج‬
‫معين‬

‫تقــــــاريـــر‬ ‫استعـــــــــالم‬
‫تحديث البيانات‬
‫مثل طباعة تقرير عن أرباح‬ ‫مثال الستعالم عن معلومات‬
‫الشركة لعام ‪2007‬‬ ‫إضافة ‪ -‬حذف ‪ -‬تعديل‬ ‫المريض بإدخال رقم هذا المريض‬
‫‪18‬‬
‫عناصر المحاضرة‬

‫• أنواع قواعد البیانات‬


‫• قواعد بیانات عالئقیة‬
‫• مراحل انشاء قاعدة بیانات‬

‫• تحديد الكيانات ‪Entities‬‬


‫• تحديد الخصائص (الصفات) ‪Attributes‬‬
‫• العالقات ‪Relationship‬‬

‫‪19‬‬
‫فلنبدأ اآلن بالمرحلة األولى وهي تصميم قاعدة البيانات‬
‫في هذه المرحلة سوف يكون هناك ‪ 4‬خطوات لرسم نموذج الكيان والعالقة الرابطة ‪:‬‬

‫‪ -1‬تحديد الكيانات ‪ Entities‬ويرمز لها بالشكل‬


‫الكيان هو وحدة تمثل فئة أو مجموعة من األشياء أو الكائنات أو األنشطة لها صفات‬
‫(خصائص) تصفها وتخصها‪ .‬ونسميه باسم مفرد مثل ‪ :‬المريض – الطالب‪ -‬القسم ‪-‬‬
‫الغرفة‬
‫هذه الخطوة تحتاج إلى تفكير و وقت لتتناسب مع احتياجات المؤسسة المطلوب عمل‬
‫قاعدة بيانات لها‬
‫مثال قاعدة بيانات مركز تدريب‪:‬‬
‫اآلن نحاول تطبيق هذه الخطوة ‪ ،‬فنرى ماذا يحتاج المركز ؟؟ أو ما هي الكيانات‬
‫الرئيسية التي يجب أن تخدمها قاعدة البيانات التي نريد تصميمها ؟؟ ‪ ..‬فنجد أن هناك‬
‫‪ 3‬كيانات وهي المدرب ‪ ،‬المدرب ‪ ،‬والدورة ‪ ..‬وذلك بشكل مبسط ‪.‬‬

‫المدرب‬

‫المتدرب‬ ‫الدورة‬
‫‪20‬‬
‫تحديد الكيانات ‪ENTITIES‬‬

‫• كيف يتم تحديد كينونات بيانات النظام؟‬


‫‪ .1‬له عالقه بالنظام ويتطلب تخزين بيانات عنه للرجوع اليها أو‬
‫الستخدامها في استخراج التقارير واالستعالمات‪.‬‬
‫‪ .2‬له تكرار أكثر من واحد‪.‬‬
‫• فليس مقبوال مثال أن نختار رئيس المؤسسه ككينونة بيانات‪.‬‬
‫‪ .3‬له عناصر وصف‪.‬‬
‫• بمعنى أنه اليجوز مثال اعتبار "اسم الموظف" ككينونة بيانات رغم‬
‫توافر الشرط األول والخاص بوجود أكثر من اسم حيث أنه في حد ذاته‬
‫عنصر واحد للبيانات ليحتوى بداخله على عناصر أخرى بينما يمكن‬
‫اعتبار "بيانات الموظف" ككينونة بيان حيث تتضمن بداخلها على أكثر‬
‫من عنصر مثل االسم وتاريخ الميالد واسم الوظيفه‪.........‬‬

‫‪21‬‬
‫تحديد الكيانات ‪ENTITIES‬‬

‫• يجب تفادي اختيار الكينونة في الحاالت التاليه‪:‬‬

‫‪ .1‬أن يكون الكينونة يمثل احد مستخدمي لقاعدة البيانات‪.‬‬


‫‪ .2‬أن يكون الكينونة تقريرا مستخرجا من جداول أو كينونات‬
‫قاعدة البيانات‪.‬‬

‫مثال‪ - :‬المصروفات في مؤسسة – العمر للموظف‪.‬‬


‫‪ -‬أمين الصندوق ‪Treasurer‬‬

‫‪22‬‬
‫عناصر المحاضرة‬

‫أنواع قواعد البیانات‬ ‫•‬


‫قواعد بیانات عالئقیة‬ ‫•‬
‫مراحل انشاء قاعدة بیانات‬ ‫•‬
‫تحديد الكیانات ‪Entities‬‬ ‫•‬

‫• تحديد الخصائص (الصفات) ‪Attributes‬‬


‫• العالقات ‪Relationship‬‬

‫‪23‬‬
‫‪ -2‬تحديد الخصائص (الصفات) ‪ Attributes‬ويرمز لها بالشكل‪:‬‬

‫الخاصية أو الصفة هي صفة تصف كيان معين مثل (رقم الطالب يصف الكيان‬
‫الطالب) ويجب أن يكون لكل كيان صفة خاصة تميزة عن غيره نسميها المفتاح‬
‫األساسي ‪Primary Key‬‬
‫إذن المفتاح األساسي هو أحد خصائص أو صفات الكيان وتكون قيمته وحيدة في‬
‫كل سجل والتتكرر في أي سجل آخر من نفس الكيان ونميزه في الرسم بوضع‬
‫خط تحته‪.‬‬
‫مالحظة‪ :‬عند تحديد الصفات لكيان ما نختار الصفات التي تخص هذا الكيان بعينة والتخص‬
‫غيره‬
‫اآلن نحاول تطبيق هذه الخطوة على مثالنا‪:‬‬
‫• المتدربين ‪ :‬اسم المتدرب ‪ ،‬تاريخ الميالد ‪ ،‬السكن ‪ ،‬رقم الهاتف ‪ ،‬ونضع حقل مفتاح أساسي لتميز كل متدرب عن‬
‫األخر وهو الرقم األكاديمي والنضع هنا اسم الدورة ألن هذه صفة تخص الدورة وال تخص المتدرب‪.‬‬
‫• المدربين ‪ :‬اسم المدرب ‪ ،‬التخصص ‪ ،‬مصدر التخصص ‪ ،‬العنوان ‪ ،‬رقم الهاتف ‪ ،‬ونضع أيضا حقل مفتاح أساسي‬
‫لتميز كل مدرب عن األخر وهو رقم المدرب والنضع هنا اسم الدورة ألن هذه صفة تخص الدورة والتخص المدرب‪.‬‬
‫• الدورات ‪ :‬اسم الدورة ‪ ،‬عدد ساعات الدورة ‪ ،‬و نضع أيضا حقل مفتاح أساسي لتميز كل دورة عن األخرى وهو‬
‫رقم‪24‬الدورة‪.‬‬
‫السكن‬
‫تاريخًالميالد‬
‫رقمًالهاتف‬

‫اسمًالمدرب‬ ‫المدرب‬

‫الرقمًاألكاديمي‬

‫السكن‬

‫مصدرًالتخصص‬ ‫رقمًالهاتف‬

‫التخصص‬
‫المدرب‬

‫اسمًالمدرب‬

‫رقمًالمدرب‬

‫الدورة‬

‫رقمًالدورة‬

‫اسمًالدورة‬ ‫عددًساعاتًالدورة‬

‫‪25‬‬
‫السكن‬
‫تاريخًالميالد‬
‫رقمًالهاتف‬
‫األول‬
‫اسمًالمدرب‬
‫األب‬ ‫التدرب‬

‫العائلة‬ ‫الرقمًاألكاديمي‬

‫السكن‬

‫مصدرًالتخصص‬ ‫رقمًالهاتف‬

‫التخصص‬
‫المدرب‬

‫اسمًالمدرب‬

‫رقمًالمدرب‬
‫األول‬

‫األب‬ ‫العائلة‬
‫الدورة‬

‫رقمًالدورة‬ ‫اسمًالدورة‬ ‫عددًساعاتًالدورة‬


‫‪26‬‬
‫أنواع عناصر الوصف‬
‫‪TYPES OF ATTRIBUTES‬‬
‫‪ .1‬اجبارية أم اختياريه ‪Mandatory / Null‬‬
‫‪ ‬اسم الطالب – رقم الهاتف‬

‫‪ .2‬بسيطه أم منقسمه ‪Simple / Composite‬‬


‫‪‬مثال‪" :‬االسم" فیقسم إلى االسم األول ‪ ،‬اسم األب ‪ ،‬اسم العائلة‬
‫‪‬العنوان فیقسم الى عنوان الشارع – المدينه –الرقم البريدي‬

‫‪27‬‬
‫أنواع عناصر الوصف‬
‫‪TYPES OF ATTRIBUTES‬‬
‫‪ .3‬أحادية القيمة أم متعددة القيم ‪Single-valued / Multi-valued‬‬

‫‪ ‬مثال‪ :‬رقم الهاتف فممكن أن يكون للطالب اكثر من رقم هاتف‪.‬‬

‫‪ .4‬مخزنة أم مشتقة ‪Stored / Derived‬‬


‫‪ ‬مثال‪ :‬عمر الطالب (يمكن استنتاجه من تاريخ الميالد وتاريخ‬
‫اليوم)‬

‫‪ .5‬حقل تمييز ‪ /‬مفتاح أو غير مفتاح ‪Identifier / Non-Identifier‬‬


‫‪ ‬مثال‪ :‬المفتاح األساسي ‪Primary key‬‬

‫‪28‬‬
‫عناصر المحاضرة‬

‫أنواع قواعد البیانات‬ ‫•‬


‫قواعد بیانات عالئقیة‬ ‫•‬
‫مراحل انشاء قاعدة بیانات‬ ‫•‬
‫تحديد الكیانات ‪Entities‬‬ ‫•‬
‫تحديد الخصائص (الصفات) ‪Attributes‬‬ ‫•‬

‫• العالقات ‪Relationship‬‬

‫‪29‬‬
‫‪ -3‬وضع العالقات ‪. Relationship‬ويرمز لها بالشكل التالي‪:‬‬

‫العالقة الرابطة هي العالقة التي تربط بين الكيانات وتمثل عالقة رابطة في العالم المصغر‬
‫الذي تمثله قاعدة البيانات وتهتم قواعد البيانات بشكل كبير جدا بالعالقات الرابطة بين‬
‫الكيانات ألنها تعبر عن الروابط بين البيانات في الواقع وتمثل العالقة غالبا بفعل مضارع‬
‫لنطبق ذلك على المثال السابق ونربط الكيانات لدينا بعالقات‪:‬‬

‫السكن‬
‫تاريخًالميالد‬
‫األول‬ ‫رقمًالهاتف‬

‫األب‬ ‫اسمًالمدرب‬ ‫المتدرب‬

‫العائلة‬ ‫الرقمًاألكاديمي‬

‫السكن‬
‫مصدرًالتخصص‬ ‫رقمًالهاتف‬ ‫تدرب‬ ‫يدرس‬

‫التخصص‬
‫المدرب‬

‫اسمًالمدرب‬
‫رقمًالمدرب‬
‫يدرب على‬
‫األول‬
‫األب‬ ‫العائلة‬
‫الدورة‬

‫اسمًالدورة‬
‫رقمًالدورة‬ ‫عددًساعاتًالدورة‬

‫‪30‬‬
‫العالقات‬
‫‪RELATIONSHIPS‬‬
‫الخصائص المختلفه للعالقات‪:‬‬
‫اسم يوضح االرتباط بين أطراف العالقه‪.‬‬ ‫•‬
‫درجة العالقه (أحاديه‪-‬ثنائيه‪-‬ثالثيه)‪.‬‬ ‫•‬
‫نوع العالقة (‪(1:1 – 1:M – M-N‬‬ ‫•‬
‫قد يوجد عناصر وصف للعالقه كما هو الحال مع كينونات البيانات‬ ‫•‬
‫وهي تصف خاصيه للعالقة نفسها‪.‬‬
‫يمكن تحديد أكثر من عالقه بين كينونتين‪.‬‬ ‫•‬
‫يمكن أن تكون العالقه في شكل كينونه وذلك عند معالجة‬ ‫•‬
‫العالقات من النوع متعدد ال متعدد وتعرف باسم ‪Associative‬‬
‫‪entity‬‬

‫‪31‬‬
‫‪ -4‬تحديد نوع العالقة بتحديد نسبة المشاركة ‪:Cardinality ratio‬‬

‫أولا‪ -‬عالقة واحد إلى واحد‬


‫‪One to One‬‬
‫يرمز لها بــ ‪1:1‬‬
‫يكونًفيًهذهًالعالقةًلكلًسجلًفيًالكيانًاألولًسجلًمطابقًواحدًفيًالكيانًالثانيًوكلًسجل فيًالكيانً‬
‫الثانيًلهًسجلًمطابقًواحدًفيًالكيانًاألولً‬
‫مثال‪:‬‬
‫•شركةًتتكونًمنًعدةًأقسامً‪ً،‬بحيثًلكلًقسمًمديرًواحدًوكلًمديرًيرأسًقسمًواحدًفتكونًالعالقةًبينً‬
‫كيانًالمديرًوكيانًاألقسامًعالقةًواحدًإلىًواحد‪.‬‬

‫‪1‬‬ ‫‪1‬‬
‫القسم‬ ‫المدير‬
‫‪1‬‬ ‫‪1‬‬
‫‪32‬‬
‫‪ -4‬تابع تحديد نوع العالقة بتحديد نسبة المشاركة ‪Cardinality ratio‬‬

‫ثانيا ا ‪ -‬عالقة واحد إلى متعدد‬


‫‪One to Many‬‬
‫يرمزًلهاًبــًً‪1:M‬‬
‫يكونًفيًهذهًالعالقةًلكلًسجلًفيًالكيانًاألولًعدةًسجالتًمطابقةًًفيًالكيانًالثانيًوكلًسجلًفيً‬
‫الكيانًالثانيًلهًسجلًمطابقًواحدًفيًالكيانًاألول‬
‫مثال‪:‬‬
‫•حساباتًالبنوكًيمكنًانًللعميلًاكثرًمنًحسابًبنكيًولكنًيوجدًلكلًحسابًعميلًواحدًفقطً‬

‫‪M‬‬ ‫‪1‬‬
‫الحساب‬ ‫العميل‬
‫‪1‬‬ ‫‪1‬‬

‫‪33‬‬
‫‪ -4‬تابع تحديد نوع العالقة بتحديد نسبة المشاركة ‪Cardinality ratio‬‬

‫ثالثا ا ‪ -‬عالقة متعدد إلى متعدد‬


‫‪Many to Many‬‬
‫يرمز لها بــ ‪M:N‬‬
‫يكون في هذه العالقة لكل سجل في الكيان األول عدة سجالت مطابقة في الكيان‬
‫الثاني وكل سجل في الكيان الثاني له عدة سجالت مطابقة في الكيان األول ‪.‬‬
‫مثال ‪ :‬الجامعة ‪ ،‬يتم تدريس عدة مقررات ‪ ،‬بحيث المقرر الواحد يمكن أن يسجل‬
‫فيه أكثر من طالب ‪ ،‬ويمكن للطالب أن يدرس أكثر من مقرر‪.‬‬
‫إذن العالقة بين كيان الطالب وكيان المقرر عالقة متعدد إلى متعدد‬

‫‪M‬‬ ‫‪1‬‬
‫الطالب‬ ‫المقرر‬
‫‪1‬‬ ‫‪N‬‬

‫لنطبق ذلك على مثال مركز التدريب السابق ونحدد أنواع العالقات كالتالي‪:‬‬
‫‪34‬‬
‫نأخذ العالقة التي بين المتدربين والمدربين‬

‫السؤال األول ‪:‬هل المتدرب الواحد يتدرب لدى عدد من المدربين أم مدرب‬
‫واحد؟‬
‫السؤال الثاني‪ :‬هل المدرب الواحد يدرب عدد من المتدربين أم متدرب واحد؟‬
‫نجيب على السؤال األول فنقول أن المتدرب الواحد ممكن أن يتدرب لدى عدد‬
‫من المدربين ألن المتدرب ممكن أن يأخذ اكثر من دورة‪.‬‬
‫نجيب على السؤال الثاني فنقول أن المدرب الواحد ممكن أن يدرب عدد من‬
‫المتدربين ‪.‬‬
‫فمن هذين السؤالين تنتج العالقة التالية ‪M:N :‬‬

‫‪35‬‬
‫لنأخذ العالقة بين المدربين والدورات‬

‫• السؤال األول ‪ :‬هل المدرب الواحد ممكن أن يعطي اكثر من دورة أم‬
‫دورة واحدة؟‬
‫• السؤال الثاني ‪ :‬هل الدورة الواحدة يعطيها اكثر من مدرب أم مدرب‬
‫واحد ؟‬
‫• نجيب على السؤال األول فنقول أن المدرب الواحد ممكن أن يعطي‬
‫اكثر من دورة‪.‬‬
‫• نجيب على السؤال الثاني فنقول أن الدورة الواحدة يعطيها أو يدرب‬
‫عليها اكثر من مدرب‪.‬‬
‫• فمن هذين السؤال تنتج العالقة التالية ‪M:N:‬‬

‫‪36‬‬
‫لنأخذ العالقة بين المتدربين والدورات‬

‫• السؤال األول ‪ :‬هل المدرب الواحد ممكن أن يأخذ اكثر من دورة أم دورة‬
‫واحدة فقط ؟‬

‫• السؤال الثاني ‪ :‬هل الدورة الواحدة ممكن أن تشمل اكثر من متدرب أم‬
‫متدرب واحد فقط ؟‬

‫• نجيب على السؤال األول فنقول أن المدرب الواحد ممكن أن يأخذ اكثر من‬
‫دورة ‪.‬‬

‫• نجيب على السؤال الثاني فنقول أن الدورة الواحدة ممكن أن تشمل اكثر‬
‫من متدرب‪.‬‬

‫• فتنتج العالقة التالية ‪M:N:‬‬

‫‪37‬‬
‫السكن‬
‫تاريخًالميالد‬
‫رقمًالهاتف‬
‫األول‬
‫اسمًالمدرب‬
‫األب‬ ‫المدرب‬

‫العائلة‬ ‫الرقمًاألكاديمي‬

‫‪M‬‬ ‫‪M‬‬
‫السكن‬

‫مصدرًالتخصص‬ ‫رقمًالهاتف‬ ‫يدربن‬


‫‪N‬‬ ‫يدرسن‬

‫التخصص‬
‫المدرب‬
‫‪N‬‬
‫اسمًالمدرب‬ ‫‪M‬‬
‫رقمًالمدرب‬ ‫يدربنًعلى‬

‫األول‬ ‫‪N‬‬

‫األب‬ ‫العائلة‬
‫الدورة‬

‫اسمً‬
‫الدورة‬ ‫رقمًالدورة‬ ‫عددًساعاتًالدورة‬

‫‪38‬‬
‫درجة العالقه (أحاديه‪-‬ثنائیه‪-‬ثالثیه)‬

‫أحادية‬ ‫ثنائيه‬ ‫ثالثيه‬


‫‪39‬‬
‫درجة العالقة‬
‫العالقات األحادية ‪UNARY RELATIONSHIP‬‬

‫• هي عالقة بين الكينونة ونفسها‪.‬‬


‫• األصل في العالقه أن تكون عالقه ثنائيه أي أن هناك كينوناتان‬
‫من البيانات‪.‬‬
‫• قد تتوافر بغض الشروط في بعض األمثلة أو الحاالت بما يسمح‬
‫بدمجها في عالقة واحدة أحادية طبقا لـ‪:‬‬
‫‪ ‬أن يكون الكينونتين من نفس النوع (انسان – موظف – مركبة ‪)..‬‬
‫‪ ‬أن تكون حقول التوصيف متطابقة‪.‬‬
‫‪ ‬يمكن استخدام نفس مسمي العالقة في حالة دمج الكينونتين‬
‫في كينونة واحدة‪.‬‬

‫‪40‬‬
‫درجة العالقة‬
‫العالقات األحادية ‪UNARY RELATIONSHIP‬‬

‫• مثال‪ :‬أي موظف (مدير) يدير على األقل موظف واحد أو أكثر‪,‬‬
‫و أي موظف يديره على األقصى موظف (مدير) واحد‪(1:M) .‬‬

‫موظف‬ ‫يدير‬

‫‪41‬‬
‫درجة العالقة‬
‫العالقه الثالثیه ‪TERNARY RELATIONSHIP‬‬
‫• تعني وجود اسم لعالقه واحده تربط بين ثالثة كينونات من‬
‫البيانات‪.‬‬
‫• هي احالل لثالثة عالقات ثنائية وحيث أن العالقة الثنائية تعني‬
‫وجود كينونتين من البيانات بمعني أن ‪ 3‬عالقات ثنائية قد تعني‬
‫وجود ‪ 6‬كينونات مختلفة‪.‬‬
‫• الشروط الواجب توافرها الحالل ‪ 3‬عالقات ثنائيه بعالقة واحدة‬
‫ثالثيه‪:‬‬
‫هناك ‪ 3‬كينونات من البيانات فقط وليس ‪.6‬‬ ‫‪‬‬
‫اسم العالقة المتكرر في الثالثة عالقات الثنائيه واحد ومتكرر‬ ‫‪‬‬
‫بحيث يمكن دمجها‪.‬‬
‫درجة العالقات الثالثيه متطابق وبالتالي تكون العالقة الثالثيه‬ ‫‪‬‬
‫البديلة لها نفس الدرجة‪(1:1 - 1:M - M:N) .‬‬

‫‪42‬‬
‫درجة العالقة‬
‫العالقه الثالثیه ‪TERNARY RELATIONSHIP‬‬
‫• مثال‪ :‬العالقات الثالثة الثنائيه‪:‬‬
‫• أي مورد يقوم باالمداد بعلي األقل قطعة واحدة وأي قطعة يتم‬
‫امدادها عن طريق واحد على األقل من الموردين‪(M:N) .‬‬
‫• أي مورد يقوم باالمداد لمستودع واحد على األقل وأي مستودع يتم‬
‫امداده عن طريق مورد واحد على األقل‪(M:N) .‬‬
‫• أي قطعه واحدة يتم امدادها لمستودع واحد على األقل بينما أي‬
‫مستودع يتم امداده بقطعة واحدة على األقل‪(M:N) .‬‬

‫• مما سبق نجد أن الشروط الالزمه لدمج ثالثة عالقات ثنائيه في‬
‫عالقة واحدة ثالثيه فد تحققت‪.‬‬

‫‪43‬‬
‫درجة العالقة‬
‫العالقه الثالثیه ‪TERNARY RELATIONSHIP‬‬

‫قطعة‬

‫مورد‬ ‫يمد‬ ‫مستودع‬

‫‪44‬‬
‫حقل توصیف مع العالقه‬
‫‪RELATIONSHIP WITH ATTRIBUTE‬‬
‫• في العديد من الحاالت يوجد عناصر وصف للعالقة كما هو الحل‬
‫مع كينونات البيانات وهي التي تصف خاصية للعالقة نفسها‬
‫وليس ألحد الكينونات‪.‬‬
‫• مثال‪ :‬كل موظف يستكمل على األقل مقرر واحد (أو أكثر) وأي‬
‫مقرر يستكمله على األقل موظف واحد (أو أكثر)‪.‬‬

‫‪45‬‬
‫حقل توصیف مع العالقه‬
‫‪RELATIONSHIP WITH ATTRIBUTE‬‬

‫تاريخ‬
‫الستكمال‬

‫موظف‬ ‫يستكمل‬ ‫مقرر‬

‫‪46‬‬
‫حقل توصیف مع العالقه‬
‫‪RELATIONSHIP WITH ATTRIBUTE‬‬

‫قطعة‬

‫مورد‬ ‫يمد‬ ‫مستودع‬

‫وضعًالشحن‬ ‫تكلفةًالوحدة‬
‫‪47‬‬
‫أكثر من عالقه بین نفس كینونتي البیانات‬

‫يمكن أن تتواجد أكثر من عالقة بين كينونتين بيانات‪.‬‬ ‫•‬


‫مثال‪ :‬ممكن وجود عالقتين بين كينونتين البيانات ( الموظف –‬ ‫•‬
‫األدارة)‪:‬‬
‫‪ -1‬الموظف يمكن أن يدير ادارة واحدة فقط بينما لكل ادارة‬ ‫•‬
‫موظف واحد يديرها )‪(1:1‬‬
‫‪ -2‬من منظور العمل‪ :‬أي موظف يعمل في ادارة واحدة فقط‬ ‫•‬
‫بينما االدارة الواحدة يعمل فيها على األقل موظف واحد )‪(1:M‬‬

‫‪48‬‬
‫أكثر من عالقه بین نفس كینونتي البیانات‬

‫يعمل في‬

‫موظف‬ ‫ادارة‬

‫يدير‬

‫‪49‬‬
‫إذن المرحلة األولى وهي مرحلة التصميم ورسم نموذج الكيان‬
‫والعالقة الرابطة تمر بأربع خطوات هي‬

‫‪ -1‬تحديد الكيانات‪.‬‬
‫‪ -2‬تحديد الصفات أو الخصائص لهذه الكيانات وفي‬
‫هذه المرحلة البد من تحديد الصفة التي تعد‬
‫مفتاح أساسي لهذا الكيان‪.‬‬
‫‪ -3‬ربط الكيانات بعالقات‪.‬‬
‫‪ -4‬تحديد نوع هذه العالقات‪.‬‬
‫‪50‬‬
‫المستشفى‬ ‫تطبيق قاعدة بيانات‬
‫المصغر‬
‫أرسم ‪ ERD‬الالزم لتمثيل بيانات المرضى في‬
‫أحد المستشفيات واألطباء المعالجون مشتمال رقم‬
‫المريض واسمه ورقم الغرفة المقيم بها ورقم‬
‫التحويله للغرفة وعدد األسرة بها واسم ورقم‬
‫الدواء المصروف له وكذلك رقم الطبيب واسمه‬
‫وتليفونه وتخصصه‬ ‫‪52‬‬
‫‪ERD‬‬
‫األول‬
‫التاريخ‬ ‫رقم المريض‬ ‫اسمًًالطبيب‬
‫العائلة‬
‫رقم‬
‫الطبيب‬
‫األول‬ ‫‪M‬‬ ‫‪1‬‬
‫المريض‬ ‫يعالج‬ ‫الطبيب‬
‫العائلة‬
‫رقمًالهاتف‬
‫اسمًًالمريض‬
‫‪N‬‬ ‫‪N‬‬
‫التخصص‬
‫يقيم‬ ‫يصرف‬
‫في‬ ‫له‬ ‫‪M‬‬
‫‪1‬‬
‫عددًاألسرة‬ ‫الدواء‬

‫الغرفة‬

‫اسمًالدواء‬ ‫رقم الدواء‬


‫التحويلة‬ ‫رقم الغرفة‬

You might also like