Zum Hauptinhalt springen

Normalisierung

Überblick​

Normalisierung ist der Prozess der Strukturierung einer relationalen Datenbank, um Datenredundanz zu reduzieren und Datenintegrität zu verbessern. Jede Normalform baut auf der vorherigen auf.

Redundanz​

Redundanz ist die mehrfache, unnötige wiederholte Speicherung der selben Daten in einer Datenbank.

Erste Normalform (1NF)​

Regel: Jede Spalte muss atomare (unteilbare) Werte enthalten, und jede Zeile muss eindeutig sein.

Verstoß: Eine Spalte Phone, welche mehrere Nummern in einer Zelle speichert.

CustomerIDNamePhone
1Alice111-111, 222-222

Lösung:

CustomerIDNamePhone
1Alice111-111
1Alice222-222

Verstoß: Mehrere Spalten für dasselbe Attribut.

CustomerIDNamePhone1Phone2
1Alice111-111222-222

Lösung:

CustomerIDNamePhone
1Alice111-111
1Alice222-222

Zweite Normalform (2NF)​

Regel: Muss sich bereits in der 1NF befinden und jedes Nicht-Schlüsselattribut muss vom gesamten Primärschlüssel abhängen, nicht nur von einem Teil davon.

Verstoß: Die Tabelle nutzt (OrderID, ProductID) als zusammengesetzten Primärschlüssel aber ProductName hängt nur von ProductID ab.

OrderIDProductIDProductNameQuantity
142Tastatur2
242Tastatur1

Lösung: ProductName in eine separate Products Tabelle verschieben.

Bestellungen:

OrderIDProductIDQuantity
1422
2421

Produkte:

ProductIDProductName
42Tastatur

Dritte Normalform (3NF)​

Regel: Muss sich bereits in der 2NF befinden und kein Nicht-Schlüsselattribut darf von einem anderen Nicht-Schlüsselattribut abhängen (keine transitiven Abhängigkeiten).

Verstoß: DepartmentHead hängt von Department ab, nicht direkt von EmployeeID.

EmployeeIDDepartmentDepartmentHead
1VertriebCarol
2VertriebCarol
3ITDave

Lösung: DepartmentHead in eine separate Departments Tabelle verschieben.

Mitarbeiter:

EmployeeIDDepartment
1Vertrieb
2Vertrieb
3IT

Abteilungen:

DepartmentDepartmentHead
VertriebCarol
ITDave

Zusammenfassung​

NormalformVoraussetzungen
1NFAtomare Werte, keine wiederholenden Spalten, eindeutige Zeilen
2NF1NF + keine Teilabhängigkeiten von einem zusammengesetzten Schlüssel
3NF2NF + keine transitiven Abhängigkeiten zwischen Nicht-Schlüsselattributen