360 likes | 753 Views
الصيغة المعيارية. الصيغة المعيارية هي أن يكون هناك قاعدة بيانات بها جداول مغلوطة أو غير سليمة والحل يكون إنشاء قاعدة بيانات سليمة وجيدة عن طريق أسس وصيغ معينة. مبينة على ما يأتي: أ) من فوق لـ تحت ( top down ( ب) تقليل التكرار وهو من أهم أعمال الصيغة المعيارية.
E N D
الصيغة المعيارية Free Photo Template from www.brainybetty.com
الصيغة المعيارية هي أن يكون هناك قاعدة بيانات بها جداول مغلوطة أو غير سليمة والحل يكون إنشاء قاعدة بيانات سليمة وجيدة عن طريق أسس وصيغ معينة. مبينة على ما يأتي: أ) من فوق لـ تحت (top down ( ب) تقليل التكرار وهو من أهم أعمال الصيغة المعيارية. جـ) الاعتماد الوظيفي ( ( FD Free Photo Template from www.brainybetty.com
الاعتماد الوظيفي Functional dependencies: • وهو اعتماد قيمة إحدى صفات الكيان علي قيمة صفة أخرى. • مثال: A B • بفرض أن A:ID , B:NAME • بمعنى أن B تعتمد اعتماداً وظيفياً على A , وقيمة الـA تحدد لنا قيمة الـB • وأن الـA ترجع لنا قيمة واحدة فقط لـ B Free Photo Template from www.brainybetty.com
الصيغة المعيارية • عبارة عن أربع اختبارات تجرى على قاعدة البيانات وهي: • الاختبار الأول ( 1 NF) • الاختبار الثاني 2 NF)) • الاختبار الثالث ( 3 NF) • الاختبار الرابع ( BC NF) Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) في الاختبار الأول لقاعدة البيانات هناك قاعدتان أساسيتان: 1-أن لا يكون هناك صفة متعددة القيم : بمعنى أن يكون داخل العمود أكثر من بيان. مثلاً كوجود 3 مناطق بها قسم موارد بشرية. 2-أن لا يكون هناك صفة مركبة : بمعنى أن يقسم العمود إلى قسمين أو اكثر. مثلاً داخل عمود المشروع هناك رقمه وساعات العمل به. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) في الاختبار الأول نسأل سؤالين.. الأول: هل هناك صفة متعددة القيم ؟ الثاني: هل هناك صفة مركبة ؟ إذا كان الجواب على احدهم أو كلاهم نعم فإن قاعدة البيانات بحاجة إلى تعديل لكي تجتاز الاختبار الأول للصيغة المعيارية. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) 1- في حالة وجدت صفة متعددة القيم : في الجدول التالي نجد أن في الموقع هناك أكثر من بيان. وهذا غير مقبول في الاختبار الاول فيجب ان يكون هنا كيان واحد فقط في كل خانة.. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) في حالة وجود صفة متعددة القيم يكون الحل بأن ننشأ جدول جديد ونضع به الصفة المتعددة القيم بإضافة إلى المفتاح الرئيسي في الجدول القديم. J * الجدول الجديد يتم تعين المفتاح الرئيسي للجدول القديم + الصفة المتعددة القيم كلاهما مفتاحاً رئيسياً, ولكن سيكون المفتاح الرئيسي للجدول القديم مفتاح أجنبي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) الخطوة الثانية بعد إنشاء الجدول الجديد ستكون حذف الصفة المتعددة القيم من الجدول الأساسي وسيصبح شكله كالآتي: J Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) J 2- في حالة وجدت صفة مركبة : في الجدول التالي نجد أن بداخل عمود المشروع هناك رقمه وعدد ساعات العمل به. وهذا غير مقبول في الاختبار الأول ويحتاج إلى تعديل ليجتاز الاختبار الاول Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) J في هذه الحالة يكون الحل بأن ننشأ جدول جديد نضع به المفتاح الرئيسي للجدول القديم بالإضافة إلى الصفة المركبة بجميع ما تحتويه بشرط أن يتم تفكيكها إلى أعمدة. الجدول الجديد المفتاح الرئيسي يكون هو نفسه الذي في الجدول الأساسي ويكون مفتاح أجنبي+ اختيار أحد الصفات المركبة التي تنفع لتكون مفتاحاً رئيسياً فمثلا هنا اخترنا رقم المشروع مفتاحاً رئيسياً أخر. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) J الخطوة الثانية بعد إنشاء الجدول الجديد ستكون حذف الصفة المركبة من الجدول الأساسي وسيصبح شكله كالآتي: Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الأول (1NF) ملاحظات : * في حالة الصفة المركبة نجد أنها في نفس الوقت تكون صفة متعددة القيم. * في حالة الصفة المركبة يكون اختيار المفتاح الرئيسي للجدول الجديد بأن نعتبر الصفات المركبة جدولاً منفصلاً ونختار من بينهم المفتاح الرئيسي المناسب. * نرمز للقيمة المتعددة بـ , بينما نرمز للقيمة المركبة J [ ] { } Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) J * وصول قاعدة البيانات إلى الاختبار الثاني يعني أنه ليس بها صفات متعدد القيم ولا صفات مركبة. * في الاختبار الثاني سنتعرف على معنى الصفة الأولية.. * وسنتعرف على الاعتمادية الوظيفية الكاملة.. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) J الصفة الأولية: عندما يكون لدينا مفتاحين رئيسين لنفس الجدول (مفتاح مجمع) نقول أن كل منهم يسمى صفة أولية. مثلاً: جدول المشروع به مفتاح مجمع SSN+PRO_NOالمفتاح الرئيسي عبارة عن Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) J الصفة الأولية: SSN+PRO_NO*إذن نطلق صفة أولية على كل من *ما غير ذلك يطلق عليه صفة ليست أولية مثل HOUES Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) اعتمادية وظيفية كاملة: J الجدول الآتي يوضح درجات الطالبات في الاختبار فمثلا لو أردنا أن نعرف درجة الطالبة رقم 10 ستظهر لنا درجتان وهما 70-88 . وهذا يدل أن الدرجات لا تعتمد اعتماداً وظيفياً كاملاً على رقم الطالبة, بل أنها تعتمد أيضاً على رقم الكورس. ويمكن توضيحها كالآتي: {S_ID,C_ID} GRADES اذن فالدرجات تعتمد وظيفياً كاملاً على رقم الطالبة + رقم الاختبار Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) اعتمادية وظيفية كاملة: J مثلاُ في حالة أضفنا على الجدول اسم الطالبة واسم الكورس {S_ID,C_ID}S_NAME هنا خطأ لأن رقم الطالبة يكفي لنعرف اسمها. وهذه الحالة تسمى اعتماد وظيفي جزئي. إذن فإن اسم الطالبة يعتمد وظيفياً على رقم الطالبة فقط. وهو اعتماد وظيفي جزئي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) اعتمادية وظيفية كاملة: J مثال أخر: {S_ID,C_ID}C_NAME هنا خطأ لأن رقم الكورس يكفي لنعرف اسمه. وهذه الحالة تسمى اعتماد وظيفي جزئي. إذن فإن اسم الكورس يعتمد وظيفياً على رقم الكلاس فقط. وهو اعتماد وظيفي جزئي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) اعتمادية وظيفية كاملة: J * في الاختبار الثاني لا ينفع أن يكون هناك صفة تعتمد اعتماد وظيفي جزئي على المفتاح الرئيسي. يجب أن يكون اعتماداً وظيفياً كاملاً كما في حالة الدرجات فهي تعتمد على المفتاح المجمع ( رقم الطالبة + رقم الكلاس). *اما في حالة اسم الطالبة,اسم الكورس فهو اعتماد وظيفي جزئي. الحل في هذه الحالة أن نضيف جدول جديد لكل صفة مع المفتاح الرئيسي المعتمده عليه اعتماداً وظيفياً كاملاً . وتحذف الصفات من الجدول الأساسي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) اعتمادية وظيفية كاملة: J { S_ID } S_NAME هنا يعتمد اسم الطالبة على رقمها اعتماد وظيفي كامل. 1) ننشأ جدول جديد به المفتاح الرئيسي + الصفة المعتمدة عليه اعتمادية وظيفية كاملة. 2) نحذف الصفة من الجدول الأساسي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثاني (2NF) اعتمادية وظيفية كاملة: J { C_ID } C_NAME هنا يعتمد اسم الكلاس على رقمه اعتماد وظيفي كامل. 1) ننشأ جدول جديد به المفتاح الرئيسي + الصفة المعتمدة عليه اعتمادية وظيفية كاملة. 2) نحذف الصفة من الجدول الأساسي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثالث (3NF) الاعتمادية الوظيفية الانتقالية: J TFD X Y Z * بمعنى انه هناك صفة تعتمد على صفة أخرى والصفة الأخرى تعتمد على المفتاح الرئيسي, في هذه الحالة تكون الصفة التي في المنتصف هي صفة وسيطة. * يعني أنها تعتمد بطريقة غير مباشرة على المفتاح الرئيسي, بمعنى أن الصفة لا تعتمد على المفتاح الرئيسي على طول وإنما تعتمد على صفة هي التي تعتمد على المفتاح الرئيسي. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثالث (3NF) J في الجدول التالي نلاحظ أن رقم القسم يعتمد مباشرة على المفتاح الرئيسي, بينما اسم مدير القسم يعتمد على رقم القسم وليس على المفتاح الرئيسي. SSN Dep-no Dep-manager Dep-no TFD Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الثالث (3NF) في هذه الحالة يكون الحل: 1/ نحذف الصفة المتعمدة من الجدول الأساسي. 2/ ننشأ جدول جديد به الصفة المعتمدة مع الصفة الوسيطة, ونعين الصفة الوسيطة مفتاح رئيسي. J الجدول الجديد المفتاح الرئيسي في الجدول الجديد هو الصفة الوسيطة. وهنا هي رقم القسم. Free Photo Template from www.brainybetty.com
الاختبار الرابع الاختبار الثالث الاختبار الثاني الاختبار الأول الاختبار الرابع(BCNF) J هذا الاختبار استخدامه غير شائع, ومن النادر وجود حالات تحتاج إلى إمرارها من خلاله. Free Photo Template from www.brainybetty.com
مسائل على الصيغة المعيارية ضعي الجداول التالية في الصيغة المعيارية الثالثة.. Student = ( S_ID , S_Name , Course , [ C_No , C_Name , Instructor , Grade ] ) 1NF: R1= ( S_ID , S_Name ) R2 = ( S_ID , C_No , C_Name , Instructor , Grade ) 2NF: R1= ( S_ID , S_Name ) R3 = ( C_No , C_Name , Instructor ) R4 = (S_ID , C_No , Grade ) Free Photo Template from www.brainybetty.com
مسائل على الاختبارات 3NF: R1= ( S_ID , S_Name ) R3 = ( C_No , C_Name , Instructor ) R4 = (S_ID , C_No , Grade ) Free Photo Template from www.brainybetty.com
مسائل على الاختبارات ضعي الجداول التالية في الصيغة المعيارية الثالثة.. Patient = ( P_No , P_Name , BD , Madicl_history [{ Dise_ Code , Dise_Name ]} , Date_in , Date_out ) 1NF: R1= ( P_No , P_Name , BD , Date_in , Date_out ) R2 = (P_No , Dise_ Code , Dise_Name ) 2NF: R1 = ( P_No , P_Name , BD , Date_in , Date_out ) R3 = ( Dise_ Code , Dise_Name ) R4 = ( P_No , Dise_ Code ) Free Photo Template from www.brainybetty.com
مسائل على الاختبارات 3NF: R1 = ( P_No , P_Name , BD , Date_in , Date_out ) R3 = ( Dise_ Code , Dise_Name ) R4 = ( P_No , Dise_ Code ) Free Photo Template from www.brainybetty.com
مسائل على الاختبارات ضعي الجداول التالية في الصيغة المعيارية الثالثة.. Doctor = ( D_ID , D_Name , Dept_no , Dept_Name , patios [{ P_No , P_Name , Treatment [{ T_no , Dese , Quality ]} ]} ) 1NF: R1= ( D_ID, P_No , P_Name , Treatment [{ T_no , Dese , Quality ]} ) R2 = ( D_ID , D_Name , Dept_no , Dept_Name ) R3 = ( D_ID , P_NO , T_No , Dese , Quality ) R4 = ( D_ID, P_No , P_Name ) Free Photo Template from www.brainybetty.com
مسائل على الاختبارات 2NF: R2 = ( D_ID , D_Name , Dept_no , Dept_Name ) R5 = ( T_No , Dese ) R6 = ( D_ID , P_NO , T_No , Quality ) R7 = ( P_No , P_Name ) R8 = ( D_ID , P_No ) Free Photo Template from www.brainybetty.com
مسائل على الاختبارات 3NF: R5 = ( T_No , Dese ) R6 = ( D_ID , P_NO , T_No , Quality ) R7 = ( P_No , P_Name ) R8 = ( D_ID , P_No ) R9 = ( Dep_no , Dep_Name ) R10 = ( D_ID , D_Name , dep_no ) Free Photo Template from www.brainybetty.com