2016/12/21

تحويل مخطط البيانات ERD الى مخطط البيانات النهائى Relational Mode


فيما يلى سنسرد الطريقة الخاصة بخطوات تحويل مخطط البيانات ERD الى مخطط البيانات النهائى Relation Model




الخظوة الاولى :
لكل وحدة بيانتات عادية (قائمة بذتها) Regular Entity وسوف نطلق عليها E فى مخطط البيانات والموجود فى الشكل السابق ERD ، سنلحق لها جدول Relation و سوف نطلق عليها Rنضع به كل خصائص البيانات البسيطة ( الغير مركبة ) Simple Attributes الموجود فى E.
وفى حالة وجود خصائص بيانات مركبة Component Attribute فى E نضع فى R فقط خصائص البيانات التى البسيطة الخاصة بها Simple Component Attributes ، ثم نقوم باختيار احد الخصائص البيانات التى تعتبر مفاتيح Key Attribule E على انه هو المفتاح Primary Key للجدول Relation و المسماة R .
اذا كان المفتاح Key الذى تم اختياره مركب Composite ، فان مجموعة خصائص البيانات البسيطة Simple Attributes والتى يتكون منها هذا المفتاح المركب Composite Key سوف تقوم هى ذاتها بتكون المفتاح الاساسى Primary Key للجدول Relation والمساوة R .
ففى مثال الشركة Company ، قمنا بانشاء الجداول EMPLOYEE ، DEPARTMENT و PROJECT وذلك لكى تتناسب مع وحدات البيانات العادية Regular Entity Types والتى تسمى EMPLOYEE ، DEPARTMENT و PROJECT .
لم يتم ادراج المفتاح الخارجى Foreign Key او خصائص البيانات الدالة على العلاقات Relationship Attributes وذلك اذا كان هناك اصلا داع لوجودها ، وسيتم ادراجهم فى خطوات تالية .
وكمثال لهم خصائص البيانات Attributer مثل SUPERSSN و DNO فى وحدة بيانات Entity والمساوة EMPLOYEE ، وايضا خصائص البيانتات Attributes مثل MGRSSN و MGRSTARTDATAE فى وحدة بيانات Entity والمساوة DEPARTMENT ، وايضا DNAME فى وحدة بيانات PROJECT .
وفى مثالنا باختيار SSN ، DNUMBER و PNUMBER كمفتاح اساسية Primary Keys للجداول EMPLOYEE ، DEPARTMENT ، PROJECT على التوالى .


الخطوة الثانية :
لكل محدة بيانات تابعة (ضعيفة) Weak Entity وسنميها W فى مخطط البيانات ER Schema ولها وحدة بيانات تملكها Owner Entity Type وسوف نسميها E ، قم بانشاء جدول Relation وسوف نسمية R ، وضع به كل خصائص البيانات البسيطة Simple Attributes ( او المكونات البسيطة Simple Component فى حالة خصائص البيانات المركزية Composite Attributes ) الخاصة بـــــ  W .
و بالاضافة لذلك ، ضع المفتاح الاساسى Primary Key ( او المفاتيح الاساسية ) التى تتناسب مع وحدة البيانات ( او محدات البيانات ) المالكة Owner Entity Types كمفتاح خارجى لـــــ R ، ويجب توخى الحذر عند تحديد نوع العلاقة الخاصة بال W .
ويصبح المفتاح الاساسى Primary Key لــــR هو مجموعة المفاتيح الاساسية Primary keys الخاصة بوحدة البيانات المالكة Owner Entities لـــــ R والمفتاح الجزئى Partial key الخاص بوحدة بيانات التابعة Weak Entity ل W ، ان وجد.
وفى مثالنا ، قمنا بانشاء الجدول Relation والمسماة DEPENDENT فى هذة الخطوة وذلك كى تتناسب مع وحدة البيانات Weak Entity والمسماة DEPENDENT . ووضعنا به مفتاح اساسى Primary Key تسمى SSN من جدول EMPLOYEE وذلك الخاص بوحدة البيانات المالكة Owner Entity وذلك كمفتاح خارجى Foreign Key فى جدول Dependent ، وقمنا باعادة تسمية بـــــESSN.
ويصبح وبذلك المفتاح الاساسى Primary Key الخاص بجدول DEPENDENT مكون من {ESSN, DEPENDENT_NAME} وذلك لان DEPENDENT_NAME هو تالمفتاح الفرعى Partial Key الخاص بالجدول DEPENDENT .

