3. Normalform
Die 3. Normalform (3NF) baut auf der 2. Normalform auf. Sie stellt sicher, dass keine transitiven Abhängigkeiten zwischen Nicht-Schlüsselattributen existieren.
In der 3. Normalform darf kein Nicht-Schlüsselattribut von einem anderen Nicht-Schlüsselattribut abhängen. Jedes Attribut muss direkt vom Primärschlüssel abhängen.
Keine transitiven Abhängigkeiten:
- Ein Nicht-Schlüsselattribut darf nicht von einem anderen Nicht-Schlüsselattribut abhängen. Jedes Nicht-Schlüsselattribut muss direkt vom Primary Key abhängen, um Redundanz zu vermeiden. Dies sichert die Integrität der Entitäten.
Erfüllung der 2NF:
- Um in der 3NF zu sein, muss die Tabelle zuerst in der 2NF sein.
ASCII-Visualisierung:
❌ FALSCH (transitive Abhängigkeit):
┌──────────┬────────┬──────────┬─────────┬────────────┐
│StudentID │ KursID │ Kursname │ Dozent │ Dozent_Büro│
└──────────┴────────┴──────────┴─────────┴────────────┘
PK │ │ │
└──────────┴───────────┘
Dozent_Büro hängt von Dozent ab
(nicht direkt vom PK!)
✅ RICHTIG (3NF - Tabellen aufteilen):
Tabelle 1: Student_Kurs
┌──────────┬────────┐
│StudentID │ KursID │
└──────────┴────────┘
Tabelle 2: Kurse
┌────────┬──────────┬─────────┐
│ KursID │ Kursname │ Dozent │
└────────┴──────────┴─────────┘
Tabelle 3: Dozenten
┌─────────┬────────────┐
│ Dozent │ Dozent_Büro│ ← Direkte Abhängigkeit
└─────────┴────────────┘
Tabelle vor der Normalisierung (2NF):
| StudentID | KursID | Kursname | Dozent | Dozent_Büro |
|---|---|---|---|---|
| 1 | 101 | Mathe | Herr Müller | Raum 101 |
| 1 | 102 | Physik | Frau Schmidt | Raum 102 |
| 2 | 101 | Mathe | Herr Müller | Raum 101 |
In dieser Tabelle hat das Attribut Dozent_Büro eine transitive Abhängigkeit zu Kursname, weil Kursname den Dozenten bestimmt, und Dozent bestimmt wiederum Dozent_Büro. Das bedeutet, dass die Informationen über das Büro nicht direkt vom Primärschlüssel abhängen.
Tabelle nach der Normalisierung (3NF):
Tabelle: Studenten_Kurse
| StudentID | KursID |
|---|---|
| 1 | 101 |
| 1 | 102 |
| 2 | 101 |
Tabelle: Kurse
| KursID | Kursname | Dozent |
|---|---|---|
| 101 | Mathe | Herr Müller |
| 102 | Physik | Frau Schmidt |
Tabelle: Dozenten
| Dozent | Dozent_Büro |
|---|---|
| Herr Müller | Raum 101 |
| Frau Schmidt | Raum 102 |
In dieser normalisierten Struktur gibt es keine transitiven Abhängigkeiten mehr. Alle Nicht-Schlüsselattribute sind jetzt direkt vom Primärschlüssel abhängig, und die Tabellen sind somit in der dritten Normalform (3NF).
Kette von Abhängigkeiten:
A → B → C
Wenn:
- A bestimmt B
- B bestimmt C
Dann:
- A bestimmt C indirekt (transitiv)
Beispiel:
KursID → Dozent → Dozent_Büro
Regel: Keine transitiven Abhängigkeiten zwischen Nicht-Schlüsselattributen.
Frage stellen: "Hängt Attribut X von einem anderen Nicht-Schlüssel-Attribut Y ab?"
- Wenn JA → Nicht in 3NF
- Wenn NEIN → Kann in 3NF sein
Lösung: Tabellen weiter aufteilen mit Foreign Keys, sodass jedes Attribut direkt vom Primary Key abhängt und Redundanz eliminiert wird
Normalisierung-Reihenfolge:
- 1. Normalform → Atomare Werte
- 2. Normalform → Keine partiellen Abhängigkeiten
- 3. Normalform → Keine transitiven Abhängigkeiten