موصى به, 2021

اختيار المحرر

الفرق بين 3NF و BCNF

التطبيع هو طريقة تقوم بإزالة التكرار من علاقة وبالتالي تقليل الإدراج والحذف وتحديث الشذوذات التي تؤدي إلى تدهور أداء قواعد البيانات. في هذه المقالة ، سوف نفرق بين شكلين عاديين أعلى أي 3NF و BCNF. الفرق الأساسي بين 3NF و BCNF هو أن 3NF تقضي على التبعية متعدية من علاقة وجدول في BCNF ، يجب أن تظل الاعتمادية الوظيفية البسيطة X-> Y في علاقة ، إلا إذا كان X هو المفتاح الفائق.

دعونا نناقش الاختلافات بين 3NF و BCNF بمساعدة الرسم البياني للمقارنة المبين أدناه.

رسم بياني للمقارنة

أساس للمقارنة3NFBCNF
مفهوملا يجب أن تكون أي سمة غير أساسية تعتمد بشكل انتقالي على مفتاح المرشح.لأية تبعية تافهة في علاقة R يقول X-> Y ، X يجب أن يكون مفتاح سوبر للعلاقة R.
الاعتماديمكن الحصول على 3NF دون التضحية بكل الاعتماديات.قد لا يتم الحفاظ على التبعيات في BCNF.
تفكيكلا يمكن أن يتحقق التحلل ضياع في 3NF.من الصعب تحقيق التحلل بدون خسارة في BCNF.

تعريف 3NF

يعتبر الجدول أو العلاقة في النموذج العادي الثالث فقط إذا كان الجدول بالفعل في 2NF ولا توجد سمة غير أولية تعتمد بشكل انتقائي على المفتاح المرشح للعلاقة.

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

الآن إذا كنا علاقة R (A ، B ، C ، D ، E ، F) ولدينا تبعيات دالة التالية للعلاقة R.

من خلال مراقبة الاعتمادات الوظيفية ، يمكننا أن نستنتج أن AB هو المفتاح المرشح للعلاقة R لأنه باستخدام مفتاح AB ، يمكننا البحث عن القيمة لكل السمة في علاقة R. لذا ، يصبح A B سمات أولية لأنها تجعل المفتاح المرشح معاً. تصبح الصفات C و D و E و F سمات غير أولية لأن أيا منها ليس جزءًا من مفتاح مرشح.

الجدول في 2NF حيث لا تعتمد أي سمة غير أولية جزئيا على مفتاح المرشح

ولكن ، يتم ملاحظة تبعية متعدية بين التبعيات الوظيفية المقدمة ، لأن السمة F لا تعتمد بشكل مباشر على المفتاح المرشح AB . وبدلاً من ذلك ، تعتمد السمة F بشكل عابر على المفتاح المرشح AB عبر السمة D. يحتوي السمة D على بعض القيمة التي يمكن أن تصل إلى قيمة الخاصية F ، من مفتاح AB المرشح. في حال كانت قيمة السمة D هي NULL ، فلا يمكننا أبداً العثور / البحث عن قيمة F بمساعدة المفتاح AB المرشح. هذا هو السبب في مطالبات 3NF لإزالة التبعية متعدية من العلاقات.

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

الآن ، فإن الجدولين R1 و R2 في 3NF حيث لا توجد تبعيات جزئية أو متعدية. العلاقة R1 (A ، B ، C ، D ، E) لها مفتاح AB مرشح ، بينما العلاقة R2 (D ، E) لها D كمفتاح المرشح.

تعريف BCNF

يعتبر BCNF أقوى من 3NF. يجب أن تكون العلاقة R في be BCNF في 3NF . وحيثما توجد تبعية وظيفية غير تافهة أ-> ب تحمل R ، يجب أن يكون A مفتاحًا فائقًا للعلاقة R. كما نعلم ، فإن المفتاح Super هو مفتاح له سمة واحدة أو مجموعة من السمات التي تحدد ، سمات العلاقة.

الآن ، دعونا ننتقل إلى مثال لفهم BCNF بطريقة أفضل. دعنا نفترض أن لدينا علاقة R (A، B، C، D، F) ، والتي تتبع تبعيات وظيفية.

من خلال ملاحظة العلاقة R ، يمكننا أن نقول أن A و BF هما مفتاحان مرشحان للعلاقة R ، لأنهما وحدهما يستطيعان البحث عن القيمة لجميع الصفات في العلاقة R. لذا ، A ، B ، F هي الصفات الرئيسية بينما C و D هي صفات غير رئيسية . لم يلاحظ أي تبعية متعدية في التبعيات الوظيفية الموجودة أعلاه. ومن ثم ، فإن الجدول R في 3NF.

لكن أي تبعية وظيفية ، أي D -> F ، تنتهك تعريف BCNF ، والتي تنص على أنه إذا كان D -> F موجودًا ، فيجب أن يكون D هو المفتاح الفائق الذي لا ينطبق هنا. لذلك سوف نقسم العلاقة ر.

الآن ، الجداول R1 و R2 هي في BCNF. تحتوي العلاقة R1 على مفتاحي الترشيح A و B ، وهما التبعية الوظيفية التافهة لـ R1 أي A-> BCD و B -> ACD ، وتمسك بـ BCNF مثل A و B ، وهما مفتاحان ممتازان للعلاقة. تمتلك العلاقة R2 D كمفتاح مرشح لها ، كما تحتفظ الإعتمادية الوظيفية D -> F أيضًا بـ BCNF كما أن D هو مفتاح Super.

الاختلافات الرئيسية بين 3NF و BCNF

  1. تنص 3NF على أنه لا يجب أن تكون السمة غير الأولية متوقفة بشكل انتقالي على المفتاح المرشح للعلاقة. على الجانب الآخر ، تنص BCNF على أنه إذا كان التبعية الوظيفية البسيطة X -> Y موجودة للعلاقة ؛ ثم يجب أن يكون X مفتاحًا فائقًا.
  2. يمكن الحصول على 3NF بدون التضحية بعلاقة العلاقة. ومع ذلك ، قد لا يتم الحفاظ على التبعية أثناء الحصول على BCNF.
  3. يمكن تحقيق 3NF دون فقدان أي معلومات من الجدول القديم في حين أننا قد نحصل على بعض المعلومات من الجدول القديم أثناء الحصول على BCNF.

استنتاج:

BCNF هو أكثر تقييدا ​​من 3NF التي تساعد في تطبيع الجدول أكثر. العلاقة في 3NF لديها الحد الأدنى من التكرار المتبقية والتي يتم إزالتها كذلك من قبل BCNF.

Top