في قاعدة البيانات العلائقية ، تحدث التبعية عندما تحدد المعلومات المخزنة في نفس جدول قاعدة البيانات بشكل فريد المعلومات الأخرى المخزنة في نفس الجدول. تحدث التبعية متعددة القيم عندما يشير وجود صف واحد أو أكثر في جدول إلى وجود صف واحد أو أكثر في نفس الجدول. بعبارة أخرى ، سمتان (أو عمودان) في جدول مستقلان عن بعضهما البعض ، لكن كلاهما يعتمد على سمة ثالثة.
التبعية متعددة القيم تمنع النموذج العادي الرابع للتطبيع. تتبع قواعد البيانات العلائقية خمسة أشكال عادية تمثل إرشادات لتصميم السجلات.أنها تمنع تحديث الشذوذ وعدم الاتساق في البيانات. يتعامل النموذج العادي الرابع مع علاقات كثير إلى واحد في قاعدة بيانات.
التبعية الوظيفية مقابل التبعية متعددة القيم
لفهم التبعية متعددة القيم ، من المفيد إعادة النظر في ماهية التبعية الوظيفية.
إذا كانت السمة X تحدد السمة Y بشكل فريد ، فإن Y تعتمد وظيفيًا على X. تتم كتابة هذا كـ X -> Y. على سبيل المثال ، في جدول الطلاب أدناه ، يحدد Student_Name التخصص:
Student_Name | الرائد |
---|---|
رافي | تاريخ الفن |
بيث | الكيمياء |
يمكن كتابة هذه التبعية الوظيفية: Student_Name -> Major. كل Student_Name يحدد تخصصًا واحدًا بالضبط وليس أكثر.
إذا كنت تريد أن تتعقب قاعدة البيانات أيضًا الرياضات التي يمارسها هؤلاء الطلاب ، فقد تعتقد أن أسهل طريقة للقيام بذلك هي إضافة عمود آخر بعنوان الرياضة:
Student_Name | الرائد | رياضة |
---|---|---|
رافي | تاريخ الفن | كرة القدم |
رافي | تاريخ الفن | الكرة الطائرة |
رافي | تاريخ الفن | تنس |
بيث | الكيمياء | تنس |
بيث | الكيمياء | كرة القدم |
المشكلة هنا هي أن كلا من رافي وبيث يلعبان عدة رياضات. من الضروري إضافة صف جديد لكل رياضة إضافية.
قدم هذا الجدول تبعية متعددة القيم لأن التخصص والرياضة مستقلان عن بعضهما البعض ولكن كلاهما يعتمد على الطالب. هذا مثال بسيط ويمكن التعرف عليه بسهولة ، لكن التبعية متعددة القيم يمكن أن تصبح مشكلة في قاعدة بيانات كبيرة ومعقدة.
تبعيات متعددة القيم مكتوبة X ->-> Y. في هذه الحالة:
Student_Name->-> رائد
Student_Name->- > رياضة
تتم قراءتها كـ "Student_Name multidetermines Major" و "Student_Name multidetermines Sport."
تتطلب التبعية متعددة القيم دائمًا ثلاث سمات على الأقل لأنها تتكون من سمتين على الأقل تعتمدان على سمة ثالثة.
التبعية المتعددة القيم والتطبيع
الجدول الذي يحتوي على تبعية متعددة القيم ينتهك معيار التسوية للنموذج العادي الرابع لأنه يخلق تكرارًا غير ضروري ويمكن أن يساهم في بيانات غير متسقة. لجعل هذا يصل إلى 4NF ، من الضروري تقسيم هذه المعلومات إلى جدولين.
يحتوي الجدول أدناه الآن على تبعية وظيفية لـ Student_Name -> رئيسي ، ولا توجد تبعيات متعددة القيم:
Student_Name | الرائد |
---|---|
رافي | تاريخ الفن |
رافي | تاريخ الفن |
رافي | تاريخ الفن |
بيث | الكيمياء |
بيث | الكيمياء |
بينما يحتوي هذا الجدول أيضًا على تبعية وظيفية واحدة لـ Student_Name -> Sport:
Student_Name | رياضة |
---|---|
رافي | كرة القدم |
رافي | الكرة الطائرة |
رافي | تنس |
بيث | تنس |
بيث | كرة القدم |
تتم التسوية غالبًا عن طريق تبسيط الجداول المعقدة بحيث تحتوي على معلومات تتعلق بفكرة أو سمة واحدة بدلاً من محاولة جعل جدول واحد يحتوي على الكثير من المعلومات المتباينة.