- أشكال عادية
- أول نموذج عادي (1FN)
- النموذج العادي الثاني (2FN)
- النموذج العادي الثالث (3FN)
- أمثلة للشكل العادي الثالث
- مثال 1
- إنشاء جدول جديد
- مثال 2
- المراجع
في النموذج العادي الثالث (قواعد البيانات) هو أسلوب تصميم قاعدة البيانات العلائقية، حيث الجداول المختلفة التي يتكون منها الالتزام ليس فقط مع النموذج العادي الثاني، ولكن كل صفاتهم أو حقول تعتمد مباشرة على المفتاح الأساسي.
عند تصميم قاعدة بيانات ، يكون الهدف الرئيسي هو إنشاء تمثيل دقيق للبيانات ، والعلاقات بينها ، والقيود المفروضة على البيانات ذات الصلة.

المصدر: pixabay.com
لتحقيق هذا الهدف ، يمكن استخدام بعض تقنيات تصميم قواعد البيانات ، من بينها التطبيع.
هذه هي عملية تنظيم البيانات في قاعدة بيانات لتجنب التكرار والشذوذ المحتمل في إدراج البيانات أو تحديثها أو حذفها ، مما يؤدي إلى إنشاء تصميم بسيط ومستقر للنموذج المفاهيمي.
يبدأ بفحص العلاقة الوظيفية أو التبعية بين السمات. تصف بعض خصائص البيانات أو العلاقة بينها.
أشكال عادية
يستخدم التطبيع سلسلة من الاختبارات ، تسمى النماذج العادية ، للمساعدة في تحديد التجميع الأمثل لهذه السمات وفي النهاية إنشاء مجموعة العلاقات المناسبة التي تدعم متطلبات بيانات الشركة.
أي أن تقنية التطبيع مبنية على مفهوم الشكل العادي ، الذي يحدد نظام القيود. إذا كانت العلاقة تلبي قيود شكل عادي معين ، يُقال أن العلاقة في هذا الشكل العادي.
أول نموذج عادي (1FN)
يُقال أن الجدول موجود في 1FN إذا كانت جميع السمات أو الحقول الموجودة فيه تحتوي على قيم فريدة فقط. أي أن كل قيمة لكل سمة يجب أن تكون غير قابلة للتجزئة.
حسب التعريف ، سيتم دائمًا تسوية قاعدة البيانات العلائقية إلى النموذج العادي الأول ، لأن قيم السمات تكون دائمًا ذرية. جميع العلاقات في قاعدة البيانات موجودة في 1FN.
ومع ذلك ، فإن مجرد ترك قاعدة البيانات مثل هذا يحفز عددًا من المشكلات ، مثل التكرار والفشل المحتمل للترقية. تم تطوير أشكال طبيعية أعلى لتصحيح هذه المشاكل.
النموذج العادي الثاني (2FN)
يتعامل مع إزالة التبعيات الدائرية من الجدول. يُقال أن العلاقة تكون في 2FN إذا كانت في 1FN وعلاوة على ذلك فإن كل حقل أو سمة غير رئيسية تعتمد كليًا على المفتاح الأساسي ، أو بشكل أكثر تحديدًا ، فهي تضمن أن الجدول له غرض واحد.
السمة غير الرئيسية هي أي سمة ليست جزءًا من المفتاح الأساسي للعلاقة.
النموذج العادي الثالث (3FN)
إنه يتعامل مع إزالة التبعيات متعدية من الجدول. وهذا يعني إزالة السمات غير الرئيسية التي لا تعتمد على المفتاح الأساسي ، ولكن على سمة أخرى.
التبعية المتعدية هي نوع من التبعية الوظيفية حيث يتم تحديد قيمة حقل أو سمة غير رئيسية من خلال قيمة حقل آخر ليس مفتاحًا أيضًا.
يجب أن تبحث عن قيم مكررة في السمات غير الرئيسية للتأكد من أن هذه السمات غير الرئيسية لا تعتمد على أي شيء آخر غير المفتاح الأساسي.
يُقال أن السمات مستقلة عن بعضها البعض إذا لم يكن أي منها يعتمد وظيفيًا على مجموعة من السمات الأخرى. يضمن هذا الاستقلال المتبادل إمكانية تحديث السمات بشكل فردي ، دون التعرض لخطر التأثير على سمة أخرى.
لذلك ، لكي تكون العلاقة في قاعدة البيانات بالشكل العادي الثالث ، يجب أن تمتثل لما يلي:
- جميع متطلبات 2FN.
- إذا كانت هناك سمات غير مرتبطة بالمفتاح الأساسي ، فيجب إزالتها ووضعها في جدول منفصل ، مع ربط كلا الجدولين عن طريق مفتاح خارجي. بمعنى ، لا ينبغي أن يكون هناك أي تبعيات متعدية.
أمثلة للشكل العادي الثالث
مثال 1
دع الجدول يكون STUDENT ، الذي يكون مفتاحه الأساسي هو تعريف الطالب (STUDENT_ID) ويتكون من السمات التالية: STUDENT_NAME و STREET و CITY و POST_CODE ، مستوفيا الشروط لتكون 2FN.

