Empfohlen, 2024

Tipp Der Redaktion

Unterschied zwischen 3NF und BCNF

Normalisierung ist eine Methode, die Redundanz aus einer Beziehung entfernt, wodurch Anfügungen zum Einfügen, Löschen und Aktualisieren, die die Leistung von Datenbanken beeinträchtigen, minimiert werden. In diesem Artikel werden wir zwei höhere Normalformen, nämlich 3NF und BCNF, unterscheiden. Der grundlegende Unterschied zwischen 3NF und BCNF besteht darin, dass 3NF die transitive Abhängigkeit von einer Relation und einer in BCNF zu findenden Tabelle eliminiert. Die triviale funktionale Abhängigkeit X-> Y in einer Relation muss nur gelten, wenn X der Superschlüssel ist.

Lassen Sie uns die Unterschiede zwischen 3NF und BCNF anhand der unten gezeigten Vergleichstabelle diskutieren.

Vergleichstabelle

Vergleichsgrundlage3NFBCNF
KonzeptKein 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ängigkeit3NF kann erhalten werden, ohne alle Abhängigkeiten zu opfern.Abhängigkeiten können in BCNF nicht beibehalten werden.
ZersetzungVerlustfreie 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.

Wenn wir die funktionalen Abhängigkeiten beobachten, können wir schließen, dass AB ein Kandidatenschlüssel für die Beziehung R ist, da wir mit dem Schlüssel AB den Wert für alle Attribute in einer Beziehung R suchen können. Daher werden A, B zu Hauptattributen, wenn sie zusammen einen Kandidatenschlüssel bilden. Die Attribute C, D, E, F werden zu Nicht-Prim- Attributen, da keines von ihnen Teil eines Kandidatenschlüssels ist.

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.

Die Tabellen R1 und R2 befinden sich nun in 3NF, da sie keine partiellen und transitiven Abhängigkeiten mehr haben. Die Beziehung R1 (A, B, C, D, E) hat einen Kandidatenschlüssel AB, während die Beziehung R2 (D, E) D als Kandidatenschlüssel hat.

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.

Durch Beobachtung der Beziehung R können wir sagen, dass A und BF Kandidatenschlüssel der Beziehung R sind, weil sie alleine den Wert für alle Attribute in der Beziehung R suchen können. Also sind A, B, F die Hauptattribute, während C und D sind nicht Prim- Attribute. In den oben genannten funktionalen Abhängigkeiten wird keine transitive Abhängigkeit beobachtet. Daher ist die Tabelle R in 3NF.

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.

Nun sind die Tabellen R1 und R2 in BCNF. Beziehung R1 hat zwei Kandidatenschlüssel A und B, die triviale Funktionsabhängigkeit von R1, dh A → BCD und B → ACD, gilt für BCNF, da A und B die Superschlüssel für Relation sind. Beziehung R2 hat D als Kandidatenschlüssel, und die funktionale Abhängigkeit D -> F gilt auch für BCNF, da D ein Superschlüssel ist.

Hauptunterschiede zwischen 3NF und BCNF

  1. 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.
  2. 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.
  3. 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.

Top