**النموذج العادي الثالث** (**3NF**) هو نهج تصميم مخطط قاعدة البيانات لقواعد البيانات العلائقية والذي يستخدم مبادئ التطبيع لتقليل تكرار البيانات، وتجنب البيانات الشاذة، وضمان التكامل المرجعي، وتبسيط إدارة البيانات. تم تعريفه في عام 1971 بواسطة إدجار كود، عالم الكمبيوتر الإنجليزي الذي اخترع النموذج العلائقي لإدارة قواعد البيانات.

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

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

أدرك كود لاحقًا أن 3NF لم يقضي على جميع البيانات الشاذة غير المرغوب فيها وطور نسخة أقوى لمعالجة هذا في عام 1974، تُعرف باسم نموذج Boyce-Codd العادي.

تعريف النموذج العادي الثالث
---------------------------

النموذج العادي الثالث (3NF) هو نموذج عادي يستخدم في تسوية قاعدة البيانات. تم تعريف 3NF في الأصل بواسطة E.F Codd في عام 1971.

ينص تعريف Codd على أن الجدول موجود في 3NF إذا وفقط إذا كان كلا الشرطين التاليين صحيحين:

* العلاقة R (الجدول) في الشكل العادي الثاني (2NF).
* كل سمة غير أساسية لـ R تعتمد بشكل غير عابر على كل مفتاح من R.

*سمة غير الرئيسية* للR هي السمة التي لا تنتمي إلى أي مفتاح مرشح من R. A متعدية التبعية هو التبعية الوظيفية التي *X* → *Z* *(X* يحدد *Z)* بشكل غير مباشر، بحكم *X* → *Y* و *Y* → *Z* (حيث لا يكون الأمر كذلك أن *Y* → *X*).

تم تقديم تعريف 3NF الذي يعادل كود، ولكن تم التعبير عنه بشكل مختلف، من قبل كارلو زانيولو في عام 1982. وينص هذا التعريف على أن الجدول في 3NF إذا وفقط إذا لكل من التبعيات الوظيفية *X* → *A،* واحد على الأقل من الشروط التالية يحمل:

* *X* تحتوي على *A* (أي، *A* هي مجموعة فرعية من *X* ، وهذا يعني أن *X* → *A* هي تبعية وظيفية تافهة)،
* *X* هو مفتاح خارق،
* كل عنصر من *A* \ *X* ، الفرق المحدد بين A و X ، هو *سمة أولية* (على سبيل المثال، كل سمة في *A* \ *X* موجودة في مفتاح مرشح).

يعطي تعريف زانيولو إحساسًا واضحًا بالفرق بين 3NF والشكل العادي الأكثر صرامة من Boyce-Codd (BCNF). يلغي BCNF ببساطة البديل الثالث («كل عنصر من *A* \ *X* ، الفرق المحدد بين *A* و *X* ، هو سمة أساسية.»).

«لا شيء سوى المفتاح»
--------------------

قدم بيل كينت تقريبًا لتعريف كود لـ 3NF ، بالتوازي مع التعهد التقليدي بتقديم دليل حقيقي في محكمة قانونية: «[كل] [سمة] غير رئيسية يجب أن تقدم حقيقة حول المفتاح، المفتاح بأكمله، ولا شيء سوى المفتاح». هناك تباين شائع يكمل هذا التعريف بالقسم: «لذا ساعدني Codd».

طلب وجود «المفتاح» يضمن أن الجدول موجود في 1NF ؛ إن اشتراط أن تكون السمات غير الرئيسية تعتمد على «المفتاح بالكامل» يضمن 2NF ؛ يتطلب أيضًا أن تكون السمات غير الرئيسية معتمدة على «لا شيء سوى المفتاح» يضمن 3NF. في حين أن هذه العبارة مفيدة للذاكرة، فإن حقيقة أنها تذكر مفتاحًا واحدًا فقط تعني أنها تحدد بعض الشروط الضرورية ولكنها ليست كافية لتلبية الشكلين العاديين الثاني والثالث. يهتم كل من 2NF و 3NF بالتساوي مع *جميع* المفاتيح المرشحة للجدول وليس أي مفتاح واحد فقط.

