السلام عليكم ورحمة الله
تابعت وقرأت عدة فيديوهات ومقالات سواء عربية أو إنجليزية لكن لم أستطع فهم ال Database Normalization
1NF 2NF 3NF
هل ممكن تبسيط المفهوم وجزاكم الله خيرا!
وعليكم السلام ,
اولا مفهوم Database Normalization يعني عملية تحسين هيكل قاعدة البيانات لجعلها أكثر فعالية وذالك من خلال تقسيم قاعدة البيانات إلى جداول متعددة وتحديد العلاقات بين هذه الجداول ,
وذالك من خلال:-
و1NF 2NF 3NF هي مستوايات يتم من خلالها تنفيذ مفهوم الDatabase Normalization
لنفترض أننا نريد إنشاء قاعدة بيانات لتسجيل الطلاب في المدرسة. يمكننا إنشاء جدول واحد يسمى "الطلاب" يحتوي على جميع المعلومات حول الطلاب، مثل اسم الطالب وعنوان الطالب وتاريخ ميلاد الطالب.
لحل هذه المشكلة، يمكننا تقسيم الجدول إلى جدولين، أحدهما يسمى "الطلاب" ويحتوي على معلومات حول الطلاب، والآخر يسمى "العناوين" ويحتوي على معلومات حول العناوين. سيؤدي هذا إلى إزالة التكرار من قاعدة البيانات.
التطبيع هو عملية تحسين هيكل قاعدة البيانات لجعلها أكثر كفاءة ودقة ويتضمن ذلك تقسيم قاعدة البيانات إلى مجموعات من البيانات ذات الصلة، وإزالة البيانات المكررة، وضمان أن تكون البيانات ذات الصلة مرتبطة بشكل صحيح.
هناك ثلاثة مستويات رئيسية للتطبيع:
وبالطبع هناك 4NF و5NF ولكن لا يتم استخدامهما إلا في تطبيقات قاعدة بيانات معقدة.
4NF هو الشكل الرابع من التطبيع، ويتطلب أن تكون جميع البيانات في قاعدة البيانات مستقلة تمامًا، أي يعني أنه لا توجد بيانات يمكن اشتقاقها من بيانات أخرى في نفس الجدول.
5NF هو الشكل الخامس من التطبيع، ويتطلب أن تكون جميع البيانات في قاعدة البيانات مستقلة تمامًا، وأن تكون جميع العلاقات بين البيانات علاقات وظيفية.
وكمثال على قاعدة بيانات غير مُنمَطَة
لنفترض أننا نريد إنشاء قاعدة بيانات لتسجيل الطلاب والصفوف التي يدرسون فيها، فنستطيع إنشاء جدول واحد يحتوي على الحقول التالية:
وذلك الجدول غير مُنمَطَ لأنه يحتوي على بيانات مكررة، فلو كان لدى الطالب "أحمد" رقم الصف "101"، فسيظهر هذا الرقم مرتين في الجدول.
مثال على قاعدة بيانات مُنمَطَة
لتحسين قاعدة البيانات، نقوم بتقسيمها إلى جدولين:
الجدول الأول (الطلاب): يحتوي على الحقول التالية:
الجدول الثاني (الفصول): يحتوي على الحقول التالية:
يؤدي ذلك التغيير إلى إزالة البيانات المكررة، وضمان أن تكون البيانات ذات الصلة مرتبطة بشكل صحيح.
وبعض الفوائد الرئيسية للتطبيع:
تطبيع قواعد البيانات Database Normalization هو عملية تحسين بنية قاعدة البيانات لجعلها أكثر كفاءة وسهولة في الاستخدام. يتضمن ذلك إزالة التكرار وتجنب الاعتمادات الجزئية.
مثال:
هكذا يكون جدول ما غير مطبّع:
ID - Name - City - FavoriteFood - FavoriteDrink
1NF: تقسم إلى جدولين:
الجدول الأول:
ID - Name - City
الجدول الثاني:
ID - FavoriteFood - FavoriteDrink
2NF:فصل المدن إلى جدول منفصل لأنها غير مرتبطة بالـ ID
الجدول الأول:
ID - Name
الجدول الثاني:
ID - City
الجدول الثالث:
ID - FavoriteFood - FavoriteDrink
3NF: لا توجد اعتمادية على مفاتيح غير أساسية، إذن نحن في الشكل الثالث.
وهكذا تكون البيانات منظمة بشكل أفضل في جداول مستقلة ذات علاقات واضحة.
التعليقات