Differenz zwischen 3NF und BCNF

3NF vs. BCNF

Normalisierung ist ein Prozess, der durchgeführt wird, um die Redundanzen zu minimieren, die in Daten in relationalen Datenbanken vorhanden sind. Dieser Prozess unterteilt hauptsächlich große Tabellen in kleinere Tabellen mit weniger Redundanzen. Diese kleineren Tabellen werden durch gut definierte Beziehungen miteinander verknüpft. In einer gut normalisierten Datenbank muss jede Änderung oder Änderung von Daten nur eine einzige Tabelle ändern. Die dritte Normalform (3NF) wurde 1971 von Edgar F. Codd eingeführt, der auch der Erfinder des relationalen Modells und des Konzepts der Normalisierung ist. Die Boyce-Codd-Normalform (BCNF) wurde 1974 von Codd und Raymond F. Boyce eingeführt.

Was ist 3NF?

3NF ist die dritte Normalform, die bei der relationalen Datenbanknormalisierung verwendet wird. Nach der Codd-Definition soll eine Tabelle genau dann in 3NF sein, wenn diese Tabelle in der zweiten Normalform (2NF) ist und jedes Attribut in der Tabelle, das nicht zu einem Kandidatenschlüssel gehört, direkt von jeder Kandidatenschlüssel dieser Tabelle. 1982 brachte Carlo Zaniolo eine anders ausgedrückte Definition für 3NF hervor. Tabellen, die dem 3NF entsprechen, enthalten im Allgemeinen keine Anomalien, die beim Einfügen, Löschen oder Aktualisieren von Datensätzen in der Tabelle auftreten.

Was ist BCNF?

BCNF (auch bekannt als 3. 5NF) ist eine andere normale Form, die bei der relationalen Datenbanknormalisierung verwendet wird. Es wurde eingeführt, um einige Anomalien zu erfassen, die nicht von der 3NF angesprochen werden. Eine Tabelle soll genau dann in BCNF sein, wenn A für jede der Nicht-trivialen Abhängigkeiten der Form A → B ein Super-Key ist. Das Zerlegen einer Tabelle, die nicht im normalen BCNF-Formular enthalten ist, garantiert nicht die Erstellung von Tabellen im BCNF-Formular (unter Beibehaltung der in der ursprünglichen Tabelle vorhandenen Abhängigkeiten).

Was ist der Unterschied zwischen 3NF und BCNF?

Sowohl 3NF als auch BCNF sind normale Formulare, die in relationalen Datenbanken verwendet werden, um Redundanzen in Tabellen zu minimieren. In einer Tabelle, die in der BCNF-Normalform vorliegt, ist A für jede nicht-triviale funktionale Abhängigkeit der Form A → B ein Superschlüssel, wohingegen eine Tabelle, die 3NF entspricht, in der 2NF sein sollte und jede Nicht-Primzahl Attribut sollte direkt von jedem Kandidaten-Schlüssel dieser Tabelle abhängen. BCNF gilt als eine stärkere Normalform als die 3NF und wurde entwickelt, um einige der Anomalien zu erfassen, die von 3NF nicht erfasst werden konnten. Wenn Sie eine Tabelle erhalten, die dem BCNF-Formular entspricht, müssen Sie eine Tabelle in der 3NF zerlegen. Diese Dekomposition führt bei der Ausführung von Abfragen zu zusätzlichen Join-Operationen (oder kartesischen Produkten). Dies erhöht die Rechenzeit. Auf der anderen Seite haben die Tabellen, die BCNF entsprechen, weniger Redundanzen als Tabellen, die nur 3NF entsprechen.Außerdem ist es meistens möglich, eine Tabelle zu erhalten, die mit 3NF übereinstimmt, ohne die Abhängigkeitsbewahrung und das verlustfreie Verbinden zu behindern. Dies ist jedoch nicht immer mit BCNF möglich.