Normalisierung von Datenbanken
Unter Normalisierung versteht man die schrittweise Zerlegung von Relationen, um Redundanzen innerhalb des Datenschemas zu beheben.
Inhaltsverzeichnis
Ziele der Normalisierung
Mit einer Normalisierung werden folgende Ziele verfolgt:
- Integritätssicherung,
- Redundanzfreie Speicherung,
- Generierung von "lesbaren" Relationen.
Schrittweise wird das relationale Datenschema in die 1., 2., 3. usw. Normalform überführt. Damit ein relationales Datenschema in einer bestimmten Normalform vorliegt, hat es die Kriterien der jeweiligen Normalform zu erfüllen.
1. Normalform
Die 1. Normalform wird folgendermaßen definiert:
Eine Relation befindet sich in der ersten Normalform (1.NF), wenn alle Attributwerte atomar sind, d.h. dass alle Attribute maximal einen Wert haben.
Beispiel
Folgende Relation ist nicht in der 1. NF, da in der Spalte "passend für" teilweise keine atomarität vorliegt:
Produkt | passend für |
---|---|
Autoscheinwerfer Cool4 | Audi, VW |
Autoscheinwerfer Maxspot | Ford |
Scheibenwischer Supertrocken | BMW, Audi, VW, Porsche |
Wir überführen die Tabelle in die 1. NF:
Produkt | passend für |
---|---|
Autoscheinwerfer Cool4 | Audi |
Autoscheinwerfer Cool4 | VW |
Autoscheinwerfer Maxspot | Ford |
Scheibenwischer Supertrocken | BMW |
Scheibenwischer Supertrocken | Audi |
Scheibenwischer Supertrocken | VW |
Scheibenwischer Supertrocken | Porsche |
2. Normalform
Die 2. Normalform wird folgendermaßen definiert:
Eine Relation befindet sich in der zweiten Normalform (2.NF), wenn sie sich in 1.NF befindet und jedes Attribut vom gesamten Primärschlüssel (und nicht nur von Teilen des Primärschlüssels) voll funktional abhängig ist. Man spricht von voll funktionaler Abhängigkeit, wenn der Wert eines einzigen Attributs eindeutig die Werte der anderen Attribute bestimmt. Relationen in 1.NF sind automatisch in 2.NF, wenn ihr Primärschlüssel nicht zusammengesetzt ist.
Beispiel
__Vorwahl__ | __Rufnummer__ | Vorwahlbezirk | Name des Anschlussinhaber |
---|---|---|---|
0631 | 123456 | Kaiserslautern | Max Mustermann |
07131 | 123456 | Heilbronn | Hansi Alpha |
07131 | 98765 | Heilbronn | Margot Apfel |
Primäre Schlüssel sind Vorwahl und Rufnummer. Spalte Vorwahlbezirk ist aber nur von der Vorwahl abhängig und damit nicht vom gesamten Primärschlüssel.
Um die Relation in die 2. NF zu überführen spalten wir die partiellen Abhängigkeiten (hier Vorwahlbezirk) in eine neue Relation ab:
__Vorwahl__ | __Rufnummer__ | Anschlussinhaber |
---|---|---|
0631 | 123456 | Max Mustermann |
07131 | 123456 | Hansi Alpha |
07131 | 98765 | Margot Apfel |
__Vorwahl__ | Vorwahlbezirk |
---|---|
0631 | Kaiserslautern |
07131 | Heilbronn |
3. Normalform
Die 3. Normalform wird folgendermaßen definiert:
Ein Relationenschema befindet sich in der dritten Normalform (3.NF), wenn es sich in 2.NF befindet und zudem keine transitiven Abhängigkeiten aufweist. Unter transitiver Abhängigkeit versteht man die funktionale Abhängigkeit eines Nicht-Schlüsselattributes einer Relation R von einem anderen Nicht-Schlüsselattribut in R.
Beispiel
Titel | Author | Geburtsdatum |
---|---|---|
Beispiele der 3. NF | Max Mustermann | 01.01.1970 |
Bäume, Wälder und die Luft | Waldemar Waldmann | 10.09.1965 |
Das Geburtsdatum ist vom Primärschlüssel "Titel" transitiv abhängig, da es vom Autor abhängig ist und dieser widerum vom Primärschlüssel. Auch hier spalten wir die Abhängigkeiten in eine neue Relation ab.
Titel | Author |
---|---|
Beispiele der 3. NF | Max Mustermann |
Bäume, Wälder und die Luft | Waldemar Waldmann |
Autor | Geburtsdatum |
---|---|
Max Mustermann | 01.01.1970 |
Waldemar Waldmann | 10.09.1965 |
Vor- und Nachteile der Normalisierung
Um die Normalisierung zu beurteilen, muss man folgender Vor- und Nachteile abwägen:
Vorteile
- Redundanzfreie Speicherung, d.h. jedes Faktum ist nur einmal in der Datenbank gespeichert.
- Sicherung der Integrität. Integrität bedeutet, dass keine sich widersprechenden Fakten in der Datenbank gespeichert sind.
Nachteile
- Z.T. hoher Normalisierungsaufwand
- Schlechteres Laufzeitverhalten bei der Zusammenfügung (Join)mehrerer Relationen.
Fazit: Beim Datenbankentwurf sollten somit immer die Kosten und der Nutzen der Normalisierung abgewogen werden. Eine Normalisierung bis 3.NF (oder weniger) ist in der Regel ausreichend. Es gibt jedoch noch weitere Normalformen, auf die hier aber nicht weiter eingegangen wird.