3NF gegen BCNF
Normalisierung ist ein Prozess, der ausgeführt wird, um die Redundanzen zu minimieren, die in relationalen Datenbanken vorhanden sind. Dieser Prozess unterteilt hauptsächlich große Tabellen in kleinere Tabellen mit weniger Redundanzen. Diese kleineren Tabellen werden durch genau definierte Beziehungen miteinander verknüpft. In einer gut normalisierten Datenbank müssen für Änderungen oder Datenänderungen nur eine einzige Tabelle geändert werden. Third Normal Form (3NF) wurde 1971 von Edgar F. Codd eingeführt, dem Erfinder des Beziehungsmodells und des Konzepts der Normalisierung. 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. Gemäß der Definition von Codd heißt es, dass sich eine Tabelle in 3NF befindet, wenn und nur dann, wenn diese Tabelle in der zweiten Normalform (2NF) vorliegt und jedes Attribut in der Tabelle, das nicht zu einem Kandidatenschlüssel gehört, direkt davon abhängen sollte jeder Kandidatenschlüssel dieser Tabelle. Im Jahr 1982 erstellte Carlo Zaniolo eine anders ausgedrückte Definition für 3NF. Tabellen, die der 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 als 3.5NF bekannt) ist eine andere Normalform, die bei der relationalen Datenbanknormalisierung verwendet wird. Es wurde eingeführt, um einige Anomalien zu erfassen, die von der 3NF nicht angesprochen werden. Eine Tabelle soll sich genau dann in BCNF befinden, wenn A für jede der Abhängigkeiten der Form A → B, die nicht trivial sind, A ein Superschlüssel ist. Das Zerlegen einer Tabelle, die nicht in der BCNF-Normalform vorliegt, garantiert nicht die Erstellung von Tabellen im BCNF-Formular (wobei die in der Originaltabelle vorhandenen Abhängigkeiten erhalten bleiben)..
Was ist der Unterschied zwischen 3NF und BCNF??
Sowohl 3NF als auch BCNF sind Normalformen, die in relationalen Datenbanken verwendet werden, um Redundanzen in Tabellen zu minimieren. In einer Tabelle, die sich in der BCNF-Normalform befindet, 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 enthalten sein sollte und jede Nichtprimierung Das Attribut sollte direkt von jedem Kandidatenschlüssel dieser Tabelle abhängen. BCNF gilt als stärkere Normalform als die 3NF und wurde entwickelt, um einige der Anomalien zu erfassen, die von 3NF nicht erfasst werden konnten. Um eine Tabelle zu erhalten, die dem BCNF-Formular entspricht, müssen Sie eine Tabelle in der 3NF-Datenbank zerlegen. Diese Zerlegung führt zu zusätzlichen Verknüpfungsoperationen (oder kartesischen Produkten), wenn Abfragen ausgeführt werden. Dies erhöht die Rechenzeit. Auf der anderen Seite hätten die Tabellen, die BCNF erfüllen, weniger Redundanzen als Tabellen, die nur 3NF entsprechen. Darüber hinaus ist es meistens möglich, eine Tabelle zu erhalten, die 3NF entspricht, ohne dass die Abhängigkeit von Abhängigkeiten und das verlustfreie Verbinden beeinträchtigt werden. Dies ist jedoch mit BCNF nicht immer möglich.