2. Normalform
Die 2. Normalform (2NF) baut auf der 1. Normalform auf. Sie stellt sicher, dass alle Attribute vollständig vom gesamten Primärschlüssel abhängen.
In der 2. Normalform darf kein Attribut nur von einem Teil des Primärschlüssels abhängen (keine partiellen Abhängigkeiten).
Vollständige Abhängigkeit:
- Ein Attribut ist vollständig funktional abhängig von einem Primary Key, wenn es nicht nur von einem Teil des Schlüssels abhängt (bei zusammengesetzten Schlüsseln). Jede Entität muss vollständig vom Schlüssel abhängen.
Keine partiellen Abhängigkeiten:
- Wenn ein Attribut nur von einem Teil des Primary Keys abhängt, verstößt die Tabelle gegen die 2NF. In solchen Fällen sollten die Attribute in separate Tabellen aufgeteilt werden, um Redundanz zu vermeiden.
ASCII-Visualisierung:
Zusammengesetzter Schlüssel: (StudentID, KursID)
❌ FALSCH (partielle Abhängigkeit):
┌──────────┬────────┬──────────┬─────────┐
│StudentID │ KursID │ Kursname │ Dozent │
├──────────┼────────┼──────────┼─────────┤
│ 1 │ 101 │ Mathe │ Müller │
└──────────┴────────┴──────────┴─────────┘
│ │ │
└──────────┴──────────┘
Hängt nur von KursID ab!
(Nicht vollständig)
✅ RICHTIG (2NF - Tabellen aufteilen):
Tabelle 1: Student_Kurs
┌──────────┬────────┐
│StudentID │ KursID │ ← Nur die Beziehung
└──────────┴────────┘
Tabelle 2: Kurs
┌────────┬──────────┬─────────┐
│ KursID │ Kursname │ Dozent │ ← Volle Abhängigkeit
└────────┴──────────┴─────────┘
Tabelle vor der Normalisierung (1NF):
| StudentID | KursID | Kursname | Dozent |
|---|---|---|---|
| 1 | 101 | Mathe | Herr Müller |
| 1 | 102 | Physik | Frau Schmidt |
| 2 | 101 | Mathe | Herr Müller |
Hier hängt der Kursname und der Dozent nur von KursID ab, nicht von StudentID. Diese Tabelle ist also nicht in der 2NF.
Tabelle nach der Normalisierung (2NF):
Tabelle: Studenten
| StudentID | KursID |
|---|---|
| 1 | 101 |
| 1 | 102 |
| 2 | 101 |
Tabelle: Kurse
| KursID | Kursname | Dozent |
|---|---|---|
| 101 | Mathe | Herr Müller |
| 102 | Physik | Frau Schmidt |
In diesem Beispiel sind nun alle nicht-schlüssel Attribute (Kursname und Dozent) nur von KursID abhängig, und die Tabellen sind somit in der 2NF.
Regel: Alle Nicht-Schlüssel-Attribute müssen vollständig vom gesamten Primary Key abhängen.
Wann relevant? Nur bei zusammengesetzten Primary Keys (z.B. StudentID + KursID)
Lösung: Tabelle aufteilen mit Foreign Keys, sodass partielle Abhängigkeiten und Redundanz entfernt werden
Teil der Normalisierung: Nach 2NF kommt 3. Normalform (3NF)