تبعيات قاعدة البيانات هي موضوع غالباً ما يخلط بين الطلاب ومحترفي قاعدة البيانات على حد سواء. ولحسن الحظ ، فهي ليست معقدة للغاية ويمكن توضيحها على أفضل وجه من خلال استخدام عدد من الأمثلة. في هذه المقالة ، نقوم بفحص أنواع التبعية قاعدة البيانات الشائعة.
تبعيات قاعدة البيانات / التبعيات الوظيفية
تحدث تبعية في قاعدة بيانات عندما تحدد المعلومات المخزنة في نفس جدول قاعدة البيانات بشكل فريد المعلومات الأخرى المخزنة في نفس الجدول. يمكنك أيضًا وصف ذلك كعلاقة حيث يكفي معرفة قيمة سمة واحدة (أو مجموعة من السمات) لإعلامك بقيمة سمة أخرى (أو مجموعة من السمات) في نفس الجدول.
القول أن هناك تبعية بين السمات في الجدول هو نفس القول أن هناك تبعية وظيفية بين تلك السمات. إذا كان هناك تبعية في قاعدة بيانات مثل تلك السمة B تعتمد على السمة A ، ستكتب هذا كـ "A -> B".
على سبيل المثال ، في جدول يبين خصائص الموظف بما في ذلك رقم الضمان الاجتماعي (SSN) والاسم ، يمكن القول أن الاسم يعتمد على SSN (أو اسم SSN ->) لأنه يمكن تحديد اسم الموظف بشكل فريد من SSN الخاص به. ومع ذلك ، فإن البيان العكسي (الاسم -> SSN) غير صحيح لأن أكثر من موظف واحد يمكن أن يكون له نفس الاسم ولكن SSN مختلفة.
التبعيات وظيفية تافهة
تحدث التبعية الوظيفية البسيطة عند وصف تبعية وظيفية لسمة في مجموعة سمات تتضمن السمة الأصلية. على سبيل المثال ، "{A، B} -> B" عبارة عن تبعية وظيفية تافهة ، مثل "{name، SSN} -> SSN". هذا النوع من التبعية الوظيفية يسمى تافهة لأنها يمكن أن تستمد من الفطرة السليمة. من الواضح أنه إذا كنت تعرف قيمة B بالفعل ، عندها يمكن تحديد قيمة B بشكل فريد من قبل تلك المعرفة.
التبعيات الوظيفية الكاملة
تحدث الإعالة الوظيفية الكاملة عندما تستوفي بالفعل متطلبات التبعية الوظيفية ولا يمكن تقليل مجموعة السمات الموجودة على الجانب الأيسر من بيان التبعية الوظيفية . على سبيل المثال ، "{SSN ، العمر} -> الاسم" هو تبعية وظيفية ، ولكنه ليس تبعية وظيفية كاملة لأنه يمكنك إزالة العمر من الجانب الأيسر من العبارة دون التأثير على علاقة التبعية.
التبعيات متعدية
تحدث تبعيات متعدية عند وجود علاقة غير مباشرة تؤدي إلى تبعية وظيفية. على سبيل المثال ، "A -> C" هي تبعية متعدية عندما يكون صحيحًا فقط لأن كل من "A -> B" و "B -> C" صحيحان.
التبعيات متعددة القيم
تحدث تبعيات متعددة القيم عند وجود صف واحد أو أكثر في جدول يتضمن وجود صف واحد أو أكثر في نفس الجدول. على سبيل المثال ، تخيل شركة سيارات تقوم بتصنيع العديد من موديلات السيارات ، ولكنها دائمًا تصنع ألوانًا حمراء وزرقاء من كل طراز. إذا كان لديك جدول يحتوي على اسم الطراز ولون وسنة كل سيارة تقوم الشركة بتصنيعها ، فهناك تبعية متعددة القيم في هذا الجدول. إذا كان هناك صف لاسم نموذج معين وسنة بالأزرق ، فيجب أن يكون هناك صف مماثل يتوافق مع الإصدار الأحمر من نفس السيارة.
أهمية التبعيات
تعتبر تبعيات قاعدة البيانات مهمة لفهمها لأنها توفر وحدات البناء الأساسية المستخدمة في تطبيع قاعدة البيانات . فمثلا:
- لكي يكون الجدول في الشكل الثاني العادي (2NF) ، يجب ألا تكون هناك حالة لسمة غير أولية في الجدول تعتمد وظيفيا على مجموعة فرعية من مفتاح مرشح .
- لكي يكون الجدول في الشكل الثالث العادي (3NF) ، يجب أن يكون لكل سمة غير أولية تبعية وظيفية غير متعدية على كل مفتاح مرشح.
- يجب أن يكون كل تبعية وظيفية (بخلاف التبعيات التافهة) على أحد المفاتيح الفائقة لكي يكون الجدول في نموذج Boyce-Codd Normal ( BCNF) .
- لكي يكون الجدول في الشكل الرابع العادي (4NF) ، يجب ألا يكون له تبعيات متعددة القيم.