Normalformen in Datenbanken
Warum normalisieren?
Ohne Normalisierung können folgende Anomalien auftreten:
- Änderungsanomalie: Änderung an einem Ort, aber nicht überall
- Einfügeanomalie: Neue Daten können nicht eingefügt werden, weil andere Infos fehlen
- Löschanomalie: Beim Löschen gehen unbeabsichtigt weitere Infos verloren
1. Normalform (1NF)
Ziel:
Jeder Wert in einer Tabelle muss atomar (unteilbar) sein.
Regeln:
- Keine mehrfachen Werte in einem Feld (z. B. Listen)
- Alle Attribute enthalten genau einen Wert pro Zelle
Nicht in 1NF:
kunden_id | name | farben |
---|---|---|
1 | Lisa | rot, blau |
In 1NF:
kunden_id | name | farbe |
---|---|---|
1 | Lisa | rot |
1 | Lisa | blau |
2. Normalform (2NF)
Ziel:
Alle Nicht-Schlüsselattribute hängen voll funktional vom Primärschlüssel ab.
Zusätzlich zu 1NF gilt:
- Gilt nur für Tabellen mit zusammengesetzten Primärschlüsseln
- Keine Teilabhängigkeiten erlaubt
Nicht in 2NF:
Primärschlüssel: (student_id, kurs_id)
student_id | kurs_id | student_name |
---|---|---|
1 | A | Lara |
1 | B | Lara |
student_name
hängt nur von student_id
ab, nicht von beiden FeldernIn 2NF:
Tabelle: studenten
student_id | student_name |
---|---|
1 | Lara |
Tabelle: teilnahmen
student_id | kurs_id |
---|---|
1 | A |
1 | B |
3. Normalform (3NF)
Ziel:
Alle Nicht-Schlüsselattribute hängen nur vom Primärschlüssel ab, nicht transitiv über ein anderes Attribut.
Zusätzlich zu 2NF gilt:
- Keine transitiven Abhängigkeiten
Nicht in 3NF:
kunden_id | plz | ort |
---|---|---|
1 | 12345 | Berlin |
2 | 54321 | München |
ort
hängt nicht direkt vom Primärschlüssel kunden_id
ab,sondern von
plz
, die wiederum vom Primärschlüssel abhängt → transitivIn 3NF:
Tabelle: kunden
kunden_id | plz |
---|---|
1 | 12345 |
2 | 54321 |
Tabelle: orte
plz | ort |
---|---|
12345 | Berlin |
54321 | München |
Zusammenfassung
Normalform | Ziel | Verhindert |
---|---|---|
1NF | Nur atomare Werte | Mehrfachwerte in einer Zelle |
2NF | Volle funktionale Abhängigkeit | Teilabhängigkeiten |
3NF | Keine transitiven Abhängigkeiten | Abhängigkeit über Nicht-Schlüssel |
Die 2NF muss erfüllt sein, um in die 3NF zu kommen.
Jede Stufe baut auf der vorherigen auf.
Schlüssel in Datenbanken
Eine Übersicht über die wichtigsten Schlüsselarten und deren Bedeutung für Datenbankdesign und referenzielle Integrität. Schlüssel sind ein wichtiges Thema in fast jeder Prüfung.
Entity-Relationship-Diagramm (ERD)
Erklärung, Aufbau und Beispiele zum Entity-Relationship-Diagramm – ein zentrales Werkzeug für das Datenbankdesign und ein häufiges Thema in der Abschlussprüfung.