Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ist es wirklich besser, normalisierte Tabellen zu verwenden?

Es hängt davon ab ... das Verbinden von Tabellen ist von Natur aus langsamer als das Vorhandensein einer großen Tabelle, die "vorab verbunden" ist, dh denormalisiert. Durch die Denormalisierung werden Sie jedoch Daten duplizieren und Ihre Tabellen werden größer. Die Normalisierung wird als eine gute Sache angesehen, da sie Datenbanken erstellt, die „jede“ Frage beantworten können. Wenn sie richtig durchgeführt wird, können Sie eine Auswahl erstellen, um an Ihre Daten zu gelangen. Dies ist bei einigen anderen Formen von DB nicht der Fall, und das sind jetzt (meistens) historische Irrelevanzen, die normalisierte/relative DB hat diesen Kampf gewonnen.

Zurück zu Ihrer Frage:Die Verwendung von Denormalisierung, um die Dinge schneller zu machen, ist eine allgemein akzeptierte Technik. Normalerweise ist es am besten, Ihre DB eine Weile laufen zu lassen, damit Sie wissen, was Sie denormalisieren und was Sie in Ruhe lassen sollten, und es ist auch üblich, die Daten in ihrer „korrekten“ normalisierten Form zu belassen und Daten in einen Satz denormalisierter Berichte zu ziehen Tische regelmäßig. Wenn dieser Prozess als Teil des Berichtslaufs selbst durchgeführt wird, sind die Daten auch immer aktuell.

Als Beispiel für Übernormalisierung habe ich in der Vergangenheit Datenbanken gesehen, bei denen die Wochentage und Monate des Jahres in separate Tabellen gezogen wurden - die Daten selbst wurden normalisiert - Sie können zu weit gehen.