SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
‫المادة: تصميم قواعد المعطيات ‪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‬

Contenu connexe

Tendances (20)

Atadi katha-01
Atadi katha-01Atadi katha-01
Atadi katha-01
 
Faq
FaqFaq
Faq
 
Allari atta-01-03
Allari atta-01-03Allari atta-01-03
Allari atta-01-03
 
Atta
AttaAtta
Atta
 
Adbutha dengulata1
Adbutha dengulata1Adbutha dengulata1
Adbutha dengulata1
 
Anaithikam
AnaithikamAnaithikam
Anaithikam
 
001 mmmp-01-07
001 mmmp-01-07001 mmmp-01-07
001 mmmp-01-07
 
Dukaa naalu 01-02
Dukaa naalu 01-02Dukaa naalu 01-02
Dukaa naalu 01-02
 
Chiktlo sandadi
Chiktlo sandadiChiktlo sandadi
Chiktlo sandadi
 
Boa nee
Boa neeBoa nee
Boa nee
 
Bhanumati attagaru
Bhanumati attagaruBhanumati attagaru
Bhanumati attagaru
 
Doola amma
Doola ammaDoola amma
Doola amma
 
Attatho modati anubhavam
Attatho modati anubhavamAttatho modati anubhavam
Attatho modati anubhavam
 
Dongaata 01-03
Dongaata 01-03Dongaata 01-03
Dongaata 01-03
 
Adbhuta anubhavaalu-01-08
Adbhuta anubhavaalu-01-08Adbhuta anubhavaalu-01-08
Adbhuta anubhavaalu-01-08
 
051 Kotta Heroyin 01 03
051 Kotta Heroyin 01 03051 Kotta Heroyin 01 03
051 Kotta Heroyin 01 03
 
Akkayya 01-05
Akkayya 01-05Akkayya 01-05
Akkayya 01-05
 
Dimma
DimmaDimma
Dimma
 
Aedee tappu-kadu-01-03
Aedee tappu-kadu-01-03Aedee tappu-kadu-01-03
Aedee tappu-kadu-01-03
 
023 andaala amma
023 andaala amma023 andaala amma
023 andaala amma
 

En vedette

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
 

En vedette (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
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البيانات
 

Similaire à 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
 

Similaire à 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
 

Dernier

マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)miraimanagementkaigi
 
Sun__company..........................pdf
Sun__company..........................pdfSun__company..........................pdf
Sun__company..........................pdfssuser698bcc
 
240322_Another works Future 採用資料 (1).pdf
240322_Another works Future 採用資料 (1).pdf240322_Another works Future 採用資料 (1).pdf
240322_Another works Future 採用資料 (1).pdfssuser2f4ddc
 
株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。
株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。
株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。tshimabukuro0405
 
RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................yutonoda2
 
マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)miraimanagementkaigi
 
バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料
バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料
バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料Jun Chiba
 
2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf
2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf
2403_chouhou_obuse_reiwa6nen3gatu_slide.pdfssuser31dbd1
 
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。naokomukoyama
 
LP用nounou画像 This is a business description document.
LP用nounou画像 This is a business description document.LP用nounou画像 This is a business description document.
LP用nounou画像 This is a business description document.gnakagawa
 
20230322_Another works Logo Guideline.pdf
20230322_Another works Logo Guideline.pdf20230322_Another works Logo Guideline.pdf
20230322_Another works Logo Guideline.pdfssuser2f4ddc
 

Dernier (11)

マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーとリーダーの違い(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
 
Sun__company..........................pdf
Sun__company..........................pdfSun__company..........................pdf
Sun__company..........................pdf
 
240322_Another works Future 採用資料 (1).pdf
240322_Another works Future 採用資料 (1).pdf240322_Another works Future 採用資料 (1).pdf
240322_Another works Future 採用資料 (1).pdf
 
株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。
株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。
株式会社ピーエスシーは、情報技術を追究することで世の中の「不便・不満・不安」を解消する総合デジタル企業です。
 
RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................
 
マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
マネージャーの歴史と変遷(組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
 
バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料
バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料
バルーンバ人文化を探れ!パワーポイント・動画マニュアル販売用のスライドシェア資料
 
2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf
2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf
2403_chouhou_obuse_reiwa6nen3gatu_slide.pdf
 
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
株式会社デジタルフォルンご紹介資料_202403pdf___共に前へ時代を前へ。
 
LP用nounou画像 This is a business description document.
LP用nounou画像 This is a business description document.LP用nounou画像 This is a business description document.
LP用nounou画像 This is a business description document.
 
20230322_Another works Logo Guideline.pdf
20230322_Another works Logo Guideline.pdf20230322_Another works Logo Guideline.pdf
20230322_Another works Logo Guideline.pdf
 

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‬