هل ممكن تبسيط مفهوم Database Normalization

السلام عليكم ورحمة الله

تابعت وقرأت عدة فيديوهات ومقالات سواء عربية أو إنجليزية لكن لم أستطع فهم ال Database Normalization

1NF 2NF 3NF

هل ممكن تبسيط المفهوم وجزاكم الله خيرا!


وعليكم السلام ,

اولا مفهوم Database Normalization يعني عملية تحسين هيكل قاعدة البيانات لجعلها أكثر فعالية وذالك من خلال تقسيم قاعدة البيانات إلى جداول متعددة وتحديد العلاقات بين هذه الجداول ,

وذالك من خلال:-

  • تقليل التكرار في البيانات
  • التكامل بين الجداول
  • جعل قاعدة البيانات قابلة للتوسع

و1NF 2NF 3NF هي مستوايات يتم من خلالها تنفيذ مفهوم الDatabase Normalization

مثال لتوضيح مفهوم تطبيع قواعد البيانات:

لنفترض أننا نريد إنشاء قاعدة بيانات لتسجيل الطلاب في المدرسة. يمكننا إنشاء جدول واحد يسمى "الطلاب" يحتوي على جميع المعلومات حول الطلاب، مثل اسم الطالب وعنوان الطالب وتاريخ ميلاد الطالب.

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

لحل هذه المشكلة، يمكننا تقسيم الجدول إلى جدولين، أحدهما يسمى "الطلاب" ويحتوي على معلومات حول الطلاب، والآخر يسمى "العناوين" ويحتوي على معلومات حول العناوين. سيؤدي هذا إلى إزالة التكرار من قاعدة البيانات.

  • "الطلاب" سيكون الآن في المستوى الثاني لأنه يلبي متطلبات المستوى الأول و يمكننا تقسيم الجدول "العناوين" إلى جدولين، أحدهما يسمى "المدن" ويحتوي على معلومات حول المدن، والآخر يسمى "الشوارع" ويحتوي على معلومات حول الشوارع. سيؤدي هذا إلى تحسين قابلية التوسع لقاعدة البيانات.
  • "العناوين" سيكون الآن في المستوى الثالث لأنه يلبي متطلبات المستوى الثاني .

وهذه مقال يساعدك لفهم الموضوع بشكل افضل :-