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.

Die Regel der 3NF

Keine transitiven Abhängigkeiten:

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
└─────────┴────────────┘
Beispiel

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).

Transitive Abhängigkeit einfach erklärt

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
Prüfungsrelevant

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. 1. Normalform → Atomare Werte
  2. 2. Normalform → Keine partiellen Abhängigkeiten
  3. 3. Normalform → Keine transitiven Abhängigkeiten