Denormalization

In der Computerwissenschaft ist denormalization der Prozess des Versuchens, die gelesene Leistung einer Datenbank durch das Hinzufügen überflüssiger Daten oder durch die Gruppierung von Daten zu optimieren. In einigen Fällen hilft denormalisation, die der Verwandtschaftsdatenbanksoftware innewohnende Wirkungslosigkeit zuzudecken. Eine normalisierte Verwandtschaftsdatenbank erlegt eine schwere Zugriffslast über die physische Lagerung von Daten auf, selbst wenn es für die hohe Leistung gut abgestimmt wird.

Ein normalisiertes Design wird häufig verschiedene, aber zusammenhängende Information in getrennten logischen Tischen (genannt Beziehungen) versorgen. Wenn diese Beziehungen physisch als getrennte Plattendateien versorgt werden, eine Datenbankabfrage vollendend, die Information von mehreren Beziehungen zieht (eine Verbindungslinie-Operation) kann langsam sein. Wenn viele Beziehungen angeschlossen werden, kann es untersagend langsam sein. Es gibt zwei Strategien, um sich damit zu befassen. Die bevorzugte Methode ist, das logische Design normalisiert zu halten, aber dem Datenbankverwaltungssystem (DBMS) zu erlauben, zusätzliche überflüssige Information über die Platte zu versorgen, um Anfragenantwort zu optimieren. In diesem Fall ist es die Verantwortung der DBMS Software sicherzustellen, dass irgendwelche überflüssigen Kopien konsequent behalten werden. Diese Methode wird häufig in SQL als mit einem Inhaltsverzeichnis versehene Ansichten (Microsoft SQL Server) durchgeführt oder hat Ansichten (Orakel) verwirklicht. Eine Ansicht vertritt Information in einem Format, das für das Fragen günstig ist, und der Index stellt sicher, dass Abfragen gegen die Ansicht optimiert werden.

Die üblichere Annäherung ist zu denormalise das logische Datendesign. Mit der Sorge kann das eine ähnliche Verbesserung in der Anfragenantwort erreichen, aber an Kosten - ist es jetzt die Datenbankentwerfer-Verantwortung sicherzustellen, dass die denormalised Datenbank inkonsequent nicht wird. Das wird durch das Schaffen von Regeln in der Datenbank genannt Einschränkungen getan, die angeben, wie die überflüssigen Kopien der Information synchronisiert behalten werden müssen. Es ist die Zunahme in der logischen Kompliziertheit des Datenbankdesigns und der zusätzlichen Kompliziertheit der zusätzlichen Einschränkungen, die diese Annäherung gefährlich machen. Außerdem führen Einschränkungen einen Umtausch ein, das Beschleunigen liest (in SQL), während sich verlangsamend (und) schreibt. Das bedeutet, dass eine denormalised Datenbank unter dem schweren schreibt, dass Last wirklich schlechtere Leistung anbieten kann als sein funktionell gleichwertiger normalisierter Kollege.

Ein denormalised Datenmodell ist nicht dasselbe als ein Datenmodell, das nicht normalisiert worden ist, und denormalisation nur stattfinden sollte, nachdem ein befriedigendes Niveau der Normalisierung stattgefunden hat, und dass irgendwelche erforderlichen Einschränkungen und/oder Regeln geschaffen worden sind, um sich mit den innewohnenden Anomalien im Design zu befassen. Zum Beispiel sind alle Beziehungen in der dritten normalen Form und irgendwelchen Beziehungen mit der Verbindungslinie, und mehrgeschätzte Abhängigkeiten werden passend behandelt.

Beispiele von denormalisation Techniken schließen ein:

  • Verwirklichte Ansichten, die den folgenden durchführen können:
  • Die Speicherung der Zählung "viele" Gegenstände in einer one-many Beziehung als ein Attribut "einer" Beziehung
  • Das Hinzufügen von Attributen zu einer Beziehung von einer anderen Beziehung, mit der es angeschlossen wird
  • Sterndiagramme, die auch bekannt als Modelle der Tatsache-Dimension sind und zu Schneeflocke-Diagrammen erweitert worden sind
  • Vorgebauter summarisation oder OLAP Würfel

Techniken von Denormalisation werden häufig verwendet, um die Skalierbarkeit von Webanwendungen zu verbessern.

Siehe auch


Design / Differenzialtopologie
Impressum & Datenschutz