SlideShare a Scribd company logo
1 of 24
‫المادة: تصميم قواعد المعطيات ‪DBAR‬‬

        ‫الفصل الخامس التنظيم )‪(Normalization‬‬


                                                         ‫ملخص:‬
‫يركز هذا الفصل على تعريف إشكاليات التصميم السيئ لقاعدة البيانات،‬
                                            ‫وطرق تنظيم القاعدة.‬

                                                ‫أهداف تعليمية:‬
                                               ‫يتضمن هذا الفصل:‬
              ‫•تعريف إشكاليات التصميم السيئ لقاعدة البيانات.‬
                                ‫•الشكل النظامي الول )‪.(1NF‬‬
                               ‫•الشكل النظامي الثاني )‪.(2NF‬‬
                               ‫•الشكل النظامي الثالث )‪.(3NF‬‬
              ‫•الشكل النظامي ‪.(BCNF (Boycee-Codd Normal form‬‬
                                ‫•الشكل النظامي الرابع )‪.(4NF‬‬




                                                               ‫1/42‬
‫1.مقدمة:‬
‫تعرفنها سهابقاً على مسهتويات التجريهد الثلث التهي يمهر بهها بناء قاعدة‬
‫البيانات، وههي المسهتوى المفهومهي والمسهتوى المنطقهي والمسهتوى‬
‫الفيزيائي، ورأينها أن المسهتوى المفهومهي ينتههي ببناء مخطهط ‪ERD‬‬
     ‫ه‬           ‫ه‬      ‫ه‬           ‫ه‬         ‫ه‬
                                                     ‫ويتضمن ما يلي:‬

                                                 ‫•عزل الكيانات.‬
                            ‫•تحديد الواصفات ومجالت تعريفها.‬
                                  ‫•تحديد العلقات بين الكيانات.‬
        ‫•تحديد المفاتيح المرشحة والمفاتيح الساسية للكيانات.‬
                                            ‫•إنشاء مخطط ‪.ERD‬‬
             ‫•تدقيق مخطط ‪ ERD‬من قبل مصمم قاعدة البيانات‬
                             ‫ّ‬
                                   ‫بالتعاون مع المستثمرين.‬

‫يبدأ المسهتوى المنطقهي فهي بناء قاعدة المعطيات بعمليهة التنظيهم،‬
  ‫ه‬        ‫ه‬                           ‫ه‬   ‫ه‬          ‫ه‬
‫ويقصهد بالتنظيهم )‪ (Normalization‬تصهميم جداول قاعدة البيانات بحيهث‬
‫نتحكم بتكرار المعطيات ونتجنب حالت الشذوذ التي يمكن أن تنتج عن‬
                   ‫عمليات الضافة والحذف والتعديل على المعطيات.‬
‫سهنقوم بدايهة بدراسهة الشكاليات التهي يعانهي منهها التصهميم السهيئ‬
‫لقاعدة البيانات، ومهن ثهم سهندرس مسهتويات التنظيهم وخصهائص كهل‬
                                                                  ‫منها.‬



                              ‫2.جداول قواعد المعطيات والتنظيم‬
      ‫•ل يعتبر التصميم الجيد لقواعد المعطيات العلئقية كافياً لتجنب‬
    ‫تكرار المعطيات، فطالما أن التعامل مع جداول قاعدة المعطيات‬
     ‫مبني على أساس ملفات مخزنة في نظام الملفات، لن يستطيع‬
      ‫نظام إدارة قواعد المعطيات العلئقية أن يدرك كيفية وضرورة‬
                                  ‫تحديد توزع المعطيات أو معالجتها؛‬
       ‫•يعتبر الجدول حجر الساس في بنية تصميم قاعدة المعطيات،‬
          ‫بالتالي تعتبر دراسة بنية الجدول أمر من أهم مراحل عملية‬
          ‫التصميم تلك، فعلى الرغم من أن تصميم قاعدة المعطيات‬
       ‫بالعتماد على معايير ومخططات خاصة - كمخططات الكيانات-‬
        ‫العلقات - غالباً ما ينتج عنها بنى جداول جيدة، إل أن احتمال‬
                             ‫الحصول على البنى السيئة يبقى كبيراً؛‬



                                                                      ‫2/42‬
‫•يمكن التعرف على أن بنى بعض الجداول في قاعدة المعطيات‬
    ‫سيئة، ويمكن تجنب الحصول على ذلك النوع من بنى الجداول من‬
                                                ‫خلل تنظيم تلك الجداول؛‬
         ‫•يعبر مصطلح التنظيم عن الطريقة المتبعة لنشاء وتصحيح بنى‬
         ‫الجداول من أجل تجنب تكرار المعطيات أو التخلص من الشذوذ‬
                                           ‫المحتمل في تلك المعطيات؛‬
                         ‫َّ‬
            ‫•يعمل التنظيم من خلل مجموعة مراحل معرفة على قاعدة‬
             ‫المعطيات يطلق عليها اسم الشكال النظامية، يطلق على‬
            ‫المراحل الثلثة الولى اسم الشكل النظامي الول، الشكل‬
           ‫النظامي الثاني، الشكل النظامي الثالث على الترتيب، بحيث‬
    ‫يعتبر – من وجهة نظر بنيوية – أن الشكل النظامي الثاني أفضل‬
     ‫من الشكل النظامي الول كما أن الشكل النظامي الثالث أفضل‬
                                               ‫من الشكل النظامي الثاني؛‬
            ‫•يعتبر الشكل النظامي الثالث أكثر الشكال السابقة ملءمة‬
     ‫لغراض تصميم قواعد معطيات العمال، ولكن وعلى الرغم من‬
     ‫أن تنظيم قواعد المعطيات هو عامل أساسي في تصميم قواعد‬
          ‫المعطيات، إل أنه ل ينبغي الفتراض بأن المستوى العلى من‬
    ‫التنظيم هو المستوى الفضل، فكلما ارتفع مستوى التنظيم كلما‬
         ‫ازداد عدد الرتباطات المنفذة لسترجاع الخرج المطلوب وكلما‬
         ‫ازداد زمن الستجابة من قبل قاعدة المعطيات، وبالتالي ينبغي‬
     ‫أن تؤخذ سرعة الداء بعين العتبار أثناء تنظيم قواعد المعطيات‬
            ‫مما يؤدي إلى ظهور مفهوم إعادة التنظيم ‪Denormalization‬؛‬
         ‫•يعبر مصطلح إعادة التنظيم عن النتقال من شكل نظامي إلى‬
            ‫شكل نظامي أدنى منه، ويهدف إلى تسريع الداء واستجابة‬
                       ‫قاعدة المعطيات على حساب تكرار المعطيات.‬



                     ‫3.إشكاليات التصميم السيئ لقاعدة البيانات:‬
‫بفرض أن شركة ما تضم مجموعة من مسؤولي المبيعات يعملون في‬
‫عدة مواقهع، تريهد الدارة تخزيهن البيانات المتعلقهة بموظفيهها وبيانات‬
‫مسههتودعاتها فههي قاعدة معطيات. المحاولة الولى لبناء القاعدة نتههج‬
                                                      ‫عنها الجدول التالي:‬

   ‫‪Id‬‬     ‫‪Name‬‬   ‫‪Address‬‬   ‫‪Title‬‬       ‫‪Store‬‬    ‫‪Store_Address‬‬   ‫‪Store_Phone‬‬
   ‫1‪Sr‬‬    ‫‪Jane‬‬   ‫1‪E‬‬        ‫‪Sales Rep‬‬   ‫1‪A‬‬       ‫1‪S‬‬              ‫7654321-110‬
   ‫2‪Sr‬‬    ‫‪Fred‬‬   ‫2‪E‬‬        ‫‪Sales Rep‬‬   ‫1‪A‬‬       ‫1‪S‬‬              ‫7654321-110‬
   ‫3‪Sr‬‬    ‫‪Ed‬‬     ‫3‪E‬‬        ‫‪Manager‬‬     ‫1‪A‬‬       ‫1‪S‬‬              ‫7654321-110‬
   ‫4‪Sr‬‬    ‫‪Ann‬‬    ‫4‪E‬‬        ‫‪Sales Rep‬‬   ‫2‪A‬‬       ‫2‪S‬‬              ‫4321987-110‬


                                                                          ‫3/42‬
‫‪Sr5 Jone‬‬      ‫5‪E‬‬           ‫‪Sales Rep‬‬   ‫2‪A‬‬     ‫2‪S‬‬                  ‫4321987-110‬
   ‫‪Sr6 Smith‬‬     ‫6‪E‬‬           ‫‪Manager‬‬     ‫2‪A‬‬     ‫2‪S‬‬                  ‫4321987-110‬


‫يتضمههن هذا الجدول بيانات الموظفيههن وبيانات المسههتودعات، ومههن‬
                              ‫الواضح وجود تكرار في بيانات المستودعات.‬

‫إذا أردن هها إدخال بيانات موظ ههف جدي ههد فيج ههب إدخال بيانات موقع ههه‬
  ‫ه‬                     ‫ه‬       ‫ه‬       ‫ه‬                    ‫ه‬
   ‫)المسهتودع( أيضاً، وللحفاظ على عدم تناقهض البيانات فهي القاعدة‬
‫يج هب إدخال بيانات المس هتودع بدق هة وبشك هل مطاب هق للقي هم المدخلة‬
          ‫ه‬       ‫ه‬      ‫ه‬       ‫ه‬         ‫ه‬                    ‫ه‬
                                                              ‫ً‬
‫سهابقا )لحهد الموظفيهن السهابقين فهي نفهس المسهتودع(، هنها تظههر‬
         ‫مشكلة تكرار البيانات بالضافة طبعاً لحجم التخزين المهدور.‬

                                                      ‫لحظ الشكاليات التالية:‬
   ‫1.3.بفرض أننها نريهد إدخال بيانات مسهتودع جديهد قبهل توظيهف أحهد‬
   ‫فيههه، هذا يتطلب إدخال قيههم ‪ Null‬فههي بيانات الموظههف ومههن‬
   ‫ضمنههها الحقههل المفتاح )‪ (Id‬ممهها يخرق شرط تكامههل البيانات.‬
                 ‫هذا ما يدعى بإشكالية الدخال )‪.(Insertion anomaly‬‬
   ‫2.3.بفرض أننههها حذفنههها تسهههجيلة الموظهههف الخيهههر فهههي أحهههد‬
   ‫المس هتودعات، س هيؤدي ذلك إلى فقدان بيانات مس هتودع موجود‬
             ‫ه‬                             ‫ه‬          ‫ه‬
     ‫في الشركة. هذا ما يدعى بإشكالية الحذف )‪.(Deletion anomaly‬‬
   ‫3.3.إذا أردنها تغييهر رقهم هاتهف أحهد المسهتودعات، عندهها يجهب تغييهر‬
   ‫رقم الهاتف في كل تسجيلت موظفي ذلك المستودع، فإذا تم‬
   ‫تغييهر جزء مهن هذه التسهجيلت دون جزء آخهر سهيؤدي ذلك إلى‬
   ‫بيانات متناقضهة فهي قاعدة البيانات، وهذا مها يدعهى بإشكاليهة‬
                                               ‫التعديل )‪.(Update anomaly‬‬

‫هابق إلى‬
       ‫هء الجدول السه‬
                    ‫هابقة هن خلل تجزيه‬
                               ‫مه‬    ‫هل السه‬
                                           ‫هم هل المشاكه‬
                                                    ‫يته حه‬
‫هتورد مفتاح الجدول‬
                 ‫هن ويسه‬
                       ‫هل بيانات الموظفيه‬
                                        ‫ها يحمه‬
                                              ‫هن، أحدهمه‬
                                                       ‫جدوليه‬
                                   ‫الثاني الذي يحمل بيانات المستودعات:‬


               ‫‪Id‬‬     ‫‪Name‬‬         ‫‪Address‬‬     ‫‪Title‬‬         ‫‪Store‬‬
               ‫1‪Sr‬‬    ‫‪Jane‬‬         ‫1‪E‬‬          ‫‪Sales Rep‬‬     ‫1‪A‬‬
               ‫2‪Sr‬‬    ‫‪Fred‬‬         ‫2‪E‬‬          ‫‪Sales Rep‬‬     ‫1‪A‬‬
               ‫3‪Sr‬‬    ‫‪Ed‬‬           ‫3‪E‬‬          ‫‪Manager‬‬       ‫1‪A‬‬
               ‫4‪Sr‬‬    ‫‪Ann‬‬          ‫4‪E‬‬          ‫‪Sales Rep‬‬     ‫2‪A‬‬
               ‫5‪Sr‬‬    ‫‪Jone‬‬         ‫5‪E‬‬          ‫‪Sales Rep‬‬     ‫2‪A‬‬
               ‫6‪Sr‬‬    ‫‪Smith‬‬        ‫6‪E‬‬          ‫‪Manager‬‬       ‫2‪A‬‬




                                                                              ‫4/42‬
‫‪Store‬‬        ‫‪Store_Address‬‬   ‫‪Store_phone‬‬
               ‫1‪A‬‬           ‫1‪S‬‬              ‫7654321-110‬
               ‫2‪A‬‬           ‫2‪S‬‬              ‫4321987-110‬


‫- حهل إشكاليهة الدخال: عنهد إدخال بيانات موظهف جديهد، يتهم تسهجيل‬
‫مفتاح المس هتودع الذي يعم هل في هه، أم ها بقي هة بيانات المس هتودع فه هي‬
 ‫ه‬        ‫ه‬              ‫ه‬      ‫ه‬      ‫ه‬     ‫ه‬              ‫ه‬
‫هة هي‬
 ‫هر بيانات متناقضه فه‬
                    ‫هتقل وبالتالي لن تظهه‬
                                        ‫هة هي جدول مسه‬
                                                  ‫مخزنه فه‬
‫هتودع‬
    ‫ها إدخال بيانات مسه‬
                      ‫هتودعات، وإذا أردنه‬
                                        ‫قاعدة البيانات بشأن المسه‬
‫جديهد فيمكهن إدخالهها بصهرف النظهر عمهن يعمهل فهي المسهتودع، ممها‬
                                                  ‫يجنبنا إشكالية الدخال.‬

‫- حهل إشكاليهة الحذف: عنهد حذف الموظهف الخيهر فهي مسهتودع، تبقهى‬
                                    ‫بيانات المستودع في جدول مستقل.‬

‫- حل إشكال ية التعد يل: ع ند تعد يل ر قم ها تف الم ستودع، ي تم التعد يل‬
                           ‫على تسجيلة واحدة في جدول المستودعات.‬


‫الجراءات السابقة )تجزيء الجدول( هي جزء من عملية تنظيم قاعدة‬
‫البيانات، والتي سنتعرف عليها بتفصيل أكثر في هذا الفصل والفصل‬
                                                                   ‫القادم.‬



                                                   ‫4.مستويات التنظيم:‬
‫كمها سهبق وعرفنها، التنظيهم ههو عمليهة ترتيهب وتوزيهع جداول قاعدة‬
‫المعطيات العلئقيههة، للتقليههل مههن تكرار المعطيات وتقليههص حجههم‬
‫التخزيههن المطلوب ولحههل إشكاليات الدخال والحذف والتعديههل مههع‬
‫المحافظ هة على تكام هل البيانات. وغالباً م ها ينت هج ع هن عملي هة التنظي هم‬
 ‫ه‬         ‫ه‬       ‫ه‬    ‫ه‬      ‫ه‬                      ‫ه‬           ‫ه‬
‫زيادة فهي عدد جداول القاعدة. ويتهم تنظيهم قاعدة البيانات مهن خلل‬
‫إخضاعهها لمجموعهة اختبارات والتعديهل على البنيهة لتحقيهق مجموعهة‬
                                                                   ‫معايير.‬

‫مسهتويات التنظيهم السهاسية ههي ثلث )الشكهل النظامهي الول ‪،1NF‬‬
‫الشكهل النظامهي الثانهي ‪ ،2NF‬الشكهل النظامهي الثالث ‪ ،(3NF‬ويقصهد‬
             ‫عادة بتنظيم القاعدة وضعها في الشكل النظامي الثالث.‬
‫يضاف للمس هتويات الثلث الشك هل المقترح مهن قب هل ‪ R. Boyce‬ويطلق‬
                ‫ه‬     ‫ه‬           ‫ه‬                 ‫ه‬
             ‫عليه تسمية ‪ ،BCNF‬والشكلين النظاميين الرابع والخامس.‬




                                                                          ‫5/42‬
‫مستو‬
                                                                                ‫ى‬
                              ‫عملية التنظيم‬
                                                                               ‫التنظ‬
                                                                                ‫يم‬

        ‫حذف المجموعات المكررة. أنشئ جدول ً مستقل ً لكل مجموعة واصفات‬
                                                                               ‫‪1NF‬‬
                                   ‫مترابطة، وعيّن مفتاحا أساسيا لكل جدول.‬
    ‫حذف البيانات المكررة. إذا وجدت أي واصفة تعتمد فقط على جزء من مفتاح‬
                                                                               ‫‪2NF‬‬
                              ‫متعدد-القيمة، انقل الواصفة إلى جدول مستقل.‬
      ‫حذف العمدة غير المرتبطة على مفتاح. إذا وجد مجموعة من الواصفات ل‬
                                                                               ‫‪3NF‬‬
                          ‫تساهم في وصف المفتاح، انقلها إلى جدول مستقل.‬
        ‫‪ .Boyce-Codd Normal Form‬إذا لم تكن العلقة بين المفاتيح المرشحة‬
                                                                               ‫‪BCNF‬‬
                       ‫علقة واضحة، افصل هذه المفاتيح في جداول مختلفة.‬
     ‫عزل العلقات العديدة المستقلة عن بعضها. ل وجود لجدول يحوي علقات‬
                                                                               ‫‪4NF‬‬
                                      ‫1:‪ n‬أو ‪ n:m‬غير المترابطة بشكل مباشر.‬
          ‫عزل العلقات العديدة المترابطة دلليا. وجود قيود عمليّة على البيانات‬
                                                                               ‫‪5NF‬‬
                              ‫تستدعي الفصل المنطقي للعلقات عديد لعديد.‬


‫س هنتناول ف هي هذا الفص هل الشكال النظامي هة الثلث الس هاسية، كم ها‬
 ‫ه‬         ‫ه‬            ‫ه‬                 ‫ه‬           ‫ه‬         ‫ه‬
                                           ‫سنتناول المستويان ‪.BCNF, 4NF‬‬




                                                                                 ‫6/42‬
‫1.4.الشكل النظامي الول )‪:(1NF‬‬
 ‫يقال عن جدول في قاعدة البيانات أنه من الش كل النظامي الول إذا‬
 ‫كان تقاطهع كهل سهطر وعمود فيهه )أي الخليها(، يتضمهن قيمهة وحيدة‬
                                                                     ‫غير قابلة للتجزئة.‬

                         ‫الخطوات التي يتكون منها الشكل النظامي الول:‬

              ‫1.إزالة المجموعات المكررة: تبدأ هذه المرحلة من خلل‬
         ‫عرض المعطيات ضمن جدول بحيث تتكون كل خلية فيه‬
        ‫من قيمة وحيدة ول توجد هناك أية مجموعات مكررة. يتم‬
               ‫إزالة المجموعات المكررة من خلل إزالة كافة القيم‬
          ‫الفارغة )‪ (NULL‬والتأكد من أن كافة الواصفات تحتوي‬
                                                            ‫على قيم مناسبة.‬
                                                 ‫2.تعريف المفتاح الرئيسي.‬

                                                    ‫3.تعريف كافة التبعيات.‬


                                                                                    ‫مثال:‬
                           ‫يمثل الشكل التالي بيانات شركة تأجير عقارات:‬

‫‪C_id‬‬   ‫‪P_num‬‬    ‫‪C_name‬‬     ‫‪P_address‬‬   ‫‪R_start‬‬    ‫‪R_end‬‬       ‫‪Rent‬‬      ‫‪Owner_num‬‬         ‫‪Owner‬‬
         ‫3‪Pr‬‬                  ‫‪A‬‬        ‫69-1-1‬     ‫89-1-21‬     ‫587‬         ‫32‪Po‬‬            ‫‪Jones‬‬
‫10‬                ‫‪Jane‬‬
        ‫22‪Pr‬‬                  ‫‪B‬‬        ‫89-1-2‬     ‫00-03-3‬     ‫0021‬        ‫44‪Po‬‬             ‫‪Jan‬‬
‫20‬     ‫71‪Pr‬‬       ‫‪Fred‬‬        ‫‪C‬‬        ‫88-1-2‬     ‫09-11-1‬     ‫0001‬         ‫23‪Po‬‬            ‫‪Jill‬‬
       ‫23‪Pr‬‬                   ‫‪D‬‬        ‫09-1-6‬      ‫59-1-3‬     ‫059‬          ‫23‪Po‬‬            ‫‪Jill‬‬
‫30‬                ‫‪Ed‬‬
       ‫22‪Pr‬‬                   ‫‪B‬‬        ‫00-1-4‬       ‫‪null‬‬      ‫0021‬         ‫44‪Po‬‬            ‫‪Jan‬‬

                                                                                     ‫حيث:‬

                                                                                   ‫‪C_id‬‬
                                                                     ‫رقم الزبون‬
                                                                                   ‫‪P_num‬‬
                                                                     ‫رقم العقار‬
                                                                                   ‫‪C_name‬‬
                                                                     ‫اسم الزبون‬
                                                                                   ‫‪P_address‬‬
                                                                 ‫عنوان العقار‬
                                                                                   ‫‪R_start‬‬
                                                              ‫تاريخ بدء اليجار‬
                                                                                   ‫‪R_end‬‬
                                                             ‫تاريخ نهاية اليجار‬
                                                                                   ‫‪Rent‬‬
                                                                     ‫قيمة اليجار‬
                                                                                   ‫‪Owner_num‬‬
                                                              ‫رقم مالك العقار‬
                                                                                   ‫‪Owner‬‬
                                                              ‫اسم مالك العقار‬


                                                                                             ‫7/42‬
‫‪ C_id‬هو المفتاح الساسي للجدول.‬


 ‫يمكههن ملحظههة أن قيههم خليهها الجدول قابلة للتجزئة )لحههظ البيانات‬
 ‫المكتوبههة بخههط غامههق(، وهذا التصههميم سههيء حيههث ل يمكههن فيههه‬
 ‫استخلص معلومات مالك عقار معين بسهولة. كما يعاني هذا التصميم‬
 ‫أيضاً من مشكلة تكرار المعطيات، فكلما تم تأجير عقار يجب أن تدخل‬
                                                         ‫بياناته التفصيلية من جديد.‬


 ‫لوضهع الجدول السهابق فهي الشكهل النظامهي الول يجهب تجزئة الخليها‬
 ‫الحاوية على معطيات قابلة للتجزئة. ويمكن عمل ذلك من خلل إدخال‬
 ‫بيانات كهل عمليهة إيجار فهي سهطر جديهد، أي يجهب أن يصهبح المفتاح‬
 ‫السهاسي ههو نتيجهة تركيهب رقهم الزبون ورقهم العقار )‪(c_id, p_num‬‬
 ‫علماً أن التصهميم مبنهي على أسهاس تخزيهن بيانات العقارات المؤجرة‬
 ‫حالياً دون حفظ تاريخ حركات اليجار، بمعنى أن نفس الزبون ل يمكن‬
                                      ‫أن تتواجد له حركتي إيجار لنفس العقار.‬


‫‪C_id‬‬   ‫‪P_num‬‬      ‫‪C_name‬‬      ‫‪P_address‬‬   ‫‪R_start‬‬    ‫‪R_end‬‬        ‫‪Rent‬‬         ‫‪O_num‬‬    ‫‪Owner‬‬

‫10‬     ‫3‪Pr‬‬        ‫‪Jane‬‬        ‫‪A‬‬           ‫69-1-1‬     ‫89-1-21‬      ‫587‬          ‫32‪Po‬‬     ‫‪Jones‬‬
‫10‬     ‫22‪Pr‬‬       ‫‪Jane‬‬        ‫‪B‬‬           ‫89-1-2‬     ‫00-03-3‬      ‫0021‬         ‫44‪Po‬‬     ‫‪Jan‬‬

‫20‬     ‫71‪Pr‬‬       ‫‪Fred‬‬        ‫‪C‬‬           ‫88-1-2‬     ‫09-11-1‬      ‫0001‬         ‫23‪Po‬‬     ‫‪Jill‬‬

‫30‬     ‫23‪Pr‬‬       ‫‪Ed‬‬          ‫‪D‬‬           ‫09-1-6‬     ‫59-1-3‬       ‫059‬          ‫23‪Po‬‬     ‫‪Jill‬‬
‫30‬     ‫22‪Pr‬‬       ‫‪Ed‬‬          ‫‪B‬‬           ‫00-1-4‬     ‫‪null‬‬         ‫0021‬         ‫44‪Po‬‬     ‫‪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‬
‫4001‬     ‫‪Bill Bass‬‬     ‫,‪Hank, April‬‬      ‫,49-9-9 ,98-4-5‬
                                 ‫‪Ellen‬‬             ‫89-01-7‬




                                                                     ‫الحل:‬



            ‫‪id‬‬          ‫‪Name‬‬            ‫‪children‬‬      ‫‪birth_date‬‬

          ‫1001‬     ‫‪John Doe‬‬      ‫‪Betty‬‬             ‫88-2-2‬

          ‫1001‬     ‫‪John Doe‬‬      ‫‪Frank‬‬             ‫09-3-4‬

          ‫2001‬     ‫‪Jane Doe‬‬      ‫‪Betty‬‬             ‫88-2-2‬

          ‫2001‬     ‫‪Jane Doe‬‬      ‫‪Frank‬‬             ‫09-3-4‬

          ‫3001‬     ‫‪Freda Fish‬‬    ‫‪Henry‬‬             ‫97-4-4‬

          ‫3001‬     ‫‪Freda Fish‬‬    ‫‪Jane‬‬              ‫48-8-2‬

          ‫3001‬     ‫‪Freda Fish‬‬    ‫‪Jill‬‬              ‫88-9-7‬

          ‫3001‬     ‫‪Freda Fish‬‬    ‫‪Bill‬‬              ‫09-3-01‬

          ‫4001‬     ‫‪Bill Bass‬‬     ‫‪Hank‬‬              ‫98-4-5‬

          ‫4001‬     ‫‪Bill Bass‬‬     ‫‪April‬‬             ‫49-9-9‬

          ‫4001‬     ‫‪Bill Bass‬‬     ‫‪Ellen‬‬             ‫89-01-7‬



‫وضهع الجدول فهي الشكهل النظامهي الول ل يحهل مشاكهل التصهميم‬
   ‫ه‬      ‫ه‬      ‫ه‬           ‫ه‬        ‫ه‬      ‫ه‬          ‫ه‬
‫السيئ إنما هو خطوة في طريق حلها، فبالرغم من وضع جدول إيجار‬
‫العقارات فهي الشكهل النظامهي الول فإنهه ل يزال يعانهي مهن مشكلة‬
                 ‫تكرار البيانات، وإشكاليات الضافة والتعديل والحذف.‬




                                                                         ‫9/42‬
‫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‬
‫يمكهن السهتنتاج مهن التعريهف السهابق أن جميهع الجداول ذات المفتاح‬
‫البسهيط )غيهر المركهب( والتهي تخضهع لمعيار ‪ 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‬            ‫3‪Pr‬‬          ‫69-1-1‬       ‫89-1-21‬
                                 ‫10‬            ‫22‪Pr‬‬         ‫89-1-2‬       ‫00-03-3‬


                                                                               ‫11/42‬
‫20‬          ‫71‪Pr‬‬             ‫88-1-2‬     ‫09-11-1‬
                            ‫30‬          ‫23‪Pr‬‬             ‫09-1-6‬     ‫59-1-3‬
                            ‫30‬          ‫22‪Pr‬‬             ‫00-1-4‬     ‫‪Null‬‬

     ‫من ثم نشكل الجداول اللزمة لحقول علقات التبعية الجزئية:‬
‫‪Customer‬‬
                            ‫‪C_id‬‬        ‫‪C_name‬‬
                            ‫10‬          ‫‪Jane‬‬
                            ‫20‬          ‫‪Fred‬‬
                            ‫30‬          ‫‪Ed‬‬

‫‪Property‬‬
                            ‫‪P_num‬‬     ‫‪P_address‬‬   ‫‪rent‬‬      ‫‪Owner_num‬‬   ‫‪Owner‬‬
                            ‫3‪Pr‬‬       ‫‪A‬‬           ‫587‬       ‫32‪Po‬‬        ‫‪Jones‬‬
                            ‫22‪Pr‬‬      ‫‪B‬‬           ‫0021‬      ‫44‪Po‬‬        ‫‪Jan‬‬
                            ‫71‪Pr‬‬      ‫‪C‬‬           ‫0001‬      ‫23‪Po‬‬        ‫‪Jill‬‬
                            ‫23‪Pr‬‬      ‫‪D‬‬           ‫059‬       ‫23‪Po‬‬        ‫‪Jill‬‬



‫جداول الشكل النظامي الثاني تحل إشكاليات الحذف والضافة ول‬
                                        ‫ً‬
‫تحهل إشكاليهة التعديهل، فمثل إذا أردنها تعديهل بيانات أحهد المالكيهن‬
‫فيج هب تعدي هل مجموع هة م هن التس هجيلت، م ما يتف هق م هع إشكالي هة‬
 ‫ه‬         ‫ه‬    ‫ه‬               ‫ه‬       ‫ه‬    ‫ه‬          ‫ه‬     ‫ه‬
                       ‫ّه‬
                                               ‫التعديل سابقة الذكر.‬




                                                                          ‫21/42‬
‫3.4.الشكل النظامي الثالث )‪:(3NF‬‬
           ‫يكون الجدول من الشكل النظامي الثالث إذا حقق ما يلي:‬
                                ‫•من الشكل النظامي الثاني.‬
           ‫•ل توجهد فيهه واصهفات ل تشكهل جزءاً مهن المفتاح‬
            ‫الساسي وتعتمد بالتعدّي على المفتاح الساسي.‬


                   ‫الخطوات التي يتكون منها الشكل النظامي الثالث:‬

                 ‫1.تعريف كل المحددات الجديدة: ينبغي اعتبار‬
                  ‫كل محدد في تبعية متعدية مفتاحاً أساسيا‬
                     ‫لجدول جديد، بحيث يعبر المحدد عن‬
                ‫الواصفة التي تحدد قيمتها قيماً أخرى ضمن‬
                                            ‫السطر نفسه.‬
                    ‫2.تعريف الواصفات ذات التبعيات: يتم في‬
                        ‫هذه الخطوة تحديد كافة الواصفات‬
                    ‫المرتبطة بكل محدد معرف في الخطوة‬
                                 ‫ّ‬
                  ‫الولى، كما يتم هنا تعريف علقات التبعية‬
                                                 ‫المتشكلة.‬

                  ‫3.إزالة الواصفات ذات التبعيات من التبعيات‬
                        ‫المتعدية: إزالة كافة الواصفات ذات‬
                 ‫التبعيات من علقات التبعيات المتعدية لكل‬
                         ‫جدول من جداول العلقة المتعدية.‬


‫الجداول ‪ Rental‬و ‪ Customer‬ل تحوي واص ههفات تعتم ههد بالتعدي على‬
              ‫ه‬          ‫ه‬
‫المفتاح الساسي، بينما الواصفة ‪ owner‬في الجدول ‪ Property‬يعتمد‬
‫على ‪ owner_num‬الذي بدوره يعتمهد على ‪ P_num‬ولوضهع هذا الجدول‬
   ‫في الشكل النظامي الثالث يجب تجزيئه إلى الجدولين التاليين:‬


‫‪Property‬‬
                           ‫‪P_num‬‬         ‫‪P_address‬‬   ‫‪rent‬‬    ‫‪Owner_num‬‬
                           ‫3‪Pr‬‬           ‫‪A‬‬           ‫587‬     ‫32‪Po‬‬
                           ‫22‪Pr‬‬          ‫‪B‬‬           ‫0021‬    ‫44‪Po‬‬
                           ‫71‪Pr‬‬          ‫‪C‬‬           ‫0001‬    ‫23‪Po‬‬
                           ‫23‪Pr‬‬          ‫‪D‬‬           ‫059‬     ‫23‪Po‬‬

‫‪Owner‬‬
                           ‫‪Owner_num‬‬            ‫‪Owner‬‬



                                                                     ‫31/42‬
‫32‪Po‬‬               ‫‪Jones‬‬
                          ‫44‪Po‬‬               ‫‪Jan‬‬
                          ‫23‪Po‬‬               ‫‪Jill‬‬



‫الش كل النظا مي الثالث ي حل إشكاليات التعد يل والحذف والضا فة،‬
‫بالضافههة إلى حههل مشكلة تكرار البيانات، وعندمهها يطلب تنظيههم‬
‫قاعدة بيانات فيقصههد بذلك عادة وضعههها فههي الشكههل النظامههي‬
                                                       ‫الثالث.‬




                                                                 ‫41/42‬
‫5.الشكل النظامي ‪:(Boycee-Codd (BCNF‬‬
‫رأينها سهابقاً أنهه عندمها يطلب تنظيهم قاعدة البيانات، فالمقصهود بذلك‬
‫عادة وضعههها فههي الشكههل النظامههي الثالث )‪ ،(3NF‬ونادراً مهها تحقههق‬
‫القاعدة شروط ‪ 3NF‬وتخرق الشكال النظاميههة التاليههة )‪،(4Nf, BCNF‬‬
‫هههل القاعدة هههن ‪ 3NF‬إلى ‪4NF‬‬
               ‫مه‬           ‫يضاف إلى ذلك أن الفائدة هههن تحويه‬
                                     ‫مه‬
                         ‫بسيطة ول تقابل الجهد اللزم لهذا التحويل.‬

             ‫يطبق الشكل النظامي ‪ BCNF‬على الجداول الحاوية على:‬
                                          ‫•عدة مفاتيح مرشحة.‬
                                        ‫•مفاتيح مرشحة مركبة.‬
                                     ‫•مفاتيح مرشحة متقاطعة.‬

‫يكون الجدول مهن الشكهل ‪ BCNF‬إذا كان كهل محدّد مهن محدداتهه يشك ّهل‬
                       ‫ِ‬
      ‫مفتاحاً مرشحاً. وبالتالي إذا كان الجدول يحتوي على مفتاح مرشه‬
‫هههههح‬
‫وحي هد س هيتطابق الشك هل النظام هي ‪ Boyce-Codd‬م هع الشك هل النظام هي‬
 ‫ه‬         ‫ه‬       ‫ه‬               ‫ه‬         ‫ه‬            ‫ه‬    ‫ه‬
                                                              ‫الثالث.‬

‫الواصهفة )أو مجموعهة الواصهفات( المحددة ههي واصهفة تعتمهد عليهها‬
                                          ‫واصفات أخرى بشكل كلي.‬

‫خرق شرط ‪ BCNF‬يحدث عادة ف ههي الجداول الحاوي ههة على أكث ههر م ههن‬
  ‫ه‬     ‫ه‬           ‫ه‬                  ‫ه‬
‫مفتاح مرشههح مركههب وفههي حالت تقاطههع المفاتيههح المرشحههة فههي‬
                                                             ‫الجدول.‬


            ‫ليكن الشكل التالي، الذي يمثل مخطط تبعيات لجدول معين:‬




                          ‫يمكن أن نستنتج من المخطط التبعيات التالية:‬

      ‫‪‬‬
‫‪A+B‬‬         ‫‪C, D‬‬
      ‫‪‬‬
‫‪C‬‬           ‫‪B‬‬




                                                                   ‫51/42‬
‫ل يحتوي المخطط على تبعيات جزئية أو متعدية، وبالتالي فهو يحقق‬
  ‫الشكل النظامي الثالث ولكن الجدول السابق ل يحقق الشكل النظامي‬
                       ‫‪ Boyce-Codd‬بسبب وجود علقة التبعية من ‪ C‬إلى ‪.B‬‬

         ‫يمكن تحويل بنية الجدول السابق بحيث تندرج تحت الشكل النظامي‬
            ‫الثالث والشكل النظامي ‪ Boyce-Codd‬من خلل الخطوات التالية:‬

     ‫•أولً ينبغي تحويل المفتاح الرئيسي إلى الحقلين ‪ A+C‬وذلك على‬
     ‫اعتبار أن ‪ C‬مفتاح مرشح وهو الشرط الذي نفترض تحققه على‬
     ‫كافة واصفات الجدول، وبالتالي فإن العلقة من ‪ C‬إلى ‪ B‬تتحول‬
    ‫الن إلى علقة تبعية جزئية، وعند هذه النقطة تندرج بنية الجدول‬
                                       ‫تحت الشكل النظامي الول؛‬
     ‫•يتم بعد ذلك إتباع الستراتيجية التي نستطيع من خللها التخلص‬
                     ‫من علقة التبعية الجزئية، كما في الشكل التالي:‬




                                                            ‫مثال ١:‬

‫‪Rental‬‬
                            ‫‪C_id‬‬      ‫‪P_num‬‬       ‫‪R_start‬‬   ‫‪R_end‬‬
                            ‫10‬        ‫3‪Pr‬‬         ‫69-1-1‬    ‫89-1-21‬
                            ‫10‬        ‫22‪Pr‬‬        ‫89-1-2‬    ‫00-03-3‬
                            ‫20‬        ‫71‪Pr‬‬        ‫88-1-2‬    ‫09-11-1‬
                            ‫30‬        ‫23‪Pr‬‬        ‫09-1-6‬    ‫59-1-3‬
                            ‫30‬        ‫22‪Pr‬‬        ‫00-1-4‬    ‫‪Null‬‬

‫‪Customer‬‬
                            ‫‪C_id‬‬      ‫‪C_name‬‬
                            ‫10‬        ‫‪Jane‬‬
                            ‫20‬        ‫‪Fred‬‬
                            ‫30‬        ‫‪Ed‬‬




                                                                  ‫61/42‬
‫‪Property‬‬
                               ‫‪P_num‬‬               ‫‪P_address‬‬      ‫‪rent‬‬    ‫‪O_num‬‬
                               ‫3‪Pr‬‬                 ‫‪A‬‬              ‫587‬     ‫32‪Po‬‬
                               ‫22‪Pr‬‬                ‫‪B‬‬              ‫0021‬    ‫44‪Po‬‬
                               ‫71‪Pr‬‬                ‫‪C‬‬              ‫0001‬    ‫23‪Po‬‬
                               ‫23‪Pr‬‬                ‫‪D‬‬              ‫059‬     ‫23‪Po‬‬

‫‪Owner‬‬
                               ‫‪O_num‬‬                        ‫‪Owner‬‬
                               ‫32‪Po‬‬                         ‫‪Jones‬‬
                               ‫44‪Po‬‬                         ‫‪Jan‬‬
                               ‫23‪Po‬‬                         ‫‪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‬      ‫07‪P‬‬          ‫32-‪Pe‬‬
                               ‫71‬           ‫00-10-50‬     ‫03:90‬      ‫06‪P‬‬          ‫23-‪Pe‬‬
                               ‫02‬           ‫00-10-50‬     ‫03:01‬      ‫07‪P‬‬          ‫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‬
‫‪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‬                      ‫07‪P‬‬
                            ‫23-‪Pe‬‬         ‫00-10-50‬                       ‫06‪P‬‬
                            ‫32-‪Pe‬‬         ‫00-10-50‬                       ‫07‪P‬‬



‫الشكهل النظامهي الثالث ههو شكهل كاف لتنظيهم قاعدة البيانات، وههو‬
      ‫كاف لتلفي تكرار البيانات ومشاكل الحذف والتعديل والضافة.‬

                                                                        ‫ملحظة:‬
‫قهد يكون مهن المفيهد فهي بعهض الحيان إعادة تركيهب الجداول الناتجهة‬
‫عههن التنظيههم، لعتبارات تسههريع أداء قاعدة البيانات وهذا مهها يدعههى‬
                                         ‫بإعادة التنظيم )‪.(denormalization‬‬


                                                                        ‫مثال ٣:‬
                                   ‫يضم الجدول التالي بيانات توريد مواد.‬


                           ‫‪Supplier_id‬‬     ‫‪Supplier_name‬‬     ‫‪Part_num‬‬     ‫‪Quantity‬‬




‫بفرض أن اس ههههههههههم المورد ل يتكرر، فهناك مفتاحان مرشحان لهذه‬
                                                    ‫ه‬
‫هة )‪ (supplier_id ,part_num‬و )‪ ،(supplier_name ,part_num‬التبعيات‬
                                                               ‫العلقه‬
                                              ‫الموجودة في الجدول هي:‬

      ‫‪a. Supplier_id‬‬                     ‫.‪→ supplier_name‬‬


                                                                               ‫81/42‬
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
‫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‬
‫طبق القواعد اللزمة للوصول إلى الشكل النظامي الثالث للجدول‬
                                                                ‫التالي:‬




‫:‪1NF‬‬




                       ‫1.نُعبِّر عن المفتاح الرئيسي بلون مميز؛‬
        ‫2.تُعبِّر السهم الموضحة في الجهة العلوية من المخطط عن‬
                           ‫التبعيات المتعلقة بالمفتاح الرئيسي؛‬
       ‫3.تُعب ِّر السهم الموضحة في الجهة السفلية من المخطط عن‬
                    ‫التبعيات الخرى القل أهمية وهي نوعان:‬

              ‫‪o‬تبعيات جزئية: وهي التبعيات التي تعتمد على جزء‬
             ‫واحد من مفتاح رئيسي مركب من أكثر من واصفة؛‬
           ‫‪o‬تبعيات متعدية: وهي التبعيات التي تعتمد على واصفة‬
             ‫غير رئيسية وهي ليست موجهة إلى واصفة رئيسية‬
                ‫أيضاً، يمكن أن يؤدي هذا النوع من التبعيات إلى‬
                   ‫الحصول على معطيات شاذة أو غير قياسية.‬


                                                                  ‫12/42‬
‫:‪2NF‬‬




‫:‪3NF‬‬




                                                           ‫ملحظة:‬
       ‫على الرغم من توافر العديد من الشكال النظامية ذات المستويات‬
      ‫العلى، كالشكل النظامي الخامس ‪ 5NF‬أو الشكل النظامي الخاص‬
‫بالمجال، إل أنه ل يمكن تطبيق تلك الشكال النظامية عملياً أو ضمن بيئة‬
       ‫عملية، وهي موجهه بشكل رئيسي للهتمامات الكاديمية والنظرية.‬




                                                              ‫22/42‬
‫7.إعادة تنظيم قواعد المعطيات‬
                                      ‫•الغرض من إعادة التنظيم:‬

‫على الرغم من أهمية تنظيم العلقات أثناء تصميم قواعد المعطيات،‬
‫إل أن عملية التصميم تلك تحتوي على عدّة معايير هامة أخرى ينبغي‬
 ‫أخذها بعين العتبار، فقاعدة المعطيات الجيدة تتطلب –على سبيل‬
     ‫المثال- توافر معالجة وتحليل جيد للمتطلبات، كذلك فإن تطور‬
    ‫التصميم وتوسيع قاعدة المعطيات لتحقيق كافة معايير التنظيم‬
  ‫يمكن أن يؤدي إلى فرض المزيد من العبء على نظام إدارة قواعد‬
 ‫المعطيات وبالتالي ينخفض الداء، بالتالي نستنتج مما سبق ضرورة‬
      ‫وجود درجات معينة من إعادة الستنظام بهدف تحسين الداء؛‬

        ‫•ينبغي دوما إجراء مقارنات ما بين حسنات وسيئات التنظيم‬
                                                  ‫ً‬
           ‫وإعادة التنظيم، كأن تتم المقارنة فيما بين سرعة الداء‬
   ‫وإمكانيات الشذوذ في المعطيات، مع العلم أن بعض تلك الحالت‬
   ‫يندرج تحت الدراسات النظرية. مثلً، هل ينبغي على المصمم أن‬
        ‫يوضح أثناء بناء قاعدة المعطيات بأن الواصفة التي تعبر عن‬
       ‫الرمز المحلي ‪ ZIP_CODE‬تعبر بدورها عن المدينة في جدول‬
    ‫الزبون الذي يحتوي على مفتاح رئيسي هو رقم ذلك الزبون؟ أو‬
    ‫أنه من الفضل فصل التبعية المتعدية تلك في جدول خاص، كما‬
                                                             ‫يلي:‬

                     ‫جدول_الرمز_المحلي )الرمز_المحلي، المدينة(‬
‫في الحقيقة ل يمكن تحديد الجابة عن السؤال السابق، فذلك يعتمد‬
‫بشكل رئيسي على نمط وتوجه النظام الذي تصمم قاعدة المعطيات‬
      ‫من أجله، أو بأسلوب آخر، يمكن إهمال علقة التبعية المتعدية‬
     ‫السابقة تلك في معظم أنظمة العمال، في حين يمكن اعتبار‬
                                    ‫ًّ‬
 ‫الجدول الجديد المنشأ فعال في أنظمة القوائم البريدية على سبيل‬
                ‫المثال والتي تستخدم الرمز المحلي بشكل كبير !!!‬
‫وكنتيجة لما سبق يمكن أن نستنتج أن التنظيم ل يخضع لقواعد ثابتة،‬
  ‫إذ يمكن تجاوز بعض الحالت في سبيل تحسين الداء، وذلك يعتمد‬
                            ‫بشكل كبير على نوع النظام المصمم؛‬

      ‫•يمكن أن تتعرض الجداول غير المنظمة إلى عدة مشاكل، نذكر‬
                                                          ‫منها:‬
         ‫1.فعالية أقل بكثير أثناء تحديث المعطيات، ففي حالة‬
            ‫الجداول غير المنظمة، ينبغي على التطبيقات أن‬


                                                                ‫32/42‬
‫تقوم بالولوج إلى جداول كبيرة للحصول على‬
                                                     ‫المعلومات.‬
             ‫2.تعتبر إجراءات فهرسة الجداول غير المنظمة‬
        ‫مرهقة، فليس عملياً أن يتم بناء العديد من الفهارس‬
             ‫للعديد من الواصفات التي تتواجد في جدول غير‬
                                                          ‫منظم.‬
          ‫3.تؤدي الجداول غير المنظمة إلى التعرض للعديد من‬
           ‫العقبات أثناء بناء المناظير )الجداول الفتراضية(.‬




                                                                 ‫المراجع:‬
‫•‬   ‫/931001‪http://support.microsoft.com/kb/q‬‬
‫•‬   ‫‪http://www.ischool.utexas.edu/~wyllys/DMPAMaterials/normover.html‬‬




                                                                        ‫42/42‬

More Related Content

What's hot

Allari atta-01-03
Allari atta-01-03Allari atta-01-03
Allari atta-01-03venkatesha9
 
Aedee tappu-kadu-01-03
Aedee tappu-kadu-01-03Aedee tappu-kadu-01-03
Aedee tappu-kadu-01-03venkatesha9
 
PMT-008-生產管理簡介
PMT-008-生產管理簡介PMT-008-生產管理簡介
PMT-008-生產管理簡介handbook
 
Adbutha dengulata1
Adbutha dengulata1Adbutha dengulata1
Adbutha dengulata1venkatesha9
 
Chituku function lo
Chituku function loChituku function lo
Chituku function lovenkatesha9
 
Course 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesCourse 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesAhmed El-Arabawy
 
Attayya andaalu-01-03
Attayya andaalu-01-03Attayya andaalu-01-03
Attayya andaalu-01-03venkatesha9
 
Chelaregina kodi
Chelaregina kodiChelaregina kodi
Chelaregina kodivenkatesha9
 
Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
Amma dengulaa ta
Amma dengulaa taAmma dengulaa ta
Amma dengulaa tavenkatesha9
 
023 uchchu-01-02
023 uchchu-01-02023 uchchu-01-02
023 uchchu-01-02Hari99
 
Cheera ka t-tu-choodu
Cheera ka t-tu-chooduCheera ka t-tu-choodu
Cheera ka t-tu-chooduvenkatesha9
 

What's hot (20)

Allari atta-01-03
Allari atta-01-03Allari atta-01-03
Allari atta-01-03
 
Aedee tappu-kadu-01-03
Aedee tappu-kadu-01-03Aedee tappu-kadu-01-03
Aedee tappu-kadu-01-03
 
Alludu golilata
Alludu golilataAlludu golilata
Alludu golilata
 
P4 lesson 14
P4 lesson 14P4 lesson 14
P4 lesson 14
 
PMT-008-生產管理簡介
PMT-008-生產管理簡介PMT-008-生產管理簡介
PMT-008-生產管理簡介
 
Adbutha dengulata1
Adbutha dengulata1Adbutha dengulata1
Adbutha dengulata1
 
Implementing SSH in Java
Implementing SSH in JavaImplementing SSH in Java
Implementing SSH in Java
 
Chituku function lo
Chituku function loChituku function lo
Chituku function lo
 
Course 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesCourse 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment Variables
 
Attayya andaalu-01-03
Attayya andaalu-01-03Attayya andaalu-01-03
Attayya andaalu-01-03
 
Cuckold
CuckoldCuckold
Cuckold
 
Chelaregina kodi
Chelaregina kodiChelaregina kodi
Chelaregina kodi
 
Software design principles
Software design principlesSoftware design principles
Software design principles
 
Amma dengulaa ta
Amma dengulaa taAmma dengulaa ta
Amma dengulaa ta
 
023 uchchu-01-02
023 uchchu-01-02023 uchchu-01-02
023 uchchu-01-02
 
Chilipi
ChilipiChilipi
Chilipi
 
Cheera ka t-tu-choodu
Cheera ka t-tu-chooduCheera ka t-tu-choodu
Cheera ka t-tu-choodu
 
001 mmmp-01-07
001 mmmp-01-07001 mmmp-01-07
001 mmmp-01-07
 
Lecture4 Erd
Lecture4 ErdLecture4 Erd
Lecture4 Erd
 
For sale-01
For sale-01For sale-01
For sale-01
 

Viewers also liked

Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Jargalsaikhan Alyeksandr
 
Lecture5 Normalization
Lecture5 NormalizationLecture5 Normalization
Lecture5 Normalizationguest800d4
 
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFDatabase Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFOum Saokosal
 
Search engines محركات البحث
Search engines  محركات البحث Search engines  محركات البحث
Search engines محركات البحث Mohamed Reda
 
تخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسهتخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسهOmar Computer Teacher
 
مراحل بناء قاعدة البيانات
مراحل بناء قاعدة البياناتمراحل بناء قاعدة البيانات
مراحل بناء قاعدة البياناتgueste5de3d
 
Lecture3 Relationalmodel
Lecture3 RelationalmodelLecture3 Relationalmodel
Lecture3 Relationalmodelguest800d4
 
وازي تتعلم Moocs ماهو
  وازي تتعلم Moocs ماهو   وازي تتعلم Moocs ماهو
وازي تتعلم Moocs ماهو Mohamed Reda
 
الذكاء الاصطناعي ونظم الخبرة
الذكاء الاصطناعي ونظم الخبرةالذكاء الاصطناعي ونظم الخبرة
الذكاء الاصطناعي ونظم الخبرةMostafa Gawdat
 
وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه
وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه
وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه Safiya Najeh
 
اسئلة قواعد البيانات
اسئلة قواعد البياناتاسئلة قواعد البيانات
اسئلة قواعد البياناتMohamed Sayed
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البياناتMoselhy Hussein
 
نظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرةنظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرةHuda Farhan
 
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...Beat Signer
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البياناتFida Kadun
 

Viewers also liked (20)

Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 
Lecture5 Normalization
Lecture5 NormalizationLecture5 Normalization
Lecture5 Normalization
 
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFDatabase Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
 
Search engines محركات البحث
Search engines  محركات البحث Search engines  محركات البحث
Search engines محركات البحث
 
تخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسهتخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسه
 
مراحل بناء قاعدة البيانات
مراحل بناء قاعدة البياناتمراحل بناء قاعدة البيانات
مراحل بناء قاعدة البيانات
 
Normalization
NormalizationNormalization
Normalization
 
Chapter6
Chapter6Chapter6
Chapter6
 
Lecture3 Relationalmodel
Lecture3 RelationalmodelLecture3 Relationalmodel
Lecture3 Relationalmodel
 
وازي تتعلم Moocs ماهو
  وازي تتعلم Moocs ماهو   وازي تتعلم Moocs ماهو
وازي تتعلم Moocs ماهو
 
Radio waves project
Radio waves projectRadio waves project
Radio waves project
 
الذكاء الاصطناعي ونظم الخبرة
الذكاء الاصطناعي ونظم الخبرةالذكاء الاصطناعي ونظم الخبرة
الذكاء الاصطناعي ونظم الخبرة
 
وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه
وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه
وثيقة التحليل لنظام البيع في شركة الخندقاوي التجاريه
 
اسئلة قواعد البيانات
اسئلة قواعد البياناتاسئلة قواعد البيانات
اسئلة قواعد البيانات
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البيانات
 
نظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرةنظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرة
 
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
 
DBMS - Normalization
DBMS - NormalizationDBMS - Normalization
DBMS - Normalization
 
Databases: Normalisation
Databases: NormalisationDatabases: Normalisation
Databases: Normalisation
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البيانات
 

Similar to Normalization

اللوغاريتمات logarithms and power function
اللوغاريتمات logarithms and power functionاللوغاريتمات logarithms and power function
اللوغاريتمات logarithms and power functionSahab Construction
 
نقل اثاث وعفش الامارات
نقل اثاث وعفش الاماراتنقل اثاث وعفش الامارات
نقل اثاث وعفش الاماراتalwadii
 
Zaki Farsi presentation
Zaki Farsi presentationZaki Farsi presentation
Zaki Farsi presentationcalifornawy
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةMohammed Algarni
 
كتيب دليل للمربي
كتيب دليل للمربيكتيب دليل للمربي
كتيب دليل للمربيAbdulhadi Aloufi
 
Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)Jamil AlKhatib
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةMohammed Algarni
 
Module 4 V 4[1].0 Arabic Excel
Module 4 V 4[1].0 Arabic ExcelModule 4 V 4[1].0 Arabic Excel
Module 4 V 4[1].0 Arabic Excelguest3cea6f
 
The magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijaziThe magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijazitaha hijazi
 
تدريب القيادة والريادة
تدريب القيادة والريادةتدريب القيادة والريادة
تدريب القيادة والريادةLoay Qabajeh
 
دكتور عبدالله مديرس
دكتور عبدالله مديرسدكتور عبدالله مديرس
دكتور عبدالله مديرسnouraalbannai
 
A GUIDE FOR FINAL EXAM
A GUIDE FOR FINAL EXAMA GUIDE FOR FINAL EXAM
A GUIDE FOR FINAL EXAMmohdazrulazlan
 
السيرة الذاتية
السيرة الذاتيةالسيرة الذاتية
السيرة الذاتيةguestde5d41ce
 
اليهود وغير اليهود
اليهود وغير اليهوداليهود وغير اليهود
اليهود وغير اليهودguest87d612
 
How To Solve The Problem
How To Solve The ProblemHow To Solve The Problem
How To Solve The Problemmabdelgadir
 

Similar to Normalization (20)

550
550550
550
 
اللوغاريتمات logarithms and power function
اللوغاريتمات logarithms and power functionاللوغاريتمات logarithms and power function
اللوغاريتمات logarithms and power function
 
نقل اثاث وعفش الامارات
نقل اثاث وعفش الاماراتنقل اثاث وعفش الامارات
نقل اثاث وعفش الامارات
 
Zaki Farsi presentation
Zaki Farsi presentationZaki Farsi presentation
Zaki Farsi presentation
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحة
 
كتيب دليل للمربي
كتيب دليل للمربيكتيب دليل للمربي
كتيب دليل للمربي
 
Student
StudentStudent
Student
 
Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحة
 
Module 4 V 4[1].0 Arabic Excel
Module 4 V 4[1].0 Arabic ExcelModule 4 V 4[1].0 Arabic Excel
Module 4 V 4[1].0 Arabic Excel
 
مسابقة مهنية
مسابقة مهنيةمسابقة مهنية
مسابقة مهنية
 
The magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijaziThe magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijazi
 
تدريب القيادة والريادة
تدريب القيادة والريادةتدريب القيادة والريادة
تدريب القيادة والريادة
 
عرض أكتب إنجازاتي 02
عرض أكتب إنجازاتي 02عرض أكتب إنجازاتي 02
عرض أكتب إنجازاتي 02
 
دكتور عبدالله مديرس
دكتور عبدالله مديرسدكتور عبدالله مديرس
دكتور عبدالله مديرس
 
Doc1 taki
Doc1 takiDoc1 taki
Doc1 taki
 
A GUIDE FOR FINAL EXAM
A GUIDE FOR FINAL EXAMA GUIDE FOR FINAL EXAM
A GUIDE FOR FINAL EXAM
 
السيرة الذاتية
السيرة الذاتيةالسيرة الذاتية
السيرة الذاتية
 
اليهود وغير اليهود
اليهود وغير اليهوداليهود وغير اليهود
اليهود وغير اليهود
 
How To Solve The Problem
How To Solve The ProblemHow To Solve The Problem
How To Solve The Problem
 

Recently uploaded

株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店ssuserfb441f
 
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdfストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdfmasakisaito12
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチユニパー株式会社
 
コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社
コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社
コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社hmoriyama
 
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdfssuser80a51f
 
答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料
答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料
答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料Jun Chiba
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ 株式会社
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)KayaSuetake1
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipYasuyoshi Minehisa
 

Recently uploaded (11)

株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
 
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdfストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 
コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社
コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社
コダワリ抜いた経営指南書(概要版) - コダワリ・ビジネス・コンサルティング株式会社
 
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
 
答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料
答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料
答えのないコンセンサスゲーム「無人島での出来事」運営用パワーポイントスライド説明資料
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 
company profile
company profilecompany profile
company profile
 
KestrelPro Flyer Japan IT Week 2024 (Japanese)
KestrelPro Flyer Japan IT Week 2024 (Japanese)KestrelPro Flyer Japan IT Week 2024 (Japanese)
KestrelPro Flyer Japan IT Week 2024 (Japanese)
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 

Normalization

  • 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‬‬ ‫1‪Sr‬‬ ‫‪Jane‬‬ ‫1‪E‬‬ ‫‪Sales Rep‬‬ ‫1‪A‬‬ ‫1‪S‬‬ ‫7654321-110‬ ‫2‪Sr‬‬ ‫‪Fred‬‬ ‫2‪E‬‬ ‫‪Sales Rep‬‬ ‫1‪A‬‬ ‫1‪S‬‬ ‫7654321-110‬ ‫3‪Sr‬‬ ‫‪Ed‬‬ ‫3‪E‬‬ ‫‪Manager‬‬ ‫1‪A‬‬ ‫1‪S‬‬ ‫7654321-110‬ ‫4‪Sr‬‬ ‫‪Ann‬‬ ‫4‪E‬‬ ‫‪Sales Rep‬‬ ‫2‪A‬‬ ‫2‪S‬‬ ‫4321987-110‬ ‫3/42‬
  • 4. ‫‪Sr5 Jone‬‬ ‫5‪E‬‬ ‫‪Sales Rep‬‬ ‫2‪A‬‬ ‫2‪S‬‬ ‫4321987-110‬ ‫‪Sr6 Smith‬‬ ‫6‪E‬‬ ‫‪Manager‬‬ ‫2‪A‬‬ ‫2‪S‬‬ ‫4321987-110‬ ‫يتضمههن هذا الجدول بيانات الموظفيههن وبيانات المسههتودعات، ومههن‬ ‫الواضح وجود تكرار في بيانات المستودعات.‬ ‫إذا أردن هها إدخال بيانات موظ ههف جدي ههد فيج ههب إدخال بيانات موقع ههه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫)المسهتودع( أيضاً، وللحفاظ على عدم تناقهض البيانات فهي القاعدة‬ ‫يج هب إدخال بيانات المس هتودع بدق هة وبشك هل مطاب هق للقي هم المدخلة‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ً‬ ‫سهابقا )لحهد الموظفيهن السهابقين فهي نفهس المسهتودع(، هنها تظههر‬ ‫مشكلة تكرار البيانات بالضافة طبعاً لحجم التخزين المهدور.‬ ‫لحظ الشكاليات التالية:‬ ‫1.3.بفرض أننها نريهد إدخال بيانات مسهتودع جديهد قبهل توظيهف أحهد‬ ‫فيههه، هذا يتطلب إدخال قيههم ‪ Null‬فههي بيانات الموظههف ومههن‬ ‫ضمنههها الحقههل المفتاح )‪ (Id‬ممهها يخرق شرط تكامههل البيانات.‬ ‫هذا ما يدعى بإشكالية الدخال )‪.(Insertion anomaly‬‬ ‫2.3.بفرض أننههها حذفنههها تسهههجيلة الموظهههف الخيهههر فهههي أحهههد‬ ‫المس هتودعات، س هيؤدي ذلك إلى فقدان بيانات مس هتودع موجود‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫في الشركة. هذا ما يدعى بإشكالية الحذف )‪.(Deletion anomaly‬‬ ‫3.3.إذا أردنها تغييهر رقهم هاتهف أحهد المسهتودعات، عندهها يجهب تغييهر‬ ‫رقم الهاتف في كل تسجيلت موظفي ذلك المستودع، فإذا تم‬ ‫تغييهر جزء مهن هذه التسهجيلت دون جزء آخهر سهيؤدي ذلك إلى‬ ‫بيانات متناقضهة فهي قاعدة البيانات، وهذا مها يدعهى بإشكاليهة‬ ‫التعديل )‪.(Update anomaly‬‬ ‫هابق إلى‬ ‫هء الجدول السه‬ ‫هابقة هن خلل تجزيه‬ ‫مه‬ ‫هل السه‬ ‫هم هل المشاكه‬ ‫يته حه‬ ‫هتورد مفتاح الجدول‬ ‫هن ويسه‬ ‫هل بيانات الموظفيه‬ ‫ها يحمه‬ ‫هن، أحدهمه‬ ‫جدوليه‬ ‫الثاني الذي يحمل بيانات المستودعات:‬ ‫‪Id‬‬ ‫‪Name‬‬ ‫‪Address‬‬ ‫‪Title‬‬ ‫‪Store‬‬ ‫1‪Sr‬‬ ‫‪Jane‬‬ ‫1‪E‬‬ ‫‪Sales Rep‬‬ ‫1‪A‬‬ ‫2‪Sr‬‬ ‫‪Fred‬‬ ‫2‪E‬‬ ‫‪Sales Rep‬‬ ‫1‪A‬‬ ‫3‪Sr‬‬ ‫‪Ed‬‬ ‫3‪E‬‬ ‫‪Manager‬‬ ‫1‪A‬‬ ‫4‪Sr‬‬ ‫‪Ann‬‬ ‫4‪E‬‬ ‫‪Sales Rep‬‬ ‫2‪A‬‬ ‫5‪Sr‬‬ ‫‪Jone‬‬ ‫5‪E‬‬ ‫‪Sales Rep‬‬ ‫2‪A‬‬ ‫6‪Sr‬‬ ‫‪Smith‬‬ ‫6‪E‬‬ ‫‪Manager‬‬ ‫2‪A‬‬ ‫4/42‬
  • 5. ‫‪Store‬‬ ‫‪Store_Address‬‬ ‫‪Store_phone‬‬ ‫1‪A‬‬ ‫1‪S‬‬ ‫7654321-110‬ ‫2‪A‬‬ ‫2‪S‬‬ ‫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‬‬ ‫3‪Pr‬‬ ‫‪A‬‬ ‫69-1-1‬ ‫89-1-21‬ ‫587‬ ‫32‪Po‬‬ ‫‪Jones‬‬ ‫10‬ ‫‪Jane‬‬ ‫22‪Pr‬‬ ‫‪B‬‬ ‫89-1-2‬ ‫00-03-3‬ ‫0021‬ ‫44‪Po‬‬ ‫‪Jan‬‬ ‫20‬ ‫71‪Pr‬‬ ‫‪Fred‬‬ ‫‪C‬‬ ‫88-1-2‬ ‫09-11-1‬ ‫0001‬ ‫23‪Po‬‬ ‫‪Jill‬‬ ‫23‪Pr‬‬ ‫‪D‬‬ ‫09-1-6‬ ‫59-1-3‬ ‫059‬ ‫23‪Po‬‬ ‫‪Jill‬‬ ‫30‬ ‫‪Ed‬‬ ‫22‪Pr‬‬ ‫‪B‬‬ ‫00-1-4‬ ‫‪null‬‬ ‫0021‬ ‫44‪Po‬‬ ‫‪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‬ ‫3‪Pr‬‬ ‫‪Jane‬‬ ‫‪A‬‬ ‫69-1-1‬ ‫89-1-21‬ ‫587‬ ‫32‪Po‬‬ ‫‪Jones‬‬ ‫10‬ ‫22‪Pr‬‬ ‫‪Jane‬‬ ‫‪B‬‬ ‫89-1-2‬ ‫00-03-3‬ ‫0021‬ ‫44‪Po‬‬ ‫‪Jan‬‬ ‫20‬ ‫71‪Pr‬‬ ‫‪Fred‬‬ ‫‪C‬‬ ‫88-1-2‬ ‫09-11-1‬ ‫0001‬ ‫23‪Po‬‬ ‫‪Jill‬‬ ‫30‬ ‫23‪Pr‬‬ ‫‪Ed‬‬ ‫‪D‬‬ ‫09-1-6‬ ‫59-1-3‬ ‫059‬ ‫23‪Po‬‬ ‫‪Jill‬‬ ‫30‬ ‫22‪Pr‬‬ ‫‪Ed‬‬ ‫‪B‬‬ ‫00-1-4‬ ‫‪null‬‬ ‫0021‬ ‫44‪Po‬‬ ‫‪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‬
  • 9. ‫4001‬ ‫‪Bill Bass‬‬ ‫,‪Hank, April‬‬ ‫,49-9-9 ,98-4-5‬ ‫‪Ellen‬‬ ‫89-01-7‬ ‫الحل:‬ ‫‪id‬‬ ‫‪Name‬‬ ‫‪children‬‬ ‫‪birth_date‬‬ ‫1001‬ ‫‪John Doe‬‬ ‫‪Betty‬‬ ‫88-2-2‬ ‫1001‬ ‫‪John Doe‬‬ ‫‪Frank‬‬ ‫09-3-4‬ ‫2001‬ ‫‪Jane Doe‬‬ ‫‪Betty‬‬ ‫88-2-2‬ ‫2001‬ ‫‪Jane Doe‬‬ ‫‪Frank‬‬ ‫09-3-4‬ ‫3001‬ ‫‪Freda Fish‬‬ ‫‪Henry‬‬ ‫97-4-4‬ ‫3001‬ ‫‪Freda Fish‬‬ ‫‪Jane‬‬ ‫48-8-2‬ ‫3001‬ ‫‪Freda Fish‬‬ ‫‪Jill‬‬ ‫88-9-7‬ ‫3001‬ ‫‪Freda Fish‬‬ ‫‪Bill‬‬ ‫09-3-01‬ ‫4001‬ ‫‪Bill Bass‬‬ ‫‪Hank‬‬ ‫98-4-5‬ ‫4001‬ ‫‪Bill Bass‬‬ ‫‪April‬‬ ‫49-9-9‬ ‫4001‬ ‫‪Bill Bass‬‬ ‫‪Ellen‬‬ ‫89-01-7‬ ‫وضهع الجدول فهي الشكهل النظامهي الول ل يحهل مشاكهل التصهميم‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫ه‬ ‫السيئ إنما هو خطوة في طريق حلها، فبالرغم من وضع جدول إيجار‬ ‫العقارات فهي الشكهل النظامهي الول فإنهه ل يزال يعانهي مهن مشكلة‬ ‫تكرار البيانات، وإشكاليات الضافة والتعديل والحذف.‬ ‫9/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‬ ‫3‪Pr‬‬ ‫69-1-1‬ ‫89-1-21‬ ‫10‬ ‫22‪Pr‬‬ ‫89-1-2‬ ‫00-03-3‬ ‫11/42‬
  • 12. ‫20‬ ‫71‪Pr‬‬ ‫88-1-2‬ ‫09-11-1‬ ‫30‬ ‫23‪Pr‬‬ ‫09-1-6‬ ‫59-1-3‬ ‫30‬ ‫22‪Pr‬‬ ‫00-1-4‬ ‫‪Null‬‬ ‫من ثم نشكل الجداول اللزمة لحقول علقات التبعية الجزئية:‬ ‫‪Customer‬‬ ‫‪C_id‬‬ ‫‪C_name‬‬ ‫10‬ ‫‪Jane‬‬ ‫20‬ ‫‪Fred‬‬ ‫30‬ ‫‪Ed‬‬ ‫‪Property‬‬ ‫‪P_num‬‬ ‫‪P_address‬‬ ‫‪rent‬‬ ‫‪Owner_num‬‬ ‫‪Owner‬‬ ‫3‪Pr‬‬ ‫‪A‬‬ ‫587‬ ‫32‪Po‬‬ ‫‪Jones‬‬ ‫22‪Pr‬‬ ‫‪B‬‬ ‫0021‬ ‫44‪Po‬‬ ‫‪Jan‬‬ ‫71‪Pr‬‬ ‫‪C‬‬ ‫0001‬ ‫23‪Po‬‬ ‫‪Jill‬‬ ‫23‪Pr‬‬ ‫‪D‬‬ ‫059‬ ‫23‪Po‬‬ ‫‪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‬‬ ‫3‪Pr‬‬ ‫‪A‬‬ ‫587‬ ‫32‪Po‬‬ ‫22‪Pr‬‬ ‫‪B‬‬ ‫0021‬ ‫44‪Po‬‬ ‫71‪Pr‬‬ ‫‪C‬‬ ‫0001‬ ‫23‪Po‬‬ ‫23‪Pr‬‬ ‫‪D‬‬ ‫059‬ ‫23‪Po‬‬ ‫‪Owner‬‬ ‫‪Owner_num‬‬ ‫‪Owner‬‬ ‫31/42‬
  • 14. ‫32‪Po‬‬ ‫‪Jones‬‬ ‫44‪Po‬‬ ‫‪Jan‬‬ ‫23‪Po‬‬ ‫‪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‬ ‫3‪Pr‬‬ ‫69-1-1‬ ‫89-1-21‬ ‫10‬ ‫22‪Pr‬‬ ‫89-1-2‬ ‫00-03-3‬ ‫20‬ ‫71‪Pr‬‬ ‫88-1-2‬ ‫09-11-1‬ ‫30‬ ‫23‪Pr‬‬ ‫09-1-6‬ ‫59-1-3‬ ‫30‬ ‫22‪Pr‬‬ ‫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‬‬ ‫3‪Pr‬‬ ‫‪A‬‬ ‫587‬ ‫32‪Po‬‬ ‫22‪Pr‬‬ ‫‪B‬‬ ‫0021‬ ‫44‪Po‬‬ ‫71‪Pr‬‬ ‫‪C‬‬ ‫0001‬ ‫23‪Po‬‬ ‫23‪Pr‬‬ ‫‪D‬‬ ‫059‬ ‫23‪Po‬‬ ‫‪Owner‬‬ ‫‪O_num‬‬ ‫‪Owner‬‬ ‫32‪Po‬‬ ‫‪Jones‬‬ ‫44‪Po‬‬ ‫‪Jan‬‬ ‫23‪Po‬‬ ‫‪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‬ ‫07‪P‬‬ ‫32-‪Pe‬‬ ‫71‬ ‫00-10-50‬ ‫03:90‬ ‫06‪P‬‬ ‫23-‪Pe‬‬ ‫02‬ ‫00-10-50‬ ‫03:01‬ ‫07‪P‬‬ ‫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‬ ‫07‪P‬‬ ‫23-‪Pe‬‬ ‫00-10-50‬ ‫06‪P‬‬ ‫32-‪Pe‬‬ ‫00-10-50‬ ‫07‪P‬‬ ‫الشكهل النظامهي الثالث ههو شكهل كاف لتنظيهم قاعدة البيانات، وههو‬ ‫كاف لتلفي تكرار البيانات ومشاكل الحذف والتعديل والضافة.‬ ‫ملحظة:‬ ‫قهد يكون مهن المفيهد فهي بعهض الحيان إعادة تركيهب الجداول الناتجهة‬ ‫عههن التنظيههم، لعتبارات تسههريع أداء قاعدة البيانات وهذا مهها يدعههى‬ ‫بإعادة التنظيم )‪.(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.تؤدي الجداول غير المنظمة إلى التعرض للعديد من‬ ‫العقبات أثناء بناء المناظير )الجداول الفتراضية(.‬ ‫المراجع:‬ ‫•‬ ‫/931001‪http://support.microsoft.com/kb/q‬‬ ‫•‬ ‫‪http://www.ischool.utexas.edu/~wyllys/DMPAMaterials/normover.html‬‬ ‫42/42‬