Lexikon: N
Normalisierung
Normalisierung in Datenbanken ist ein Prozess, durch den eine Datenbankstruktur organisiert wird, um Redundanzen zu minimieren und die Integrität und Konsistenz von Daten sicherzustellen. Der Hauptzweck der Normalisierung ist es, Daten so zu organisieren, dass sie nur einmal gespeichert werden, um Anomalien beim Einfügen, Löschen und Aktualisieren von Daten zu vermeiden.
Die Normalisierung wird in Schritten oder sogenannten "Normalformen" durchgeführt, von denen es mehrere gibt. Hier sind die ersten drei, die am häufigsten verwendet werden:
Erste Normalform (1NF):
- Jede Tabelle hat eine Primärschlüssel.
- Es gibt keine sich wiederholenden Gruppen oder Arrays in einer Tabelle.
- Alle Attribute (Spalten) enthalten nur atomare (unteilbare) Werte.
Zweite Normalform (2NF):
- Die Tabelle ist in 1NF.
- Alle nicht-primären Attribute (Informationen, die nicht Teil des Schlüssels sind) sind funktional vollständig von dem gesamten Primärschlüssel abhängig und nicht nur von einem Teil davon. Dies betrifft hauptsächlich Datenbanktabellen mit zusammengesetzten Primärschlüsseln.
Dritte Normalform (3NF):
- Die Tabelle ist in 2NF.
- Es gibt keine transitive Abhängigkeit von nicht-primären Attributen zum Primärschlüssel. Das bedeutet, dass nicht-primäre Attribute nur vom Primärschlüssel abhängig sein sollten und nicht von anderen nicht-primären Attributen.
Es gibt auch höhere Normalformen wie BCNF (Boyce-Codd Normalform), 4NF und 5NF, die weitere spezifische Anforderungen definieren, aber die ersten drei Normalformen sind die am häufigsten diskutierten und implementierten.
Während die Normalisierung viele Vorteile hat, kann sie in einigen Fällen die Performance beeinträchtigen, da möglicherweise mehrere Tabellen abgefragt und über Verbindungen (Joins) kombiniert werden müssen. In solchen Fällen können Datenbankdesigner sich entscheiden, einige Normalisierungsregeln bewusst nicht zu befolgen (dies wird manchmal als "Denormalisierung" bezeichnet) um die Abfrageleistung zu verbessern, wobei jedoch die potenziellen Nachteile wie Datenredundanz und Update-Anomalien berücksichtigt werden müssen.