🧩Das relationale Modell
Daten stehen in Tabellen, Beziehungen entstehen nur über Werte – über Schlüssel. Auf dieser Idee von E. F. Codd (1970) beruhen alle SQL-Datenbanken.
📖Begriffe
Menge von Zeilen gleicher Struktur. Mathematisch eine Menge: keine Reihenfolge, keine Duplikate (SQL erlaubt Duplikate trotzdem).
Ein Datensatz, z. B. ein Buch.
Hat einen Namen und einen Datentyp (Domäne).
Identifiziert jede Zeile eindeutig, nie NULL. Kann aus mehreren Spalten bestehen (positionen: bestell_id + buch_id).
Verweist auf den Schlüssel einer anderen (oder derselben) Tabelle. Die Datenbank verhindert Verweise ins Leere.
Wert darf nur einmal vorkommen – anders als der PK sind NULLs erlaubt (mehrere NULLs gelten nicht als gleich).
🗺️ER-Diagramm des Buchladens
🔑Schlüssel in Aktion
So ist die Tabelle definiert
CREATE TABLE buecher ( buch_id INTEGER PRIMARY KEY, titel TEXT NOT NULL, autor_id INTEGER REFERENCES autoren(autor_id), genre TEXT, jahr INTEGER, preis REAL CHECK (preis > 0) ); CREATE TABLE positionen ( bestell_id INTEGER NOT NULL REFERENCES bestellungen(bestell_id), buch_id INTEGER NOT NULL REFERENCES buecher(buch_id), menge INTEGER NOT NULL CHECK (menge > 0), PRIMARY KEY (bestell_id, buch_id) );
🏗️Normalisierung Schritt für Schritt
Ausgangslage: der Bestellschein
| 🔑 bestell_id | datum | kunde_id | kunde_name | stadt | buecher |
|---|---|---|---|---|---|
| 101 | 2026-01-12 | 1 | Anna Berg | Hamburg | 1× Nebel über Lund (12,99 €); 1× SQL für Neugierige (29,90 €) |
| 102 | 2026-01-15 | 2 | Ben Schulz | Berlin | 2× Salz und Sterne (18,00 €) |
| 103 | 2026-02-03 | 1 | Anna Berg | Hamburg | 1× Der Garten der Zahlen (24,90 €); 2× Kirschblüten im Schnee (15,00 €) |
| 104 | 2026-02-20 | 3 | Clara Vogel | München | 1× SQL für Neugierige (29,90 €); 1× Datenflüsse (34,00 €); 1× Das Rätsel von Kyoto (13,90 €) |
🎓Boyce-Codd-Normalform (BCNF)
Im Lesekreis betreut jede Leitung genau ein Genre, und jede Person hat pro Genre genau eine Leitung:
Schlüsselkandidaten (berechnet): {teilnehmer, genre}{teilnehmer, leitung}
Alle Attribute sind Teil eines Schlüssels → 3NF erfüllt. Aber leitung → genre hat keinen Schlüssel links → keine BCNF: dass Herr Weiß Krimis leitet, lässt sich nicht speichern, solange niemand teilnimmt.
Zerlegung ist verlustfrei, verliert aber die Abhängigkeit teilnehmer, genre → leitung (nicht mehr per Schlüssel prüfbar). Deshalb begnügt man sich in der Praxis oft mit 3NF.
| teilnehmer | genre | leitung |
|---|---|---|
| Anna | Krimi | Frau Kurz |
| Anna | Lyrik | Herr Stern |
| Ben | Krimi | Frau Kurz |
| Ben | Lyrik | Frau Lang |
| Clara | Krimi | Herr Weiß |
| leitung | genre |
|---|---|
| Frau Kurz | Krimi |
| Herr Stern | Lyrik |
| Frau Lang | Lyrik |
| Herr Weiß | Krimi |
| teilnehmer | leitung |
|---|---|
| Anna | Frau Kurz |
| Anna | Herr Stern |
| Ben | Frau Kurz |
| Ben | Frau Lang |
| Clara | Herr Weiß |