false
27. März 2023
 | 
11 Minuten Lesedauer

Datendenormalisierung: Techniken für bessere Datenbankperformance

Die Datenmengen, die Organisationen verarbeiten, erfordern einen schnelleren Datenzugriff und eine rasche Verarbeitung. Datendenormalisierung ist eine weit verbreitete Technik, die Datenbankabfragen beschleunigt.

Dieser Artikel behandelt Datennormalisierung, ihre Bedeutung und wie sie sich von Datennormalisierungs- und Denormalisierungstechniken unterscheidet. Die Vor- und Nachteile dieses Ansatzes betrachten wir ebenfalls.

Was ist Datendenormalisierung?

Datendenormalisierung bezeichnet das Einführen von Redundanz in zuvor normalisierte Datenbanken zur Optimierung der Abfrageleistung. Dabei entstehen mithilfe verschiedener Techniken einige vorberechnete Redundanzen, die Probleme bei normalisierten Daten lösen. Zu diesen Techniken zählen:

  • Tabellen-Aufteilung
  • Das Hinzufügen abgeleiteter und redundanter Spalten
  • gespiegelte Tabellen

Datendenormalisierung führt jedoch zu einem Kompromiss aus Schreib- und Leseleistung.

(Versteht den Unterschied zwischen Datenbanken und Data Warehouses und wie CMDBs funktionieren.)

So funktioniert Datendenormalisierung

Betrachten wir zunächst eine normalisierte Datenbank. Eine normalisierte Datenbank enthält jede Information nur einmal, wobei sich zusammengehörige Daten in separaten Tabellen befinden. Um Daten aus mehreren Tabellen zu kombinieren und in realen Anwendungen zu verwenden, müsst ihr Abfragen stellen.

Nehmen wir aber einmal an, dass die Datenmenge steigt oder komplexe Abfragen stattfinden, die mehrere Tabellen miteinander verknüpfen. In diesen Fällen kann die Leistung der Datenbank erheblich sinken – bis hin zu Abstürzen.

Nehmen wir als Beispiel an, dass ihr einen Online-Shop betreibt, in dem Kunden Produkte bestellen können. Eine solche E-Commerce-Plattform speichert normalerweise Kundendaten in einer Tabelle und Bestelldaten in einer anderen. Die Bestelldatentabelle enthält einen Fremdschlüssel zur Kundendatentabelle für die Verknüpfung mit den Kundeninformationen.

Angenommen, die Website soll alle Bestellungen eines Kunden anzeigen. Ein normalisierter Datenspeicher müsste dafür eine Verbindung zwischen Bestell- und Kundentabellen herstellen. Stellt euch weiter vor, der Online-Shop hätte ein hohes Aufkommen an Bestellungen und Kunden. In diesem Fall könnte diese Verknüpfungsoperation rechenintensiv sein und die Website verlangsamen.

In diesem Beispiel können wir Datendenormalisierung einführen, um die Leistung unter solchen Umständen zu verbessern. Ihr habt zwei Möglichkeiten:

  • Eine Kundennamen-Spalte zur Bestelltabelle hinzufügen.
  • Eine separate Tabelle einführen und die Daten aus zwei Tabellen zusammenführen.

Vergleich von Datendenormalisierung und Datennormalisierung

Datennormalisierung ist der Prozess, der Datenredundanz beseitigt, indem genau eine Kopie jeder Information in Tabellen gespeichert wird. Sie behält die Beziehungen zwischen Daten bei und eliminiert unstrukturierte Daten. Es gibt hauptsächlich vier Arten der Datennormalisierung: erste, zweite und dritte Normalform sowie die Boyce-Codd-Normalform (3.5NF).

Eine normalisierte Datenbank hilft bei der Standardisierung der Daten in der Organisation und gewährleistet eine logische Datenspeicherung. Normalisierung bietet Organisationen auch saubere Datensätze für verschiedene Prozesse, verbessert die Abfrageantwortzeit und reduziert Datenanomalien.