يشير كريس ديت إلى ملخص كينت على أنه «توصيف جذاب بشكل حدسي» لـ 3NF ويلاحظ أنه مع تعديل طفيف يمكن أن يكون بمثابة تعريف لصيغة Boyce-Codd العادية الأقوى قليلاً: «يجب أن تمثل كل سمة حقيقة حول المفتاح، الكل مفتاح، ولا شيء سوى المفتاح». يعد إصدار 3NF من التعريف أضعف من تباين BCNF الخاص بالتاريخ، حيث إن الأول معني فقط بضمان أن السمات *غير الرئيسية* تعتمد على المفاتيح. يجب ألا تعتمد السمات الأولية (وهي مفاتيح أو أجزاء من المفاتيح) وظيفيًا على الإطلاق؛ يمثل كل منهما حقيقة حول المفتاح بمعنى توفير جزء أو كل المفتاح نفسه. (تنطبق هذه القاعدة فقط على السمات التابعة وظيفيًا، حيث إن تطبيقها على جميع السمات من شأنه أن يحظر ضمنيًا مفاتيح الترشيح المركبة، نظرًا لأن كل جزء من أي مفتاح من هذا القبيل ينتهك بند «المفتاح الكامل».)

مثال على جدول 2NF الذي فشل في تلبية متطلبات 3NF هو:

الفائزون بالبطولة| المسابقة | عام | الفائز | تاريخ ميلاد الفائز |
| --- | --- | --- | --- |
| إنديانا دعوة | 1998 | آل فريدريكسون | 21 يوليو 1975 |
| كليفلاند المفتوحة | 1999 | بوب البرتسون | 28 سبتمبر 1968 |
| دي موين ماسترز | 1999 | آل فريدريكسون | 21 يوليو 1975 |
| إنديانا دعوة | 1999 | تشيب ماسترسون | 14 مارس 1977 |

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

يحدث خرق 3NF لأن السمة غير الأولية (تاريخ ميلاد الفائز) تعتمد بشكل انتقالي على مفتاح المرشح {البطولة، السنة} من خلال السمة غير الأولية الفائز. حقيقة أن تاريخ ميلاد وينر يعتمد وظيفيًا على وينر يجعل الجدول عرضة للتناقضات المنطقية، حيث لا يوجد ما يمنع الشخص نفسه من الظهور بتواريخ ميلاد مختلفة في سجلات مختلفة.

من أجل التعبير عن نفس الحقائق دون انتهاك 3NF ، من الضروري تقسيم الجدول إلى قسمين:

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

الفائزون بالبطولة| المسابقة | عام | الفائز |
| --- | --- | --- |
| إنديانا دعوة | 1998 | آل فريدريكسون |
| كليفلاند المفتوحة | 1999 | بوب البرتسون |
| دي موين ماسترز | 1999 | آل فريدريكسون |
| إنديانا دعوة | 1999 | تشيب ماسترسون |

 | 

تواريخ ميلاد الفائز| الفائز | تاريخ الولادة |
| --- | --- |
| تشيب ماسترسون | 14 مارس 1977 |
| آل فريدريكسون | 21 يوليو 1975 |
| بوب البرتسون | 28 سبتمبر 1968 |

 |

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

حساب
----

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

اشتقاق شروط زانيولو
-------------------

تم إثبات تعريف 3NF الذي قدمه كارلو زانيولو في عام 1982، والمقدم أعلاه، بالطريقة التالية: دع X → A يكون FD غير بديهي (أي واحد حيث لا يحتوي X على A) ودع A يكون سمة غير مفتاح. اسمح أيضًا أن يكون Y مفتاحًا لـ R. ثم Y → X.

التطبيع وراء 3NF
----------------

معظم جداول 3NF خالية من التحديث والإدراج والحذف الشذوذ. تتأثر أنواع معينة من جداول 3NF ، نادرًا ما يتم تلبيتها في الممارسة العملية، بمثل هذه الحالات الشاذة؛ هذه هي الجداول التي إما تقصر عن النموذج العادي لـ Boyce-Codd (BCNF) أو، إذا كانت تتوافق مع BCNF ، فإنها تقل عن الصيغ العادية الأعلى 4NF أو 5NF .

