Definition „Database Normalization“ Was ist Normalisierung?

Von Gedeon Rauch

Normalisierung ist ein Prozess, mit dem sich nicht optimierte Datenbankdesigns in eine bessere Form bringen lassen. Dies kann etwa durch Redundanzen oder durch Eingaben mit mehreren Werten der Fall sein, Normalisierung reduziert den Strukturmangel.

Das Normalisieren einer rationalen Datenbank bedeutet bis zu einem gewissem Grad mehr Übersichtlichkeit und Effizienz.
Das Normalisieren einer rationalen Datenbank bedeutet bis zu einem gewissem Grad mehr Übersichtlichkeit und Effizienz.
(Bild: Gerd Altmann)

Datenbanken sollen Organisationen dabei helfen, die erhobenen Daten nicht einfach nur zu sammeln, sondern auch wirklich sinnvoll einsetzen zu können. Um dies zu gewährleisten, muss eine Datenbank aber auch adäquat strukturiert sein.

Den Prozess, in dem Redundanzen entfernt oder mehrwertige Eingaben gesplittet werden, nennt man Normalisierung. Ziel ist eine Strukturierung der Datenbank in eine optimierte Form, in der Daten in der korrekten Beziehung zueinander stehen und Suche und Sortierung wie gewünscht funktionieren.

Ausgangspunkt hierfür ist eine vorher definierte Normalform.

Von der Normalform zur Normalisierung

Jede Datenbank erhält per Definition eine Normalform, also einen Zielzustand. Dieser wird definiert und die Anforderungen hierfür richten sich ganz nach der gewünschten Nutzung der Datenbank.

Für Online-Shops etwa ist es relevanter zu wissen, welche Kundinnen und Kunden noch Artikel im Einkaufswagen haben, während es für den Newsletter eines Franchises wichtiger ist, die Postleitzahlen der Kund*innen zu kennen, um entsprechend sortieren zu können.

Allerdings gibt es nicht nur eine Normalform, sondern mehrere definierte Normalformen, so dass die Normalisierung die Datenbank von einer Normalform in die nächste überführt. Um dies zu verdeutlichen, ist ein Blick auf die Definitionen der unterschiedlichen Normalformen sinnvoll.

Nullte Normalform

Die Datenbank enthält alle Informationen, es liegt aber noch keine Normalisierung vor. Dieser Zustand kommt vor allem in Fällen vor, in denen die Anforderungsanalyse noch erstellt wird.

Die erste Normalform

Die Datenbank wird in atomare Tabellenspalten aufgeteilt. Atomar entspricht hierbei der Idee, dass sich die Information im Tabellenfeld nicht weiter aufteilen lässt, ohne ihren Sinn zu verlieren. Konkret bedeutet dies, dass etwa Postleitzahl und Ort getrennt werden, da es sich um separate Informationen handelt.

Die zweite Normalform

In der zweiten Normalform erfolgt eine Prüfung zur vollständigen Funktionalität bzw. funktionalen Abhängigkeit der Werte. Hierfür werden Relationstypen gebildet, die über funktionale Abhängigkeiten die Datenbank entschlacken. So erhalten etwa alle kundenbezogenen Datensätze eine individuelle Kundennummer, so dass Einkäufe nur noch in Relation zur Kundennummer gesetzt werden müssen. Es entsteht eine neue Tabelle, die mehr Übersichtlichkeit gewährleistet.

Dritte Normalform

Hier werden durch Normalisierung Redundanzen und Anomalien entfernt, das Streamlining schafft auch bessere Performancewerte, vor allem in großen Datenbanken. Notwendig ist als Vorstufe unbedingt die zweite Normalform, die dritte Normalform entfernt transitive Abhängigkeiten und lagert diese in neue Untertabellen aus. Der Wohnort ist beispielsweise transitiv abhängig von der eindeutigen Postleitzahl und lässt sich daher auslagern. Aufenthaltsland und Vorwahl stehen in einer ähnlichen transitiven Abhängigkeit zueinander.

Boyce Codd Normalform (BCNF)

In vielen Fällen ist die Normalisierung mit der dritten Nomalform abgeschlossen, weiterführende Datenbanknormalisierung würde eine Datenbank in die BCNF überführen. Die Boyce Codd Normalform ist lediglich erforderlich, wenn eine Datenbank mehrere Schlüsselkandidaten mit teilweiser Überlappung besitzt.

Liegt diese Bedingung nicht vor, so ist die dritte Normalform identisch mit der BCNF. Ein Beispiel hierfür wäre die Lagerführung, in der Bestellungen in der Datenbank den bestellten Artikel und den Lagerort führen. Eine Aufteilung der Daten in Untertabellen schafft einen neuen Primärschlüssel und kann so etwa Lagerprozesse optimieren.

Vierte Normalform

Wurde eine Datenbank so normalisiert, dass sie in BCNF vorliegt, kann eine Normalisierung in die vierte Normalform erfolgen. Hier werden mehrwertige Abhängigkeiten entfernt, da es sich hierbei um triviale Abhängigkeiten handelt. In der Praxis erfolgt diese weitere Normalisierung kaum.

Eine triviale Abhängigkeit liegt etwa dann vor, wenn unter einer Kundennummer alle vergangenen Bestellungen gespeichert werden, auch wenn diese an unterschiedliche Adressen verschickt wurden. Die mehrwertige Abhängigkeit ließe sich über zusätzliche Tabellen auflösen.

Fünfte Normalform

Wenn schon die vierte Normalform kaum praxisnah ist, welchen Mehrwert schafft dann eine Normalisierung in die fünfte Normalform? Ziel dieser Normalisierung ist die Auflösung aller Mehrwertigkeiten und eine und eine Auflösung in Abhängigkeiten, die sich nicht weiter trennen lassen. So können Bestellungen etwa nicht nur nach Kundennummer und Artikelnummer abgerufen werden, ein Online-Shop könnte eine neue Referenz über den Hersteller eines Produktes erstellen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Auf diese Weise entsteht eine höhere Informationsdichte, um Rückschlüsse darauf ziehen zu können, ob der Kundenstamm Artikel bestimmter Hersteller, aus bestimmten Materialien oder mit bestimmten Lieferzeiten vorgezogen vorzieht. Die fünfte Normalform dient entsprechend der Analyse und Informationsgewinnung und kann als Zwischenschritt zur Optimierung der Marketing- und Geschäftsprozesse verstanden werden.

Normalisierung in der Praxis

Was theoretisch so klingen mag, als würde zusätzliche Normalisierung eine Datenbank stets auch in der Praxis optimieren, ist tatsächlich ein Trugschluss. Für die meisten Einsatzszenarien von Datenbanken ist eine Normalisierung in die dritte Normalform nicht nur vollkommen ausreichend, sondern sogar vorteilhaft.

Werden mehr Abhängigkeiten und Redundanzen gelöst, so benötigt die Datenbank mehr Primärschlüssel, die wiederum auf mehr Tabellen verweisen. In Praxis ist die Datenbank dann zwar in eine höhere Normalform normalisiert, allerdings hat sie dadurch entscheidend an Übersichtlichkeit eingebüßt.

Die dritte Normalform kann entsprechend als Optimierung zwischen den Bedürfnissen der User*innen einer Datenbank und der technischen Optimierung verstanden werden. Zusätzliche Optimierungen und Tabellen erhöhen zudem den Anspruch an Speicher und Rechenleistung. Und Prozesse wie Reporting müssen Normalisierungen oft aufheben, um Ergebnisse schneller und effizienter abrufen zu können.

(ID:48751287)