Star-Schema

Ein Star-Schema ist eine Datenbank, die für analytisch orientierte Anwendungen wie Data Warehouses und dimensionalen Data Marts konzipiert ist. Der Entwurf umfasst eine oder mehrere Faktentabellen mit messbaren Daten, die mit mehreren Dimensionstabellen verbunden sind, die beschreibende Daten enthalten.
Warum ist das Star-Schema wichtig?
Entscheidungsunterstützende Datenbankanwendungen erfordern ein flexibles Design, das die gängigsten Abfragen unterstützt. Herkömmliche normalisierte Schemata erfordern mehr Tabellenverknüpfungen, die mehr Ressourcen verbrauchen und langsamer sind. Durch die Speicherung aller messbaren Fakten über eine Entität in einer einzigen Tabelle können die meisten der für eine analytische Anfrage erforderlichen Attribute aus einer einzigen Tabelle mit optionalen Joins zu Dimensionstabellen stammen. Die Effizienz wird durch die Anwendung von Filterprädikaten auf die Faktentabelle erhöht, so dass nur eine Teilmenge der Daten in die Verknüpfungen einbezogen wird und folglich weniger CPU und Speicherressourcen verbraucht werden.
Wenn das Unternehmen Online-Analytics-Processing-Würfel (OLAP-Würfel) verwendet, lässt sich das Star-Schema effektiv auf Abfragen abbilden, die den Würfel auffüllen.
Die Ursprünge des Star-Schema
Frühe Data Warehouses waren einfach Kopien von Transaktionsdatenbankschemata mit zusätzlichen Indizes zur Unterstützung analytischer Abfragen. Als Data-Warehouse-Architekten wie Ralph Kimball in den 1990er Jahren die Idee des dimensionalen Schemas entwickelten, um analytische Abfragen zu vereinfachen.
Star-Schema Beispiel
Als Einzelhändler würden Sie sich dafür interessieren, welche Produkte verkauft werden, wer sie kauft und wann. Um diese Fragen zu beantworten, ist eine Faktentabelle erforderlich, die mit den Dimensionen Produkte, Bestellungen und Kunden verknüpft ist. Im Folgenden werden einige typische Attribute dieser Tabellen beschrieben:
- FACT Tabe:
- Produkt-ID - verweist auf die Tabelle der Produktabmessungen
- Auftrags-ID - verweist auf die Tabelle Dimension
- Kunden-ID - Verknüpfung zur Tabelle Kunde
- Gesamtumsatz - Maßnahme
- Verkaufte Einheiten - Maßnahme
- DIMENSION Tabelle Aufträge enthält:
- Produkt-ID
- Details zur Bestellung
- DIMENSION Tabelle Kunden enthält:
- Kunden-ID
- Details zum Kunden
Der Nachteil des Star-Schema gegenüber der dritten Normalform
Ein vollständig normalisiertes Datenbankschema hat weniger doppelte Felder als ein Star-Schema , erfordert aber aufgrund der größeren Anzahl von Tabellen tendenziell komplexere Abfragen. Ein Third Normal Form-Datenbankschema benötigt weniger Speicherplatz, da es weniger Redundanzen aufweist. Beim Star-Schema dauert das Laden der Daten oft länger, da mehr Daten dupliziert werden und zusätzliche Indexspalten für Fremdschlüssel erforderlich sind.
Der Vorteil der Verwendung einer spaltenförmigen Datenbank mit einem Star-Schema
Eine spaltenorientierte Datenbank speichert die Datensätze einer relationalen Tabelle als Spalten, im Gegensatz zu einem traditionellen relationalen Datenbanksystem, das eine Tabellenzeile als eine einzelne Aufzeichnung speichert. Im Falle eines Star-Schema kann die Faktentabelle ziemlich umfangreich werden, wenn die Anzahl und Länge der Attribute über die Entität wächst. Die meisten Abfragen benötigen nur eine Handvoll von Attributfeldern aus der Faktentabelle. Der spaltenbasierte Ansatz greift nur auf diese wenigen Spalten zu, im Gegensatz zu einer zeilenbasierten Datenbank, bei der die gesamte Zeile in den Speicher geladen werden muss, bevor sie nach den erforderlichen Spaltenwerten durchsucht werden kann. Da die gesamte Zeile in der Regel wesentlich länger ist als die ausgewählten Spalten, ist der Speicherbedarf viel größer, was in der Regel zu langsameren Abfragen führt. Die spaltenorientierte Datenbank verfügt über einen eingebauten Primärschlüsselindex, der in der Regel die Sortierreihenfolge der Tabelle angibt, wodurch weiterer wertvoller Cache- und RAM-Speicherplatz eingespart wird. Unterm Strich ist die spaltenförmige Datenbankstruktur eine gute Ergänzung zum Star-Schema .
Actian Vector bietet Schema-Flexibilität
Die spaltenbasierte Vector-Datenbank kann für den Einsatz eines Star-Schema für Benchmark-Workloads wie TPC-D verwendet werden. Dies ist jedoch keine Voraussetzung, da Sie sich auch für ein denormalisiertes Schema mit allen Spalten in einer einzigen breiten Tabelle entscheiden können. Durch die Kombination von spaltenbasiertem Zugriff und Min-Max-Indizes können Abfragen gegen eine einzige große denormalisierte Tabelle für einige Arbeitslasten sehr effizient sein. Vector führt Abfragen immer noch schneller aus als herkömmliche Datenbanken, die einen Zeilenspeicher verwenden, unabhängig davon, ob Sie sich für ein Star-Schema, ein Snowflake-Schema, ein normalisiertes oder ein denormalisiertes Schema entscheiden.