Die Unterschiede zwischen Datendenormalisierung und -normalisierung lassen sich in zwei Hauptpunkten zusammenfassen:

  1. Datennormalisierung entfernt Redundanz aus einer Datenbank und führt nicht redundante, standardisierte Daten ein. Bei Denormalisierung handelt es sich hingegen um einen Prozess, bei dem Daten aus mehreren Tabellen in einer einzigen Tabelle zusammengeführt werden. Das ermöglicht schnellere Abfragen.
  2. Datennormalisierung kommt generell dann zum Einsatz, wenn Tabellenverknüpfungen weniger aufwendig sind und viele Aktualisierungs-, Lösch- und Einfügevorgänge stattfinden. Denormalisierung erweist sich auf der anderen Seite als nützlich, wenn viele aufwendige Verknüpfungsabfragen in Datenbanken auftreten.

Datendenormalisierungstechniken: Wie ihr Daten denormalisiert

Datenbankadministratoren verwenden verschiedene Denormalisierungstechniken – je nach Szenario. Behaltet im Hinterkopf, dass diese Techniken Vor- und Nachteile haben. Hier folgen einige Beispiele für Datennormalisierungstechniken, die Datenbankspezialisten verwenden:

Technik 1: Einführen einer redundanten Spalte/Vorverknüpfen von Tabellen

Diese Technik eignet sich für aufwendige Verknüpfungsoperationen und häufig genutzte Daten aus mehreren Tabellen. Dabei werden die häufig genutzten Daten zu einer Tabelle hinzugefügt.

Nehmen wir zum Beispiel an, es gibt zwei Tabellen namens „Kunde“ und „Bestellung“. Wenn ihr Kundenbestellungen zusammen mit den Namen sehen wollt, reduziert das Hinzufügen des Kundennamens zur Bestelltabelle den aufwendigen Verknüpfungsvorgang. Dies führt allerdings zu erheblichen Redundanzen. Hier eine Darstellung:


Methode 2: Tabellen-Aufteilung

Beim Tabellen-Splitting wird eine Tabelle in mehrere kleinere Tabellen zerlegt, um diese einfacher abfragen und verwalten zu können. Tabellen-Splitting ist auf zwei Arten möglich: horizontale und vertikale Aufteilung.

Horizontales Tabellen-Splitting

Aufteilung der Tabellenzeilen in kleinere Tabellen. Jede Tabelle verfügt über die gleichen Spalten. Dieser Ansatz eignet sich, wenn sich Datentabellen nach Regionen, physischen Standorten, Aufgaben und vielen weiteren Aspekten trennen lassen.

Stellt euch zum Beispiel eine Tabelle mit Studierendendaten aller Fachbereiche einer naturwissenschaftlichen Fakultät vor. Wie die Grafik zeigt, lässt sich diese Tabelle nach Fachbereichen wie Informatik, Chemie, Mathematik und Biologie aufteilen.

Dabei muss im Vergleich zur ursprünglichen Tabelle nur ein kleinerer Datensatz abgefragt werden. Diese Technik ermöglicht somit schnellere Abfragen auf Fachbereichsebene.

Vertikales Tabellen-Splitting

Beim vertikalen Splitting erfolgt die Aufteilung nach Spalten, wobei der Primärschlüssel auf jede Partition angewendet wird.

Nehmen wir an, ein Krankenhaus führt beispielsweise eine Patiententabelle mit den Spalten „Patienten-ID“, „Name“, „Adresse“ und „Krankengeschichte“. Wir können daraus durch vertikale Partitionierung zwei neue Tabellen erstellen: „Patientendaten“ und „Krankengeschichte“, wie in der Abbildung unten dargestellt.


Dieser Ansatz eignet sich besonders, wenn auf bestimmte Tabellenspalten häufiger zugegriffen wird als auf andere. Das ermöglicht es, nur die erforderlichen Attribute abzurufen und unnötige Daten zu eliminieren.