الخطوة ثالثة:
لكل علاقة ثنائية 1:1 والتى تسمى R فى مخطط البيانات ER Schema ، حدد الجداول S و T التى تتناسب مع وحدات البيانات Entities المشاركة فى R .
قم باختيار احدهما ولنقل S مثلا – وضع كمفتاح خارجى Foreign Key فى S المفتاح الاساسى Primary Kay الخاص بــــ T . ومن الافضل اختيار S على اساس اختيار وحدة البيانات Entity Type ذات الاشتراك الكامل Total Participation فى R .
ضع كل خصائص البيانات البسيطة Simple Attributes (او المكونات البسيطة فى حالة خصائص البيانات المركبة Composite Attributes ) الخاصة بالعلاقة R وذلك كخصائص بيانات Attributes فى S .
وفى مثالنا ، قمنا بتحويل العلاقة Relationship 1:1 MANAGES وذلك باختيار وحدة البيانات المشتركة بها Participating Entity Types والتى تسمى DEPARTMENT لتقوم بدور الـــــ S ، وذلك لانها ذات مشاركة كاملة Total Participation فى العلاقة MAMAGES (حيث ان لكل قسم مدير ). ثم نضع المفتاح الاساسى Primary KEY الخاص بالجدول EMPLOYEE كمفتاح خارجى Foreign Key حدول DEPARTMENT ونعيد تسميته بـــــMGRAAN . ونضع كذلك خصائص البيانات البشيطة Simple Attributes والمسماة START _DATE من العلاقة MANAGES وذلك فى الجدول DEPARTMENT ونعيد تسميتها بـــــMGRSTAREDATE .
لاحظ انه يمكن عمل تحويل اخر بديل هنا ، وذلك عن طريق دمج وحدتى البيانات Entity Types والعلاقة Relationship وذلك فى جدول واحد.
وذلك  البديل يكون مناسبا ى حالة كون وحدتى البيانات اشتراك او تمثيل كامل Total Participation  فى علاقة .
الخطوة الرابعة:
لكل علاقة ثنائية عادية 1 : ن R ، نحدد العلاقة S التى تمثل وحدة البيانات المشاركة Participating Entity من جانب N للتحويل ، ونضع كمفتاح خارجى Foreign Key فى Sالمفتاح الاساسى Primary Key الخاص بـــــ T التى تمثل الجانب الاخر المشارك فى العلاقة R ، وذلك لان كل سطر موجود فى الجانب ن مرتبط بسطر واحد على الكثر من الجانب 1 فى هذة العلاقة.
ضع اى خصائص بيانات بسيطة Simple Attributes (او المكونات البسيطة فى حالة خصائص البيانات المركبة Composite Attributes) من علاقة R التى هى 1 : ن كخصائص بيانات Attributes فى S .
وفى مثالنا ، سنقوم الان بتحويل علاقة 1 : ن الخاصة بكل من WORKS_ON ، CONTROLS و SUPERVISION 

وبالنسبة WORKS_ON ، نضع المفتاح الاساسى Primary Key والمسماة DNUMBER من جدول DEPARTMENT وذلك كمفتاح خارجى Foreign Key من جدول EMPLOYEE ونعيد تسميته لــــــDNO .


وبالنسبة لـــــ SUPERVISION ، نضع المفتاح الاساسى Primary Key الخاص بجدول EMPLOYEE كمفتاح خارجى Foreign Key فى جدول EMPLOYEE ذاته – وذلك لان هذة العلاقة هى علاقة عكسية متبادلة Recursive- ونطلق عليه SUPERSSN .
وبالنسبة لـــــCONTROLS ،
تم تحويلها عن طريق المفتاح الخارجى Foregn Key والتى تسمى DNUM الخاص بــــ PROJECT ، الذى يشير (يرجع) الى المفتاح الاساسى DNUMBER فى حدول DEPARTMENT .


