Erste Normalform
Die erste Normalform stellt sicher, dass die Tabelle überhaupt eine Relation ist.
Die Regel
Ein Relationenschema ist in der 1. Normalform (1NF), wenn alle Attributwerte atomar sind – in jeder Zelle steht genau ein Wert.
Verstöße sind:
- Mehrwertige Attribute:
'Indie, Rock'in einer Zelle - Zusammengesetzte Attribute:
'Musterstr. 5, 45127 Essen'in einem Feldadresse - Wiederholungsgruppen: die Spalten
genre_1,genre_2,genre_3
Der Verstoß in der Auftrittsliste
In genres steht bei vielen Bands mehr als ein Wert. Was daran praktisch stört, merkt man beim Abfragen:
a) Führe beide Abfragen aus. Die erste liefert ein brauchbares Ergebnis – warum ist sie trotzdem gefährlich?
b) Die zweite ist schlicht falsch. Was zählt sie tatsächlich?
c) Nenne eine dritte Frage an die Daten, die sich mit dieser Tabelle gar nicht beantworten lässt.
Tipp zu a)
Was passiert, wenn eines Tages ein Genre namens Indietronica dazukommt?
Die Überführung
So kommst du in die 1. Normalform:
Jeder mehrwertige Attributwert wird zu einer eigenen Zeile. Das mehrwertige Attribut wandert in den Schlüssel.
Anschließend prüfst du, ob dadurch neue Redundanz entstanden ist – meistens ja. Die beseitigen die 2. und 3. Normalform.
Aus
auftrittsliste(band, herkunftsland, genres, buehne, buehnen_kapazitaet, datum, beginn, dauer_min)
wird
auftrittsliste(band, genre, datum, beginn, herkunftsland, buehne, buehnen_kapazitaet, dauer_min)
mit dem Primärschlüssel band, genre, datum, beginn.
Aus einer Zeile
| band | genres | datum | beginn |
|---|---|---|---|
| Nordlicht | Indie, Rock | 2026-07-16 | 22:00 |
werden zwei:
| band | genre | datum | beginn |
|---|---|---|---|
| Nordlicht | Indie | 2026-07-16 | 22:00 |
| Nordlicht | Rock | 2026-07-16 | 22:00 |
a) Die Auftrittsliste hat 46 Zeilen. Wie viele werden es nach der Überführung in die 1. Normalform? Rechne es aus.
b) Was passiert dabei mit dauer_min und zuschauer? Beurteile, ob das ein Problem ist.
c) Warum ist die 1. Normalform trotz dieses Nachteils der richtige erste Schritt?
Tipp zu a)
Zähle für jeden Auftritt, wie viele Genres seine Band hat, und summiere.
Grenzfälle
Wann ist ein Wert eigentlich atomar? Die Antwort hängt davon ab, was man mit den Daten vorhat.
- Ein Feld
adressemit'Musterstr. 5, 45127 Essen'ist unproblematisch, solange man Adressen nur ausdruckt. Sobald man nach Postleitzahlen gruppieren will, ist es ein Verstoß gegen die 1NF. - Ein Geburtsdatum
2009-03-14besteht aus Tag, Monat und Jahr – trotzdem käme niemand auf die Idee, es aufzuteilen. Datenbanksysteme bringen für Datumsangaben eigene Funktionen mit, man kommt also auch so an die Bestandteile heran. - Ein Freitextfeld
beschreibungist selbstverständlich atomar, obwohl es aus vielen Wörtern besteht.
„Atomar" heißt nicht „unteilbar", sondern: nicht weiter zerlegt, weil die Anwendung die Teile nicht einzeln braucht.