في هذه الحالة ، لا توجد علاقة مباشرة بين STREET و CITY والمفتاح الأساسي STUDENT_ID ، نظرًا لأنهما لا يرتبطان مباشرة بالطالب ، لكنهما يعتمدان كليًا على الرمز البريدي.
نظرًا لأن الطالب يقع بواسطة الموقع المحدد بواسطة CODE_POSTAL ، فإن STREET و CITY مرتبطان بهذه السمة. بسبب هذه الدرجة الثانية من التبعية ، ليس من الضروري تخزين هذه السمات في جدول الطالب.
إنشاء جدول جديد
لنفترض أن هناك العديد من الطلاب الموجودين في نفس الرمز البريدي ، مع وجود جدول STUDENT بكمية هائلة من السجلات ، ومن الضروري تغيير اسم الشارع أو المدينة ، ثم يجب البحث عن هذا الشارع أو المدينة وتحديثه في الجدول بأكمله طالب علم.
على سبيل المثال ، إذا كنت تريد تغيير شارع "El Limón" إلى "El Limón II" ، فسيتعين عليك البحث عن "El Limón" في جدول الطلاب بالكامل ثم تحديثه إلى "El Limón II".
سيستغرق البحث في جدول ضخم وتحديث السجلات الفردية أو المتعددة وقتًا طويلاً وبالتالي سيؤثر على أداء قاعدة البيانات.
بدلاً من ذلك ، يمكن الاحتفاظ بهذه التفاصيل في جدول منفصل (POSTCARD) مرتبط بجدول الطالب باستخدام سمة POST_CODE.
سيحتوي جدول POST على سجلات أقل نسبيًا وسيحتاج جدول POST إلى التحديث مرة واحدة فقط. سينعكس هذا تلقائيًا في جدول الطالب ، مما يبسط قاعدة البيانات والاستعلامات. لذلك ستكون الجداول في 3FN:

مثال 2
دع الجدول التالي يُستخدم مع الحقل Project_Num كمفتاح أساسي ومع القيم المتكررة في السمات التي ليست مفاتيح.

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

المراجع
- تيراداتا (2019). الأشكال العادية الأولى والثانية والثالثة. مأخوذة من: docs.teradata.com.
- كأس البرنامج التعليمي (2019). النموذج العادي الثالث (3NF). مأخوذة من: tutorialcup.com.
- تطوير قاعدة البيانات (2015). النموذج العادي الثالث (3NF) - تطبيع قاعدة البيانات الخاصة بك. مأخوذة من: databasedev.co.uk.
- تصميم قاعدة البيانات العلائقية (2019). مقدمة إلى النموذج العادي الثالث. مأخوذة من: relationaldbdesign.com.
- الدمى (2019). نماذج SQL الأولى والثانية والثالثة. مأخوذة من: dummies.com.