Methode 3: Hinzufügen abgeleiteter Spalten

Betrachten wir das folgende Beispiel. Angenommen, es gibt zwei Tabellen: „Studierende“ und „Noten“:

  • Die Studierendentabelle enthält nur Informationen über die Studierenden.
  • Die Notentabelle enthält Bewertungen für jede Aufgabe sowie weitere Daten.

Wenn die Anwendung die Anzeige der Gesamtnoten für die Schüler mit deren Details erfordert, können wir eine neu abgeleitete Spalte hinzufügen, die die Gesamtnoten für alle Aufgaben für jeden Schüler enthält. Dadurch muss die Datenbank nicht jedes Mal die Gesamtnoten berechnen, wenn eine Abfrage erfolgt.

Methode 4: Verwendung gespiegelter Tabellen

Bei dieser Technik entsteht eine vollständige oder teilweise Kopie einer vorhandenen Tabelle, die an einem separaten Speicherort abgelegt und für schnellere Abfragen optimiert wird. Die gespiegelte Tabelle dient in der Regel für leseintensive Workloads unter Einsatz von Techniken wie zusätzlichen Indizes und Datenpartitionierung. Diese gespiegelte Tabelle ermöglicht leseintensive Prozesse wie Analyseabfragen.

Der Ansatz erfordert das Replizieren von Datenbanken und deren Speicherung entweder in separaten Datenbankinstanzen oder auf einem physischen Server. Dies ist jedoch mit einer gewissen Komplexität verbunden, da mehrere Datenkopien verwaltet und synchronisiert werden müssen. Das kann kostspielig sein und mehr Ressourcen erfordern.

Methode 5: Materialisierte Views

Materialisierte Views (materialisierte Ansichten) sind vorberechnete Abfrageergebnisse, die in einer separaten Tabelle gespeichert werden. Dabei handelt es sich in der Regel um „Join“- und „Aggregation“-Abfragen, die ziemlich aufwendig sind, aber häufig benötigt werden. Beim nächsten Mal kann die Datenbank die Daten bei Bedarf aus der Ansicht abrufen, anstatt die gleiche Abfrage wiederholt auszuführen.

Vorteile der Datendenormalisierung

Die Datendenormalisierung bietet Organisationen mehrere Vorteile.

Verbesserte Benutzererfahrung durch schnellere Abfragen

Das Abfragen von Daten aus einem normalisierten Datenspeicher kann – je nach Anforderung – mehrere Verknüpfungen aus verschiedenen Tabellentypen erfordern. Mit wachsendem Datenvolumen verlangsamt sich die Ausführung von Join-Operationen. Dies kann die Benutzererfahrung negativ beeinträchtigen – besonders dann, wenn solche Operationen häufig genutzte Funktionen betreffen.

Die Datendenormalisierung ermöglicht es uns, die Anzahl der Verknüpfungen zwischen Tabellen zu reduzieren, indem wir häufig abgerufene Daten in redundanten Tabellen vorhalten.

Vereinfachung des Datenmodells durch geringere Komplexität

Datendenormalisierung vereinfacht Abfragen, indem sie die Anzahl der Verknüpfungsabfragen verringert. Entwickler und andere Anwender können dadurch einfacheren, leicht zu wartenden Code schreiben. Selbst unerfahrene Entwickler können die Abfragen verstehen und Abfragen einfach durchführen.

Diese Einfachheit trägt zudem dazu bei, Fehler bei Datenbankoperationen deutlich zu reduzieren.

Anwendungsskalierbarkeit verbessern

Die Denormalisierung reduziert die Anzahl der Datenbanktransaktionen beim Lesen der Daten. Dieser Ansatz erweist sich als besonders nützlich, wenn eine hohe Nutzerzahl zu einer starken Belastung durch Datenbanktransaktionen führt Die geringere Anzahl an Transaktionen ermöglicht es, unterschiedliche Nutzerlasten zu bewältigen, was die Skalierbarkeit von Anwendungen verbessert.

