Hast du schon mal eine Datenbank-Tabelle gesehen, die wie ein Rumpelkammer aussah? In einer Zelle liegt eine Liste von Telefonnummern, in einer anderen — Adressen, die als ein langer Satz geschrieben sind, in der dritten — mehrere Daten, durch Kommas getrennt. So ein "Chaos" macht das Suchen, Aktualisieren und Verwalten der Daten echt schwierig. Aber es gibt einen Weg zur Ordnung. Sein Name ist — Daten-Normalisierung.
Einfach gesagt, Daten-Normalisierung ist der Prozess, Daten in Tabellen so zu organisieren, dass Daten-Redundanz minimiert und Probleme beim Aktualisieren, Löschen und Einfügen von Daten vermieden werden.
Das sind die Probleme, die Daten-Normalisierung löst:
- Beseitigung von Daten-Duplikaten. Warum sollten wir dieselbe Info zweimal speichern? Oder dreimal? Das bläht die Datenbank auf und führt zu Inkonsistenzen.
- Minimierung von Anomalien. Weißt du, wie es im echten Leben Anomalien gibt? Zum Beispiel, du hast vergessen, einen Ex-Kollegen aus deiner Kontaktliste zu löschen. In Datenbanken passiert das auch. Normalisierung hilft, solche peinlichen Situationen zu vermeiden.
- Vereinfachung der Datenstruktur. Je einfacher die Struktur, desto leichter ist das Handling.
- Beschleunigung der Datenbank-Performance. Weniger Daten — schnellere Abfragen.
Und was, wenn man ohne Normalisierung arbeitet?
Ohne Normalisierung werden die Daten in der Datenbank "klebrig" — sie ziehen ständig irgendwelche unnötigen Infos mit sich.
Stell dir die Tabelle Studenten vor:
| Studenten-ID | Name | Kurse |
|---|---|---|
| 1 | Otto Lin | Mathematik, Physik |
| 2 | Anna Song | Chemie |
| 3 | Otto Lin | Biologie, Chemie |
Was kann da schiefgehen:
- Daten-Duplikate:
Otto Lintaucht mehrmals auf. Warum? Weil er mehrere Kurse besucht. - Schwierig, Infos zu aktualisieren: Wenn sich die Telefonnummer von Otto Lin ändert, müssen wir alle Einträge mit ihm suchen, um die Nummer zu aktualisieren.
- Löschen kann die Integrität zerstören: Stell dir vor, Otto will die Kurse abbrechen. Wenn wir alle seine Zeilen löschen, verlieren wir alle Infos über ihn, inklusive Name.
Wann kann Normalisierung zu viel sein?
Mal ehrlich, Normalisierung ist wie ein strikter Zeitplan: immer gut, aber manchmal will man spontan sein. Es gibt tatsächlich Fälle, wo Denormalisierung besser ist:
- In analytischen Datenbanken, wo die Geschwindigkeit der Abfragen wichtiger ist als die Minimierung des Datenvolumens.
- Wenn die Struktur zu kompliziert wird: Wenn wir wegen der Normalformen mit Dutzenden Tabellen arbeiten müssen, werden die Abfragen immer sperriger.
- Für oft genutzte Aggregationen: Wenn du ständig denselben Wert berechnest, ist es besser, ihn direkt zu speichern.
Angenommen, wir haben einen Online-Shop. Wenn die User oft die Gesamtsumme der Bestellungen suchen, kann man diese Summe direkt in der Tabelle Bestellungen speichern, statt sie jedes Mal neu zu berechnen.
Aber wichtig: Denormalisierung ist ein Kompromiss. Sie erhöht die Chance auf Fehler beim Aktualisieren der Daten.
Beispiele für problematische Strukturen und deren Normalisierung
Schauen wir uns mal eine Tabelle vor der Normalisierung an:
| Bestellungs-ID | Kunde | Produkte | Bestellsumme |
|---|---|---|---|
| 1 | Otto Lin | Telefon, Kopfhörer | 20000 |
| 2 | Anna Song | Kühlschrank | 30000 |
| 3 | Otto Lin | Fernseher | 40000 |
Hier sieht man klar die Verstöße:
- Kundendaten wiederholen sich.
- Produkte werden als Liste gespeichert — das verletzt das Prinzip der Daten-Atomarität.
Nach der Normalisierung
Wir teilen diese Tabelle in drei auf: Tabelle Kunden
| Kunden-ID | Name |
|---|---|
| 1 | Otto Lin |
| 2 | Anna Song |
Tabelle Produkte
| Produkt-ID | Bezeichnung | Preis |
|---|---|---|
| 1 | Telefon | 10000 |
| 2 | Kopfhörer | 10000 |
| 3 | Kühlschrank | 30000 |
| 4 | Fernseher | 40000 |
Tabelle Bestellungen
| Bestellungs-ID | Kunden-ID | Produkt-ID |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 1 | 2 |
| 2 | 2 | 3 |
| 3 | 1 | 4 |
Jetzt haben wir:
- Keine Daten-Duplikate mehr.
- Jedes Produkt steht in einer eigenen Zeile.
- Wir können easy neue Produkte und Bestellungen hinzufügen.
Normalisierung ist die Kunst, aus Chaos Ordnung zu machen. Ja, manchmal wirkt sie zu streng und fordernd, aber ihr Ziel ist es echt wert. In den nächsten Vorlesungen schauen wir uns die Normalformen der Reihe nach an: erst 1NF, dann 2NF und schließlich 3NF. Los geht’s, auf in die Welt der geordneten Daten!
GO TO FULL VERSION