عملية Normalization لقاعدة البيانات

تضمن هذه الطريقة تنظيم الجداول بحيث تقلل من تكرار البيانات فى الجدوال وكذلك تقلل من اعتمادية البيانات.

بكلمات ابسط يقسم الجداول الأكبر إلى جداول أصغر وابسط ويتم ربطهم باستخدام العلاقات.

ويتم عمل Normalization عن طريق 6 مراحل كالتالى

عملية Normalization

وافضل طريقة لفهم هذه العملية هى عن طريق مثال ولناخذ المثال التالى.

لنفترض أن مكتبة لبيع شرائط الفيديو تحتفظ بقاعدة بيانات للأفلام المستأجرة. دون أي عملية Normalization ، يتم تخزين جميع المعلومات في جدول واحد كما هو موضح أدناه.

الجدول 1

لاحظ فى المثال السابق ان الحقل Movies Rented والحقل Category لهم قيم متعددة.

الآن لنطبق عملية Normalization على المثال السابق.

المرحلة الاولى 1NF

  • يجب أن تحتوي كل خلية فى جدول على قيمة واحدة فقط.
  • يجب أن يكون كل سجل فريدًا.

الجدول السابق بعد المرحلة الاولى 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  إلا إذا قسمنا الجدول أعلاه كتالى.

الجدول 1
الجدول 1
الجدول 2
الجدول 2

لقد قسمنا جدولنا 1NF إلى جدولين بمعنى. يحتوي الجدول الاول على معلومات الأعضاء. بينما يحتوي الجدول الثانى على معلومات حول الأفلام المستأجرة.

لقد أنشأنا عمودًا جديدًا يسمى Membership_id وهو المفتاح الأساسي للجدول الاول . يمكن تحديد ايًا من السجلات بشكل فريد في الجدول الاول باستخدام معرف العضوية Membership_id.

في الجدول الثانى ، Membership_id هو Foreign Key.

اذًا ماهو Foreign Key؟

يشير المفتاح الخارجي او Foreign Key إلى primary key لجدول آخر! وبالتالى نستطيع ربط الجداول مع بعضها.

  • يمكن أن يُسمى المفتاح الخارجي Foreign Key باسم مختلف عن مفتاحه الأساسي مثلًا فى الجدول الثانى يمكننا تسميته Membership_identifier
  • على عكس المفتاح الأساسي primary key ، لا يجب أن تكون قيمته فريدة من نوعها. في معظم الأحيان لاتكون كذلك.
  • ويمكن ان تكون فارغة -تحمل القيمة NULL.
  • علاقة Primary Key و Foreign key
    علاقة Primary Key و Foreign key

     

  • المرحلة الثالثة 3NF

  • ان يكون الجدول فى اجتاز المرحلة والثانية
  • الا يحتوي الجدول على transitive functional dependencies

ماهو transitive functional dependencies (التبعية الوظيفية متعدية)

وتعنى ان تغير قيمة فى عمود يؤدى إلى تغير فى عمود اخر -اعمدة غير اعمدة التى تعتبر مفاتيح primary key , foriegn key

فمثلًا فى المثال السابق

التبعية الوظيفية متعدية

مثال على المرحلة الثالثة 3NF

tfd1 tfd2 tfd3

قسمنا الجدول الاول إلى جدولين للتخلص من transitive functional dependencies (التبعية الوظيفية متعدية)

المرحلة الرابعة 4NF

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

المرحلة الخامسة 5NF

يكون الجدول في النموذج الخامس إذا كان في 4NF ولا يمكن تقسيمه إلى أي عدد من الجداول الأصغر بدون فقد البيانات.

المرحلة السادسة والاخيرة 6NF

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