Title: Speichermodelle
1Speichermodelle
2Speichermodelle Ãœberblick
- 1. Relationale Speicherung (ROLAP)
- 1.1 Star Schema
- 1.2 Snowflake Schema
- 1.3 Mischformen
- 1.4 Darstellungsarten für Klassifikationshierarch
ien - 2. Multidimensionale Speicherung (MOLAP, HOLAP)
- 2.1 Datenstrukturen
- 2.2 Speicherung
- 2.3 Grenzen der Datenhaltung
- 2.4 HOLAP
- 3. Vergleich (ROLAP, MOLAP, HOLAP)
- 4. Fazit
31. Relationale Speicherung
- ROLAP Relational OLAP
- relationale Speicherung des multidimensionalen
Datenmodells - ? ermöglicht eine multidimensionale Analyse
auf einer relationalen Datenbank - Speicherung der aggregierten Daten in Relationen
- SQL als deskriptive Anfragesprache für das
Datenmodell - Anforderungen
- möglichst geringer Verlust an anwendungsbezogener
Semantik (multidimensionalen Modell, z.B.
Klassifikationshierarchien) - effiziente Ãœbersetzung multidimensionaler
Anfragen - effiziente Verarbeitung der übersetzten Anfragen
- einfache und schnelle Wartbarkeit der
relationalen Tabellen - (z.B. Laden neuer Daten)
41. Relationale Speicherung
- Faktentabelle
- relationale Speicherung eines Datenwürfels ohne
Klassifikationshierarchien - Dimensionen, Kennzahlen ? Spalten der Relation
- Zelle ? Tupel
- Abbildung der Klassifikationshierarchien
- ? Star-, Snowflake-Schema oder Mischformen
51. Relationale Speicherung 1.1 Star-Schema
- Faktentabelle
- eine (zentrale) Faktentabelle
- enthält (Geschäfts-) Daten, die analysiert werden
sollen - ? quantifizierende Daten
- Primärschlüssel zusammengesetzt aus
Fremdschlüsseln - kann sehr viele Zeilen enthalten
- Dimensionstabellen
- denormalisiert
- pro Dimension nur eine Tabelle
- enthalten Attribute ? qualifizierende Daten
- jede Dimensionstabelle hat einen Primärschlüssel
- kleiner als Faktentabelle
- Zusammenhang zur Faktentabelle über
Fremdschlüsselbeziehungen
61. Relationale Speicherung 1.1 Star-Schema
Beispiel
Zeit
Kunde
ZeitID Tag Woche Monat Quartal Jahr
KundenID KundenName Geschlecht Alter
1
1
Verkauf
n
n
KundenID ProduktID ZeitID GeoID
Anzahl Umsatz
Produkt
n
n
ProduktID Artikel Produktgruppe Produktfamilie Produktkategorie Bezeichnung Marke
Geografie
1
GeoID Filiale Ort Land Region
1
71. Relationale Speicherung 1.1 Star-Schema
- Vorteile
- einfache Struktur
- einfache und flexible Darstellung von
Klassifikationshierarchien - einfacher Aufbau der Dimensionstabellen
- effiziente Anfrageverarbeitung innerhalb der
Dimensionen (schnellerer Datenzugriff) - weniger teure Verbundoperationen
- Nachteile
- Faktentabelle normalisiert und Dimensionstabellen
denormalisiert - ? Redundanzen in Dimensionstabellen
?Änderungsanomalien
81. Relationale Speicherung 1.2 Snowflake-Schema
- Faktentabelle
- eine zentrale Faktentabelle
- verwaltet die Kennzahlen
- Dimensionsspalten bestehen aus Fremdschlüsseln
auf die Dimensionselemente der niedrigsten Stufe - Primärschlüssel zusammengesetzt aus
Fremdschlüsseln - Dimensionstabellen
- normalisiert
- für jede Klassifikationsstufe eigene Relation
- jede Dimensionstabelle besitzt einen
Primärschlüssel - enthalten Attribute
- Zusammenhang zur Faktentabelle über
Fremdschlüsselbeziehungen - Fremdschlüsselbeziehungen zwischen Dimensionen
91. Relationale Speicherung 1.2 Snowflake-Schema
Beispiel
Quartal
Monat
Kunde
n
QuartalID Bezeichnung JahrID
MonatID Bezeichnung QuartalID
KundenID KundenName Geschlecht Alter
Produktkategorie
n
1
1
1
ProduktkategorieID Bezeichnung
1
Tag
Jahr
1
TagID Bezeichnung MonatID WocheID
JahrID Bezeichnung
1
Produktfamilie
Verkauf
1
n
n
ProduktfamilieID Bezeichnung ProduktkategorieID
KundenID ArtikelID TagID FilialeID
Anzahl Umsatz
n
1
n
Woche
n
WocheID Bezeichnung JahrID
n
n
1
Produktgruppe
n
Filiale
ProduktgruppeID Bezeichnung ProduktfamilieID
Land
FilialeID Bezeichnung StadtID
n
1
n
LandID Bezeichnung
1
Artikel
1
ArtikeltID Bezeichnung ProduktgruppeID Marke
Region
Stadt
n
StadtID Bezeichnung RegionID
RegionID Bezeichnung LandID
n
1
1
n
1
101. Relationale Speicherung 1.2 Snowflake-Schema
- Vorteile
- normalisierte Struktur
- Vermeidung von Änderungsanomalien
- Tabellen der operativen Systeme bleiben von der
Struktur und dem Inhalt unverändert/unberührt - Nachteile
- Normalisierung
- hohe Anzahl an Tabellen
- erhöhte Zugriffskosten (höherer Join-Aufwand)
- schlechtere Performance
111. Relationale Speicherung 1.3 Mischformen (1)
- Star-vs. Snowflake-Schema
- Star-Schema - Redundanzen kein so großes
Problem - - selten Änderungen an Klassifikationen
- ? Änderungsanomalien kontrollierbar
- Einschränkungen für Anfragen finden häufig auf
höherer Granularitätsstufe statt - beim Snowflake-Schema jedes Mal teure
Verbundoperationen nötig - entfällt beim Star-Schema ? deutliche Steigerung
der Anfragegeschwindigkeit - Struktur der Klassifikationen (Hierarchien) wird
im Snowflake-Schema auch im Tabellennamen
widergespiegelt - im Starschema wird die gesamte Klassifikation als
eine Tabelle abgebildet - Fazit Welches Schema geeignet ist, hängt vom
Anwendungsprofil ab! -
- ? Mischform
121. Relationale Speicherung 1.3 Mischformen (2)
- 1. Factless Fact Tables
- Faktentabelle ohne Kenngrößen
- Verweis auf Dimensionen ? ausschließlich
Fremdschlüsselspalten - Datensätze repräsentieren Ereignisse, bei denen
keine weiteren Informationen, als das Ereignis
selbst, anfallen - Beispiel
Einrichtungen
Studenten
RaumNr
1
MatrNr Name Geschlecht Alter
1
Anwesenheit
Kurse
n
KursNr KursName
Datum RaumNr MatrNr KursNr LehrerNr
n
1
n
n
Zeit
n
Datum Tag Monat Quartal Jahr
1
Lehrer
1
LehrerNr LehrerName Gehalt
131. Relationale Speicherung 1.3 Mischformen (3)
- 2. Galaxie-Schema
- mehrere unabhängige Faktentabellen
- teilweise gemeinsame Nutzung von
Dimensionstabellen
Zeit
Produkt
Datum Tag Monat Quartal Jahr
Einkauf
ProduktID ProduktName ProduktGruppe
LieferantID ProduktID Datum FilialeID
Einkaufsmenge
Lieferant
LieferantID LieferantName LieferantenGrID LieferantenGr
Filiale
Verkauf
FilialeID Filiale Ort Land Region
KundenID ProduktID Datum FilialeID
Verkaufsmenge
Kunde
KundenID KundenName KundenGrID KundenGr
141. Relationale Speicherung 1.3 Mischformen (4)
- 3. Fact Constellation - Schema
- Speicherung vorberechneter Aggregate
- eigene Tabelle für aggregierte Kenngrößen (fact
constellation) - für jede Aggregationskombination eine eigene
Fakttabelle nötig - Trennung der aggregierten Werte von den atomaren
Werte - schnellerer Zugriff auf die Aggregationen
- mit der Anzahl der Dimensionen steigt die Anzahl
der Fakttabellen explosionsartig an - Modell sehr unübersichtlich und schwerer zu
handhaben - Beispiel Umsatz für eine Region
-
151. Relationale Speicherung 1.4 Darstellungsarten
für Klassifikationshierarchien (1)
- Horizontal
- Modellierung der Stufen der Klassifikationshierarc
hie als Spalten der denormalisierten
Dimensionstabelle - Vorteil
- Einschränkungen auf höherer Granularität ohne
Join - Nachteil
- Duplikateliminierung beim Anfragen bestimmter
Stufen, wie bspw. Produktgruppe in einer
Kategorie ? relativ teuer, da Sortierung
erforderlich
Produkt_ID Artikel Produktgruppe Produktfamilie Kategorie
1234 Lavamat S Waschmaschinen Waschgeräte weiße Ware
1235 Duett Waschmaschinen Waschgeräte weiße Ware
1236 Novotronic Trockner Waschgeräte weiße Ware
1237 Vento 500 Trockner Waschgeräte weiße Ware
161. Relationale Speicherung 1.4 Darstellungsarten
für Klassifikationshierarchien (2)
- Vertikal (rekursiv)
- Normalisierte Dimensionstabelle mit 2 Attributen
- Dimensions_ID ? Schlüssel, der die Beziehung zur
Faktentabelle schafft - Eltern_ID ? Attributwert der Dimensions-ID der
nächsthöheren Stufe - Vorteil
- einfache Änderung am Klassifikationsschema, da
Tabellenschema keine Informationen über
Klassifikationsschema hat - Nachteil
- mehrere teure Verbundoperationen für Anfragen
einzelner Stufen nötig
Dimensions_ID Eltern_ID
Lavamat S Waschmaschinen
Duett Waschmaschinen
Novotronic Trockner
Vento 500 Trockner
Waschmaschinen Waschgeräte
Trockner Waschgeräte
Waschgeräte weiße Ware
171. Relationale Speicherung 1.4 Darstellungsarten
für Klassifikationshierarchien (3)
- Verbindung der Horizontal-und Vertikal-Strategie
- Repräsentation der Klassifikationsstufen als
Spalten jedoch Stufen nicht mit den Namen der
Klassifikationsstufen benannt - zusätzliches Attribut Stufe zur Angabe, zu
welcher Stufe das Tupel gehört
Dimensions_ID Stufe1_ID Stufe2_ID Stufe3_ID Stufe
Lavamat S Waschmaschinen Waschgeräte weiße Ware 0
Duett Waschmaschinen Waschgeräte weiße Ware 0
Novotronic Trockner Waschgeräte weiße Ware 0
Vento 500 Trockner Waschgeräte weiße Ware 0
Waschmaschinen Waschgeräte weiße Ware NULL 1
Trockner Waschgeräte weiße Ware NULL 1
Waschgeräte weiße Ware NULL NULL 2
181. Relationale Speicherung 1.4 Darstellungsarten
für Klassifikationshierarchien (4)
- Problem
- bei allen genannten Abbildungsvarianten geht
Semantik verloren - Gründe für Semantikverluste
- Unterscheidung zwischen Kennzahl und Dimension
schwierig - (Attribute der Faktentabelle)
- Unterscheidung zwischen Attribute von
Dimensionstabellen - (beschreibend, Aufbau der Hierarchie) nicht
möglich - Aufbau der Dimensionen geht verloren
- Wie verlaufen Drill-Pfade?
- zusätzliches Attribut Stufe zur Angabe der
bezeichneten Klassifikationsstufe - Lösung
- Erweiterung des Systemkatalogs des relationalen
DBMS um Metadatentabellen für multidimensionale
Anwendungen
192. Multidimensionale Speicherung
- MOLAP Multidimensional OLAP
- multidimensionale Speicherung des
multidimensionalen Datenmodells - Speicherung der aggregierten Daten in speziellen
multidimensionalen Datenstrukturen - Verwendung unterschiedlicher Datenstrukturen für
Datenwürfel und Dimensionen - Speicherung basiert auf Arrays
- Ordnung der Dimension zur Adressierung der
Würfelzellen notwendig - basiert nicht auf SQL, sondern bedient sich
eigener Programmierschnittstellen - wird von speziell dafür entwickelte Datenbanken
ausgeführt - ? MDBMS
202. Multidimensionale Speicherung 2.1
Datenstrukturen (1)
- Dimension
- endliche, geordnete Liste von Dimensionswerten
- enthält Dimensionselemente und die höheren
Klassifikationsstufen - Dimensionswerte sind einfache unstrukturierte
Datentypen - (String, Integer, Date)
- Ordnung der Dimensionswerte notwendig
- (Ordnungszahlen ganze Zahlen)
-
212. Multidimensionale Speicherung 2.1
Datenstrukturen (2)
- Würfel
- n Dimensionen spannen n-dimensionaler Raum auf
- m Dimensionswerte einer Dimension teilen den
Würfel für diese Dimension in m parallele Ebenen - Zelle Schnittpunkt von n Ebenen eines
n-dimensionalen Würfels - Zelle eines n-dimensionalen Würfels wird
eindeutig über n-Tupel von Dimensionswerten
bestimmt - Zellen können eine oder mehrere Kennzahlen eines
zuvor definierten Datentyps aufnehmen - W ((D1, D2, ,Dn), (M1Typ1, , Mm Typm))
- Bsp. Verkauf ((Produkt, Filiale, Zeit),
(Anzahl integer, Umsatz long))
222. Multidimensionale Speicherung 2.2 Speicherung
(1)
- Array-Speicherung
- sequentielle Speicherung der Zellen des Würfels
in n-dimensionales Array - ? mehrdimensionaler Würfel in eine
eindimensionale Liste Linearisierung - Indizes des Arrays bilden Koordinaten der
Würfelzellen - Berechnungsvorschrift für den Array-Index der
Zelle z(x1, x2, ... xn) eines Würfels
D3
D1
D2
232. Multidimensionale Speicherung 2.2 Speicherung
(2)
1. Beispiel
- Adressberechnung in einem zweidimensionalen
Datenwürfel - D1 Produkt mit Werteliste (Hosen, Hemden,
Röcke, Kleider, Mäntel) - D2 Zeit mit Werteliste (Januar, Februar, März,
April) - Ordnungszahlen stehen in Klammern
- ges. Indexwerte
Hemden (2)
Hosen (1)
Röcke (3)
Kleider (4)
Mäntel (5)
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
Januar (1)
Februar (2)
März (3)
April (4)
242. Multidimensionale Speicherung 2.2 Speicherung
(3)
2. Beispiel
- 3-D Würfel
- Dimensionen D0, D1, D2
- Dimensionsgrößen D0 5, D1 4, D2 3
- ALL summierte Werte pro Dimension
- 3-D Vektor V (v0, v1, v2)
16
12
8
28
4
24
20
40
0
Reihenfolge der Würfelzellen in einem Array
252. Multidimensionale Speicherung 2.2 Speicherung
(4)
Probleme
- Zahl der Plattenzugriffe bei ungünstigen
Linearisierungsreihenfolgen - Reihenfolge der Dimensionen ist bei Definition
des Würfels zu beachten - Caching zur Reduzierung der Zugriffe notwendig
- Speicherung dünn besetzter Würfel (leere,
undefinierte Zellen) - ? beim Auslesen von Zellwerten müssen mehr
Blöcke/Seiten übertragen werden - leere Speicherblöcke/-seiten nicht physisch
ablegen
262. Multidimensionale Speicherung 2.3 Grenzen der
Datenhaltung
- Skalierbarkeitsprobleme aufgrund dünn besetzter
Datenräume - teilweise einseitige Optimierung auf schnelles
Lesen - Ordnung der Dimensionswerte wird bei
Array-Speicherung vorausgesetzt - ? erschwert Änderungen an den Dimensionen
- kein Standard für MDBMS ? Proprietär
- Spezialwissen für Erstellung und Wartung
erforderlich
272. Multidimensionale Speicherung 2.4 HOLAP
- Verbindung der Vorteile von ROLAP und MOLAP
- relational (Skalierbarkeit, Standard)
- multidimensional (analytische Mächtigkeit,
direkte OLAP-Unterstützung) - Speicherung
- historische Detaildaten ? Relationale Datenbank
- aggregierte Daten ? Multidimensionale Datenbank
- Zugriff erfolgt über die multidimensionale
Datenbank durch ein multidimensionales
Anfragewerkzeug - Aber
- umfassende Kenntnisse aus beiden Welten notwendig
- enormer Implementierungsaufwand
283. Vergleich ROLAP, MOLAP, HOLAP (1)
Vorteile
ROLAP MOLAP HOLAP
verwendet bewährte Datenbanktechnologie Standard-Abfragesprache (SQL) beliebige Skalierbarkeit effiziente Speicherung großer Datenmengen zahlreiche erfolgreiche DW-Lösungen basieren auf einer ROLAP-Architektur Antwortzeiten bei kleineren Datenmengen sehr gut effiziente multidimensionale Speicherstrukturen meist eigene, multidimensionale Abfragesprache, intuitiv verständlicher als SQL vereinigt das Beste aus ROLAP und MOLAP MDDB-System greift nicht mehr auf die operativen Systeme zu, sondern auf ein relationales DW
293. Vergleich ROLAP, MOLAP, HOLAP (2)
Nachteile
ROLAP MOLAP HOLAP
Standard-SQL für multidimensionale Analysen nur bedingt ausreichend schlechtere Performance (durch Datenredundanz kompensierbar) langen Antwortzeiten durch direkten Zugriff auf große Datenmengen proprietäre MDDB-Systeme werden eingesetzt, keine Abfragesprache als Standard definiert eingeschränktes Datenvolumen Schnittstelle zu einem RDBMS notwendig umfangreiche Kenntnisse über ROLAP und MOLAP enormer Implementierungs-Aufwand keine einheitliche OLAP-Abfragesprache
304. Fazit
- ROLAP gut für dünn besetzte Würfel
-
- setzt auf herkömmliche relationale Datenbanken
auf - Datenwürfel werden in mehrere flachen Tabellen
gemäß dem Star- Schema gespeichert - Unterstützung großer Datenmengen - Skalierbarkeit
- MOLAP gut für dicht besetzte Würfel
- effizientere Speicherung durch Array-Speicherung
- primär für aggregierte Daten relevant, weniger
zur Verwaltung von Detail-Fakten
31- Vielen Dank für die Aufmerksamkeit