Wenn man mit Datenbanken zu tun hat gibt es Techniken die den Umgang erleichtern. Diese Techniken nennt man Normalisieren und gibt es in verschiedenen Formen. So ist es üblich die Tabellen in 3 Stufen zu normalisieren. Hier muss allerdings immer geprüft werden ob es Sinnvoll ist weiter zu normalisieren, denn besonders bei sehr großen Datenbanken kann es zu Performance Problemen kommen, wenn man die Datenbank zu sehr normalisiert.
Definition Eine Tabelle ist in der ersten Normalform ,wenn alle Attribute atomar sind.
Bei der ersten Normalform ist wichtig die Daten alleinstehend zu haben. So muss jede Spalte eindeutig sein und sich nicht weiter aufteilen können (atomar sein).
Beispiel In einer Tabelle darf es normalerweise keine Spalte Adresse geben, da diese weiter aufteilen ließe in Straße und Hausnummer. In der ersten Normalform trennt man also die Attribute auf und macht daraus mehrere eindeutige Attribute.
Definition Eine Datenbank ist in der zweiten Normalfrom, wenn alle Attribute voll funktional Abhängig von dem Primärschlüssel sind und die Datenbank in der 1. Normalform ist.
In der zweiten Normalform geht es darum weitere Tabellen zu bilden, insofern es notwendig ist. So muss man von dem Primärschlüssel auf jedes Attribut schließen können. Ist dies nicht der Fall muss das Attribut in eine neue Tabelle ausgelagert werden, worin dann das Attribut Primärschlüssel wird.
Beispiel In einer Tabelle mit Kunden (Kundennummern, Vorname usw.) und Rechnungen (Rechnungsnummer, Rechnungsinhalt mit Ware usw.) kann man nur von der Rechnungsnummer auf die Ware schließen und nicht von dem Kunden aus. Somit muss alles was mit der Rechnung zu tun hat in eine extra Tabelle. In dieser neuen Tabelle ist dann die Rechnungsnummer der Primärschlüssel.
Definition Eine Datenbank ist in der dritten Normalform, wenn alle nicht Schlüsselattribute nicht transitiv abhängig vom Primärschlüssel sind und die Datenbank in der zweiten Normalform ist.
In der dritten Normalform ist es wichtig auch andere Abhängigkeiten zu entfernen. So müssen auch andere voneinander Abhängige Attribute aus der Tabelle entfernt werden um sie auszulagern.
Beispiel In einer Tabelle mit einer Warennummer und der entsprechenden Bezeichnung ist die Bezeichnung bei gleicher Warennummer immer dieselbe und somit abhängig voneinander. Damit muss ein Attribut in eine neue Tabelle ausgelagert werden mit dem noch verbliebenen Attribut der anderen Tabelle als Primärschlüssel. In unserem Fall bestünde die neue Tabelle aus der Warennummer und der Warenbezeichnung. Warennummer wäre hier der Primärschlüssel (obwohl es in diesem Fall keine Rolle spielt welches Attribut zum Primärschlüssel wird).