Um Redundanz (Überschneidung, unnötiges Vorhandensein von überflüssigen Informationen) zu vermeiden existieren sogenannte Normalformen. Das Ziel des Datenbankdesigns sollte darin bestehen, eine Datenbankstruktur zu kreieren, die der 3. Normalform entspricht.
1. Normalform
Die 1. Normalform besagt, dass in einer Tabelle die Attribute in getrennte Spalten geschrieben werden sollen. Das heißt, dass beispielsweise Nachname und Vorname jeweils in eine eigene Spalte eingefügt werden, nicht zusammen in eine Spalte. Zudem dürfen nie zwei Zeilen mit demselben Inhalt in der Tabelle vorkommen.
2. Normalform
Eine Datenbank befindet sich nur dann in der 2. Normalform, wenn die Tabellen in der 1.Normalform sind und alle Nichtschlüsselattribute voll funktional vom Primärschlüssel abhängig sind.
Relationen müssen in unterschiedliche Tabellen aufgenommen werden. (z.B. Tabelle Kunde und Tabelle Rechnung, die anschliessend in einer 1:n Beziehung stehen, was bedeutet, dass ein Kunde einer oder vielen Rechnungen zugeordnet sein kann).
3. Normalform
Eine Tabelle in der dritten Normalform enthält keine transitiven Abhängigkeiten, was bedeutet, dass keine Abhängigkeiten existieren, in der ein Attribut X von einem anderen Attribut Y abhängt, welches wiederum von einem anderen Attribut Z abhängt. Dies würde bewirken, dass das Löschen einer Zeile mit einem Eintrag von Z über Y zu einem Datenverlust für X führt.
