sich die Konzepte des Datenwürfels auf Tabellen eines relationalen DBMS ab-
bilden lassen. Es ist allerdings auch möglich, den Würfel direkt in Form eines
mehrdimensionalen Arrays zu speichern. Beide Varianten werden wir im Fol-
genden genauer betrachten und vergleichen.
6.1.1 Relationale Implementierung – ROLAP
Die relationale Speicherung von Data-Warehouse-Daten basiert auf der di-
rekten Umsetzung von Star- bzw. Snowflake-Schema auf Relationen eines
RDBMS. Dieser Ansatz wird auch als ROLAP (für relationales OLAP) be-
zeichnet. ROLAP ist aufgrund der Verfügbarkeit und Performance von RDBMS
die verbreiteteste Form der Speicherung von Data-Warehouse-Tabellen. Tech-
niken zur Speicherung von Tabellen sind Inhalt von Vorlesungen und Bü-
chern zum Thema Datenbank-Implementierungstechniken, beispielsweise von
[HR99, SSH11], und werden daher an dieser Stelle nicht tiefer behandelt. Statt-
dessen fokussieren wir auf Besonderheiten von Data-Warehouse-Daten und de-
ren Umsetzung in RDBMS.
Besonderheiten der Data-Warehouse-Daten sind die sehr großen Faktenta-
bellen. Hier kann eine Beschleunigung der Zugriffe durch Partitionierung er-
folgen. Eine weitere Charakteristik ist durch die multidimensionalen Zugrif-
fe gegeben, für die spezielle Cluster- und Indexstrukturen entwickelt werden
müssen. Der dritte wichtige Punkt ist die spezielle Update-Charakteristik von
Datenwürfeln, die durch das reine „Anhängen“ von Daten anstelle beliebiger
Updates gekennzeichnet ist.
Spezielle Tabellentypen
Exemplarisch für spezielle Tabellentypen in einem RDBMS betrachten wir eini-
ge von dem DB2-System von IBM angebotene Varianten. Die Konzepte können
allerdings auch in anderen Systemen gefunden werden.
DB2 bietet drei spezielle Tabellentypen an, um Data-Warehouse-Systeme
effizient betreiben zu können:
Die Append-Mode-Tabellen sind optimiert für die schnelle Realisierung von
insert-Operationen. Die neuen Tupel werden dabei am Ende angefügt, oh-
ne Freispeicher auf Seiten zu berücksichtigen.
Die bereichsgeclusterten Tabellen (engl. range-clustered tables oder kurz
RCT) sind optimiert speziell für Sequenzdaten. Sequenzdaten zeichnen
sich durch ein Sequenzattribut aus, das fortlaufend vergeben wird und als
logischer Identifikator genutzt werden kann.
Die multidimensionalgeclusterten Tabellen (englisch multidimensional
clustering tables oder kurz MDC) erlauben eine geclusterte Speicherung in
mehreren Dimensionen.
154 6 Speicherung
Bereichsgeclusterte Tabellen
Bereichsgeclusterte Tabellen nutzen eine Sequenznummer (frei wählbares At-
tribut) als logische TID zur Ermittlung der physischen Speicheradresse. Die
Sequenznummern werden fortlaufend vergeben, sodass keine Lücken auftre-
ten. Damit ist eine Vorab-Allokation des gesamten Speicherplatzes der Tabelle
möglich. Ein Einfügen entspricht einem Einsortieren des Tupels über die Se-
quenznummer. Da die Sequenznummer die physische Adresse bestimmt, wird
bei einem Zugriff über die Sequenznummer kein zusätzlicher Index benötigt.
JBeispiel 6-1I Die folgende SQL-Deklaration zeigt die Definition einer be-
reichsgeclusterten Tabelle in DB2.
CREATE TABLE Bestellung (
BestellNr INT PRIMARY KEY, ...
) ORGANIZE BY KEY SEQUENCE
(BestellNr STARTING FROM 1 ENDING AT 10000)
2
Multidimensional-geclusterte Tabellen
In einem RDBMS können Tabellen üblicherweise maximal nach einem Attri-
but mit einem Index geclustert werden, die Clusterung ist eindimensional. Die
Verwendung von kompositen Indexattributen (Aneinanderhängen von Attri-
butwerten zur Indexgenerierung) führt nicht zu einer symmetrischen mehrdi-
mensionalen Clusterung.
Bei einer eindimensionalen Clusterung führt ein Scan über einen an-
deren Index im schlechtesten Fall zu einem Seitenzugriff pro Tupel. Die
multidimensional-geclusterten Tabellen haben das Ziel, Tupel mit gleichen
Werten bezüglich mehrerer Attribute (Dimensionen) im gleichen Speicherbe-
reich zu speichern. Die Speicherbereiche, genannt Blöcke, werden dann über
mehrere Blockindexe indexiert. Dies bezeichnet man auch als dünnbesetzte In-
dexe.
Abbildung 6.1 verdeutlicht die Speicherung multidimensional-geclusterter
Tabellen und den Einsatz mehrerer Indexe auf den Blöcken.
JBeispiel 6-2I Die folgende SQL-Anweisung zeigt exemplarisch das Anlegen
einer multidimensional-geclusterten Tabelle in DB2:
CREATE TABLE Verkauf (
Umsatz NUMBER,
Jahr INT,
Stadt VARCHAR(20),
...
) ORGANIZE BY DIMENSIONS (Stadt, Jahr)
6.1 Speicherung des Datenwürfels: Array vs. Relationen 155

Get Data Warehouse Technologien now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.