التبعية الوظيفية الكاملة في تسوية قواعد البيانات

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

هذه ليست معقدة كما قد يبدو. دعونا ننظر في هذا بمزيد من التفصيل.

ملخص النموذج العادي الأول

قبل أن تصبح قاعدة البيانات معتمدة بشكل وظيفي بالكامل ، يجب أن تلتزم أولاً بالنموذج العادي الأول .

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

على سبيل المثال ، لا يتوافق الجدول التالي مع 1NF ، لأن الموظف Tina مرتبط بموقعين ، كلاهما في خلية واحدة:

أول نموذج عادي عدم الامتثال
موظف موقعك
يوحنا لوس أنجلوس
تينا لوس انجليس ، شيكاغو

قد يؤدي السماح بهذا التصميم إلى التأثير سلبيًا على تحديثات البيانات أو الإدخالات. لضمان التوافق مع 1NF ، أعد ترتيب الجدول بحيث تحتوي جميع السمات (أو خلايا الأعمدة) على قيمة واحدة:

الامتثال النموذج العادي الأول
موظف موقعك
يوحنا لوس أنجلوس
تينا لوس أنجلوس
تينا شيكاغو

لكن 1NF لا يزال غير كاف لتجنب المشاكل مع البيانات.

كيف يعمل 2NF لضمان الاعتماد الكامل

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

يستخدم مصممو قواعد البيانات رمزًا لوصف العلاقات التابعة بين السمات:

إذا حددت السمة A قيمة B ، نكتب هذا A -> B - بمعنى أن B يعتمد بشكل وظيفي على A. في هذه العلاقة ، A يحدد قيمة B ، بينما B يعتمد على A.

على سبيل المثال ، في جدول " إدارة الموظفين" التالية ، EmployeeID و DeptID كلاهما مفاتيح الترشيح: EmployeeID هو المفتاح الأساسي للجدول أثناء DeptID مفتاح خارجي.

أي سمة أخرى - في هذه الحالة ، EmployeeName و DeptName - يجب أن تعتمد على المفتاح الأساسي للحصول على قيمته.

أقسام الموظفين
هوية الموظف اسم الموظف DeptID DeptName
Emp1 يوحنا Dept001 المالية
Emp2 تينا Dept003 مبيعات
Emp3 كارلوس Dept001 المالية

في هذه الحالة ، لا يعتمد الجدول بشكل كامل لأن ، بينما يعتمد EmployeeName على المفتاح الأساسي EmployeeID ، يعتمد DeptName بدلاً منه على DeptID. وهذا ما يسمى التبعية الجزئية .

لجعل هذا الجدول يتوافق مع 2NF ، نحتاج إلى فصل البيانات إلى جدولين:

الموظفين
هوية الموظف اسم الموظف DeptID
Emp1 يوحنا Dept001
Emp2 تينا Dept003
Emp3 كارلوس Dept001

نقوم بإزالة سمة DeptName من جدول " الموظفين" وإنشاء جدول جديد " الإدارات" :

الإدارات
DeptID DeptName
Dept001 المالية
Dept002 الموارد البشرية
Dept003 مبيعات

الآن العلاقات بين الجداول تعتمد بشكل كامل ، أو في 2NF.

لماذا التبعية الكاملة مهمة

تساعد التبعية الكاملة بين سمات قاعدة البيانات في ضمان سلامة البيانات وتجنب حالات الشذوذ في البيانات.

على سبيل المثال ، ضع في اعتبارك الجدول الموجود في القسم أعلاه والذي يلتزم فقط بـ 1NF. ها هو ، مرة أخرى:

الامتثال النموذج العادي الأول
موظف موقعك
يوحنا لوس أنجلوس
تينا لوس أنجلوس
تينا شيكاغو

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

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

التبعية الكاملة ليست الصورة الكاملة ، رغم ذلك ، عندما يتعلق الأمر بالتطبيع. يجب التأكد من أن قاعدة البيانات الخاصة بك في نموذج Normal الثالث (3NF).