0NF
0. Normalform (Unnormiert)
Mehrwertige Attribute (mehrere Werte in einer Zelle) und Wiederholungsgruppen. Keine saubere Tabellenstruktur.
| Bestellnr | Kunde | Adresse | Produkte | Preise |
|---|
| 1001 | Max Müller | Berlin | Laptop, Maus | 800, 20 |
| 1002 | Anna Schmitt | Hamburg | Monitor | 300 |
| 1003 | Max Müller | Berlin | Tastatur, Hub | 50, 30 |
Mehrere Produkte in einer Zelle → kann nicht sauber abgefragt werden!
1NF
1. Normalform (1NF)
📏 Alle Attribute sind atomar (unteilbar). Keine Mehrfachwerte in einer Zelle. Ein Primärschlüssel ist definiert.
Jede Zelle enthält genau einen Wert. Zeilen sind eindeutig identifizierbar.
| Bestellnr 🔑 | Produkt_Nr 🔑 | Kunde | Adresse | Produkt | Preis |
|---|
| 1001 | 1 | Max Müller | Berlin | Laptop | 800 |
| 1001 | 2 | Max Müller | Berlin | Maus | 20 |
| 1002 | 1 | Anna Schmitt | Hamburg | Monitor | 300 |
| 1003 | 1 | Max Müller | Berlin | Tastatur | 50 |
| 1003 | 2 | Max Müller | Berlin | Hub | 30 |
Redundanz: Kunde und Adresse wiederholen sich pro Bestellung. Anomalien möglich!
2NF
2. Normalform (2NF)
📏 1NF erfüllt + Alle Nicht-Schlüssel-Attribute sind voll funktional abhängig vom gesamten Primärschlüssel (keine partiellen Abhängigkeiten).
Spalten, die nur von einem Teil des Schlüssels abhängen, werden ausgelagert.
Bestellung
| Bestellnr 🔑 | Produkt_Nr 🔑 | Preis |
|---|
| 1001 | 1 | 800 |
| 1001 | 2 | 20 |
| 1002 | 1 | 300 |
| 1003 | 1 | 50 |
| 1003 | 2 | 30 |
Kunde
| Bestellnr 🔑 | Kunde | Adresse |
|---|
| 1001 | Max Müller | Berlin |
| 1002 | Anna Schmitt | Hamburg |
| 1003 | Max Müller | Berlin |
Noch Redundanz: Max Müller / Berlin erscheint mehrfach. Adresse hängt nur vom Kunden ab, nicht von der Bestellnr.
3NF
3. Normalform (3NF)
📏 2NF erfüllt + Keine transitiven Abhängigkeiten (Nicht-Schlüssel-Attribute dürfen nicht von anderen Nicht-Schlüssel-Attributen abhängen).
Alle Nicht-Schlüssel-Attribute sind direkt vom Primärschlüssel abhängig, nicht über Umwege.
Bestellposition
| Bestellnr 🔑 | Produkt_Nr 🔑 | Preis |
|---|
| 1001 | 1 | 800 |
| 1001 | 2 | 20 |
| 1002 | 1 | 300 |
Bestellung
| Bestellnr 🔑 | Kunden_Nr |
|---|
| 1001 | K1 |
| 1002 | K2 |
| 1003 | K1 |
Kunde
| Kunden_Nr 🔑 | Kunde | Adresse |
|---|
| K1 | Max Müller | Berlin |
| K2 | Anna Schmitt | Hamburg |
✅ Keine Redundanz mehr! Jedes Attribut hängt direkt vom Primärschlüssel ab.