تطبيع نظام إدارة قواعد البيانات: مثال على قاعدة بيانات 1NF، 2NF، 3NF

ما هي تسوية قاعدة البيانات؟

تطبيع هي تقنية تصميم قاعدة بيانات تقلل من تكرار البيانات وتزيل الخصائص غير المرغوب فيها مثل حالات الإدراج والتحديث والحذف الشاذة. تقوم قواعد التسوية بتقسيم الجداول الكبيرة إلى جداول أصغر وربطها باستخدام العلاقات. الغرض من التسوية في SQL هو التخلص من البيانات الزائدة (المتكررة) والتأكد من تخزين البيانات بشكل منطقي.

مخترع نموذج علائقي اقترح إدغار كود نظرية تطبيع البيانات مع تقديم النموذج العادي الأول، واستمر في توسيع النظرية مع النموذج العادي الثاني والثالث. Later انضم إلى Raymond F. Boyce لتطوير نظرية نموذج Boyce-Codd العادي.

أنواع النماذج العادية في نظم إدارة قواعد البيانات

فيما يلي قائمة بالنماذج العادية في SQL:

  • 1NF (النموذج العادي الأول): يضمن تنظيم جدول قاعدة البيانات بحيث يحتوي كل عمود على قيم ذرية (غير قابلة للتجزئة)، ويكون كل سجل فريدًا. يؤدي هذا إلى التخلص من المجموعات المكررة، وبالتالي تنظيم البيانات في جداول وأعمدة.
  • 2NF (النموذج العادي الثاني): يعتمد على 1NF بواسطة نحتاج إلى إزالة البيانات الزائدة من جدول يتم تطبيقه على صفوف متعددة. ووضعها في جداول منفصلة. يتطلب أن تكون جميع السمات غير الرئيسية فعالة بشكل كامل على المفتاح الأساسي.
  • 3NF (النموذج العادي الثالث): يوسع 2NF من خلال التأكد من أن جميع السمات غير الرئيسية لا تعمل بكامل طاقتها على المفتاح الأساسي فحسب، بل تكون أيضًا مستقلة عن بعضها البعض. هذا يلغي التبعية متعدية.
  • BCNF (نموذج بويس كود العادي): تحسين 3NF الذي يعالج الحالات الشاذة التي لا يعالجها 3NF. فهو يتطلب أن يكون كل محدد مفتاحًا للمرشح، مما يضمن التزامًا أكثر صرامة بقواعد التطبيع.
  • 4NF (النموذج العادي الرابع): يعالج التبعيات متعددة القيم. فهو يضمن عدم وجود حقائق متعددة مستقلة متعددة القيم حول كيان ما في السجل.
  • 5NF (النموذج العادي الخامس): يُعرف أيضًا باسم "النموذج العادي لوصلة الإسقاط" (PJNF)، ويتعلق بإعادة بناء المعلومات من قطع بيانات أصغر حجمًا ومرتبة بشكل مختلف.
  • 6NF (النموذج العادي السادس): نظري ولم يتم تنفيذه على نطاق واسع. إنه يتعامل مع البيانات الزمنية (التعامل مع التغييرات بمرور الوقت) عن طريق تحليل الجداول بشكل أكبر لإزالة جميع التكرار غير الزمني.

نظرية تطبيع البيانات في MySQL لا يزال الخادم قيد التطوير بشكل أكبر. على سبيل المثال، هناك مناقشات حتى على 6th شكل عادي. ومع ذلك، في معظم التطبيقات العملية، يحقق التطبيع أفضل ما لديه في 3rd شكل عادي. تم توضيح تطور التطبيع في نظريات SQL أدناه-

نماذج قاعدة البيانات العادية
نماذج قاعدة البيانات العادية

تطبيع قاعدة البيانات مع الأمثلة

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

تطبيع قاعدة البيانات مع المثال

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

أول نموذج عادي (1NF)

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

الجدول أعلاه في 1NF-

1NF مثال

1 قواعد NF

مثال على 1NF في نظام إدارة قواعد البيانات (DBMS).

قبل أن نواصل دعونا نفهم بعض الأشياء -

ما هو المفتاح في SQL

A المفتاح في SQL هي قيمة تستخدم لتحديد السجلات في الجدول بشكل فريد. SQL KEY هو عمود واحد أو مجموعة من أعمدة متعددة تستخدم لتعريف الصفوف أو المجموعات في الجدول بشكل فريد. يتم استخدام مفتاح SQL لتحديد المعلومات المكررة، ويساعد أيضًا في إنشاء علاقة بين جداول متعددة في قاعدة البيانات.

ملاحظة: الأعمدة الموجودة في الجدول والتي لا يتم استخدامها لتعريف سجل بشكل فريد تسمى الأعمدة غير الرئيسية.

