Zum Hauptinhalt springen

Normalisierung

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.

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