تحويل التصاميم المفاهيمية إلى مخططات منطقية لقواعد البيانات باستخدام SQL DDL
تحويل ER إلى علائقي هو عملية منهجية لتحويل مخطط ER (أو EER) المفاهيمي إلى مخطط قاعدة بيانات علائقية منطقية تقدر تنفذه في أي نظام إدارة قواعد بيانات.
الخطوات ١-٧: تحويل مكونات مخطط ER
الخطوات ٨-٩: تحويل تراكيب EER
لكل كيان عادي E في مخطط ER:
كيان ER: موظف (EMPLOYEE) بخصائص {الرقم_الضريبي، الاسم، تاريخ_الميلاد، العنوان}
المخطط العلائقي:
الرقم_الضريبي (SSN) هو المفتاح الأساسي (تحته خط)
بالنسبة للخصائص المركبة، نضيف فقط المكونات البسيطة. مثلاً لو الاسم مركب (الاسم_الأول، الحرف_الأوسط، الاسم_الأخير)، نضيف الأعمدة Fname، Minit، Lname بشكل منفصل.
لكل كيان ضعيف W له كيان مالك E:
كيان ضعيف: تابِع (مفتاح جزئي: اسم_التابع)
كيان مالك: موظف (المفتاح الأساسي: SSN)
المخطط العلائقي:
المفتاح الأساسي هو {ESSN, Dependent_name}
المفتاح الأساسي للكيان المالك يصير مفتاح خارجي وجزء من المفتاح الأساسي لجدول الكيان الضعيف.
لكل علاقة ثنائية من نوع 1:1 بين S و T:
اختر أحد الجدولين (يفضل اللي عنده مشاركة كلية) وأضف المفتاح الأساسي للجدول الآخر كمفتاح خارجي فيه.
مثال: موظف يدير قسم (1:1)
Mgr_ssn هو المفتاح الخارجي في جدول DEPARTMENT
إذا كان عند الجدولين مشاركة كلية، ندمجهم في جدول واحد يحوي خصائص الاثنين.
نسوي جدول مستقل للعلاقة يحوي مفتاحين خارجيين للجدولين. (نادرًا ما نستخدمه مع 1:1).
نستخدم طريقة المفتاح الخارجي لما يكون أحد الطرفين عنده مشاركة كلية. نحط المفتاح الخارجي في الجدول صاحب المشاركة الكلية عشان نتجنب القيم الفارغة (NULL).
لكل علاقة ثنائية 1:N:
العلاقة: موظف (N) يعمل_في (1) قسم
المخطط العلائقي:
DNO مفتاح خارجي في EMPLOYEE (جهة N)
المفتاح الخارجي دايمًا نحطه في الجدول اللي في جهة N (الطرف الكثير).
ممكن ننشئ جدول مستقل للعلاقة، لكن هالطريقة نادرًا ما تستخدم مع 1:N لأنها تعقيد بدون فايدة كبيرة.
لكل علاقة ثنائية M:N:
العلاقة: موظف (M) يعمل_على (N) مشروع
المخطط العلائقي:
المفتاح الأساسي هو {ESSN, PNO}
Hours خاصية للعلاقة
العلاقات M:N دايمًا تحتاج جدول مستقل. ما نقدر نستخدم مفاتيح خارجية في الجداول المشاركة لأن هذا يخالف النموذج العلائقي (الخصائص متعددة القيم).
لكل خاصية متعددة القيم A:
خاصية متعددة القيم: مواقع القسم
المخطط العلائقي:
المفتاح الأساسي هو {Dnumber, Dlocation}
النموذج العلائقي يشترط أن كل عمود تكون قيمته ذرية (الصيغة الطبيعية الأولى). الخصائص متعددة القيم تخالف هذا الشرط، فلتخزينها نحتاج جدول مستقل.
لكل علاقة N-ary (عدد الأطراف > 2):
العلاقة: مورد يورّد قطعة لمشروع
المخطط العلائقي:
المفتاح الأساسي هو {Sname, Part_no, Proj_name}
إذا كانت العلاقة لها قيود أصلية (مثلاً M:N:1)، المفتاح الأساسي يمكن يكون مجرد دمج المفاتيح الخارجية لجهات M و N فقط، مو كل الأطراف.
للتخصص/التعميم، نختار من بين:
ننشئ جدول للـ كيان الأب وجداول منفصلة لكل ابن.
ننشئ جداول للأبناء فقط، وكل ابن يحوي كل الخصائص الموروثة + خصائصه الخاصة.
ننشئ جدول واحد يحوي كل خصائص الأب وجميع الأبناء.
جدول واحد مع أعمدة منطقية متعددة (واحد لكل ابن).
لكل فئة (اتحاد):
الفئة: مالك (اتحاد شخص، بنك، شركة)
المخطط العلائقي:
Owner_id هو المفتاح البديل اليربط الفئة بالجدول الأب المناسب
الفئات تجمع كيانات من كيانات أب بمفاتيح أساسية مختلفة. المفتاح البديل يعطينا طريقة موحدة للإشارة لأعضاء الفئة بغض النظر عن أي جدول أب ينتمون له.
لغة تعريف البيانات (DDL) نستخدمها لتعريف، تعديل، وحذف هياكل قاعدة البيانات. أشهر أوامر DDL: CREATE، ALTER، DROP.
قيود على الأعمدة:
حالات المفاتيح الخارجية:
بعد ما تتعلم تحويل ER إلى علائقي، تقدر: