Mehrdimensionale Modellierung und Operationen

Transcription

Mehrdimensionale Modellierung und Operationen
3. Mehrdimensionale Datenmodellierung
und Operationen
„ Grundlagen
– Kennzahlen,
e a e , Dimensionen,
e s o e , Cube
– Cuboide / Aggregationsgitter
– hierarchische Dimensionen / Konzepthierarchien
„ Cube-Operationen
C b O
i
„ Multi-dimensionale
Speicherung
p
g ((MOLAP))
„ MDX
„ Relationale
Repräsentation mehrdimensionaler Daten
(ROLAP)
–
–
–
–
Star-Schema
Star
Schema
Varianten: Snowflake-, Galaxien-Schema
Anfragen: Star Join, Roll-Up, Drill-Down
C b O
Cube-Operator,
t Rollup-Operator,
R ll O
t Grouping
G
i Sets
S t
SS08, © Prof. Dr. E. Rahm
3 -1
y
y
y
Kennzahlen
„ auch:
h
Fakten,
k
Meßgrößen,
ß ß Measures, Measured
d Facts
„ Kennzahl ist Größe mit konzentrierter Aussagekraft
g
zur
Diagnose, Überwachung und Steuerung eines Systems
– meist betriebswirtschaftliche Größen, z.B. Umsatz / Gewinn / Rentabilität
– komplexe Beziehungen zwischen Kennzahlen möglich
„ Kennzahlen
besitzen beschreibende Attribute
– z.B. Einheit, Wertebereich, Berechnungsvorschrift
„ Arten
von Kennzahlen
– additive Kennzahlen: additive Aggregation hinsichtlich aller Dimensionen
möglich
– semi-additive
i dditi Kennzahlen:
K
hl additive
dditi Aggregation
A
ti nur hinsichtlich
hi i htli h
ausgewählter Dimensionen möglich
– nicht-additive Kennzahlen ((Bsp.
p Durchschnittswerte,, Prozentanteile))
SS08, © Prof. Dr. E. Rahm
3 -2
y
y
y
Dimensionen
Sachsen
Bücher
Mit was?
Wo?
U
Umsatz
t = 67000 EUR
Wann?
...
1. Quartal
...
„
Zahlenwert einer Kennzahl ohne semantischen Bezug nichtssagend
„
Di
Dimensionen
i
setzen K
Kennzahlen
hl iin Bezug
B
zu Eigenschaften
Ei
h f / sachlichen
hli h Kriterien
Ki i
„
Dimension: Datentyp, i.a. endlich (z.B. Aufzählung)
–B
Beispiele:
i i l Menge
M
aller
ll Produkte,
P d kt Regionen,
R i
Kunden,
K d Zeitperioden
Z it i d etc.
t
– Dimensionselement: Element / Ausprägung / Wert zu einer Dimension
– Attribute: Klassifikations-/Kategorienattribute
Klassifikations /Kategorienattribute (inkl. eines
Primärattributs) sowie „dimensionale Attribute“ (zusätzliche
beschreibende Eigenschaften, z.B. Produktfarbe / Gewicht
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -3
Data Cube
„
D
Datenwürfel
ü f l bzw.
b
OLAP
OLAP-Würfel
Wü f l (Cube),
(C b ) Data
D Cube
C b
– Dimensionen: Koordinaten
– Kennzahlen: Zellen im Schnittpunkt der Koordinaten
„
Cube bezüglich Dimensionen D1, ...Dn und k Kennzahlen
(
(Fakten):
)
– W = { (d1, ... dn), (f1, ... fk), Dimensionselement di aus Di, i= 1.. n, Kennzahlen fj, j = 1..k)}
– eindeutige Zellen-Adresse: (d1, ... dn)
Region
Zellen-Inhalt:
Inhalt: (f1, ... fk)
– Zellen
„
„
„
Ost
n: Dimensionalität des Cube
Alternative: k Cubes mit je einer
Kennzahl pro Zelle (Multi-Cube)
typischerweise
yp
4 - 12 Dimensionen
– Zeitdimension fast immer dabei
– weitere Standarddimensionen:
Produkt, Kunde, Verkäufer, Region, Lieferant, ...
West
Nord
y
764
563
y
1Q
2Q
3Q
Zeit
SS08, © Prof. Dr. E. Rahm
3 -4
Süd
y
Sonstiges
PC
Video
Produkt
TV
4Q
y
y
y
Tabellen-Darstellung von Cubes
„
direkte Umsetzung für 2 Dimensionen (2D-Sicht auf Produkt x Region)
Zeit = „Quartal2“
Zeit = „Quartal1“
„
Ost
Süd
West
Produkt 1
34
87
60
88
Produkt 2
32
80
103
50
Produkt 3
14
73
60
Ost
Süd
West
Produkt 1
30
100
100
Produkt 2
40
110
Produkt 3
17
70
...
3 Dimensionen: mehrere 2D-Tabellen bzw.
geschachtelte Tabellen bzw. 3D-Cube
g
Quartal 1
Q
Quartal
t l2
Quartal 1
Quartal 2
Quartal 1
Quartal 2
Produkt 1
Produkt 2
Produkt 3
SS08, © Prof. Dr. E. Rahm
Ost
Süd
West
30
34
40
32
17
14
100
87
110
80
70
73
100
60
88
103
50
60
y
y
y
3 -5
Cube-Darstellung
Lieferant = „L2
L2“
Lieferant = „L1
L1“
Lieferant = „L3
L3“
Region
y
y
y
y
y
y
y
y
y
Produkt
Zeit
„
„
4D-Cube kann als Menge von 3D-Cubes dargestellt werden
allgemein: N
N-dimensionaler
dimensionaler Cube entspricht Menge von (N
(N-1)1)
dimensionalen Sub-Cubes oder Cuboiden („Quadern“)
– Basis-Cuboid: n-dimensionaler Cube
– Scheitel-Cuboid: 0-dimensionale Aggregation über alle Dimensionen
– aus Basis-Cuboid lassen sich Cuboiden geringerer Dimensionsanzahl ableiten ->
Data Cube entspricht Verband (Lattice) von Cuboiden
– N-dimensionaler Cube hat 2N Cuboiden inkl. Basis-Cuboid (ohne Berücksichtigung von
Dimensionshierarchien)
y
SS08, © Prof. Dr. E. Rahm
3 -6
y
y
Data Cube: 3D-Beispiel mit Aggregation
2Qtr
Zeit
3Qtr
4Qtr
Summe
West
Süd
Ost
Regio
on
TV
PC
VCR
Summe
1Qtr
Gesamtjahresabsatz
für TV in Region West
Summe
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -7
Zugehörige Cuboiden (Aggregationsgitter)
All
Zeit
Zeit,
Produkt
0 D (Scheitel) Cuboid
0-D
Produkt
Zeit,
Region
1-D Cuboiden
Produkt,
P
d kt
Region
2 DC
2-D
Cuboiden
b id
3 D (Basis)
3-D
(Basis)-Cuboid
Cuboid
Zeit Produkt
Zeit,
Produkt, Region
SS08, © Prof. Dr. E. Rahm
Region
3 -8
y
y
y
Cube: Verband von Cuboiden
All
0 D(Scheitel) Cuboid
0-D(Scheitel)
Produkt
Region
Zeit
g
Zeit,, Produkt Zeit, Region
Liefe t
Lieferant
g
Produkt,, Region
Zeit, Lieferant
1 DC
1-D
Cuboiden
b id
Region,
g , Lieferant
2-D Cuboiden
Produkt, Lieferant
Zeit,Region,Lieferant
Product, Region,
Lieferant
Zeit,Produkt,Lieferant
Zeit, Produkt,
Region
Zeit Produkt
Zeit,
Produkt, Region,
Region Lieferant
SS08, © Prof. Dr. E. Rahm
3-D Cuboiden
4 D (Basis)
4-D
(Basis)-Cuboid
Cuboid
y
y
y
3 -9
Dimensionshierarchien (Konzepthierarchien)
„
hä fi hi
häufig
hierarchische
hi h B
Beziehungen
i h
zwischen
i h Di
Dimensionsobjekten
i
bj k
– Top-Level pro Hierarchie für alle Dimensionselemente (Gesamt, Top, All)
– Primärattribut: unterste (genaueste) Stufe
– funktionale Abhängigkeiten zwischen Primärattribut und
Klassifikationsattributen
f
höherer Stufen
„
Beispiele
Zeit
Produkt
Region
Gesamt
Gesamt
Gesamt
Jahr
Branche
Kontinent
Quartal
Produktgruppe
Land
Monat
Produktfamilie
Bezirk
Tag
SS08, © Prof. Dr. E. Rahm
Produkt
Ort
3 -10
y
y
y
Beispiel einer Konzepthierarchie (Region)
„
einfache
f h Hierarchie
H
h (pro
(
El
Element höchstens
hö h
ein
i übergeordnetes
üb
d
Element) vs. parallele Hierarchie bzw. Halbordnung
abgeleitete (verdichtete)
Elemente
Region (Gesamt)
Gebiet
Ort
Ost
Leipzig
Basiselemente
(unabhängige Dimensionselemente)
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -11
Konzepthierarchien (3)
„
Hi
Hierarchien:
hi auf Schemaebene meist durch Klassifikationsattribute und
deren funktionalen Abhängigkeiten gegeben
„
Variante: Hierarchiebildung durch Wertegruppierungen /
Diskretisierungen („Set-grouping Hierarchies“)
– können Auswertungen vereinfachen
– günstige Einteilungen auf Basis vorhandener Werte teilweise automatisch berechenbar
Alter (Gesamt)
mittel
0-30 (jung)
0-15
SS08, © Prof. Dr. E. Rahm
16-30
31-40
3 -12
...
alt
...
y
y
y
Cube mit hierarchischen Dimensionen
Ort
Land
Prod kt
Produkt
Gesamt
Region
Monat
•••
Quartal
Z it
Zeit
Jahr
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -13
Operationen auf Cubes
„
Sli Herausschneiden
Slice:
H
h id von „Scheiben“
S h ib “ aus dem
d Würfel
Wü f l durch
d h
Einschränkung (Selektion) auf einer Dimension
– Verringerung der Dimensionalität
„
Dice: Herausschneiden
Di
H
h id einen
i
„Teilwürfels“
T il
f l “ durch
d h Selektion
S l k i auff mehreren
h
Dimensionen
„ unterschiedlichste mehrdimensionale Aggregationen
gg g
/ Gruppierungen
pp
g
„ Pivot (Austausch von Dimensionen), Sortierung, Top-n-Anfragen, ...
Zeit
Region
RegionalRegional
leiter-Sicht
ControllerSicht
Produkt
Umsatzdaten
Produktleiter-Sicht
SS08, © Prof. Dr. E. Rahm
Ad-HocSicht
3 -14
y
y
y
Beispiele: Slice / Pivot
Quelle:
Q
ll JJ. H
Han, M
M. K
Kamber:
b D
Data
t
Mining,Morgan Kaufmann, 2001
SS08, © Prof. Dr. E. Rahm
3 -15
y
y
y
Beispiel: Dice
SS08, © Prof. Dr. E. Rahm
3 -16
y
y
y
Navigation in Hierarchien
„
D ill D
Drill-Down
– Navigation nach „unten“ in der Hierarchie
g
von verdichteten Daten zu weniger
g verdichteten/aggregierten
gg g
– Erhöhungg des Detailgrad:
Daten
„
Roll-Up (Drill-Up)
– Navigation nach „oben
oben“ in der Hierarchie
– von weniger verdichteten (aggregierten) Daten zu stärker verdichteten Daten
Roll-Up
Region
g
((Gesamt))
Land
Ort
Drill-Down
Drill across
SS08, © Prof. Dr. E. Rahm
3 -17
y
y
y
Roll-Up
SS08, © Prof. Dr. E. Rahm
3 -18
y
y
y
Drill-Down
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -19
Drill-Down / Roll-Up (2D)
Produktgruppe
Ost
Süd
Nord
West
Elektronik
1800
1500
1450
2000
Spielwaren
500
1700
600
1500
Kleidung
1200
1200
400
1000
Drill Down
Drill-Down
SS08, © Prof. Dr. E. Rahm
R ll U
Roll-Up
Elektronik
Ost
TV
DVD-Player
Camcorder
800
500
300
3 -20
Süd
Nord
West
y
y
y
Aggregation: 2D-Beispiel
„
„
„
S
Summenbildung
bild
Produktgruppe
Ost
Süd
Nord
West
Summe
Elektronik
1800
1500
1450
2000
6750
Spielwaren
500
1700
600
1500
4300
Kleidung
1200
1200
400
1000
3800
Summe
3500
4400
2450
4500
14850
Vorberechnung (Materialisierung) der Aggregationen zur
schnellen Beantwortung von Aggregationsanfragen
hoher Speicher- und Aktualisierungsaufwand (bei vielen
Dimensionselementen) ermöglicht nur kleinen Teil benötigter
Aggegationen vorzuberechnen
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -21
Größe der Cubes
„
G öß dder B
Größe
Basis-Cuboids
i C b id
– Anzahl der Zellen entspricht Produkt der Dimensionskardinalitäten Di , i=1..n
– Beispiel: 1.000 Tage, 100.000 Produkte, 1 Million Kunden
– jede weitere Dimension, z.B. Region oder Verkäufer, führt zu einer Vervielfachung des Datenraumes
„
„
Vorberechnung von (aggregierten) Cuboiden erhöht Speicherbedarf
Größe eines hierarchisch aggregierten Cubes
– Aggregierung
A
i
f jedes
für
j d Dimensionselement
Di
i
l
auff einer
i
h h
höheren
Hi
Hierarchiestufe
hi
f möglich
li h
– Kombinationsmöglichkeit mit jedem Element auf einer der Hierarchiestufen der anderen n-1 Dimensionen
„
n
T = ∏ ( Li + 1)
i =1
Anzahl Cuboiden bei n-dimensionalem Cube:
Li: #Ebenen von Dimension i (ohne Top-Level)
Kunde
Produkt
Zeit
Gesamt
1
Gesamt
1
Q t l
Quartal
12
B
Branche
h
50
Monat
36
Produktgruppe
Tag
SS08, © Prof. Dr. E. Rahm
1000
5.000
Gesamt
K d
Kundengruppe
Einzelkunde
1
10 000
10.000
1 Million
100 000
100.000
Produkt
3 -22
y
y
y
Umsetzung des multi-dimensionalen Modells
„
A k
Aspekte
– Speicherung der Daten
g der Operationen
p
– Formulierungg / Ausführung
„
MOLAP: Direkte Speicherung in multi-dimensionalen
Speicherungsstrukturen
– Cube-Operationen einfach formulierbar und effizient ausführbar
– begrenzte Skalierbarkeit auf große Datenmengen
„
ROLAP: relationale Speicherung der Daten in Tabellen
– effiziente Speicherung sehr großer Datenmengen
– umständliche Anfrageformulierung
– Standard-SQL
St d d SQL nicht
i ht ausreichend
i h d (nur
(
1-dimensionale
1 di
i l Gruppierung,
G
i
...))
„
HOLAP: hybride Lösung
– relationale Speicherung der Detail
Detail-Daten
Daten, multidimensionale Zugriffsschnittstelle
– unterschiedliche Kombinationen mit multidimensionaler Speicherung / Auswertung von
aggregierten Daten
„
Vorberechnung von Aggregationen erforderlich für ausreichende
Leistung
SS08, © Prof. Dr. E. Rahm
3 -23
y
y
y
Multi-dimensionale Datenspeicherung
„
D
Datenspeicherung
i h
in
i multi-dimensionaler
l i di
i l Matrix
M i
– direkte Umsetzung der logischen Cube-Sicht
p
g der Kennzahlen basierend auf dem Kreuzprodukt
p
aller
– Vorab-Berechnungg und Speicherung
Wertebereiche der Dimensionen
– schneller direkter Zugriff auf jede Kennzahl über Indexposition (x1, x2, ... xn)
multi-dimensional (Kreuztabelle)
TV
DVD-Player
Camcorder
relational
Sachsen
Brandenburg
Thüringen
100
50
20
150
170
120
200
150
100
Produkt
TV
Camcorder
Region
Brandenburg
Sachsen
...
...
Umsatz
150
20
...
Anfragen:
- Wie hoch ist der Umsatz für DVD-Player in Thüringen
- Wie hoch ist der Gesamtumsatz für Camcorder?
SS08, © Prof. Dr. E. Rahm
3 -24
y
y
y
Multi-dimensionale Datenspeicherung (2)
„
mehrdimensionale
h di
i l Speicherung
S i h
führt
füh oft
f zu dünn
dü besetzten
b
Matrizen
M i
„ Beispiel (Kundenumsätze nach Regionen)
multi-dimensional (2-dimenstional)
relational
REGION
Kunde
B
Kunde 1 100
Kunde 2
Kunde 3
Kunde 4
Kunde 5
„
Kunde 6
Kunde 7
Kunde 8
Kunde 9
-
S
50
-
NRW SH BW
150
200
170
-
SA
20
-
MVP HH TH
100
120
100
-
Kunden Region Umsatz
Kunde 1
B
100
Kunde 2 NRW
150
Kunde 3
BW
200
Kunde 4
S
50
Kunde 5
SH
170
Kunde 6
TH
100
K d 7
Kunde
SA
20
Kunde 8 MVP
120
Kunde 9
HH
100
„
vollständig besetzte Matrizen i.a. nur für höhere Dimensionsebenen
„ Unterstützung dünn besetzter Matrizen erforderlich (Leistungseinbussen)
– Zerlegung eines Cubes in Sub-Cubes („chunks“), die in Hauptspeicher passen
– zweistufige Adressierung: Chunk-Id, Zelle innerhalb Chunk
SS08, © Prof. Dr. E. Rahm
3 -25
y
y
y
Sprachansatz MDX*
„ MDX:
MultiDimensional eXpressions
– Microsoft-Spezifikation für Cube-Zugriffe / Queries im Rahmen von OLE
DB for
f OLAP
– an SQL angelehnt
– Extraktion von aggregierten Sub
Sub-Cubes
Cubes / Cuboiden aus Cubes
„ Unterstützung
durch Microsoft und zahlreiche Tool-
Anbieter
„ Hauptanweisung
SELECT
[< i
[<axis_specification>
ifi ti > [,
[ <axis_specification>...]]
< i
ifi ti > ]]
FROM
[<cube_specification>]
[WHERE [[<slicer
slicer_specification
specification>]]
]]
– Axis_specification: Auszugebende Dimensionselemente
– 5 vordefinierte Achsen: columns, rows, pages, chapters, and sections
– Slicer: Auswahl der darzustellenden Werte
* http://msdn.microsoft.com/en-us/library/ms145506.aspx
SS08, © Prof. Dr. E. Rahm
3 -26
y
y
y
MDX: Beispiele
SELECT Region.CHILDREN ON COLUMNS,
Produkt.CHILDREN ON ROWS
FROM Verkauf
WHERE (Umsatz, Zeit.[2007])
SELECT Measures.MEMBERS ON COLUMNS,
TOPCOUNT(Filiale.Ort.MEMBERS, 10, Measures.Anzahl) ON ROWS
FROM
Verkauf
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -27
ER-Diagramm eines multi-dimensionalen
Datenmodells
Datum-ID
KundenNr
KundenName
Tag
Zeit
Kunde
Monat
Geschlecht
Jahr
Verkauf
Anzahl
ProduktNr
ProduktName
Produkt
Filialen
Ort
L d
Land
Produktgruppe
SS08, © Prof. Dr. E. Rahm
Fname
Umsatz
3 -28
y
y
y
Relationale Speicherung: Star-Schema
„
Faktentabelle
F
k
b ll bildet
bild Zentrum
Z
des
d Star-Schemas
S S h
und
d enthält
häl di
die Detail-Daten
D il D
mit den zu analysierenden Kennzahlen
„ 1 Dimensionstabelle pro Dimension, die nur mit Faktentabelle verknüpft ist
(-> sternförmige Anordnung der Tabellen)
Zeit
Kunde
KundenNr
KundenName
Geschlecht
Alter
Produkt
ProduktNr
P
d ktN
ProduktName
Produkttyp
Branche
Hersteller
Farbe
Preis
1
Datum
Tag
Monat
Quartal
Jahr
1
n
Verkauf n
KundenNr
ProduktNr
Datum
Filiale
Filialen
Anzahl
Umsatz
n
n
1
1
Dimensionstabelle
Faktentabelle
Dimensionstabelle
SS08, © Prof. Dr. E. Rahm
Fname
Ort
Land
Region
y
y
y
3 -29
Beispielausprägungen
Verkauf
FName
Leipzig4
...
Datum
Filiale
ProduktNr
KundenNr
Anzahl
Umsatz
7654
...
Leipzig4
...
1847
...
4711
...
1
...
48549
...
Filialen
Ort
Land
Leipzig
Sachsen
...
...
KundenNr
4711
...
Region
Ost
...
Kunde
Name
Geschlecht
Weber
M
...
...
Alter
39
...
Zeit
Datum
7654
...
ProduktNr
1847
...
SS08, © Prof. Dr. E. Rahm
Tag
25
...
Produktname
Passat XY
...
Monat
April
...
Produkt
P
d kt
Produkttyp
Auto
...
3 -30
Jahr
2005
...
Quartal
2
...
Hersteller
VW
...
...
...
Farbe
Blau
...
Preis
27999
...
y
y
y
Star-Schema (2)
„ Formale
l
Definition:
fi i i
Star-Schema
S S h
bbesteht
h aus einer
i
Menge
von Tabellen D1, ...Dn, F mit
– Dimensionstabellen Di bestehend aus (i.a. künstlichen) Primärschlüssel di und
Dimensionsattributen
– Faktentabelle F bestehend aus Fremdschlüsseln d1, ... dn sowie Meßgrößen
(Kennzahlen) als weiteren Attributen
– Die Dimensionstabellen sind i.a. denormalisiert, d.h. nicht in dritter Normalform
„ Beobachtungen
– Anzahl der Datensätze in Faktentabelle entspricht Anzahl der belegten Zellen einer
multi-dimensionalen Matrix
– leere Dimensionskombinationen unproblematisch, da nur relevante Kombinationen
in der Faktentabelle auftreten.
– dennoch oft riesige Faktentabellen
– Dimensionstabellen vergleichsweise klein, teilweise jedoch auch umfangreich
(Kunden, Artikel etc.)
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -31
Snowflake-Schema
„
„
explizite
li it Repräsentation
R ä t ti der
d Dimensionshierarchien
Di
i hi
hi
normalisierte Dimensionstabellen
– leicht geringere Redundanz,
Redundanz geringerer Änderungsaufwand
– erhöhte Zugriffskosten (höherer Join-Aufwand)
„
Star-Schema ist Snowflake-Schema meist vorzuziehen
Kunde
KundenNr
KundenName
K
ndenName
Geschlecht
Alter
Produkt
ProduktNr
PGruppe
Produktgruppe
Branche
ProduktName
Produkttyp
Hersteller
Farbe
Preis
SS08, © Prof. Dr. E. Rahm
MonatQ
Zeit
Verkauf
KundenNr
ProduktNr
Datum
Filiale
Anzahl
Umsatz
Faktentabelle
3 -32
Datum
Tag
Monat
Jahr
Monat
Quartal
Filialen
OrtL
Fname
Ort
Ort
Land
Land
Region
y
y
y
Galaxien-Schema
„
D W
Data
Warehouses
h
bbenötigen
öi
meist
i mehrere
h
Faktentabellen
F k
b ll
-> Multi-Star-Schema (Galaxien-Schema, „Fact Constellation Schema“)
„
gemeinsame
i
Nutzung
N t
von Dimensionstabellen
Di
i t b ll
„ Speicherung vorberechneter Aggregate
– separate
t Faktentabelle
F kt t b ll
– im Rahmen der Faktentabelle mit Detail-Daten
Zeit
Kunde
Verkauf
Filiale
SS08, © Prof. Dr. E. Rahm
Ei k f
Einkauf
Lieferant
Produkt
3 -33
y
y
y
Behandlung von Änderungen in Dimensionen
„ Änderungsarten
Ä d
– neue Dimensionselemente (z.B. neue Produktversion)
– Änderung von Werten zu einem Dimensionselement (z
(z.B.
B neuer
Familienstand/Wohnort von Kunden)
– neue Hierarchiestufe einer Dimension
– neue Dimension
Di
i
„ Behandlung
auf Schema-Ebene (Schema-Evolution) oder
Tupel Ebene
Tupel-Ebene
„ Änderung von Dimensionselementen
– Lösung 1: Überschreiben der alten Werte (Auswertungen für ältere Zeiträume sind
verfälscht)
– Lösungg 2: Versionierung
g von Dimensionselementen auf Tupel-Ebene,
p
, z.B.
erweiterte Schlüsselwerte
– Lösung 3: Versionierung auf Schema-Ebene (Neue Zeitattribute für Gültigkeitszeit,
Änderungszeit)
SS08, © Prof. Dr. E. Rahm
3 -34
y
y
y
Anfragen auf dem Star-Schema
„
S J i
Star-Join
– sternförmiger Join der (relevanten) Dimensionstabellen mit der Faktentabelle
– Einschränkungg der Dimensionen
– Verdichtung der Kennzahlen durch Gruppierung und Aggregation
„
Allgemeine Form
aggregierte Kennzahlen
select
f
from
where
g1, ... gk, agg(f1), ... agg (fm)
D1, ..., Dn, F
<Selektionsbedingung auf D1> and
... and
<Selektionsbedingung
Selektionsbedingung auf Dn> and
D1.d1 = F.d1 and
... and
Dn.dn = F.dn
group b
by g1, ... gk
sort by ...;
SS08, © Prof. Dr. E. Rahm
Relationen des Star-Schemas
Join-Bedingungen
Ergebnis-Dimensionalität
3 -35
y
y
y
Beispiel eines Star-Join
„
IIn welchen
l h Jahren
J h
wurden
d von weiblichen
ibli h Kunden
K d in
i Sachsen
S h
im
i
1. Quartal die meisten Autos gekauft?
select
from
where
group by
order by
z.Jahr as Jahr, sum (v.Anzahl) as Gesamtzahl
Filialen f,
f Produkt p,
p Zeit z,
z Kunden k,
k Verkauf v
z.Quartal = 1 and k.Geschlecht = ’W’ and
p.Produkttyp = ’Auto’ and f.Land = ’Sachsen’ and
v.Datum = z.Datum and v.ProduktNr = p.ProduktNr and
v.Filiale = f. FName and v.KundenNr = k.KundenNr
z Jahr
z.Jahr
Gesamtzahl Descending;
SS08, © Prof. Dr. E. Rahm
Jahr
Gesamtzahl
2004
2005
2003
745
710
650
3 -36
y
y
y
Mehrdimensionale Aggregationen mit Group-By
„
A ib
Attributanzahl
hl in
i group by-Klausel
b Kl
l bbestimmt
i
Di
Dimensionalität
i li ä
select Hersteller, Jahr, sum (Anzahl) as Anzahl
from Verkauf v, Produkt p, Zeit z
where v.ProduktNr = p.ProduktNr and
v Datum= z.Datum
v.Datum
z Datum and p.Produkttyp
p Produkttyp = ’Auto’
Auto
group by Hersteller, Jahr;
select Hersteller,
Hersteller sum (Anzahl) as Anzahl
from Verkauf v, Produkt p
where v. Produkt = p. ProduktNr and
and p.
p Produkttyp = ’Auto’
group by Hersteller;
select
l t sum (Anzahl)
(A hl) as Anzahl
A hl
from Verkauf v, Produkt p
where v. Produkt = p. ProduktNr and
p. Produkttyp = ’Auto’;
SS08, © Prof. Dr. E. Rahm
Hersteller
Jahr
Anzahl
VW
VW
VW
Opel
...
BMW
Ford
Ford
Ford
2003
2004
2005
2003
...
2005
2003
2004
2005
22.000
000
3.000
3.500
1 000
1.000
...
1.500
1.000
1.500
2.000
Hersteller
Anzahl
VW
Opel
Ford
BMW
8.500
3.500
4.500
3.000
Anzahl
19.500
y
y
y
3 -37
Relationale Speicherung aggregierter Werte
„
K
Kreuztabelle
b ll (Crosstab-Darstellung)
(C
bD
ll )
Jahr
Hersteller
VW
Opel
BMW
Ford
Σ
2003
2004
2005
Σ
2.000
1 000
1.000
500
1.000
4 500
4.500
3.000
1 000
1.000
1.000
1.500
6 500
6.500
3.500
1 500
1.500
1.500
2.000
8 500
8.500
8.500
3 500
3.500
3.000
4.500
19 500
19.500
SS08, © Prof. Dr. E. Rahm
3 -38
„
relationale Darstellung (2D-Cube)
Hersteller
Jahr
Anzahl
VW
VW
VW
Opel
Opel
p
Opel
BMW
BMW
BMW
Ford
Ford
Ford
VW
Opel
BMW
Ford
ALL
2003
2004
2005
2003
2004
2005
2003
2004
2005
2003
2004
2005
ALL
ALL
ALL
ALL
2003
2.000
3.000
3.500
1.000
1.000
1.500
500
1.000
1 500
1.500
1.000
1.500
2.000
8.500
3.500
3.000
4.500
4.500
ALL
ALL
ALL
2004
2005
ALL
6.500
8.500
19.500
y
y
y
Materialisierung von Aggregaten
create table Auto2DCube (Hersteller varchar (20), Jahr integer, Anzahl integer);
insert into Auto2DCube
(select p.Hersteller, z.Jahr, sum (v. Anzahl)
from Verkauf v, Produkt p, Zeit z
where v.ProduktNr = p.ProduktNr and p.Produkttyp = ’Auto’ and v.Datum = z.Datum
group by z.Jahr, p.Hersteller)
union
(select p.Hersteller, ALL, sum (v.Anzahl)
f
from
V k f v, P
Verkauf
Produkt
d kt p
where v.ProduktNr = p.ProduktNr and p.Produkttyp = ’Auto’
group by p. Hersteller)
union
(select ALL, z. Jahr, sum (v.Anzahl)
from Verkauf v, Produkt p, Zeit p
where v.ProduktNr = p ProduktNr and p.Produkttyp = ’Auto’ and v.Datum = z.Datum
group by z. Jahr)
union
(select ALL, ALL, sum (v.Anzahl)
f
from
V k f v, P
Verkauf
Produkt
d kt p
where v.ProduktNr = p. ProduktNr and p.Produkttyp = ’Auto’);
SS08, © Prof. Dr. E. Rahm
3 -39
y
y
y
Cube-Operator
„
SQL-Erweiterung
SQL
E i
um CUBE-Operator
CUBE O
fü
für n-dimensionale
di
i l
Gruppierung und Aggregation
– Syntax: Group By CUBE (D1, D2, ... Dn)
– generiert als Ergebnis eine Tabelle mit aggregierten Ergebnissen (ALL-Tupel)
– implementiert in MS SQL-Server, DB2, Oracle
„
erspart mehrfache Berechnung der Aggregationen
– erspart 2n union-Anfragen (bei n Attributen in der group by-Klausel / n Dimensionen)
– einfache Formulierung von Anfragen
– effiziente Berechenbarkeit durch DBS (Wiederverwendung von Zwischenergebnisse)
„
Beispiel
select p. Hersteller, z. Jahr, k.Geschlecht, sum (v. Anzahl)
from Verkauf v, Produkt p, Zeit z, Kunde k
where v.ProduktNr = p. ProduktNr
and p.Produkttyp = ’Auto’ and v.Datum = z.Datum
group by cube (p.Hersteller, z.Jahr, k.Geschlecht);
SS08, © Prof. Dr. E. Rahm
3 -40
y
y
y
3D-Cube in relationaler Form
Hersteller
VW
VW
VW
VW
VW
...
Opel
Opel
...
BMW
...
Jahr
2003
2003
2004
2004
2005
...
2003
2003
...
...
...
Geschl
m
w
m
w
m
...
m
w
...
...
...
SS08, © Prof. Dr. E. Rahm
Anzahl
1300
700
1900
1100
2300
...
800
200
...
...
...
CUBE
Hersteller
VW
VW
...
VW
...
Ford
VW
...
Ford
ALL
...
VW
...
ALL
...
ALL
...
ALL
Jahr
2003
2003
...
2003
...
2005
ALL
...
ALL
2001
...
ALL
...
2001
Geschl
m
w
...
ALL
ALL
ALL
m
...
w
m
Anzahl
1300
700
...
2.000
...
2.000
5.400
...
...
...
ALL
8.500
ALL
...
ALL
m
...
ALL
ALL
19 500
19.500
y
y
y
3 -41
Cube-Aggregatgitter
Dimensionalität
(ALL ALL
(ALL,
ALL, ALL)
(Hersteller, ALL, ALL)
(Hersteller Jahr
(Hersteller,
Jahr, ALL)
(ALL, Jahr, ALL)
(Hersteller ALL
(Hersteller,
ALL, Geschlecht)
0
(ALL, ALL, Geschlecht)
(ALL Jahr
(ALL,
Jahr, Geschlecht)
1
2
(Hersteller Jahr
(Hersteller,
Jahr, Geschlecht)
3
„
„
niedrig-dimensionale Aggregate / Cuboiden können aus höherdimensionalen abgeleitet werden
Materialisierung / Caching häufiger benutzter Aggregate
ermöglicht Anfrageoptimierung
SS08, © Prof. Dr. E. Rahm
3 -42
y
y
y
ROLLUP-Operator
„
CUBE O
CUBE-Operator:
iinter-dimensionale
di
i l Gruppierung
G
i
/ Aggregierung
A
i
– generiert Aggregate für alle 2n Kombinationsmöglichkeiten bei n
Dimensionen
– zu aufwendig für Roll-Up / Drill-Down innerhalb einer Dimension
„
ROLLUP Operator: intra-dimensionale
ROLLUP-Operator:
intra dimensionale Aggregierung
„
ROLLUP zu a1, a2, ... , an, f ()
liefert nur die Cuboide
a1,, a2,, ... , an-1,, ALL,, f (),
...
a1, ALL, ... , ALL, f (),
ALL ALL
ALL,
ALL, ... , ALL,
ALL f ()
„
Reihenfolge der Attribute relevant!
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -43
ROLLUP-Operator: Beispiel
select
l p. Hersteller,
H
ll p. Marke,
M k p.Farbe,
F b sum (v.
( Anzahl)
A hl)
from Verkauf v, Filiale p
where v.ProduktNr
v ProduktNr = p.
p ProduktNr
and p.Hersteller in („VW“,“Opel“)
group by rollup (p.Hersteller, p.Marke, p.Farbe);
SS08, © Prof. Dr. E. Rahm
(ALL, ALL, ALL)
0
(Hersteller, ALL, ALL)
1
(H t ll M
(Hersteller,
Marke,
k ALL)
2
(Hersteller, Marke, Farbe)
3
3 -44
y
y
y
ROLLUP-Beispiel
Hersteller Marke Farbe Anzahl
800
VW
Passat
rot
600
VW
Passat weiß
blau
600
VW
Passat
VW
Golf
rot
1.200
VW
Golf
weiß
800
VW
Golf
blau
1.000
VW
...
rot
1.400
...
...
...
...
Opel
Vectra
rot
400
Opel
Vectra weiß
300
Opel
Vectra blau
300
...
...
SS08, © Prof. Dr. E. Rahm
ROLLUP
Hersteller
VW
VW
VW
VW
VW
VW
VW
...
Opel
Opel
Opel
...
VW
Marke
Passat
Passat
Passat
Golf
Golf
Golf
...
...
Vectra
Vectra
Vectra
...
Passat
Farbe
rot
weiß
blau
rot
weiß
blau
rot
...
rot
weiß
blau
Anzahl
800
600
600
1.200
800
1.000
1.400
...
400
300
300
ALL
2.000
VW
Golf
ALL
3.000
VW
...
ALL
3.500
Opel
Vectra
ALL
1.600
Opel
...
ALL
...
VW
ALL
ALL
8.500
Opel
ALL
ALL
3.500
ALL
ALL
ALL
12 000
12.000
y
y
y
3 -45
Grouping Sets
„
mehrere
h
G
Gruppierungen
i
pro A
Anfrage
f
GROUP BY GROUPING SETS ( <Gruppenspezifikationsliste> )
pp p
((<Gruppenspezifikationsliste>
pp p
)|
Gruppenspezifikation:
CUBE <Gruppenspezifikationsliste> |
ROLLUP <Gruppenspezifikationsliste>
leere Spezifikationsliste ( ) möglich: Aggregation über gesamte Tabelle
„
Beispiel
select p. Hersteller, p.Farbe, sum (v. Anzahl)
from Verkauf v, Produkt p
where
h
v.ProduktNr
P d ktN = p. P
ProduktNr
d ktN and
d
p.Hersteller in („VW“,“Opel“)
group by grouping sets ((p.Hersteller), (p.Farbe));
„
Hersteller
Farbe
Anzahl
VW
Opel
ALL
ALL
ALL
ALL
ALL
bblau
au
rot
weiß
8500
3500
33100
00
6200
2700
CUBE, ROLLUP, herkömmliches Group-By entsprechen speziellen
p g
Grouping-Sets
SS08, © Prof. Dr. E. Rahm
3 -46
y
y
y
Einzelschritte beim Entwurf eines
multi-dimensionalen Schemas
„
Welche Geschäftsprozesse sollen modelliert und analysiert werden?
„
Festlegung
g g der Kennzahlen
– Wo kommen sie her?
– Granularität der Fakten. Welche OLAP-Genauigkeit ist notwendig?
„
B ti
Bestimmung
der
d Dimensionen
Di
i
–
–
–
–
„
Gemeinsame Eigenschaften der Kennzahlen
Spezifikation der Dimensionsattribute
Konstante vs. sich ändernde Dimensionsattribute
Etablierung / Verwendung einer einheitlichen Terminologie
Physische Design-Entscheidungen
– Architektur (ROLAP/MOLAP/HOLAP)
– vorzuberechnende Aggregationen
– Speicherbedarf
S i h b d f ermitteln
itt l
„
„
Festlegung der Dauer der Historie, Behandlung alter Daten
Aktualisierungsfrequenz bezüglich der Quellsysteme
SS08, © Prof. Dr. E. Rahm
3 -47
y
y
y
Zusammenfassung
„
Einfachheit
Ei
f hh i des
d multi-dimensionalen
l i di
i l Modellierungsansatzes
M d lli
wesentlich für Erfolg von Data Warehousing
– Cube-Repräsentation mit Kennzahlen und hierarchischen Dimensionen
– Operationen: Slice and Dice, Roll-Up, Drill-Down, ...
„
Multidimensionale Speicherung
– Problem dünn besetzter Matrizen
– primär für aggregierte Daten relevant, weniger zur Verwaltung von Detail-Fakten
„
Relationale Speicherung auf Basis von Star-Schemas
– Unterstützung großer Datenmengen, Skalierbarkeit
– neue Anforderungen bezüglich effizienter Verarbeitung von Star-Joins, mehrdimensionale
G
Gruppierung
ie
undd Aggregation
A e ti ...
„
„
Vorberechnung aggregierter Daten wesentlich für ausreichende
Leistung
Sprachansätze
– MDX
MDX-Anweisungen
Anweisungen für Cubes
– SQL-Erweiterungen: CUBE-, ROLLUP-Operator
SS08, © Prof. Dr. E. Rahm
3 -48
y
y
y
Übungsaufgabe: Warehouse-Entwurf
a) Erstellen Sie ein Star-Schema für ein großes deutsches Telefonunternehmen.
– Es soll Auswertungen über Anrufhäufigkeiten, generierte Umsätze und Dauer der
Gespräche für die einzelnen Tarifarten über unterschiedliche Zeiten (Tageszeiten,
(Tageszeiten
Wochentage, Monate, Jahre) ermöglichen.
– Die Teilnehmer werden über ihre Adressen bzw. Telefonnummern Orten sowie
Bundesländern zugeordnet.
zugeordnet Es werden die üblichen Personenmerkmale für
Analysezwecke erfasst, insbesondere Alter, Geschlecht und Beruf.
b) Schätzen Sie den Speicherbedarf für eine Aufzeichnungsdauer von 3 Jahren, 40
Millionen Teilnehmern und durchschnittlich 10 Gesprächen pro Tag und
T il h
Teilnehmer.
c) Wie lautet für das Schema aus a) die SQL-Anfrage zur Bestimmung des Umsatzes
aller sächsischen Ferngespräche am Abend nach Tarif AKTIV++ für jeden Monat
im Jahr 2007?
SS08, © Prof. Dr. E. Rahm
y
y
y
3 -49
Übungsaufgabe 2
„
Bestimmen
B
i
Sie
Si für
fü die
di gezeigte
i Tabelle
T b ll Goals
G l das
d Ergebnis
E b i
folgender SQL-Anfragen:
Spieler
Saison
Anzahl
– Select Spieler,
Spieler Saison,
Saison
Sum (Anzahl) as Tore
From Goals
GROUP BY ROLLUP (Spieler, Saison);
– Select Spieler,
Spieler Saison,
Saison
Sum (Anzahl) as Tore
From Goals
GROUP BY CUBE (Spieler, Saison);
Elber
Elber
Elber
Scholl
Scholl
Scholl
Scholl
Scholl
1999
2000
2001
1997
1998
1999
2000
2001
13
14
15
5
9
4
6
9
– Select Spieler
Spieler, Saison,
Saison Sum (Anzahl) as Tore
From Goals
GROUP BY GROUPING SETS ((Spieler), (Saison),());
SS08, © Prof. Dr. E. Rahm
3 -50
y
y
y

Documents pareils