Schlecht entworfene Tabellen führen zu Anomalien: redundante Daten, Aktualisierungsfehler, Einfüge- und Löschprobleme. Die Normalisierung ist ein Verfahren, mit dem ein Schema schrittweise in die Normalformen 1NF, 2NF und 3NF (und höher) überführt wird. Ziel ist eine redundanzarme, konsistente Datenbankstruktur.
BESTELLUNG
BID | Kunde | KundenAdr | Artikel
----+-------+---------------+--------------------
1 | Anna | Goethestr. 1 | Buch, Stift, Heft
2 | Ben | Schillerw. 7 | Buch, Lineal
Diese Tabelle hat mehrere Werte in einer Zelle (Artikel) und speichert die Adresse des Kunden bei jeder Bestellung erneut.
Eine Relation ist in 1NF, wenn alle Attribute atomar sind – also keine Listen, Mengen oder zusammengesetzten Werte enthalten. Wir lösen das Mehrfach-Artikel-Problem auf:
BESTELLUNG (1NF)
BID | Kunde | KundenAdr | Artikel
----+-------+--------------+--------
1 | Anna | Goethestr. 1 | Buch
1 | Anna | Goethestr. 1 | Stift
1 | Anna | Goethestr. 1 | Heft
2 | Ben | Schillerw. 7 | Buch
2 | Ben | Schillerw. 7 | Lineal
Primärschlüssel: (BID, Artikel). Die Tabelle ist atomar, aber massiv redundant.
Eine Relation ist in 2NF, wenn sie in 1NF ist und jedes Nichtschlüsselattribut voll funktional vom gesamten Primärschlüssel abhängt – nicht nur von einem Teil. Hier hängen Kunde und KundenAdr nur von BID ab, nicht vom kompletten Schlüssel (BID, Artikel). Daher Aufteilung:
BESTELLUNG (BID, Kunde, KundenAdr)
POSITION (BID, Artikel)Eine Relation ist in 3NF, wenn sie in 2NF ist und kein Nichtschlüsselattribut transitiv vom Primärschlüssel abhängt. In BESTELLUNG (BID, Kunde, KundenAdr) gilt: BID → Kunde → KundenAdr. Die Adresse hängt also nur indirekt von BID ab. Lösung: Auslagern in eine eigene Kunden-Tabelle.
BESTELLUNG (BID, Kunde)
KUNDE (Kunde, KundenAdr)
POSITION (BID, Artikel)
Jetzt ist die Adresse jedes Kunden nur noch einmal gespeichert.
Ohne Normalisierung treten typische Probleme auf: Eine Adressänderung muss in vielen Zeilen nachgezogen werden (Update-Anomalie); ein neuer Kunde ohne Bestellung kann nicht gespeichert werden (Insert-Anomalie); löscht man die letzte Bestellung eines Kunden, verschwindet auch seine Adresse (Delete-Anomalie).
Verwechslung von 2NF und 3NF, Übersehen partieller Abhängigkeiten bei zusammengesetzten Schlüsseln, falscher Schlüssel im Zwischenschritt, „Übernormalisieren“ (zu viele Tabellen, schlechte Performance).
Zusammenfassung: 1NF verlangt Atomarität, 2NF beseitigt partielle Abhängigkeiten, 3NF beseitigt transitive Abhängigkeiten.
Abitur-Tipp: Schreibe bei jeder Normalformprüfung die funktionalen Abhängigkeiten als Pfeile auf – das macht Verletzungen sofort sichtbar.