ما هو المفتاح الأساسي؟

المفتاح الأساسي

المفتاح الأساسي في نظام إدارة قواعد البيانات

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

لديه السمات التالية

  • A المفتاح الأساسي لا يمكن أن تكون لاغية
  • يجب أن تكون قيمة المفتاح الأساسي فريدة
  • نادراً ما يتم تغيير قيم المفتاح الأساسي
  • يجب إعطاء المفتاح الأساسي قيمة عند إدراج سجل جديد.

ما هو المفتاح المركب؟

المفتاح المركب هو مفتاح أساسي يتكون من عدة أعمدة تستخدم لتعريف السجل بشكل فريد

في قاعدة بياناتنا، لدينا شخصان يحملان نفس الاسم روبرت فيل، لكنهما يعيشان في مكانين مختلفين.

المفتاح المركب في قاعدة البيانات

المفتاح المركب في قاعدة البيانات

ومن ثم، فإننا نطلب كلاً من الاسم الكامل والعنوان لتحديد السجل بشكل فريد. هذا مفتاح مركب.

دعنا ننتقل إلى النموذج العادي الثاني 2NF

النموذج العادي الثاني (2NF)

  • القاعدة 1- كن في 1NF
  • القاعدة 2- مفتاح أساسي ذو عمود واحد لا يعتمد وظيفيًا على أي مجموعة فرعية من علاقة المفتاح المرشح

من الواضح أننا لا نستطيع المضي قدمًا لإنشاء قاعدة بياناتنا البسيطة في 2nd نموذج التطبيع إلا إذا قمنا بتقسيم الجدول أعلاه.

2 قواعد NF

2 قواعد NF

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

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

قاعدة البيانات - المفتاح الخارجي

في الجدول 2، Membership_ID هو المفتاح الخارجي

قاعدة البيانات - المفتاح الخارجي

قاعدة البيانات - المفتاح الخارجي

المفتاح الخارجي في نظام إدارة قواعد البيانات (DBMS).

يشير المفتاح الخارجي إلى المفتاح الأساسي لجدول آخر! يساعد على ربط الجداول الخاصة بك

  • يمكن أن يكون للمفتاح الخارجي اسم مختلف عن مفتاحه الأساسي
  • فهو يضمن أن الصفوف في جدول واحد لها صفوف مقابلة في جدول آخر
  • وعلى عكس المفتاح الأساسي، ليس من الضروري أن تكون فريدة. في أغلب الأحيان ليسوا كذلك
  • يمكن أن تكون المفاتيح الخارجية فارغة على الرغم من أن المفاتيح الأساسية لا يمكن أن تكون فارغة

قاعدة البيانات - المفتاح الخارجي

لماذا تحتاج إلى مفتاح خارجي؟

لنفترض أن المبتدئ يقوم بإدراج سجل في الجدول ب مثل

لماذا تحتاج إلى مفتاح خارجي

ستتمكن فقط من إدراج القيم في مفتاحك الخارجي الموجود في المفتاح الفريد في الجدول الأصلي. وهذا يساعد في التكامل المرجعي.

يمكن التغلب على المشكلة المذكورة أعلاه من خلال الإعلان عن معرف العضوية من الجدول 2 كمفتاح خارجي لمعرف العضوية من الجدول 1

الآن، إذا حاول شخص ما إدراج قيمة في حقل معرف العضوية غير موجودة في الجدول الأصلي، فسيتم عرض خطأ!

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

متعدية التبعية الوظيفية عند تغيير عمود غير رئيسي، قد يتسبب في تغيير أي من الأعمدة الأخرى غير الرئيسية

خذ بعين الاعتبار الجدول 1. قد يؤدي تغيير العمود غير الرئيسي "الاسم الكامل" إلى تغيير التحية.

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

دعونا ننتقل إلى 3NF

النموذج العادي الثالث (3NF)

  • القاعدة 1- كن في 2NF
  • القاعدة 2- ليس لها تبعيات وظيفية متعدية

لنقل جدول 2NF إلى 3NF، نحتاج مرة أخرى إلى تقسيم طاولتنا مرة أخرى.

3NF مثال

فيما يلي مثال 3NF في قاعدة بيانات SQL:

3NF مثال

3NF مثال

3NF مثال

لقد قمنا مرة أخرى بتقسيم طاولاتنا وإنشاء جدول جديد لتخزين التحيات.

لا توجد تبعيات وظيفية متعدية، وبالتالي فإن جدولنا موجود في 3NF

في الجدول 3، معرف التحية هو المفتاح الأساسي، وفي الجدول 1، معرف التحية غريب على المفتاح الأساسي في الجدول 3

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

نموذج Boyce-Codd العادي (BCNF)

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

