3NF gegen BCNF

Die Normalisierung ist ein Prozess, der ausgefü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 genau definierte Beziehungen miteinander verknüpft. In einer gut normalisierten Datenbank muss für jede Änderung oder Modifikation von Daten nur eine einzige Tabelle geändert werden. 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 Normalisierung relationaler Datenbanken verwendet wird. Gemäß der Codd-Definition liegt eine Tabelle genau dann in 3NF vor, 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. 1982 erstellte Carlo Zaniolo eine anders ausgedrückte Definition für 3NF. Tabellen, die dem 3NF entsprechen, enthalten im Allgemeinen keine Anomalien, die beim Einfügen, Löschen oder Aktualisieren von Datensätzen in die Tabelle auftreten.

Was ist BCNF?

BCNF (auch als 3.5NF bekannt) ist eine weitere Normalform, die bei der relationalen Datenbanknormalisierung verwendet wird. Es wurde eingeführt, um einige der Anomalien zu erfassen, die vom 3NF nicht behoben werden. Eine Tabelle wird genau dann als BCNF bezeichnet, wenn für jede der nicht trivialen Abhängigkeiten der Form A → B A ein Superschlüssel ist. Das Zerlegen einer Tabelle, die nicht in der normalen BCNF-Form vorliegt, garantiert nicht die Erstellung von Tabellen in der BCNF-Form (unter Beibehaltung der Abhängigkeiten, die in der ursprünglichen Tabelle vorhanden waren).

Was ist der Unterschied zwischen 3NF und BCNF?

Sowohl 3NF als auch BCNF sind normale Formen, die in relationalen Datenbanken verwendet werden, um Redundanzen in Tabellen zu minimieren. In einer Tabelle in der BCNF-Normalform ist A für jede nicht triviale funktionale Abhängigkeit der Form A → B ein Superschlüssel, während eine Tabelle, die 3NF entspricht, in der 2NF und jede Nicht-Primzahl vorliegen sollte Das Attribut sollte direkt von jedem Kandidatenschlüssel dieser Tabelle abhängen. BCNF wird als stärkere Normalform als 3NF angesehen 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, muss eine Tabelle im 3NF zerlegt werden. Diese Zerlegung führt zu zusätzlichen Verknüpfungsoperationen (oder kartesischen Produkten) bei der Ausführung von Abfragen. Dies erhöht die Rechenzeit. Andererseits hätten die Tabellen, die BCNF entsprechen, weniger Redundanzen als Tabellen, die nur 3NF entsprechen. Darüber hinaus ist es meistens möglich, eine Tabelle zu erhalten, die 3NF entspricht, ohne die Wahrung der Abhängigkeit und das verlustfreie Verbinden zu behindern. Dies ist jedoch mit BCNF nicht immer möglich.