تطبيع قاعدة البيانات الخاصة بك: الانتقال إلى النموذج العادي الثاني (2NF)

وضع قاعدة بيانات في النموذج العادي الثاني

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

أذكر المتطلبات العامة لل 2 NF:

يمكن تلخيص هذه القواعد في بيان بسيط: يحاول 2NF تقليل كمية البيانات المكررة في جدول عن طريق استخراجها ووضعها في جدول (جداول) جديد وإنشاء علاقات بين هذه الجداول.

لنلقي نظرة على مثال. تخيل متجرًا عبر الإنترنت يحتفظ بمعلومات العملاء في قاعدة بيانات. قد يكون لديهم جدول واحد يسمى العملاء بالعناصر التالية:

نظرة سريعة على هذا الجدول تكشف عن كمية صغيرة من البيانات المكررة. نحن نخزن كل من "Sea Cliff، NY 11579" و "Miami، FL 33157" مرتين. الآن ، قد لا يبدو ذلك كمساحة تخزينية كبيرة جدًا في مثالنا البسيط ، ولكن تخيل المساحة الضائعة إذا كان لدينا الآلاف من الصفوف في طاولتنا. بالإضافة إلى ذلك ، إذا تغير الرمز البريدي لـ Sea Cliff ، فسنحتاج إلى إجراء هذا التغيير في أماكن كثيرة عبر قاعدة البيانات.

في بنية قاعدة بيانات متوافقة مع 2NF ، يتم استخراج هذه المعلومات المتكررة وتخزينها في جدول منفصل. قد يحتوي الجدول الجديد (دعنا نسميها ZIP) على الحقول التالية:

إذا أردنا أن نكون أكثر كفاءة ، يمكننا حتى ملء هذا الجدول مقدمًا - يوفر مكتب البريد دليلاً لجميع الرموز البريدية الصالحة والعلاقات بين المدينة والدولة. بالتأكيد ، لقد واجهت وضعاً حيث تم استخدام هذا النوع من قاعدة البيانات. قد يكون شخص ما قد طلب منك رمزك البريدي أولاً ومن ثم عرف المدينة والدولة التي كنت تتصل منها. هذا النوع من الترتيب يقلل من خطأ المشغل ويزيد من الكفاءة.

الآن بعد أن أزلنا البيانات المكررة من جدول العملاء ، استوفينا القاعدة الأولى من النموذج الثاني العادي. ما زلنا بحاجة إلى استخدام مفتاح خارجي لربط الجدولين معًا. سنستخدم الرمز البريدي (المفتاح الأساسي من جدول ZIPs) لإنشاء تلك العلاقة. هذا هو جدول العملاء الجديد لدينا:

لقد قمنا الآن بتقليل كمية المعلومات المتكررة المخزنة في قاعدة البيانات ، وبنيتنا في الشكل الثاني العادي!

إذا كنت ترغب في التأكد من تسوية قاعدة بياناتك ، فاستكشف مقالاتنا الأخرى في هذه السلسلة: