Normalisierung gegen Denormalisierung
Relationale Datenbanken bestehen aus Beziehungen (zugehörige Tabellen). Tabellen bestehen aus Spalten. Wenn die Tabellen zwei große Tabellen sind (dh zu viele Spalten in einer Tabelle), können Datenbankanomalien auftreten. Wenn die Tabellen zwei kleine sind (dh die Datenbank besteht aus vielen kleineren Tabellen), wäre sie für die Abfrage ineffizient. Normalisierung und Denormalisierung sind zwei Prozesse, mit denen die Leistung der Datenbank optimiert wird. Durch die Normalisierung werden die in Datentabellen vorhandenen Redundanzen minimiert. Durch Denormalisierung (Umkehrung der Normalisierung) werden redundante Daten oder Gruppendaten hinzugefügt.
Was ist Normalisierung?
Die Normalisierung ist ein Prozess, der ausgeführt wird, um die Redundanzen zu minimieren, die in Daten in relationalen Datenbanken vorhanden sind. Dieser Prozess unterteilt hauptsächlich große Tabellen in kleinere Tabellen mit weniger Redundanzen (als „normale Formulare“bezeichnet). Diese kleineren Tabellen werden durch genau definierte Beziehungen miteinander verknüpft. In einer gut normalisierten Datenbank muss für jede Änderung oder Modifikation der Daten nur eine einzige Tabelle geändert werden. 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 jedoch selten verwendet.
Eine Tabelle, die 1NF entspricht, stellt sicher, dass sie tatsächlich eine Beziehung darstellt (dh keine sich wiederholenden Datensätze enthält) und keine Attribute mit relationalem Wert enthält (dh 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 (dh Nicht-Primat-Attribute), sollte vollständig von einem der Kandidatenschlüssel in der Tabelle abhängen. Gemäß der Codd-Definition liegt eine Tabelle genau dann in 3NF vor, wenn diese Tabelle in der zweiten Normalform (2NF) vorliegt 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 als 3.5NF bekannt) erfasst einige der Anomalien, die vom 3NF nicht behoben werden.
Was ist Denormalisierung?
Die Denormalisierung ist der umgekehrte Prozess des Normalisierungsprozesses. Bei der Denormalisierung werden redundante Daten hinzugefügt oder Daten gruppiert, um die Leistung zu optimieren. Obwohl das Hinzufügen redundanter Daten kontraproduktiv klingt, ist die Denormalisierung manchmal ein sehr wichtiger Prozess, um einige der Mängel in der relationalen Datenbanksoftware zu beheben, die bei normalisierten Datenbanken zu erheblichen Leistungseinbußen führen können (sogar auf höhere Leistung abgestimmt). Dies liegt daran, dass das Verbinden mehrerer Beziehungen (die Ergebnisse der Normalisierung sind), um ein Ergebnis zu einer Abfrage zu erzeugen, abhängig von der tatsächlichen physischen Implementierung der Datenbanksysteme manchmal langsam sein kann.
Was ist der Unterschied zwischen Normalisierung und Denormalisierung? - Normalisierung und Denormalisierung sind zwei Prozesse, die völlig entgegengesetzt sind. - Bei der Normalisierung werden größere Tabellen in kleinere aufgeteilt, wodurch die redundanten Daten reduziert werden. Bei der Denormalisierung werden redundante Daten hinzugefügt, um die Leistung zu optimieren. - Die Normalisierung wird durchgeführt, um Datenbankanomalien zu vermeiden. - Die Denormalisierung wird normalerweise durchgeführt, um die Leseleistung der Datenbank zu verbessern. Aufgrund der zusätzlichen Einschränkungen für die Denormalisierung können Schreibvorgänge (dh Einfüge-, Aktualisierungs- und Löschvorgänge) jedoch langsamer werden. Daher kann eine denormalisierte Datenbank eine schlechtere Schreibleistung bieten als eine normalisierte Datenbank. - Es wird oft empfohlen, dass Sie "normalisieren, bis es weh tut, denormalisieren, bis es funktioniert". |