Erste Normalform

Die erste Normalform besteht dann, wenn:

  1. es keine Duplikate in den Zeilen der Tabelle gibt,
  2. alle Werte pro Attribut jeweils von derselben Art sind,
  3. jede Zelle einen einzigen unteilbaren Wert enthält.

Die erste Bedingung wird durch das Vorhandensein eines Schlüsselattributs sichergestellt. Die zweite Bedingung besagt, dass man für ein Attribut nicht zwei verschiedene Arten von Informationen speichern soll. Um die Anzahl der Anweisungen zur Veränderung des Datenbankinhalts zu minimieren oder um Speicher zu sparen, könnte der Entwickler beispielsweise versucht sein, für Mitarbeiter alle Kontaktangaben in einem Feld zu speichern. E-Mail-Adressen und Telefonnummern würden in einem Feld stehen. Das zwingt dann dazu, dauerhaft Sonderregeln für die Bearbeitung dieses Feldes in der Implementierung mitzuführen.

Die dritte Bedingung besagt, dass jeder eingetragene Wert ein Einzelwert ist und keine Liste von Werten sein darf. Das heißt, dass ein Feld, das beispielsweise für Mitarbeiter Auslandserfahrungen festhält, nicht gleichzeitig “USA, Japan, Spanien” als einen Wert beinhalten darf. Diese Information muss in mehrere (in diesem Fall drei) Datensätze aufgeteilt werden.

Sehen Sie nun ein Beispiel, wie eine Tabelle, welche die zweite und dritte Bedingung nicht erfüllt, zur ersten Normalform transformiert wird:

Tabelle nicht in 1. Normalform

Name Geburtstag Gehalt Kontakt Auslandserfahrung
Gustav Neuman 3.6.1965 4500 0123456789

g.neuman@mmx.net

Madrid
Anita Fuchs 4.9.1980 6700 a.fuchs@videothek.com
Ismir Degerli 3.6.1950 6700 0305466898 New York, Amsterdam

Tabelle in 1. Normalform

ID Name Geburtstag Gehalt Telefon E-Mail Auslandserfahrung
1 Gustav Neuman 3.6.1965 4500 0179122663 g.neuman@mmx.net Madrid
2 Anita Fuchs 4.9.1980 6700 a.fuchs@videothek.com
3 Ismir Degerli 3.6.1950 6700 0305467898 New York
4 Ismir Degerli 3.6.1950 6700 0305466898 Amsterdam

Beachten Sie, dass die beiden Attribute E-Mail und Telefon das Attribut Kontaktersetzen. Die beiden Attribute spalten das frühere Attribut Kontakt in zwei getrennte Wertemengen. Außerdem wurde das zusätzliche Attribut ID eingeführt. Es dient als Schlüsselattribut für die Tabelle, weil der vorherige Schlüssel Name für “Ismir Degerli” durch die Aufspaltung der Werte in Auslandserfahrung in zwei Reihen wiederholt werden muss und deswegen nicht mehr als Schlüssel fungieren kann. Die Tabelle ist jetzt zwar in der ersten Normalform, allerdings stören die Redundanzen in den Attributen Name, Geburtstag, Gehalt und Telefon. Diese werden im Laufe weiterer Normalisierungsschritte beseitigt.