Definition

Denormalisierung

Bei relationalen Datenbanken ist die Denormalisierung ein Ansatz zur Verbesserung des Laufzeitverhaltens einer Datenbankanwendung - insbesondere zur Beschleunigung der Leseleistung (Data Retrieval). Mit Denormalisierungen lassen sich oftmals wesentlich größere Performance-Verbesserungen erreichen als mit dem reinen Tuning einer Datenbankinstallation.

Neben der Optimierung des Laufzeitverhaltens wird Denormalisierung auch angewendet, um die Komplexität eines Systems zu verringern und um die Administrierbarkeit der gespeicherten Daten zu erleichtern.

Konkret stellt der Administrator bei der Denormalisierung bestimmte Instanzen redundanter Daten wieder her, nachdem die Datenstruktur normalisiert wurde. Mit Redundanz ist das mehrfache Speichern identischer Attributswerte ein und derselben Objektausprägung gemeint. Wird beispielsweise in einer Mitarbeiterdatenbank der Name des Mitarbeiters zusammen mit der Abteilung und der Abteilungsnummer gespeichert, ist die Datenbank redundant.

Redundanzen gefährden die Konsistenz der Datenbasis und können zu so genannten Anomalien führen. Um Anomalien zu verhindern, gibt es eine Vielzahl von Vorschriften und Prinzipien. Ein weit verbreitetes Verfahren, Redundanzen und Inkonsistenzen zu vermeiden, ist die Normalisierung. Eine logisch ideale, normalisierte Datenbankanwendung ist vollkommen redundanzfrei.

Die Normalisierung geht auf den Erfinder der relationalen Datenbank, Edgar Codd, zurück. Er entwickelte mathematische Regeln – die so geannnten Normalformen -, die relationale Datenbanken in redundanzfreie Datenstrukturen überführen. Bei dieser Normalisierung speichert der Datenbank-Designer verschiedene, aber aufeinander bezogene Daten in separaten logischen Tabellen ab, den sogenannten Relationen.

Wenn eine Abfrage Daten aus mehreren Tabellen in eine einzige Ergebnistabelle kombiniert, wird dies als Join bezeichnet. Multiple Joins in der gleichen Abfrage können einen negativen Einfluss auf die Leistung haben. Bei der Denormalisierung wird nun der Prozess der Normalisierung wieder zurückgenommen. Die Verwendung von Denormalisierung und die Zurücknahme einer geringen Zahl von Redundanzen kann für die Beschänkung der Anzahl von Joins nützlich sein.

Nachdem die Daten dupliziert wurden, muss der Datenbankentwickler berücksichtigen, wie mehrere Instanzen der Daten beibehalten werden können. Eine Möglichkeit, um eine Datenbank zu denormalisieren, ist dem Datenbank-Management-System (DBMS) zu erlauben, redundante Informationen auf der Festplatte zu speichern. Dies hat den zusätzlichen Vorteil, dass die Konsistenz von redundanten Kopien gewährleistet ist.

Meistens hat eine Denormalisierung einen zusätzlichen Speicherbedarf zur Folge. Oft ist man jedoch bereit, für eine Verbesserung der Leistung die Kosten für zusätzlichen Speicherplatz zu tragen. Im Einzelfall muss abgewogen werden, ob die Vorteile es wert sind, die damit verbundenen Nachteile in Kauf zu nehmen.

Ein weiterer Ansatz ist, das aktuelle logische Daten-Design zu denormalisieren, was allerdings schnell zu inkonsistenten Daten führen kann. Regeln, die als Contraints bezeichnet werden, können verwendet werden, um festzulegen, wie redundante Kopien von Daten synchronisiert werden. Allerdings erhöht dies die Komplexität des Datenbank-Designs - und auch das Risiko, die Schreibleistung negativ zu beeinträchtigen.

Diese Definition wurde zuletzt im Dezember 2016 aktualisiert

Erfahren Sie mehr über Datenbanken