في بعض الأحيان يشار إلى BCNF أيضًا باسم 3.5 النموذج العادي.

النموذج العادي الرابع (4NF)

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

النموذج العادي الخامس (5NF)

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

النموذج العادي السادس (6NF) المقترح

6th النموذج العادي ليس موحدًا، ومع ذلك، تتم مناقشته من قبل خبراء قواعد البيانات لبعض الوقت. نأمل أن يكون لدينا تعريف واضح وموحد للرقم 6th النموذج الطبيعي في المستقبل القريب ...

مزايا النموذج العادي

  • تحسين تناسق البيانات: تضمن التسوية تخزين كل جزء من البيانات في مكان واحد فقط، مما يقلل من فرص البيانات غير المتسقة. عندما يتم تحديث البيانات، يجب تحديثها في مكان واحد فقط، مما يضمن الاتساق.
  • تقليل تكرار البيانات: يساعد التطبيع على التخلص من البيانات المكررة عن طريق تقسيمها إلى جداول متعددة مرتبطة ببعضها. يمكن أن يوفر هذا مساحة تخزين ويجعل قاعدة البيانات أكثر كفاءة.
  • تحسين أداء الاستعلام: غالبًا ما يكون الاستعلام عن قواعد البيانات المقيسة أسهل. نظرًا لأن البيانات منظمة بشكل منطقي، يمكن تحسين الاستعلامات لتعمل بشكل أسرع.
  • جعل البيانات ذات معنى أكبر: تتضمن عملية التطبيع تجميع البيانات بطريقة منطقية وبديهية. يمكن أن يؤدي ذلك إلى تسهيل فهم قاعدة البيانات واستخدامها، خاصة بالنسبة للأشخاص الذين لم يصمموا قاعدة البيانات.
  • تقليل فرص حدوث حالات شاذة: الحالات الشاذة هي المشكلات التي يمكن أن تحدث عند إضافة البيانات أو تحديثها أو حذفها. يمكن للتطبيع أن يقلل من فرص حدوث هذه الحالات الشاذة من خلال ضمان تنظيم البيانات بشكل منطقي.

مساوئ التطبيع

  • زيادة التعقيد: قد تؤدي عملية التطبيع إلى علاقات معقدة. وقد يكون من الصعب إدارة عدد كبير من الجداول التي تحتوي على مفاتيح خارجية، مما يؤدي إلى حدوث ارتباك.
  • انخفاض المرونة: نظرًا لقواعد التسوية الصارمة، قد تكون هناك مرونة أقل في تخزين البيانات التي لا تلتزم بهذه القواعد.
  • زيادة متطلبات التخزين: في حين أن التسوية تقلل من التكرار، فقد يكون من الضروري تخصيص مساحة تخزين أكبر لاستيعاب الجداول والمؤشرات الإضافية.
  • النفقات العامة للأداء: قد يكون الانضمام إلى جداول متعددة مكلفًا من حيث الأداء. كلما زادت تسوية البيانات، زادت الحاجة إلى عمليات الانضمام، مما قد يؤدي إلى إبطاء أوقات استرداد البيانات.
  • فقدان سياق البيانات: تعمل التسوية على تقسيم البيانات إلى جداول منفصلة، ​​مما قد يؤدي إلى فقدان سياق العمل. يعد فحص الجداول ذات الصلة أمرًا ضروريًا لفهم سياق جزء من البيانات.
  • الحاجة إلى معرفة الخبراء: يتطلب تنفيذ قاعدة بيانات تم تسويتها فهمًا عميقًا للبيانات والعلاقات بين البيانات وقواعد التسوية. وهذا يتطلب معرفة الخبراء ويمكن أن يستغرق وقتا طويلا.

هذا كل شيء في تطبيع SQL !!!

وفي الختام

  • تصميم قاعدة البيانات يعد أمرًا بالغ الأهمية للتنفيذ الناجح لنظام إدارة قاعدة البيانات الذي يلبي متطلبات البيانات لنظام المؤسسة.
  • التطبيع في نظام إدارة قواعد البيانات (DBMS) هو عملية تساعد على إنتاج أنظمة قواعد بيانات فعالة من حيث التكلفة ولها نماذج أمان أفضل.
  • تعد التبعيات الوظيفية عنصرًا مهمًا جدًا في عملية تطبيع البيانات
  • معظم أنظمة قواعد البيانات هي قاعدة بيانات موحدة حتى النماذج العادية الثالثة في نظام إدارة قواعد البيانات.
  • المفتاح الأساسي الذي يتم تعريفه بشكل فريد يتم تسجيله في جدول ولا يمكن أن يكون فارغًا
  • يساعد المفتاح الخارجي في توصيل الجدول ويشير إلى المفتاح الأساسي

تفاصيل أكثر أقرأ المزيد