Was wissen Sie über Normalformen in Datenbanken?
sobes.tech KI
Antwort von AI
Normale Formen (NF) sind eine Reihe von Regeln und Empfehlungen für die Gestaltung der Struktur einer relationalen Datenbank, die darauf abzielen, Datenredundanz zu minimieren und Anomalien beim Einfügen, Aktualisieren und Löschen zu verhindern.
Hauptnormale Formen:
-
Erste Normalform (1NF):
- Jeder Attribut (Spalte) muss atomare (unteilbare) Werte enthalten.
- Keine wiederholenden Attributgruppen.
- Jede Zeile muss eindeutig sein (Primärschlüssel vorhanden).
-
Zweite Normalform (2NF):
- Sie ist in 1NF.
- Jedes Nicht-Schlüssel-Attribut muss vollständig funktional vom gesamten Primärschlüssel abhängen (bei zusammengesetzten Schlüsseln).
-
Dritte Normalform (3NF):
- Sie ist in 2NF.
- Keine transitiven Abhängigkeiten von Nicht-Schlüssel-Attributen vom Primärschlüssel (ein Nicht-Schlüssel-Attribut darf nicht von einem anderen Nicht-Schlüssel-Attribut abhängen).
-
Boyce-Codd-Normalform (BCNF):
- Strengere Version der 3NF.
- Jede nicht-triviale Abhängigkeit $X \to Y$ muss $X$ als Superkey haben.
-
Vierte Normalform (4NF):
- Sie ist in BCNF.
- Keine multivaluellen Abhängigkeiten.
-
Fünfte Normalform (5NF):
- Sie ist in 4NF.
- Keine Join-Abhängigkeiten.
Ziele der Normalisierung:
- Reduktion der Datenredundanz.
- Verhinderung von Anomalien (Einfügen, Aktualisieren, Löschen).
- Gewährleistung der Datenintegrität.
- Vereinfachung der Datenbankstruktur.
Beispiel:
Tabelle mit Redundanz (nicht in 1NF):
| OrderID | Produkt | Preis |
|---|---|---|
| 1 | Laptop, Maus | 1000, 20 |
| 2 | Tastatur | 50 |
Normalisierte Tabelle (in 1NF und höher):
Tabelle "Bestellungen":
| OrderID |
|---|
| 1 |
| 2 |
Tabelle "Bestellpositionen":
| PositionID | OrderID | Produkt | Preis |
|---|---|---|---|
| 1 | 1 | Laptop | 1000 |
| 2 | 1 | Maus | 20 |
| 3 | 2 | Tastatur | 50 |
Die Normalisierung ist ein wichtiger Schritt im Design, aber eine übermäßige Normalisierung kann zu einer Zunahme der Joins bei Abfragen führen, was sich negativ auf die Leistung auswirken kann. Die Wahl des optimalen Normalisierungsniveaus hängt von den spezifischen Anforderungen und Kompromissen ab. Manchmal wird Denormalisierung verwendet, um die Leistung in bestimmten Szenarien zu optimieren, wobei bewusst gegen die Regeln der normalen Formen verstoßen wird.