Die Datenbanknormalisierung ist ein Verfahren, das beim Datenbankdesign eingesetzt wird, um Daten effizient zu organisieren. Sie kann dazu beitragen, Datenredundanz (doppelte Daten) zu reduzieren und die Datenintegrität (Datengenauigkeit und -konsistenz) zu verbessern. Das ist wie bei einem unordentlichen Aktenschrank: Anstatt dieselben Informationen an mehreren Stellen zu haben, legen Sie jede Information an einem Ort ab und verwenden dann ein System von Querverweisen, um sie zu verknüpfen.
Eine Datenbank ist einfach eine organisierte Sammlung von Daten, die in der Regel elektronisch in einem Computersystem gespeichert werden. Sie können sich das wie einen digitalen Aktenschrank vorstellen. Statt Papierordner und Schubladen verwenden Sie strukturierte Tabellen (oder andere Methoden zur Datenorganisation), mit denen Sie Informationen schnell und effizient speichern, verwalten und abrufen können.
Moderne Unternehmen nutzen Datenbanken, um alles zu erfassen – von Kundenbestellungen und Lagerbeständen bis hin zu Nutzerkontodetails und Finanztransaktionen. Viele entscheiden sich dafür, ihre Datenbanken in der Cloud auszuführen.
Eine relationale Datenbank organisiert Daten in einer oder mehreren Tabellen mit Spalten und Zeilen. Sie wird „relational“ genannt, weil sie bestimmte, vordefinierte Beziehungen zwischen diesen Tabellen herstellt. Die Grundidee ist, komplexe Informationen in kleinere, überschaubare Teile zu zerlegen, sodass dieselben Informationen nicht mehrfach gespeichert werden müssen.
Stellen Sie sich eine einfache Datenbank für einen Onlineshop vor. Sie hätten da eine Tabelle für Kunden (Name, Adresse, Telefon) und eine weitere für Bestellungen (Datum, Gesamtbetrag). Wenn ein Kunde eine Bestellung aufgibt, müssen Sie nicht die gesamte Adresse in die Tabelle „Bestellung“ kopieren. Sie verwenden einfach die eindeutige Kunden-ID, um die Bestellung mit den vollständigen Kundendaten zu verknüpfen.
Wenn ein Kunde umzieht und seine Adresse ändert, müssen Sie diese nur an einer Stelle aktualisieren: in der Tabelle „Kunden“. Hätten Sie diese in 100 Bestelldatensätze kopiert, müssten Sie alle 100 Datensätze aktualisieren, was wahrscheinlich zu unübersichtlichen, inkonsistenten Daten führen würde. Das Problem, Informationen an vielen Stellen aktualisieren zu müssen, wird als Datenanomalie bezeichnet.
Sie möchten aber den Preis eines Produkts zur Zeit des Kaufs in den Auftragsdatensatz kopieren. Warum? Der Preis des Produkts in der Haupttabelle „Produkte“ kann sich in Zukunft ändern, aber der Bestellbeleg muss den Preis widerspiegeln, den der Kunde tatsächlich bezahlt hat. In diesem Fall ist das Kopieren und Einfrieren der Daten (oder das Erstellen eines Snapshots) die richtige Designentscheidung.
Die Normalisierung ist ein systematischer Prozess, bei dem relationale Tabellen und die Beziehungen zwischen ihnen so gestaltet werden, dass diese Inkonsistenzen beseitigt werden und Speicherplatz gespart wird. Die „Normalformen“ (1NF, 2NF, 3NF usw.) sind eine Reihe präskriptiver Regeln. Sie stellen eine Lösung für Datenredundanz und die damit verbundenen Datenanomalien dar und bieten einen klaren Weg, Daten effizient und zuverlässig nach den Anforderungen Ihrer Anwendung zu organisieren.
Eine Normalisierung ist eine detaillierte Anleitung zur Strukturierung Ihrer Tabellen, wobei jeder Schritt (oder jede „Form“) auf dem vorherigen aufbaut. Um die dritte Normalform (3NF) zu erfüllen, muss eine Tabelle die Tests für 1NF und 2NF bestehen. Die meisten operativen Datenbanken sind so konzipiert, dass sie mindestens dem 3NF-Standard entsprechen, da dieser ein Gleichgewicht zwischen Datenintegrität und Leistung bietet.
Die Regel für die 1NF besagt, dass Ihre Tabellen von Anfang an richtig strukturiert sein müssen, wie bei einer sauberen Tabelle.
Regel: Jede Spalte muss einen eindeutigen Namen haben und jede Zelle darf nur einen einzigen, unteilbaren Wert enthalten.
Gelöstes Problem: Es kann keine Liste von Elementen in eine einzelne Zelle eingefügt werden. In einer Tabelle mit Bestellungen können Sie beispielsweise nicht „Milch, Eier, Brot“ in einer Zelle unter der Spalte „Bestellte Produkte“ auflisten. Stattdessen muss jedes Produkt eine eigene Zeile erhalten, damit die Daten durchsuchbar und verwaltbar sind.
Die 2NF-Regel gilt nur, wenn Ihre Tabelle einen zusammengesetzten Schlüssel verwendet – einen Primärschlüssel, der aus zwei oder mehr kombinierten Spalten besteht (z. B. eine Bestell-ID plus eine Produkt-ID). Ein Primärschlüssel ist die Spalte oder eine Gruppe von Spalten, deren Werte jede Zeile in einer Tabelle eindeutig identifizieren. Eine Nicht-Schlüsselspalte ist eine Spalte, die nicht Teil des Primärschlüssels ist.
Regel: Eine Tabelle muss bereits in 1NF sein und alle Nicht-Schlüsselspalten müssen vom gesamten zusammengesetzten Schlüssel abhängen, nicht nur von einem Teil davon.
Gelöstes Problem: Daten sollten nur dort gespeichert werden, wo sie hingehören. Wenn Sie eine Tabelle haben, in der der Schlüssel (OrderID, ProductID) lautet, sollte diese keine Spalten wie „Produktpreis“ enthalten, da der Preis nur von der ProductID und nicht von der OrderID abhängt. Die Lösung besteht darin, die ProduktID und den Produktpreis in eine separate Tabelle „Produkte“ zu verschieben, wobei die ProduktID der einzige Primärschlüssel ist. So wird der Preis des Produkts nicht unnötig für jede Bestellung wiederholt, die das relevante Produkt enthält.
Die 3NF-Regel ist das häufigste Ziel für das Datenbankdesign und will indirekte Beziehungen zwischen Datenpunkten entfernen.
Regel: Eine Tabelle muss in 2NF sein und Nicht-Schlüsselspalten dürfen nur vom Primärschlüssel abhängen, nicht von einer anderen Nicht-Schlüsselspalte.
Gelöstes Problem: Es muss vermieden werden, dass ein nicht-Schlüssel-Datenelement den Wert eines anderen nicht-Schlüssel-Datenelements bestimmt. Nehmen wir eine Tabelle „Angestellte“ an, in der eine Büro-ID (eine Nicht-Schlüsselspalte) und der Standort des Büros (eine weitere Nicht-Schlüsselspalte) gespeichert sind. Der Bürostandort wird durch die Büro-ID bestimmt, nicht durch die Mitarbeiter-ID (der Primärschlüssel der Tabelle). Diese indirekte Verknüpfung ist eine transitive Abhängigkeit. Um das zu vermeiden erstellen Sie eine neue Tabelle „Büros“, die nur die Büro-ID und den Bürostandort enthält, und verknüpfen die beiden Tabellen über die Büro-ID. So müssen Sie den Standort des Büros nur an einer Stelle aktualisieren, falls er sich einmal ändert.
Feature | Normalisierung | Denormalisierung |
Hauptziel | Redundanz reduzieren, Datenintegrität verbessern | Leseleistung verbessern. |
Anwendungsbeispiele | Transaktionale Datenbanken (häufige Aktualisierungen). | Analytische Datenbanken und Data Warehouses (häufige Lesevorgänge); Daten, die nach der Erstellung nicht mehr geändert werden dürfen (z. B. ein Snapshot eines Vertrags oder einer Rechnung). |
Ergebnis | Mehr Tabellen, weniger Datenredundanz. | Weniger Tabellen, bewusste Datenduplizierung. |
Feature
Normalisierung
Denormalisierung
Hauptziel
Redundanz reduzieren, Datenintegrität verbessern
Leseleistung verbessern.
Anwendungsbeispiele
Transaktionale Datenbanken (häufige Aktualisierungen).
Analytische Datenbanken und Data Warehouses (häufige Lesevorgänge); Daten, die nach der Erstellung nicht mehr geändert werden dürfen (z. B. ein Snapshot eines Vertrags oder einer Rechnung).
Ergebnis
Mehr Tabellen, weniger Datenredundanz.
Weniger Tabellen, bewusste Datenduplizierung.
Denormalisierung ist das absichtliche Hinzufügen redundanter Daten zu einer Datenbank, oft um die Abfrageleistung für Berichte oder Analysen zu verbessern. Das ist ein Kompromiss: Sie opfern etwas Integrität und vergrößern den Speicherplatz, um Daten schneller abrufen zu können. In Szenarien wie einem Rechtsvertrag kann diese beabsichtigte Redundanz jedoch sinnvoll sein, um einen Snapshot der Daten zu erstellen, der unabhängig von zukünftigen Änderungen ist. So bleiben die zur Zeit der Vertragsunterzeichnung festgelegten Bedingungen, Namen und Preise dauerhaft erhalten und verfügbar, auch wenn die primären Kunden- oder Produktdaten später aktualisiert werden.
Die Normalisierung macht relationale Datenbanken (wie Cloud SQL oder Spanner) effizienter, zuverlässiger und einfacher zu verwalten, indem „Normalformen“ verwendet werden, um Daten zu strukturieren und häufige Probleme zu vermeiden.
Datenredundanz reduzieren
Speichern Sie jedes Datenelement, z. B. die Adresse eines Kunden, nur an einem Ort, um Speicherplatz zu sparen und die Effizienz zu steigern.
Datenanomalien beseitigen
Inkonsistenzen vermeiden, die bei redundanten Daten auftreten können, z. B. Anomalien beim Einfügen, Löschen oder Aktualisieren.
Datenintegrität verbessern
Sorgen Sie für genaue und konsistente Daten in der gesamten Datenbank, indem Sie sicherstellen, dass jedes Datenelement korrekt ist und nur an einem Ort gespeichert wird.
Wenn Sie Wert auf extrem hohe Leistung, massive Skalierbarkeit oder ein flexibles Schema legen, sollten Sie stattdessen eine nicht relationale (NoSQL) Datenbank wie Bigtable oder Firestore wählen. NoSQL-Datenbanken sind nach anderen Prinzipien konzipiert, die bewusst Datenredundanz einschließen, um schnelle Lesevorgänge und Verfügbarkeit zu optimieren.
Google Cloud bietet eine Reihe von Diensten, die die Datenbanknormalisierung unterstützen und von ihr profitieren.




Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.