تضمن هذه الطريقة تنظيم الجداول بحيث تقلل من تكرار البيانات فى الجدوال وكذلك تقلل من اعتمادية البيانات.
بكلمات ابسط يقسم الجداول الأكبر إلى جداول أصغر وابسط ويتم ربطهم باستخدام العلاقات.
ويتم عمل Normalization عن طريق 6 مراحل كالتالى
وافضل طريقة لفهم هذه العملية هى عن طريق مثال ولناخذ المثال التالى.
لنفترض أن مكتبة لبيع شرائط الفيديو تحتفظ بقاعدة بيانات للأفلام المستأجرة. دون أي عملية Normalization ، يتم تخزين جميع المعلومات في جدول واحد كما هو موضح أدناه.
لاحظ فى المثال السابق ان الحقل Movies Rented والحقل Category لهم قيم متعددة.
الآن لنطبق عملية Normalization على المثال السابق.
المرحلة الاولى 1NF
- يجب أن تحتوي كل خلية فى جدول على قيمة واحدة فقط.
- يجب أن يكون كل سجل فريدًا.
الجدول السابق بعد المرحلة الاولى 1NF
قبل استكمال العملية لابد من فهم بعض المصطلحات الهامة.
ما هو Key او المفتاح؟
KEY هي قيمة تُستخدم لتحديد سجل معين في جدول . يجب ان يكون KEY قيمة فريدة غير متكرره فى الجدول. يمكن أن يكون KEY عمودًا واحدًا أو مجموعة من أعمدة متعددة.
ماهو Primary Key؟
Primary Key او المفتاح الأساسي هو قيمة عمود واحد يستخدم لتحديد سجل معين فى قاعدة البيانات بشكل فريد.
ويكون لديه السمات التالية
- لا يمكن يكون فارغًا Null
- يجب ان يكون فريد غير متكرر فى الجدول Unique
- لا يجب تغيره فى الجدول -لانه يستخدم لربط الجداول ببعضها
- يجب إعطاء Primary Key قيمتة عند إدراج سجل جديد.
ماهو Composite Key او المفتاح مركب؟
هو Primary Key ولكن يتكون من اكثر من عمود لتحديد سجل معين فى الجدول بشكل فريد.
فمثلًا فى قاعدة بياناتنا ، لدينا شخصان يحملان نفس الاسم روبرت فيل ، لكنهما يعيشان في أماكن مختلفة.
وبالتالى لتحديد السجل بشكل فريد يمكن ان نستخدم عمود الاسم والعنوان ك Composite Key.
الآن لننتقل إلى المرحلة التالية 2NF.
المرحلة الثانية 2NF
- القاعدة الاولى ان يكون الجدول مر على مرحلة 1NF
- القاعدة الثانية عمود واحد فقط ك Primary Key
من الواضح أننا لا نستطيع المضي قدمًا في إنشاء قاعدة بيانات بسيطة في نموذج 2NF إلا إذا قسمنا الجدول أعلاه كتالى.
لقد قسمنا جدولنا 1NF إلى جدولين بمعنى. يحتوي الجدول الاول على معلومات الأعضاء. بينما يحتوي الجدول الثانى على معلومات حول الأفلام المستأجرة.
لقد أنشأنا عمودًا جديدًا يسمى Membership_id وهو المفتاح الأساسي للجدول الاول . يمكن تحديد ايًا من السجلات بشكل فريد في الجدول الاول باستخدام معرف العضوية Membership_id.
في الجدول الثانى ، Membership_id هو Foreign Key.
اذًا ماهو Foreign Key؟
يشير المفتاح الخارجي او Foreign Key إلى primary key لجدول آخر! وبالتالى نستطيع ربط الجداول مع بعضها.
- يمكن أن يُسمى المفتاح الخارجي Foreign Key باسم مختلف عن مفتاحه الأساسي مثلًا فى الجدول الثانى يمكننا تسميته Membership_identifier
- على عكس المفتاح الأساسي primary key ، لا يجب أن تكون قيمته فريدة من نوعها. في معظم الأحيان لاتكون كذلك.
- ويمكن ان تكون فارغة -تحمل القيمة NULL.
المرحلة الثالثة 3NF
- ان يكون الجدول فى اجتاز المرحلة والثانية
- الا يحتوي الجدول على transitive functional dependencies
ماهو transitive functional dependencies (التبعية الوظيفية متعدية)
وتعنى ان تغير قيمة فى عمود يؤدى إلى تغير فى عمود اخر -اعمدة غير اعمدة التى تعتبر مفاتيح primary key , foriegn key
فمثلًا فى المثال السابق
مثال على المرحلة الثالثة 3NF
قسمنا الجدول الاول إلى جدولين للتخلص من transitive functional dependencies (التبعية الوظيفية متعدية)
المرحلة الرابعة 4NF
إذا لم يكن هناك جدول فى قاعدة البيانات يحتوي على اثنين أو أكثر من البيانات المستقلة والمتعددة القيم فسيكون في المرحلة الرابعة.
المرحلة الخامسة 5NF
يكون الجدول في النموذج الخامس إذا كان في 4NF ولا يمكن تقسيمه إلى أي عدد من الجداول الأصغر بدون فقد البيانات.
المرحلة السادسة والاخيرة 6NF
لم يتم توحيد تعريف النموذج السادس ، ومع ذلك ، فإنه يتم مناقشته بواسطة خبراء قاعدة البيانات فى الوقت الحالى. و نأمل أن يكون لدينا تعريف واضح وموحد للنموذج السادس العادي في المستقبل القريب …