1. المادة: تصميم قواعد المعطيات DBAR
الفصل الخامس التنظيم )(Normalization
ملخص:
يركز هذا الفصل على تعريف إشكاليات التصميم السيئ لقاعدة البيانات،
وطرق تنظيم القاعدة.
أهداف تعليمية:
يتضمن هذا الفصل:
•تعريف إشكاليات التصميم السيئ لقاعدة البيانات.
•الشكل النظامي الول ).(1NF
•الشكل النظامي الثاني ).(2NF
•الشكل النظامي الثالث ).(3NF
•الشكل النظامي .(BCNF (Boycee-Codd Normal form
•الشكل النظامي الرابع ).(4NF
1/42
2. 1.مقدمة:
تعرفنها سهابقاً على مسهتويات التجريهد الثلث التهي يمهر بهها بناء قاعدة
البيانات، وههي المسهتوى المفهومهي والمسهتوى المنطقهي والمسهتوى
الفيزيائي، ورأينها أن المسهتوى المفهومهي ينتههي ببناء مخطهط ERD
ه ه ه ه ه
ويتضمن ما يلي:
•عزل الكيانات.
•تحديد الواصفات ومجالت تعريفها.
•تحديد العلقات بين الكيانات.
•تحديد المفاتيح المرشحة والمفاتيح الساسية للكيانات.
•إنشاء مخطط .ERD
•تدقيق مخطط ERDمن قبل مصمم قاعدة البيانات
ّ
بالتعاون مع المستثمرين.
يبدأ المسهتوى المنطقهي فهي بناء قاعدة المعطيات بعمليهة التنظيهم،
ه ه ه ه ه
ويقصهد بالتنظيهم ) (Normalizationتصهميم جداول قاعدة البيانات بحيهث
نتحكم بتكرار المعطيات ونتجنب حالت الشذوذ التي يمكن أن تنتج عن
عمليات الضافة والحذف والتعديل على المعطيات.
سهنقوم بدايهة بدراسهة الشكاليات التهي يعانهي منهها التصهميم السهيئ
لقاعدة البيانات، ومهن ثهم سهندرس مسهتويات التنظيهم وخصهائص كهل
منها.
2.جداول قواعد المعطيات والتنظيم
•ل يعتبر التصميم الجيد لقواعد المعطيات العلئقية كافياً لتجنب
تكرار المعطيات، فطالما أن التعامل مع جداول قاعدة المعطيات
مبني على أساس ملفات مخزنة في نظام الملفات، لن يستطيع
نظام إدارة قواعد المعطيات العلئقية أن يدرك كيفية وضرورة
تحديد توزع المعطيات أو معالجتها؛
•يعتبر الجدول حجر الساس في بنية تصميم قاعدة المعطيات،
بالتالي تعتبر دراسة بنية الجدول أمر من أهم مراحل عملية
التصميم تلك، فعلى الرغم من أن تصميم قاعدة المعطيات
بالعتماد على معايير ومخططات خاصة - كمخططات الكيانات-
العلقات - غالباً ما ينتج عنها بنى جداول جيدة، إل أن احتمال
الحصول على البنى السيئة يبقى كبيراً؛
2/42
3. •يمكن التعرف على أن بنى بعض الجداول في قاعدة المعطيات
سيئة، ويمكن تجنب الحصول على ذلك النوع من بنى الجداول من
خلل تنظيم تلك الجداول؛
•يعبر مصطلح التنظيم عن الطريقة المتبعة لنشاء وتصحيح بنى
الجداول من أجل تجنب تكرار المعطيات أو التخلص من الشذوذ
المحتمل في تلك المعطيات؛
َّ
•يعمل التنظيم من خلل مجموعة مراحل معرفة على قاعدة
المعطيات يطلق عليها اسم الشكال النظامية، يطلق على
المراحل الثلثة الولى اسم الشكل النظامي الول، الشكل
النظامي الثاني، الشكل النظامي الثالث على الترتيب، بحيث
يعتبر – من وجهة نظر بنيوية – أن الشكل النظامي الثاني أفضل
من الشكل النظامي الول كما أن الشكل النظامي الثالث أفضل
من الشكل النظامي الثاني؛
•يعتبر الشكل النظامي الثالث أكثر الشكال السابقة ملءمة
لغراض تصميم قواعد معطيات العمال، ولكن وعلى الرغم من
أن تنظيم قواعد المعطيات هو عامل أساسي في تصميم قواعد
المعطيات، إل أنه ل ينبغي الفتراض بأن المستوى العلى من
التنظيم هو المستوى الفضل، فكلما ارتفع مستوى التنظيم كلما
ازداد عدد الرتباطات المنفذة لسترجاع الخرج المطلوب وكلما
ازداد زمن الستجابة من قبل قاعدة المعطيات، وبالتالي ينبغي
أن تؤخذ سرعة الداء بعين العتبار أثناء تنظيم قواعد المعطيات
مما يؤدي إلى ظهور مفهوم إعادة التنظيم Denormalization؛
•يعبر مصطلح إعادة التنظيم عن النتقال من شكل نظامي إلى
شكل نظامي أدنى منه، ويهدف إلى تسريع الداء واستجابة
قاعدة المعطيات على حساب تكرار المعطيات.
3.إشكاليات التصميم السيئ لقاعدة البيانات:
بفرض أن شركة ما تضم مجموعة من مسؤولي المبيعات يعملون في
عدة مواقهع، تريهد الدارة تخزيهن البيانات المتعلقهة بموظفيهها وبيانات
مسههتودعاتها فههي قاعدة معطيات. المحاولة الولى لبناء القاعدة نتههج
عنها الجدول التالي:
Id Name Address Title Store Store_Address Store_Phone
1Sr Jane 1E Sales Rep 1A 1S 7654321-110
2Sr Fred 2E Sales Rep 1A 1S 7654321-110
3Sr Ed 3E Manager 1A 1S 7654321-110
4Sr Ann 4E Sales Rep 2A 2S 4321987-110
3/42
4. Sr5 Jone 5E Sales Rep 2A 2S 4321987-110
Sr6 Smith 6E Manager 2A 2S 4321987-110
يتضمههن هذا الجدول بيانات الموظفيههن وبيانات المسههتودعات، ومههن
الواضح وجود تكرار في بيانات المستودعات.
إذا أردن هها إدخال بيانات موظ ههف جدي ههد فيج ههب إدخال بيانات موقع ههه
ه ه ه ه ه
)المسهتودع( أيضاً، وللحفاظ على عدم تناقهض البيانات فهي القاعدة
يج هب إدخال بيانات المس هتودع بدق هة وبشك هل مطاب هق للقي هم المدخلة
ه ه ه ه ه ه
ً
سهابقا )لحهد الموظفيهن السهابقين فهي نفهس المسهتودع(، هنها تظههر
مشكلة تكرار البيانات بالضافة طبعاً لحجم التخزين المهدور.
لحظ الشكاليات التالية:
1.3.بفرض أننها نريهد إدخال بيانات مسهتودع جديهد قبهل توظيهف أحهد
فيههه، هذا يتطلب إدخال قيههم Nullفههي بيانات الموظههف ومههن
ضمنههها الحقههل المفتاح ) (Idممهها يخرق شرط تكامههل البيانات.
هذا ما يدعى بإشكالية الدخال ).(Insertion anomaly
2.3.بفرض أننههها حذفنههها تسهههجيلة الموظهههف الخيهههر فهههي أحهههد
المس هتودعات، س هيؤدي ذلك إلى فقدان بيانات مس هتودع موجود
ه ه ه
في الشركة. هذا ما يدعى بإشكالية الحذف ).(Deletion anomaly
3.3.إذا أردنها تغييهر رقهم هاتهف أحهد المسهتودعات، عندهها يجهب تغييهر
رقم الهاتف في كل تسجيلت موظفي ذلك المستودع، فإذا تم
تغييهر جزء مهن هذه التسهجيلت دون جزء آخهر سهيؤدي ذلك إلى
بيانات متناقضهة فهي قاعدة البيانات، وهذا مها يدعهى بإشكاليهة
التعديل ).(Update anomaly
هابق إلى
هء الجدول السه
هابقة هن خلل تجزيه
مه هل السه
هم هل المشاكه
يته حه
هتورد مفتاح الجدول
هن ويسه
هل بيانات الموظفيه
ها يحمه
هن، أحدهمه
جدوليه
الثاني الذي يحمل بيانات المستودعات:
Id Name Address Title Store
1Sr Jane 1E Sales Rep 1A
2Sr Fred 2E Sales Rep 1A
3Sr Ed 3E Manager 1A
4Sr Ann 4E Sales Rep 2A
5Sr Jone 5E Sales Rep 2A
6Sr Smith 6E Manager 2A
4/42
5. Store Store_Address Store_phone
1A 1S 7654321-110
2A 2S 4321987-110
- حهل إشكاليهة الدخال: عنهد إدخال بيانات موظهف جديهد، يتهم تسهجيل
مفتاح المس هتودع الذي يعم هل في هه، أم ها بقي هة بيانات المس هتودع فه هي
ه ه ه ه ه ه ه
هة هي
هر بيانات متناقضه فه
هتقل وبالتالي لن تظهه
هة هي جدول مسه
مخزنه فه
هتودع
ها إدخال بيانات مسه
هتودعات، وإذا أردنه
قاعدة البيانات بشأن المسه
جديهد فيمكهن إدخالهها بصهرف النظهر عمهن يعمهل فهي المسهتودع، ممها
يجنبنا إشكالية الدخال.
- حهل إشكاليهة الحذف: عنهد حذف الموظهف الخيهر فهي مسهتودع، تبقهى
بيانات المستودع في جدول مستقل.
- حل إشكال ية التعد يل: ع ند تعد يل ر قم ها تف الم ستودع، ي تم التعد يل
على تسجيلة واحدة في جدول المستودعات.
الجراءات السابقة )تجزيء الجدول( هي جزء من عملية تنظيم قاعدة
البيانات، والتي سنتعرف عليها بتفصيل أكثر في هذا الفصل والفصل
القادم.
4.مستويات التنظيم:
كمها سهبق وعرفنها، التنظيهم ههو عمليهة ترتيهب وتوزيهع جداول قاعدة
المعطيات العلئقيههة، للتقليههل مههن تكرار المعطيات وتقليههص حجههم
التخزيههن المطلوب ولحههل إشكاليات الدخال والحذف والتعديههل مههع
المحافظ هة على تكام هل البيانات. وغالباً م ها ينت هج ع هن عملي هة التنظي هم
ه ه ه ه ه ه ه
زيادة فهي عدد جداول القاعدة. ويتهم تنظيهم قاعدة البيانات مهن خلل
إخضاعهها لمجموعهة اختبارات والتعديهل على البنيهة لتحقيهق مجموعهة
معايير.
مسهتويات التنظيهم السهاسية ههي ثلث )الشكهل النظامهي الول ،1NF
الشكهل النظامهي الثانهي ،2NFالشكهل النظامهي الثالث ،(3NFويقصهد
عادة بتنظيم القاعدة وضعها في الشكل النظامي الثالث.
يضاف للمس هتويات الثلث الشك هل المقترح مهن قب هل R. Boyceويطلق
ه ه ه ه
عليه تسمية ،BCNFوالشكلين النظاميين الرابع والخامس.
5/42
6. مستو
ى
عملية التنظيم
التنظ
يم
حذف المجموعات المكررة. أنشئ جدول ً مستقل ً لكل مجموعة واصفات
1NF
مترابطة، وعيّن مفتاحا أساسيا لكل جدول.
حذف البيانات المكررة. إذا وجدت أي واصفة تعتمد فقط على جزء من مفتاح
2NF
متعدد-القيمة، انقل الواصفة إلى جدول مستقل.
حذف العمدة غير المرتبطة على مفتاح. إذا وجد مجموعة من الواصفات ل
3NF
تساهم في وصف المفتاح، انقلها إلى جدول مستقل.
.Boyce-Codd Normal Formإذا لم تكن العلقة بين المفاتيح المرشحة
BCNF
علقة واضحة، افصل هذه المفاتيح في جداول مختلفة.
عزل العلقات العديدة المستقلة عن بعضها. ل وجود لجدول يحوي علقات
4NF
1: nأو n:mغير المترابطة بشكل مباشر.
عزل العلقات العديدة المترابطة دلليا. وجود قيود عمليّة على البيانات
5NF
تستدعي الفصل المنطقي للعلقات عديد لعديد.
س هنتناول ف هي هذا الفص هل الشكال النظامي هة الثلث الس هاسية، كم ها
ه ه ه ه ه ه
سنتناول المستويان .BCNF, 4NF
6/42
7. 1.4.الشكل النظامي الول ):(1NF
يقال عن جدول في قاعدة البيانات أنه من الش كل النظامي الول إذا
كان تقاطهع كهل سهطر وعمود فيهه )أي الخليها(، يتضمهن قيمهة وحيدة
غير قابلة للتجزئة.
الخطوات التي يتكون منها الشكل النظامي الول:
1.إزالة المجموعات المكررة: تبدأ هذه المرحلة من خلل
عرض المعطيات ضمن جدول بحيث تتكون كل خلية فيه
من قيمة وحيدة ول توجد هناك أية مجموعات مكررة. يتم
إزالة المجموعات المكررة من خلل إزالة كافة القيم
الفارغة ) (NULLوالتأكد من أن كافة الواصفات تحتوي
على قيم مناسبة.
2.تعريف المفتاح الرئيسي.
3.تعريف كافة التبعيات.
مثال:
يمثل الشكل التالي بيانات شركة تأجير عقارات:
C_id P_num C_name P_address R_start R_end Rent Owner_num Owner
3Pr A 69-1-1 89-1-21 587 32Po Jones
10 Jane
22Pr B 89-1-2 00-03-3 0021 44Po Jan
20 71Pr Fred C 88-1-2 09-11-1 0001 23Po Jill
23Pr D 09-1-6 59-1-3 059 23Po Jill
30 Ed
22Pr B 00-1-4 null 0021 44Po Jan
حيث:
C_id
رقم الزبون
P_num
رقم العقار
C_name
اسم الزبون
P_address
عنوان العقار
R_start
تاريخ بدء اليجار
R_end
تاريخ نهاية اليجار
Rent
قيمة اليجار
Owner_num
رقم مالك العقار
Owner
اسم مالك العقار
7/42
8. C_idهو المفتاح الساسي للجدول.
يمكههن ملحظههة أن قيههم خليهها الجدول قابلة للتجزئة )لحههظ البيانات
المكتوبههة بخههط غامههق(، وهذا التصههميم سههيء حيههث ل يمكههن فيههه
استخلص معلومات مالك عقار معين بسهولة. كما يعاني هذا التصميم
أيضاً من مشكلة تكرار المعطيات، فكلما تم تأجير عقار يجب أن تدخل
بياناته التفصيلية من جديد.
لوضهع الجدول السهابق فهي الشكهل النظامهي الول يجهب تجزئة الخليها
الحاوية على معطيات قابلة للتجزئة. ويمكن عمل ذلك من خلل إدخال
بيانات كهل عمليهة إيجار فهي سهطر جديهد، أي يجهب أن يصهبح المفتاح
السهاسي ههو نتيجهة تركيهب رقهم الزبون ورقهم العقار )(c_id, p_num
علماً أن التصهميم مبنهي على أسهاس تخزيهن بيانات العقارات المؤجرة
حالياً دون حفظ تاريخ حركات اليجار، بمعنى أن نفس الزبون ل يمكن
أن تتواجد له حركتي إيجار لنفس العقار.
C_id P_num C_name P_address R_start R_end Rent O_num Owner
10 3Pr Jane A 69-1-1 89-1-21 587 32Po Jones
10 22Pr Jane B 89-1-2 00-03-3 0021 44Po Jan
20 71Pr Fred C 88-1-2 09-11-1 0001 23Po Jill
30 23Pr Ed D 09-1-6 59-1-3 059 23Po Jill
30 22Pr Ed B 00-1-4 null 0021 44Po Jan
تطبيق:
طبق معيار 1NFعلى الجدول التالي:
Employees
id Name children birth_date
1001 John Doe Betty, Frank 09-3-4 ,88-2-2
2001 Jane Doe Betty, Frank 09-3-4 ,88-2-2
3001 Freda Fish ,Henry, Jane ,48-8-2 ,97-4-4
Jill, Bill 09-3-01 ,88-9-7
8/42
10. 2.4.الشكل النظامي الثاني ):(2NF
يقال عن جدول أنه من الشكل النظامي الثاني إذا حقق ما يلي:
•هو من الشكل النظامي الول.
• كل الواصفات التي ل تشكل جزءاً من المفتاح الساسي،
تعتمد وظيفياً وبشكل كلي على المفتاح الساسي.
الخطوات التي يتكون منها الشكل النظامي الثاني:
1.تعريف كافة مكونات المفاتيح: ينبغي أولً كتابة كل
جزء من المفتاح الرئيسي )المركب( على حدة ثم
كتابة المفتاح ككل على سطر آخر. و بعد ذلك
سيتم اعتبار كل سطر مما سبق مفتاح رئيسي
في جدول خاص.
2.تعريف الواصفات ذات التبعيات
التبعية الوظيفية ):(functional dependency
تعتم هد الواص هفة Bعلى الواص هفة Aوظيفياً إذا كان هت ك هل قيم هة له ه A
ه ه ه ه ه ه
ً
تقابل ها قيمة وحيدة ل ه ،Bفمثل ر قم الزبون يحدد اسمه، و كل قي مة ل ه
c_idتقابلهها قيمهة وحيدة لهه c_nameلذلك يقال أن c_nameتتبهع وظيفياً
له ،c_idأو يقال أن c_idتحدّد .(c_name(Determine
Bتعتمهههد وظيفياً بشكهههل كلي على مفتاح مركهههب )functional
ه ه ه
fully
،(dependencyإذا كان المفتاح المرك هههب يحدد ،Bو Bل تعتم هههد وظيفياً
ه ه
على جزء منه.
تكتب علقات التبعية بين الواصفات على الشكل التالي:
C_id → c_name
P_num → p_address, owner_num, owner
يبدأ وضهع الجداول فهي الشكهل النظامهي الثانهي بتحديهد جميهع علقات
التبعية بين الواصفات، ومن ثم تجزيء الجداول ) ،(decompositionوهي
تضمههن اعتماد جميههع الواصههفات التههي ل تشكههل جزءاً مههن المفتاح
الساسي كلياً وبشكل مباشر على المفتاح الساسي.
01/42
11. يمكهن السهتنتاج مهن التعريهف السهابق أن جميهع الجداول ذات المفتاح
البسهيط )غيهر المركهب( والتهي تخضهع لمعيار 1NFههي حتماً مهن الشكهل
النظامي الثاني.
بتطبيق ذلك على مثالنا نجد العلقات التالية:
.a C_id + p_num .→ r_start, r_end
.b C_id .→ c_name
.c P_num .→ p_address, rent, owner_num, owner
.d Owner_num .→ owner
.e C_id + r_start ,→ p_num, p_address, r_end, r_end, rent, owner_num
.owner
f. P_num + r_start .→ c_id, c_name, r_end
بمناقشة هذه العلقات نجد ما يلي:
r_start, r_end.aتعتمهد على ) ،(c_id, p_numوبمها أن )
(c_id, p_numههو المفتاح المركهب فذلك ل يتناقهض
مع .2NF
C_name.bتعتمههههد جزئياً على المفتاح السههههاسي )
ه ه
،(partial functional dependencyوهذا يتناقض مع .2NF
.cهذه الحالة تشابه الحالة .b
owner.dتعتم هد على ،owner_numو owner_numتعتم هد
ه ه
على المفتاح السههاسي، أي أن ownerتعتمههد على
المفتاح الس هاسي بالتعدّي )،(transitive dependency
ه
وهذا ل يتناقض مع شرط .2NF
c_id + r_start.eتحدد ,p_num, p_address, r_end, r_start
،rent, owner, owner_numولك هن ) (c_id, r_startه هي
ه ه
مفتاح مرشح ممكن أن يكون مفتاحاً أساسياً، وبما
أننهها لم نقرر بعههد )نحههن فههي طور إعادة تصههميم
قاعدة البيانات( فإن هذه العلقهههههة ل تخرق شرط
.2NF
.fهذه الحالة تشابه الحالة .e
يبدأ تطهبيق معيار 2NFبتجزيهء الجدول انطلقاً مهن علقهة التبعيهة
الكاملة ):(a
Rental
C_id P_num R_start R_end
10 3Pr 69-1-1 89-1-21
10 22Pr 89-1-2 00-03-3
11/42
12. 20 71Pr 88-1-2 09-11-1
30 23Pr 09-1-6 59-1-3
30 22Pr 00-1-4 Null
من ثم نشكل الجداول اللزمة لحقول علقات التبعية الجزئية:
Customer
C_id C_name
10 Jane
20 Fred
30 Ed
Property
P_num P_address rent Owner_num Owner
3Pr A 587 32Po Jones
22Pr B 0021 44Po Jan
71Pr C 0001 23Po Jill
23Pr D 059 23Po Jill
جداول الشكل النظامي الثاني تحل إشكاليات الحذف والضافة ول
ً
تحهل إشكاليهة التعديهل، فمثل إذا أردنها تعديهل بيانات أحهد المالكيهن
فيج هب تعدي هل مجموع هة م هن التس هجيلت، م ما يتف هق م هع إشكالي هة
ه ه ه ه ه ه ه ه
ّه
التعديل سابقة الذكر.
21/42
13. 3.4.الشكل النظامي الثالث ):(3NF
يكون الجدول من الشكل النظامي الثالث إذا حقق ما يلي:
•من الشكل النظامي الثاني.
•ل توجهد فيهه واصهفات ل تشكهل جزءاً مهن المفتاح
الساسي وتعتمد بالتعدّي على المفتاح الساسي.
الخطوات التي يتكون منها الشكل النظامي الثالث:
1.تعريف كل المحددات الجديدة: ينبغي اعتبار
كل محدد في تبعية متعدية مفتاحاً أساسيا
لجدول جديد، بحيث يعبر المحدد عن
الواصفة التي تحدد قيمتها قيماً أخرى ضمن
السطر نفسه.
2.تعريف الواصفات ذات التبعيات: يتم في
هذه الخطوة تحديد كافة الواصفات
المرتبطة بكل محدد معرف في الخطوة
ّ
الولى، كما يتم هنا تعريف علقات التبعية
المتشكلة.
3.إزالة الواصفات ذات التبعيات من التبعيات
المتعدية: إزالة كافة الواصفات ذات
التبعيات من علقات التبعيات المتعدية لكل
جدول من جداول العلقة المتعدية.
الجداول Rentalو Customerل تحوي واص ههفات تعتم ههد بالتعدي على
ه ه
المفتاح الساسي، بينما الواصفة ownerفي الجدول Propertyيعتمد
على owner_numالذي بدوره يعتمهد على P_numولوضهع هذا الجدول
في الشكل النظامي الثالث يجب تجزيئه إلى الجدولين التاليين:
Property
P_num P_address rent Owner_num
3Pr A 587 32Po
22Pr B 0021 44Po
71Pr C 0001 23Po
23Pr D 059 23Po
Owner
Owner_num Owner
31/42
14. 32Po Jones
44Po Jan
23Po Jill
الش كل النظا مي الثالث ي حل إشكاليات التعد يل والحذف والضا فة،
بالضافههة إلى حههل مشكلة تكرار البيانات، وعندمهها يطلب تنظيههم
قاعدة بيانات فيقصههد بذلك عادة وضعههها فههي الشكههل النظامههي
الثالث.
41/42
15. 5.الشكل النظامي :(Boycee-Codd (BCNF
رأينها سهابقاً أنهه عندمها يطلب تنظيهم قاعدة البيانات، فالمقصهود بذلك
عادة وضعههها فههي الشكههل النظامههي الثالث ) ،(3NFونادراً مهها تحقههق
القاعدة شروط 3NFوتخرق الشكال النظاميههة التاليههة )،(4Nf, BCNF
هههل القاعدة هههن 3NFإلى 4NF
مه يضاف إلى ذلك أن الفائدة هههن تحويه
مه
بسيطة ول تقابل الجهد اللزم لهذا التحويل.
يطبق الشكل النظامي BCNFعلى الجداول الحاوية على:
•عدة مفاتيح مرشحة.
•مفاتيح مرشحة مركبة.
•مفاتيح مرشحة متقاطعة.
يكون الجدول مهن الشكهل BCNFإذا كان كهل محدّد مهن محدداتهه يشك ّهل
ِ
مفتاحاً مرشحاً. وبالتالي إذا كان الجدول يحتوي على مفتاح مرشه
هههههح
وحي هد س هيتطابق الشك هل النظام هي Boyce-Coddم هع الشك هل النظام هي
ه ه ه ه ه ه ه
الثالث.
الواصهفة )أو مجموعهة الواصهفات( المحددة ههي واصهفة تعتمهد عليهها
واصفات أخرى بشكل كلي.
خرق شرط BCNFيحدث عادة ف ههي الجداول الحاوي ههة على أكث ههر م ههن
ه ه ه ه
مفتاح مرشههح مركههب وفههي حالت تقاطههع المفاتيههح المرشحههة فههي
الجدول.
ليكن الشكل التالي، الذي يمثل مخطط تبعيات لجدول معين:
يمكن أن نستنتج من المخطط التبعيات التالية:
A+B C, D
C B
51/42
16. ل يحتوي المخطط على تبعيات جزئية أو متعدية، وبالتالي فهو يحقق
الشكل النظامي الثالث ولكن الجدول السابق ل يحقق الشكل النظامي
Boyce-Coddبسبب وجود علقة التبعية من Cإلى .B
يمكن تحويل بنية الجدول السابق بحيث تندرج تحت الشكل النظامي
الثالث والشكل النظامي Boyce-Coddمن خلل الخطوات التالية:
•أولً ينبغي تحويل المفتاح الرئيسي إلى الحقلين A+Cوذلك على
اعتبار أن Cمفتاح مرشح وهو الشرط الذي نفترض تحققه على
كافة واصفات الجدول، وبالتالي فإن العلقة من Cإلى Bتتحول
الن إلى علقة تبعية جزئية، وعند هذه النقطة تندرج بنية الجدول
تحت الشكل النظامي الول؛
•يتم بعد ذلك إتباع الستراتيجية التي نستطيع من خللها التخلص
من علقة التبعية الجزئية، كما في الشكل التالي:
مثال ١:
Rental
C_id P_num R_start R_end
10 3Pr 69-1-1 89-1-21
10 22Pr 89-1-2 00-03-3
20 71Pr 88-1-2 09-11-1
30 23Pr 09-1-6 59-1-3
30 22Pr 00-1-4 Null
Customer
C_id C_name
10 Jane
20 Fred
30 Ed
61/42
17. Property
P_num P_address rent O_num
3Pr A 587 32Po
22Pr B 0021 44Po
71Pr C 0001 23Po
23Pr D 059 23Po
Owner
O_num Owner
32Po Jones
44Po Jan
23Po Jill
ها يتضمههن مفتاح بسههيط
الجداول Customer, Owner, Propertyهل منهه
كه
تعتمد عليه بقية الحقول، فهي حتماً من الشكل .BCNF
الجدول Rentalنجد فيه علقات التبعية التالية:
a. C_id + p_num .→ r_start, r_end
b. C_id + r_start → p_num, r_end
c. P_num + r_start .→ c_id, r_end
افترضنا في هذا الشكل أن المستأجر ل يستأجر نفس الشقة مرتين،
وإل فإن تصميم القاعدة سيختلف.
ها
المحددات ) (C_id + p_num)، (C_id + r_start)، (P_num + r_startكلهه
مفاتيح مرشحة، وبالتالي فإن الجدول Rentalهو من الشكل .BCNF
مثال ٢:
لننظر إلى الجدول التالي:
Client_Meeting
C_id I_date I_time Room_num Emp_num
80 00-02--40 03:90 07P 32-Pe
71 00-10-50 03:90 06P 23-Pe
02 00-10-50 03:01 07P 32-Pe
يتضمههن هذا الجدول بيانات لقاءات موظفههي التسههويق مههع الزبائن. )
(C_id, I_dateههو المفتاح السهاسي، ويفترض هذا الجدول أن الزبون ل
يمكنه إجراء أكثر من مقابلة في نفس اليوم، بينما يستطيع الموظف
إجراء أكثر من مقابلة في اليوم، وفي غرفة واحدة.
علقات التبعية في الجدول السابق تتضمن:
a. C_id + I_date .→ I_time, room_num, Emp_num
b. I_date + I_time + Emp_num .→ C_id
71/42
18. c. I_date + I_time + Room_num .→ C_id, Emp_num
d. I_date + Emp_num .→ Room_num
ً
ل تشكل a، b، cخرقا له BCNFلن المحدد فيها هو مفتاح مرشح.
ههل مفتاحاً مرشحاً )يمكه
ههن ههاري ل يشكه
ههد أن الطرف اليسه
ههي dنجه
فه
للموظف إجراء أكثر من مقابلة في نفس اليوم(، هذه العلقة ل تخرق
شرط 3NFلن الطرف اليمينهي ههو جزء مهن مفتاح مرشهح ) (Cولكنهها
تخرق شرط .BCNF
لوضع الجدول السابق في الشكل BCNFيجب تجزئته على الشكل:
C_id I_date I_time Emp_num
80 00-02--40 03:90 32-Pe
71 00-10-50 03:90 23-Pe
02 00-10-50 03:01 32-Pe
Emp_num I_date Room_num
32-Pe 00-02--40 07P
23-Pe 00-10-50 06P
32-Pe 00-10-50 07P
الشكهل النظامهي الثالث ههو شكهل كاف لتنظيهم قاعدة البيانات، وههو
كاف لتلفي تكرار البيانات ومشاكل الحذف والتعديل والضافة.
ملحظة:
قهد يكون مهن المفيهد فهي بعهض الحيان إعادة تركيهب الجداول الناتجهة
عههن التنظيههم، لعتبارات تسههريع أداء قاعدة البيانات وهذا مهها يدعههى
بإعادة التنظيم ).(denormalization
مثال ٣:
يضم الجدول التالي بيانات توريد مواد.
Supplier_id Supplier_name Part_num Quantity
بفرض أن اس ههههههههههم المورد ل يتكرر، فهناك مفتاحان مرشحان لهذه
ه
هة ) (supplier_id ,part_numو ) ،(supplier_name ,part_numالتبعيات
العلقه
الموجودة في الجدول هي:
a. Supplier_id .→ supplier_name
81/42
19. b. Supplier_name → supplier_id.
c. Supplier_id + part_num → quantity.
d. Supplier_id + part_num → supplier_name.
e. Supplier_name + part_num → supplier_id.
f. Supplier_name + part_num → quantity.
3 لن الواصهفة الوحيدة التهي ل تشكهلNF هذا الجدول ههو مهن الشكهل
، وه هي ل تتحدد بجزء م هن مفتاحquantity جزءاً م هن مفتاح مرش هح ه هي
ه ه ه ه ه
.مرشح
كلهما محدد وليس مفتاحاً مرشحاً، فالجدولSupplier_id, supplier_name
يجهب تجزئتهه علىBCNF . ولجعله مهن الشكهلBCNF ليهس مهن الشكهل
:الشكل
Supplier_id Part_num Quantity
Supplier_id Supplier_name
24/19
20. 6.الشكل النظامي الرابع ):(4NF
يعتمههههد تعريههههف 4NFعلى مفهوم التبعيههههة متعددة القيههههم )—<<( )
.(multivalued dependencyتحدث التبعيهة متعددة القيهم فهي جدول يضهم
ثلثهة حقول على القهل، عندمها تتطابهق قيهم عدة أسهطر مهن عمود مهع
قيمة سطر وحيد في عمود آخر، أي أن قيمة حقل تحدد مجموعة قيم
لحقل آخر.
يكون الجدول مهن الشكهل 4NFإذا كان مهن الشكهل BCNFوكهل واصهفة
تحددهها )تحديهد متعدد القيهم( مجموعهة واصهفات أخرى يجهب أن تعتمهد
ً
كليا على مجموعة الواصفات هذه.
مثال:
موظفون تسند لهم مشاريع ويتمتعون بكفاءات معينة:
Emp Prj Skill
1121 1 Analysis
1121 5 Analysis
1121 1 Design
1121 1 Prog
مفتاح الجدول السابق هو الواصفات الثلث مجتمعة.
والجدول السهابق ههو مهن الشكهل ،BCNFولكنهه ليهس مهن الشكهل ،4NF
لن:
a. Emp + prj .—>> skill
b. Emp + skill .—>> prj
ً
بينمهها skillتعتمههد على empأي تعتمههد جزئيا على ) ،(emp, prjونفههس
الشيء نجده في العلقة ،bحيث prjتعتمد جزئياً على ).(emp, skill
لوضع الجدول السابق في الشكل 4NFيجب تجزئته على الشكل:
Emp Prj
Emp Skill
تمرين:
02/42
21. طبق القواعد اللزمة للوصول إلى الشكل النظامي الثالث للجدول
التالي:
:1NF
1.نُعبِّر عن المفتاح الرئيسي بلون مميز؛
2.تُعبِّر السهم الموضحة في الجهة العلوية من المخطط عن
التبعيات المتعلقة بالمفتاح الرئيسي؛
3.تُعب ِّر السهم الموضحة في الجهة السفلية من المخطط عن
التبعيات الخرى القل أهمية وهي نوعان:
oتبعيات جزئية: وهي التبعيات التي تعتمد على جزء
واحد من مفتاح رئيسي مركب من أكثر من واصفة؛
oتبعيات متعدية: وهي التبعيات التي تعتمد على واصفة
غير رئيسية وهي ليست موجهة إلى واصفة رئيسية
أيضاً، يمكن أن يؤدي هذا النوع من التبعيات إلى
الحصول على معطيات شاذة أو غير قياسية.
12/42
22. :2NF
:3NF
ملحظة:
على الرغم من توافر العديد من الشكال النظامية ذات المستويات
العلى، كالشكل النظامي الخامس 5NFأو الشكل النظامي الخاص
بالمجال، إل أنه ل يمكن تطبيق تلك الشكال النظامية عملياً أو ضمن بيئة
عملية، وهي موجهه بشكل رئيسي للهتمامات الكاديمية والنظرية.
22/42
23. 7.إعادة تنظيم قواعد المعطيات
•الغرض من إعادة التنظيم:
على الرغم من أهمية تنظيم العلقات أثناء تصميم قواعد المعطيات،
إل أن عملية التصميم تلك تحتوي على عدّة معايير هامة أخرى ينبغي
أخذها بعين العتبار، فقاعدة المعطيات الجيدة تتطلب –على سبيل
المثال- توافر معالجة وتحليل جيد للمتطلبات، كذلك فإن تطور
التصميم وتوسيع قاعدة المعطيات لتحقيق كافة معايير التنظيم
يمكن أن يؤدي إلى فرض المزيد من العبء على نظام إدارة قواعد
المعطيات وبالتالي ينخفض الداء، بالتالي نستنتج مما سبق ضرورة
وجود درجات معينة من إعادة الستنظام بهدف تحسين الداء؛
•ينبغي دوما إجراء مقارنات ما بين حسنات وسيئات التنظيم
ً
وإعادة التنظيم، كأن تتم المقارنة فيما بين سرعة الداء
وإمكانيات الشذوذ في المعطيات، مع العلم أن بعض تلك الحالت
يندرج تحت الدراسات النظرية. مثلً، هل ينبغي على المصمم أن
يوضح أثناء بناء قاعدة المعطيات بأن الواصفة التي تعبر عن
الرمز المحلي ZIP_CODEتعبر بدورها عن المدينة في جدول
الزبون الذي يحتوي على مفتاح رئيسي هو رقم ذلك الزبون؟ أو
أنه من الفضل فصل التبعية المتعدية تلك في جدول خاص، كما
يلي:
جدول_الرمز_المحلي )الرمز_المحلي، المدينة(
في الحقيقة ل يمكن تحديد الجابة عن السؤال السابق، فذلك يعتمد
بشكل رئيسي على نمط وتوجه النظام الذي تصمم قاعدة المعطيات
من أجله، أو بأسلوب آخر، يمكن إهمال علقة التبعية المتعدية
السابقة تلك في معظم أنظمة العمال، في حين يمكن اعتبار
ًّ
الجدول الجديد المنشأ فعال في أنظمة القوائم البريدية على سبيل
المثال والتي تستخدم الرمز المحلي بشكل كبير !!!
وكنتيجة لما سبق يمكن أن نستنتج أن التنظيم ل يخضع لقواعد ثابتة،
إذ يمكن تجاوز بعض الحالت في سبيل تحسين الداء، وذلك يعتمد
بشكل كبير على نوع النظام المصمم؛
•يمكن أن تتعرض الجداول غير المنظمة إلى عدة مشاكل، نذكر
منها:
1.فعالية أقل بكثير أثناء تحديث المعطيات، ففي حالة
الجداول غير المنظمة، ينبغي على التطبيقات أن
32/42
24. تقوم بالولوج إلى جداول كبيرة للحصول على
المعلومات.
2.تعتبر إجراءات فهرسة الجداول غير المنظمة
مرهقة، فليس عملياً أن يتم بناء العديد من الفهارس
للعديد من الواصفات التي تتواجد في جدول غير
منظم.
3.تؤدي الجداول غير المنظمة إلى التعرض للعديد من
العقبات أثناء بناء المناظير )الجداول الفتراضية(.
المراجع:
• /931001http://support.microsoft.com/kb/q
• http://www.ischool.utexas.edu/~wyllys/DMPAMaterials/normover.html
42/42