Datenberichte schneller erstellen

Organisationen nutzen Daten zur Erstellung zahlreicher Berichte wie Nutzungsstatistiken und Verkaufsauswertungen. Die Erstellung solcher Berichte erfordert häufig Datenaggregation und -zusammenfassung durch das Durchsuchen des gesamten Datensatzes. Denormalisierungstechniken wie gespiegelte Tabellen ermöglichen es Firmen, die Datenbanken speziell für die tägliche Berichterstellung zu optimieren, ohne die Leistung der Mastertabellen zu beeinträchtigen.

Nachteile der Datendenormalisierung

Wie bereits erörtert, bietet die Datendenormalisierung mehrere Vorteile. Diese Technik hat jedoch auch Schattenseiten, die ihr bei der Anwendung im Hinterkopf behalten solltet.

  • Der offensichtlichste Nachteil ist die erhöhte Datenredundanz.
  • Das kann zu Inkonsistenzen zwischen den Datensätzen führen. Dies tritt beispielsweise bei gespiegelten Datenbanken auf. Diese erfordern Replikationen, die synchronisiert werden müssen, um sie auf dem aktuellen Stand zu halten. Durch fehlerhafte Replikationen können Inkonsistenzen entstehen.
  • Techniken wie Datensplitting und gespiegelte Tabellen benötigen zusätzlichen Speicherplatz, was zu höheren Kosten führt.
  • Die Denormalisierung erhöht auch die Komplexität des Datenschemas. Mit steigender Tabellenanzahl gestaltet sich die Wartung des Datenspeichers schwieriger.
  • Einfüge- und Aktualisierungsvorgänge kosten mehr.
  • Die Wartungskosten können aufgrund der erhöhten Komplexität und Redundanz der Daten hoch ausfallen.

Daten: normalisieren oder nicht

Datennormalisierung entfernt redundante Daten. Gleichzeitig entstehen bei der Denormalisierung redundante Daten in normalisierten Datenbanken, um die Leseleistung auf Kosten der Aktualisierungs- und Einfügeleistung zu verbessern. Es gibt verschiedene Denormalisierungstechniken, etwa die Partitionierung von Tabellen sowie die Einführung abgeleiteter und vorab verknüpfter Tabellen. Zu den Vorteilen dieser Technik gehören eine verbesserte User Experience, eine höhere Abfrageleistung und Skalierbarkeit, eine schnellere Berichterstattung sowie eine geringere Datenkomplexität.

Die Denormalisierung bringt jedoch auch Nachteile wie Datenredundanz, höhere Komplexität, Wartungs- und Speicherkosten sowie Dateninkonsistenzen mit sich.

 

Ihr habt einen Fehler entdeckt oder eine Anregung? Bitte lasst es uns wissen und schreibt eine E-Mail an ssg-blogs@splunk.com.

 

Dieser Beitrag spiegelt nicht zwingend die Position, Strategie oder Meinung von Splunk wider.

 

Shanika Wickramasinghe Picture

Shanika Wickramasinghe is a software engineer by profession and a graduate in Information Technology. Her specialties are Web and Mobile Development. Shanika considers writing the best medium to learn and share her knowledge. She is passionate about everything she does, loves to travel and enjoys nature whenever she takes a break from her busy work schedule. She also writes for her Medium blog sometimes. You can connect with her on LinkedIn.

Ähnliche Artikel

Über Splunk

Weltweit führende Unternehmen verlassen sich auf Splunk, ein Cisco-Unternehmen, um mit unserer Plattform für einheitliche Sicherheit und Observability, die auf branchenführender KI basiert, kontinuierlich ihre digitale Resilienz zu stärken.

 

Unsere Kunden vertrauen auf die preisgekrönten Security- und Observability-Lösungen von Splunk, um ihre komplexen digitalen Umgebungen ungeachtet ihrer Größenordnung zuverlässig zu sichern und verbessern.

Erfahrt hier mehr über Splunk