Lassen Sie uns die Unterschiede zwischen 3NF und BCNF anhand der unten gezeigten Vergleichstabelle diskutieren.
Vergleichstabelle
Vergleichsgrundlage | 3NF | BCNF |
---|---|---|
Konzept | Kein Nicht-Primat-Attribut darf transitiv vom Kandidatenschlüssel abhängen. | Für jede triviale Abhängigkeit in einer Relation R sagen wir X-> Y, X sollte ein Superschlüssel der Relation R sein. |
Abhängigkeit | 3NF kann erhalten werden, ohne alle Abhängigkeiten zu opfern. | Abhängigkeiten können in BCNF nicht beibehalten werden. |
Zersetzung | Verlustfreie Zersetzung kann in 3NF erreicht werden. | Verlustfreie Zersetzung ist in BCNF schwer zu erreichen. |
Definition von 3NF
Eine Tabelle oder Relation wird nur dann als Dritte Normalform betrachtet, wenn sich die Tabelle bereits in 2NF befindet und kein Nicht-Primat- Attribut transitiv vom Kandidatenschlüssel einer Relation abhängig ist.
Bevor ich mich mit dem Normalisieren einer Tabelle in 3NF beschäftige, lassen Sie mich den Kandidatenschlüssel besprechen. Ein Kandidatenschlüssel ist ein minimaler Superschlüssel, dh ein Superschlüssel mit minimalen Attributen, der alle Attribute einer Beziehung definieren kann. Bei der Normalisierung Ihrer Tabelle erkennen Sie also zuerst den Kandidatenschlüssel einer bestimmten Beziehung. Die Attribute, die Teil des Kandidatenschlüssels sind, sind Hauptattribute, und die Attribute, die nicht Teil des Kandidatenschlüssels sind, sind Nicht-Hauptattribute .
Wenn wir nun eine Beziehung R (A, B, C, D, E, F) haben, haben wir folgende Funktionsabhängigkeiten für die Beziehung R.
Die Tabelle ist in 2NF, da kein Nicht-Primat-Attribut teilweise vom Kandidatenschlüssel abhängig ist
Es wird jedoch eine transitive Abhängigkeit zwischen den bereitgestellten funktionalen Abhängigkeiten beobachtet, da das Attribut F nicht direkt vom Kandidatenschlüssel AB abhängig ist. Stattdessen ist das Attribut F über das Attribut D transitiv vom Kandidatenschlüssel AB abhängig. Bis Attribut D hat einen Wert, den wir erreichen können, um den Attributwert von F aus dem Kandidatenschlüssel AB zu erreichen. Falls der Wert des Attributs D NULL ist, können wir den Wert von F niemals mit Hilfe des Kandidatenschlüssels AB finden / suchen. Dies ist der Grund, warum 3NF fordert, die transitive Abhängigkeit von den Beziehungen zu entfernen.
Um diese transitive Abhängigkeit zu entfernen, müssen Sie daher die Beziehung R teilen. Beim Teilen einer Beziehung setzen Sie immer den Kandidatenschlüssel und alle Attribute, die von diesem Kandidatenschlüssel abhängen, in die erste Beziehung. In der nächsten geteilten Relation werden wir das Attribut, das die transitive Abhängigkeit verursacht, und die Attribute, die davon abhängig sind, in die zweite Relation einfügen.
Definition von BCNF
BCNF gilt als stärker als 3NF. Die Beziehung R in BCNF muss in 3NF sein . Und wo immer eine nicht triviale Funktionsabhängigkeit A -> B in der Beziehung R gilt, dann muss A ein Superkey der Beziehung R sein. Wie wir wissen, ist der Superschlüssel ein Schlüssel, der ein einzelnes Attribut oder eine Gruppe von Attributen hat, die das Ganze bestimmt Attribute einer Beziehung.
Lassen Sie uns nun zu einem Beispiel übergehen, um BCNF besser zu verstehen. Nehmen wir an, wir haben eine Relation R (A, B, C, D, F), die folgende funktionale Abhängigkeiten haben.
Eine funktionelle Abhängigkeit, dh D -> F, verstößt jedoch gegen die Definition von BCNF. Wenn D -> F vorhanden ist, sollte D der Superschlüssel sein, was hier nicht der Fall ist. Also werden wir die Beziehung R teilen.
Hauptunterschiede zwischen 3NF und BCNF
- 3NF gibt an, dass kein Nicht-Primat-Attribut transitiv vom Kandidatenschlüssel der Beziehung abhängig sein muss. Andererseits gibt BCNF an, dass für eine Relation eine triviale funktionale Abhängigkeit X -> Y besteht; dann muss X ein Superschlüssel sein.
- 3NF kann erhalten werden, ohne die Abhängigkeit der Beziehung zu opfern. Die Abhängigkeit kann jedoch nicht erhalten werden, während BCNF erhalten wird.
- 3NF kann erreicht werden, ohne dass Informationen aus der alten Tabelle verloren gehen. Wenn Sie jedoch BCNF erhalten, verlieren wir möglicherweise einige Informationen aus der alten Tabelle.
Fazit:
BCNF ist viel restriktiver als 3NF, was zur Normalisierung der Tabelle beiträgt. Die Beziehung in 3NF hat eine minimale Redundanz, die von der BCNF weiter entfernt wird.