الخطوة الخامسة:
لكل علاقة ثنائية N : M : R ، ننشئ جدول جديد وليكن S وذلك ك كمفاتيح كى نمثل R .
ونضع كمفاتيح خارجية Foreign Key فى S المفتاح الاساسية Primary Key الخاصة بالجداول Relations التى تمثل وحدات البيانات المشتركة فى العلاقة R ، سيتكون منهم المفتاح الاساسى Primary Key الخاص بــــS . وكذلك نضع فى S كل خصائص البيانات البسيطة Simple Attributes الموجودة بالعلاقة R م : ن (او المكونات البسيطة فى حالة خصائص البيانات المركبة Composite Attributes ) .
ونلاحظ اننا لا نستطيع تمثيل علاقة N : M بالستخدام مفتاح خارجى Foreign Key واحد فى واحد جانبى العلاقات المشاركة – كما فعلنا فى العلاقةات الثنائية 1 : 1 : او 1 : N – وذلك لان N : M تعتبر نسبة الاتصال بينهم Cardinality Ratio .
وفى مثلنا، قمنا بتحويل العلاقة WORKS-ON N : M ووضعنا بدلا منها جدول WORKS-ON .
ووضعنا المفاتيح الاساسية Primary Key الخاصة بكل من العلاقات PROJECT او EMPLOYEE كمفتيح خارجية Foreign Key فى جدول WORKS-ON واعدنا تسميتهم الى PNO و ESSN بالترتيب .
ووضعنا كذلك فى جدول WORKS-ON حقل خصائص بيانات HOURS الذى كان يتبع العلاقة WORKS-ON .
ويصبح بذالك المفتاح الاساسى Primary Key للجدول WORKS-ON مكون من المفاتيح الخارجية {ESSN, PNO}Foreign Key .
ملحوظة:
يمككنا تحويل الثنائية 1 : 1 او 1 : N بذات طريقة تحويل العلاقات الثنائية N : M . وهذا البديل يكونة مناسب عادة عندما يكون حدوث العلاقة قليل نوعا ما ، وذلك لتجنب الحصول على قيم معدومة null values فى المفاتيح الخارجية  Foreign Key .
وفى هذة الحالة ، يصبح المفتاح الاساسى Primary Key الخاص بالعلاقة والذى يتم وضعه فى جدول سيكون فقط احد المفاتيح الخارجية Foreign Key التى تشير (ترجع) الى وحدات البيانات المشاركة فى العلاقة .
وفى علاقة N : 1 ، يسصبح هذا هر المفتاح الخارجى Foreign Key الذر سيشير (يرجع) الى وحدة البيانات الموجودة على الجنب N .
وفى العلاقة 1 : 1 ، يكون المفتاح خارجى Foreign Key الذى يشير (الرجوع) الى العلاقة ذات الاشتراك (او التمثيل) الكامل Total Participation (ان وجت) هو الذى يتم اختيارة المفتاح اساسى  Primary Key .


الخطوة السادسة :
لكل حقل خصائص بيانات متعدد القيم ، ننشئ له جدول جديد R .
هذا الجدول R سيحتوى على حقل خصائص بيانات يتناسب مع A ، بالاضافة الى حقل مفتاح اساسى K . ويكون بمثابة مفتاح خارجى Foreign Key فى R – والخاص بالجدول او بالعلاقة التى تحتوى على A كحقل خصائص بيانات .
ويصبح المفتاح الاساسى Primary Key الخاص بـــــR مكون من A و K .
واذا كان حقل خصائص البيانات متعدد القيم هذا مركب IComposite ، فنضمن الجدول R مكونات البسيطة فقط .
ففى مثلنا ، قمنا بعمل جدول DEPT_LOCATONS ، حيث يمثل حقل خصائص البيانات DLOCATION حقل خصائص البيانات متعدد القيم Multivalued Attributes  الخاص بمواقع الـــــ DEPARTMENT ، حيث DNUMBER – كمفتاح خارجى Foreign Key  - يمثل المفتاح الاساسى Primary Key الخاص بجدول DEPARTMENT
الخطوة السابعة :
لكل علاقة متعددة الجوانب درجة اشتراك العلاقات بها R حيث N > 2 (اى اكثر من علاقتين يشركوا بها ) ، ننشئ جدول جديد S وذلك لتمثل R . ونضع كمفتاتيح خارجية  Foreign Key فى S كل المفاتيح الاساسية Primary Key الموجودة بالعلاقات المشتركة فى العلاقة R وكذالك نضع خصائص البيانات البسيطة Simple Attributes الخاصة بالعلاقة متعددة درجة اشتراك العلاقات بها (او المكونت البسيطة غى حالة خصائص البيانات المركبة Composite Attributes ) وذلك كخصائص الجدول S .
ويكون عادة المفتاح الاساسى Primary Key الــــS مكون من كل مفتاتيح الخارجية Foreign Key التى تشير (ترجع) الى العلاقات المشاركة فى R .
لكن ، اذا كانت نسبة اشتراك الى علاقة E فى R تساوى 1؛ فلا يجب ان يحتوى المفتاح الاساسى Primary Key الذى يشير الى العلاقة ،E الى تتناسب مع علاقة E .
كمثال ، اخذا فى الاعتبار العلاقة SUPPLY، يمكن تحويلها الى الجدول SUPPLY ، والذى يتكون مفتاحه الاساسى من مجموعة المفاتيح من مجموعة المفاتيح الخارجية {SNAME< PARTNO, PROJAME} .

0 التعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.