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