قبل الشروع في الشرح لابد أن نعرف معنى الصيغة التالية AàB
تقرأ بطريقتين
الأولى : العمود B يعتمد على العمود A
الثانية : العمود A يحدد العمود B
ومعنى ذلك أننا نستطيع أن نصل إلى البيانات في العمود B بمعرفتنا للبيانات في العمود A
بمثال بسيط : ******erIDà ******er name أي انه بمعرفة رقم العميل نستطيع الوصول إلى معلومات عن العميل ومنها اسمه.
1- (First Normal Form)
يتحقق إذا كانت جميع الأعمدة في الجدول atomic أي غير مركبة ولا تتكون من قيم مختلفة (multi-valued).
مثال :
EMPLOYEE (empno,name:fisrst+last,salary)
لا يحقق First normal form وذلك بسبب وجود عمود مركب وهو NAME
2- (Second Normal Form)
يتحقق إذا تحقق First normal form بالإضافة إلى تحقق الشرط التالي :
جميع الأعمدة العادية (non key columns ) في الجدول تعتمد على المفتاح الأساسي primary key)) كاملا وليس جزء منه.
(بالتالي إذا كان المفتاح الأساسي مكون من عمود واحد فقط سوف يتحقق Second normal form مباشرة ولا نحتاج لاختبار ذلك ولكن بشرط تحقق first normal form قبل ذلك.)
مثال :
sales (saleID, ******er ID, ******er-name, date) الجدول أعلاه لا يحقق second normal form وذلك للسبب التالي :
يوجد عمود (حقل) عادي وهو ******er-name يعتمد على جزء من المفتاح الأساسي وهذا الجزء هو : ******er ID .
بصيغة أخرى يوجد جزء من المفتاح الأساسي(part of primary key) يحددحقل عادي(non key attribute/column)
ويمكن كتابتها بالشكل التالي : ******erIDà ******er-name
3- (Third Normal Form )
يتحقق إذا تحقق second normal form بالإضافة إلى الشرط التالي :
يشترط عدم وجود أي حقل عادي non key attribute) ) يعتمد على حقل عادي آخر (بالتالي لو كان بالجدول حقل عادي واحد فقط سوف تتحقق third normal form مباشرة بشرط تحقق second normal form )
مثال : sales (saleID, ******er ID, ******er-name, date) الجدول أعلاه لا يحقق third normal form وذلك للسبب التالي :
يوجد عمود (حقل) عادي وهو ******er-name يعتمد على عمود (عادي) آخر وهو******er ID .
4- (Boyce-Codd Normal Form: BCNF )
يتحقق إذا تحقق Third normal form بالإضافة إلى الشرط التالي:
يشترط عدم وجود non key attribute يحدد جزء من primary key وبعبارة أخرى :
يشترط عدم وجود primary key يعتمد على non key attribute.
مثال : EmpSpecMgr(EID, specility, manager) الجدول أعلاه لا يحقق BCNF إذا كان manageràEID
شرح (normalization) وفقا للسؤال المطروح في الاختبار النهائي :
Questions 49 – 51 are based on the following set of functional dependencies:
A à {B, C, D, E, F} i.e. A determines each of the attributes B, C, D, E & F
{B,C} à {A, D, E, F} i.e. Both B and C together determine each of the attributes A, D, E & F
B à F i.e. B determines F
D à E i.e. D determines E
Determine to which normal forms (1NF, 2NF, 3NF and BCNF) does R2 comply?
R2 (A, B, C, D, E)
[LIST][*]R2 يحقق First normal form لعدم وجود (attributes) مركبة.[/LIST][LIST][*]R2 يحقق Second normal form لأن جميع non key attributes وهي (A,D,E) تعتمد على كامل primary key. لو وجد مثلا أن BàD لم يتحقق Second normal form.[/LIST]
[LIST][*]R2 لا يحقق Third normal form للسبب التالي : DàE ومعنى ذلك انه وجد non key attribute في الجدول وهو E يعتمد على non key attribute آخر في نفس الجدول وهو D[/LIST]
Determine to which normal forms (1NF, 2NF, 3NF and BCNF) does R3 comply?
R3 (B, F)
[LIST][*]R3 يحقق First normal form لعدم وجود (attributes) مركبة.[*]R3 يحقق second normal form لأن primary key مكون من attribute واحد هو B[*]R3 يحقق third normal form لأنه لا يوجد إلا non key attribute واحد.[*]R3 يحقق BCNF . لو وجد أن FàB لم يتحقق BCNF[/LIST]
Determine to which normal forms (1NF, 2NF, 3NF, BCNF) dos R1 comply?
R1 (A, B, C, D, E, F)
[LIST][*]R1 يحقق First normal form لعدم وجود (attributes) مركبة.[*]R1 لا يحقق second normal form لوجود non key attribute وهو F يعتمد على جزء من primary key وهو B BàF[*]لا نحتاج اختبار third & BCNF لأن second normal form لم تتحقق .[/LIST]
|