Differenz zwischen Normalisierung und Denormalisierung

Anonim

Normalisierung gegen Denormalisierung

Relationale Datenbanken bestehen aus Relationen (bezogene Tabellen). Wenn die Tabellen zwei groß sind (dh zu viele Spalten in einer Tabelle), können Datenbankanomalien auftreten, wenn die Tabellen zwei klein sind (dh die Datenbank besteht aus vielen kleineren Tabellen), wäre sie für die Abfrage ineffizient. sind zwei Prozesse, die verwendet werden, um die Leistung der Datenbank zu optimieren: Normalisierung minimiert die Redundanzen, die in Datentabellen vorhanden sind Die Denormalisierung (Umkehrung der Normalisierung) fügt redundante Daten oder Gruppendaten hinzu.

Was ist Normalisierung?

Normalisierung ist ein Prozess, der ausgeführt wird, um die Redundanzen zu minimieren, die in relationalen Datenbanken vorhanden sind.Dieser Prozess wird hauptsächlich große Tabellen in kleinere Tabellen mit weniger Redundanzen aufteilen ("normale Formulare") Diese kleineren Tabellen werden sich beziehen d miteinander durch gut definierte Beziehungen. In einer gut normalisierten Datenbank muss jede Änderung oder Änderung von Daten nur eine einzige Tabelle ändern. Die erste Normalform (1NF), die zweite Normalform (2NF) und die dritte Normalform (3NF) wurden von Edgar F. Codd eingeführt. Die Boyce-Codd-Normalform (BCNF) wurde 1974 von Codd und Raymond F. Boyce eingeführt. Höhere Normalformen (4NF, 5NF und 6NF) wurden definiert, werden aber selten verwendet.

Eine Tabelle, die 1NF entspricht, stellt sicher, dass sie tatsächlich eine Relation darstellt (dh sie enthält keine Datensätze, die sich wiederholen) und enthält keine Attribute, die relational bewertet sind (dh alle Attribute sollte atomare Werte haben). Damit eine Tabelle mit 2NF übereinstimmt, sollte 1NF erfüllt sein, und jedes Attribut, das kein Teil eines Kandidaten-Schlüssels ist (dh nicht primäre Attribute), sollte vollständig von den Kandidaten-Schlüsseln in der Tabelle abhängen. Gemäß der Codd-Definition soll eine Tabelle genau dann in 3NF sein, wenn diese Tabelle in der zweiten Normalform (2NF) ist und jedes Attribut in der Tabelle, das nicht zu einem Kandidatenschlüssel gehört, direkt von jedem Kandidatenschlüssel dieser Tabelle. BCNF (auch bekannt als 3. 5NF) erfasst einige Anomalien, die nicht vom 3NF angesprochen werden.

Was ist Denormalisierung?

Denormalisierung ist der umgekehrte Prozess des Normalisierungsprozesses. Die Denormalisierung funktioniert, indem redundante Daten oder Gruppierungsdaten hinzugefügt werden, um die Leistung zu optimieren. Obwohl das Hinzufügen redundanter Daten kontraproduktiv klingt, ist manchmal die Denormalisierung ein sehr wichtiger Prozess, um einige der Mängel in der relationalen Datenbanksoftware zu überwinden, die mit normalisierten Datenbanken (sogar auf höhere Leistung) zu Leistungseinbußen führen können.Dies ist darauf zurückzuführen, dass das Verbinden mehrerer Beziehungen (die Ergebnisse der Normalisierung sind), um ein Ergebnis zu einer Abfrage zu erzeugen, manchmal langsam ist, abhängig von der tatsächlichen physischen Implementierung der Datenbanksysteme.

Was ist der Unterschied zwischen Normalisierung und Denormalisierung?

- Normalisierung und Denormalisierung sind zwei völlig entgegengesetzte Prozesse.

- Normalisierung ist der Prozess der Aufteilung größerer Tabellen in kleinere, wodurch die redundanten Daten reduziert werden, während die Denormalisierung der Prozess ist, redundante Daten hinzuzufügen, um die Leistung zu optimieren.

- Die Normalisierung wird durchgeführt, um Datenbankanomalien zu vermeiden.

- Normalerweise wird die Denormalisierung durchgeführt, um die Leseleistung der Datenbank zu verbessern, aber aufgrund der zusätzlichen Einschränkungen, die für die Denormalisierung verwendet werden, können Schreibvorgänge (dh Operationen zum Einfügen, Aktualisieren und Löschen) langsamer werden. Daher kann eine denormalisierte Datenbank eine schlechtere Schreibleistung bieten als eine normalisierte Datenbank.

- Es wird oft empfohlen, dass Sie "normalisieren, bis es schmerzt, denormalisiert, bis es funktioniert".