SlideShare a Scribd company logo
‫المادة: تصميم قواعد المعطيات ‪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

دكتور عبدالله مديرس
دكتور عبدالله مديرسدكتور عبدالله مديرس
دكتور عبدالله مديرس
nouraalbannai
 
Module 3 V4[1].0 Arabic Word
Module 3 V4[1].0 Arabic WordModule 3 V4[1].0 Arabic Word
Module 3 V4[1].0 Arabic Word
kamilia husen
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةMohammed Algarni
 
Bi10 li-001
Bi10 li-001Bi10 li-001
Bi10 li-001
DARSRADAR
 
لقاء بجريدة الاتحاد الاماراتية
لقاء بجريدة الاتحاد الاماراتيةلقاء بجريدة الاتحاد الاماراتية
لقاء بجريدة الاتحاد الاماراتية
Abdulhadi Aloufi
 
Azkar أذكار
Azkar أذكارAzkar أذكار
Azkar أذكار
asmaa
 
The magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijaziThe magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijazi
taha hijazi
 
Doc1 taki
Doc1 takiDoc1 taki
Doc1 taki
guest9f943c
 
Bi11 li-006
Bi11 li-006Bi11 li-006
Bi11 li-006
DARSRADAR
 
التجارة الالكترونية
التجارة الالكترونيةالتجارة الالكترونية
التجارة الالكترونيةalabadi0
 
Bi10 li-002
Bi10 li-002Bi10 li-002
Bi10 li-002
DARSRADAR
 
التعلم التعاوني 3
التعلم التعاوني 3التعلم التعاوني 3
التعلم التعاوني 3visual8
 
الصراع بين ايران ودولة الامارات على جزر الخليج العربي
الصراع بين ايران ودولة الامارات على  جزر الخليج العربيالصراع بين ايران ودولة الامارات على  جزر الخليج العربي
الصراع بين ايران ودولة الامارات على جزر الخليج العربيguest3075e36
 
التقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعون
التقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعونالتقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعون
التقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعون
RandaMousa1
 
التقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنون
التقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنونالتقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنون
التقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنون
RandaMousa1
 
Bi11 pa-001
Bi11 pa-001Bi11 pa-001
Bi11 pa-001
DARSRADAR
 
الادارة العامة م 2
الادارة العامة م 2الادارة العامة م 2
الادارة العامة م 2Adeeb Alabbasi
 

What's hot (18)

دكتور عبدالله مديرس
دكتور عبدالله مديرسدكتور عبدالله مديرس
دكتور عبدالله مديرس
 
Module 3 V4[1].0 Arabic Word
Module 3 V4[1].0 Arabic WordModule 3 V4[1].0 Arabic Word
Module 3 V4[1].0 Arabic Word
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحة
 
Bi10 li-001
Bi10 li-001Bi10 li-001
Bi10 li-001
 
لقاء بجريدة الاتحاد الاماراتية
لقاء بجريدة الاتحاد الاماراتيةلقاء بجريدة الاتحاد الاماراتية
لقاء بجريدة الاتحاد الاماراتية
 
Azkar أذكار
Azkar أذكارAzkar أذكار
Azkar أذكار
 
The magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijaziThe magic plant garcinia,الجارسينيا.taha hijazi
The magic plant garcinia,الجارسينيا.taha hijazi
 
Doc1 taki
Doc1 takiDoc1 taki
Doc1 taki
 
Bi11 li-006
Bi11 li-006Bi11 li-006
Bi11 li-006
 
التجارة الالكترونية
التجارة الالكترونيةالتجارة الالكترونية
التجارة الالكترونية
 
Bi10 li-002
Bi10 li-002Bi10 li-002
Bi10 li-002
 
التعلم التعاوني 3
التعلم التعاوني 3التعلم التعاوني 3
التعلم التعاوني 3
 
الصراع بين ايران ودولة الامارات على جزر الخليج العربي
الصراع بين ايران ودولة الامارات على  جزر الخليج العربيالصراع بين ايران ودولة الامارات على  جزر الخليج العربي
الصراع بين ايران ودولة الامارات على جزر الخليج العربي
 
Report3
Report3Report3
Report3
 
التقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعون
التقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعونالتقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعون
التقويم الهجري والميلادي 2021 للاستاذة أمينة علي بن صنعون
 
التقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنون
التقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنونالتقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنون
التقويم الهجري والميلادي 2021 للأستاذة أمينة علي بن صعنون
 
Bi11 pa-001
Bi11 pa-001Bi11 pa-001
Bi11 pa-001
 
الادارة العامة م 2
الادارة العامة م 2الادارة العامة م 2
الادارة العامة م 2
 

Similar to Business Process

Lecture3 Relationalmodel
Lecture3 RelationalmodelLecture3 Relationalmodel
Lecture3 Relationalmodelguest800d4
 
نقل اثاث وعفش الامارات
نقل اثاث وعفش الاماراتنقل اثاث وعفش الامارات
نقل اثاث وعفش الامارات
alwadii
 
Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)Jamil AlKhatib
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةMohammed Algarni
 
مسابقة مهنية
مسابقة مهنيةمسابقة مهنية
مسابقة مهنية
Nazek Al-Asfoor
 
تدريب القيادة والريادة
تدريب القيادة والريادةتدريب القيادة والريادة
تدريب القيادة والريادة
Loay Qabajeh
 
عرض أكتب إنجازاتي 02
عرض أكتب إنجازاتي 02عرض أكتب إنجازاتي 02
عرض أكتب إنجازاتي 02
نوافذ حاسوبية
 
دكتور عبدالله مديرس
دكتور عبدالله مديرسدكتور عبدالله مديرس
دكتور عبدالله مديرس
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
 
شجر المصير
شجر المصيرشجر المصير
شجر المصيرguestf59569
 
شجر المصير
شجر المصيرشجر المصير
شجر المصير
guestf59569
 
الحاوي في الطب الرازي
الحاوي في الطب الرازيالحاوي في الطب الرازي
الحاوي في الطب الرازيWael Sharba
 
مهارتي دورة العصف الذهني 3
مهارتي دورة العصف الذهني 3مهارتي دورة العصف الذهني 3
مهارتي دورة العصف الذهني 3
maharty
 
بروتوكولات حكماء صهيون
بروتوكولات حكماء صهيونبروتوكولات حكماء صهيون
بروتوكولات حكماء صهيونguest87d612
 
evennement 60 seconde \ تظاهؤة 60 ثانية
evennement 60 seconde \ تظاهؤة 60 ثانية evennement 60 seconde \ تظاهؤة 60 ثانية
evennement 60 seconde \ تظاهؤة 60 ثانية
kahlaoui mohamed ghassen
 
شخصيات يهودية
شخصيات يهوديةشخصيات يهودية
شخصيات يهوديةguest87d612
 

Similar to Business Process (20)

Lecture3 Relationalmodel
Lecture3 RelationalmodelLecture3 Relationalmodel
Lecture3 Relationalmodel
 
نقل اثاث وعفش الامارات
نقل اثاث وعفش الاماراتنقل اثاث وعفش الامارات
نقل اثاث وعفش الامارات
 
Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)Introduction to Inventions (Arabic)
Introduction to Inventions (Arabic)
 
العادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحةالعادات العشر للشخصية الناجحة
العادات العشر للشخصية الناجحة
 
مسابقة مهنية
مسابقة مهنيةمسابقة مهنية
مسابقة مهنية
 
تدريب القيادة والريادة
تدريب القيادة والريادةتدريب القيادة والريادة
تدريب القيادة والريادة
 
عرض أكتب إنجازاتي 02
عرض أكتب إنجازاتي 02عرض أكتب إنجازاتي 02
عرض أكتب إنجازاتي 02
 
دكتور عبدالله مديرس
دكتور عبدالله مديرسدكتور عبدالله مديرس
دكتور عبدالله مديرس
 
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
 
شجر المصير
شجر المصيرشجر المصير
شجر المصير
 
شجر المصير
شجر المصيرشجر المصير
شجر المصير
 
الحاوي في الطب الرازي
الحاوي في الطب الرازيالحاوي في الطب الرازي
الحاوي في الطب الرازي
 
مهارتي دورة العصف الذهني 3
مهارتي دورة العصف الذهني 3مهارتي دورة العصف الذهني 3
مهارتي دورة العصف الذهني 3
 
بروتوكولات حكماء صهيون
بروتوكولات حكماء صهيونبروتوكولات حكماء صهيون
بروتوكولات حكماء صهيون
 
evennement 60 seconde \ تظاهؤة 60 ثانية
evennement 60 seconde \ تظاهؤة 60 ثانية evennement 60 seconde \ تظاهؤة 60 ثانية
evennement 60 seconde \ تظاهؤة 60 ثانية
 
شخصيات يهودية
شخصيات يهوديةشخصيات يهودية
شخصيات يهودية
 
المراجع
المراجعالمراجع
المراجع
 

Recently uploaded

【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
recruit9
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
NTTDATA INTRAMART
 
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
ssuser4eac57
 
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
ssuserdc1268
 
The AI service "MMOL Pot (MMOT)" by MMOL Holdings
The AI service "MMOL Pot (MMOT)" by MMOL HoldingsThe AI service "MMOL Pot (MMOT)" by MMOL Holdings
The AI service "MMOL Pot (MMOT)" by MMOL Holdings
mikidaisuke
 
【スポンサープラン】Marketing Native Fes 2024summer
【スポンサープラン】Marketing Native Fes 2024summer【スポンサープラン】Marketing Native Fes 2024summer
【スポンサープラン】Marketing Native Fes 2024summer
yutooyama
 
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
Members_corp
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
takashihashimoto14
 
HRMOS-saiyo_overview_material_powred_by_bizreach
HRMOS-saiyo_overview_material_powred_by_bizreachHRMOS-saiyo_overview_material_powred_by_bizreach
HRMOS-saiyo_overview_material_powred_by_bizreach
gmiki1
 
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
DAISUKE NAKAMURA
 
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
ytakahashi4
 

Recently uploaded (11)

【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
 
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
 
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
 
The AI service "MMOL Pot (MMOT)" by MMOL Holdings
The AI service "MMOL Pot (MMOT)" by MMOL HoldingsThe AI service "MMOL Pot (MMOT)" by MMOL Holdings
The AI service "MMOL Pot (MMOT)" by MMOL Holdings
 
【スポンサープラン】Marketing Native Fes 2024summer
【スポンサープラン】Marketing Native Fes 2024summer【スポンサープラン】Marketing Native Fes 2024summer
【スポンサープラン】Marketing Native Fes 2024summer
 
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
 
HRMOS-saiyo_overview_material_powred_by_bizreach
HRMOS-saiyo_overview_material_powred_by_bizreachHRMOS-saiyo_overview_material_powred_by_bizreach
HRMOS-saiyo_overview_material_powred_by_bizreach
 
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
 
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
 

Business Process

  • 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‬