اعتبارات للاستخدام في بيئات التقارير
------------------------------------

في حين أن 3NF كانت مثالية لمعالجة الماكينة، إلا أن الطبيعة المجزأة لنموذج البيانات يمكن أن يصعب على المستخدم البشري استهلاكها. غالبًا ما يتم تسهيل التحليلات عبر الاستعلام والتقارير ولوحات المعلومات من خلال نوع مختلف من نماذج البيانات التي قدمت تحليلًا محسوبًا مسبقًا مثل خطوط الاتجاه، وحسابات الفترة حتى تاريخه (من شهر إلى تاريخ، ومن ربع إلى تاريخ، وسنة- حتى الآن)، والحسابات التراكمية، والإحصاءات الأساسية (المتوسط، والانحراف المعياري، والمتوسطات المتحركة) ومقارنات الفترة السابقة (منذ عام، قبل شهر، قبل أسبوع) على سبيل المثال نمذجة الأبعاد وما وراء النمذجة الأبعاد، وتسطيح النجوم عبر Hadoop وعلوم البيانات.

انظر أيضا
---------

* نظام السمة والقيمة

المراجع
-------

1. ↑  Codd, E. F. "Further Normalization of the Data Base Relational Model", p. 34.
2. ↑  Codd, E. F. "Further Normalization of the Data Base Relational Model". (Presented at Courant Computer Science Symposia Series 6, "Data Base Systems", New York City, May 24–25, 1971.) IBM Research Report RJ909 (August 31, 1971). Republished in Randall J. Rustin (ed.), *Data Base Systems: Courant Computer Science Symposia Series 6*. Prentice-Hall, 1972.
3. ↑  Codd, p. 43.
4. ↑  Codd, p. 45–46.
5. ↑  Zaniolo, Carlo. "A New Normal Form for the Design of Relational Database Schemata". *ACM Transactions on Database Systems* 7(3), September 1982.
6. ↑  Abraham Silberschatz, Henry F. Korth, S. Sudarshan, *Database System Concepts* (5th edition), p. 276–277. نسخة محفوظة 5 نوفمبر 2020 على موقع واي باك مشين.
7. ↑  Kent, William. "A Simple Guide to Five Normal Forms in Relational Database Theory", *Communications of the ACM* 26 (2), Feb. 1983, pp. 120–125. نسخة محفوظة 27 نوفمبر 2020 على موقع واي باك مشين.
8. ↑  The author of a 1989 book on database management credits one of his students with coming up with the "so help me Codd" addendum. Diehr, George. *Database Management* (Scott, Foresman, 1989), p. 331.
9. ↑  Date, C. J. *An Introduction to Database Systems* (7th ed.) (Addison Wesley, 2000), p. 379.
10. ↑  "Comparisons between Data Warehouse modelling techniques – Roelant Vos". *roelantvos.com*. مؤرشف من الأصل في 2018-06-20. اطلع عليه بتاريخ 2018-03-05.
11. ↑  "Hadoop Data Modeling Lessons | EMC". *InFocus Blog | Dell EMC Services*. 23 سبتمبر 2014. مؤرشف من الأصل في 2018-08-26. اطلع عليه بتاريخ 2018-03-05.

قراءة متعمقة
------------

روابط خارجية
------------

* نصائح ليت: التطبيع
* أساسيات تطبيع قاعدة البيانات بواسطة مايك تشابل (About.com)
* مقدمة إلى تسوية قواعد البيانات بواسطة مايك هيلير.
* برنامج تعليمي حول النماذج الثلاثة الأولى بواسطة فريد كولسون
* وصف أساسيات تطبيع قاعدة البيانات بواسطة Microsoft
* النموذج العادي الثالث مع أمثلة بسيطة من خلال ExploreDatabase

* أيقونة بوابةبوابة تقانة المعلومات
* أيقونة بوابةبوابة علم الحاسوب