logo

بويس كود النموذج العادي (BCNF)

  • BCNF هو الإصدار المتقدم من 3NF. إنه أكثر صرامة من 3NF.
  • يوجد جدول في BCNF إذا كانت كل تبعية وظيفية X → Y، X هي المفتاح الفائق للجدول.
  • بالنسبة لـ BCNF، يجب أن يكون الجدول في 3NF، ولكل FD، يعد LHS مفتاحًا فائقًا.

مثال: لنفترض أن هناك شركة يعمل موظفوها في أكثر من قسم.

ما هو غيغابايت

جدول الموظفين:

EMP_ID EMP_COUNTRY EMP_DEPT DEPT_TYPE EMP_DEPT_NO
264 الهند تصميم D394 283
264 الهند اختبارات D394 300
364 المملكة المتحدة متاجر د283 232
364 المملكة المتحدة النامية د283 549

في الجدول أعلاه التبعيات الوظيفية هي كما يلي:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

مفتاح المرشح: {EMP-ID، EMP-DEPT}

الجدول غير موجود في BCNF لأنه لا يعد EMP_DEPT أو EMP_ID وحدهما مفاتيح.

لتحويل الجدول المحدد إلى BCNF، نقوم بتحليله إلى ثلاثة جداول:

جدول EMP_COUNTRY:

EMP_ID EMP_COUNTRY
264 الهند
264 الهند

جدول EMP_DEPT:

EMP_DEPT DEPT_TYPE EMP_DEPT_NO
تصميم D394 283
اختبارات D394 300
متاجر د283 232
النامية د283 549

جدول EMP_DEPT_MAPPING:

EMP_ID EMP_DEPT
D394 283
D394 300
د283 232
د283 549

التبعيات الوظيفية:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

مفاتيح المرشح:

بالنسبة للجدول الأول: EMP_ID
بالنسبة للجدول الثاني: EMP_DEPT
بالنسبة للجدول الثالث: {EMP_ID، EMP_DEPT}

الآن، هذا موجود في BCNF لأن الجزء الأيسر من كل من التبعيات الوظيفية هو المفتاح.