Unterschied zwischen Normalisierung und Denormalisierung

Unterschied zwischen Normalisierung und Denormalisierung
Unterschied zwischen Normalisierung und Denormalisierung

Video: Unterschied zwischen Normalisierung und Denormalisierung

Video: Unterschied zwischen Normalisierung und Denormalisierung
Video: iOS 4.2.1 vs. iOS 4.3 Safari Speedtest mit einem iPhone 4 WiFi & 3G 2024, Juli
Anonim

Normalisierung vs. Denormalisierung

Relationale Datenbanken bestehen aus Relationen (verwandte Tabellen). Tabellen bestehen aus Sp alten. Wenn die Tabellen zwei groß sind (d. h. zu viele Sp alten in einer Tabelle), können Datenbankanomalien auftreten. Wenn die Tabellen zwei klein sind (d. h. die Datenbank besteht aus vielen kleineren Tabellen), wäre die Abfrage ineffizient. Normalisierung und Denormalisierung sind zwei Prozesse, die verwendet werden, um die Leistung der Datenbank zu optimieren. Die Normalisierung minimiert die in Datentabellen vorhandenen Redundanzen. Die Denormalisierung (Umkehrung der Normalisierung) fügt redundante Daten oder Gruppendaten hinzu.

Was ist Normalisierung?

Normalisierung ist ein Prozess, der durchgeführt wird, um Redundanzen zu minimieren, die in Daten in relationalen Datenbanken vorhanden sind. Dieser Prozess wird hauptsächlich große Tabellen in kleinere Tabellen mit weniger Redundanzen (sogenannte „Normalformen“) aufteilen. Diese kleineren Tabellen werden durch gut definierte Beziehungen miteinander in Beziehung stehen. In einer gut normalisierten Datenbank erfordert jede Änderung oder Modifikation von Daten die Änderung nur einer einzigen Tabelle. 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, aber sie werden selten verwendet.

Eine Tabelle, die 1NF entspricht, stellt sicher, dass sie tatsächlich eine Beziehung darstellt (d. h. sie enthält keine Datensätze, die sich wiederholen) und keine Attribute enthält, die einen relationalen Wert haben (d. h.e. alle Attribute sollten atomare Werte haben). Damit eine Tabelle 2NF entspricht, sollte sie 1NF entsprechen, und jedes Attribut, das nicht Teil eines Kandidatenschlüssels ist (d. h. nicht primäre Attribute), sollte vollständig von einem der Kandidatenschlüssel in der Tabelle abhängen. Gemäß der Definition von Codd 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 abhängen sollte Kandidatenschlüssel dieser Tabelle. BCNF (auch bekannt als 3.5NF) erfasst einige der Anomalien, die von 3NF nicht angesprochen werden.

Was ist Denormalisierung?

Denormalisierung ist der umgekehrte Prozess des Normalisierungsprozesses. Die Denormalisierung funktioniert, indem redundante Daten hinzugefügt oder Daten gruppiert werden, um die Leistung zu optimieren. Auch wenn das Hinzufügen redundanter Daten kontraproduktiv klingt, ist die Denormalisierung manchmal ein sehr wichtiger Prozess, um einige der Mängel in der Software für relationale Datenbanken zu überwinden, die bei normalisierten Datenbanken (selbst wenn sie auf eine höhere Leistung abgestimmt sind) schwere Leistungseinbußen nach sich ziehen können. Dies liegt daran, dass das Zusammenführen mehrerer Beziehungen (die Ergebnisse der Normalisierung sind), um ein Ergebnis für eine Abfrage zu erzeugen, manchmal langsam sein kann, 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 gegensätzliche Prozesse.

– Bei der Normalisierung werden größere Tabellen in kleinere aufgeteilt, wodurch redundante Daten reduziert werden, während bei der Denormalisierung redundante Daten hinzugefügt werden, um die Leistung zu optimieren.

– Normalisierung wird durchgeführt, um Datenbankanomalien zu vermeiden.

– Die Denormalisierung wird normalerweise 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 (d. h. Einfüge-, Aktualisierungs- und Löschvorgänge) langsamer werden. Daher kann eine denormalisierte Datenbank eine schlechtere Schreibleistung bieten als eine normalisierte Datenbank.

– Es wird oft empfohlen, dass Sie „normalisieren, bis es wehtut, denormalisieren, bis es funktioniert“.

Empfohlen: