Data Warehouses Anfragen in Operativen Systemen und Data

Werbung
Data Warehouses
Sommersemester 2011
Melanie Herschel
[email protected]
Lehrstuhl für Datenbanksysteme, Universität Tübingen
Anfragen in Operativen Systemen und Data
Warehouses
Anfragen
Operative
Datenbank
UPDATE
• Transaktionale Anfragen
SET
• Insert, Update, Delete, Select
WHERE
AND
• Anfragen über einzelne / wenige Tupel
• Anfrageoptimierung siehe VL Datenbanken II
Order
amount = amount + 1
OrderID = 1
BookID = 204
Jahr
• Analytische Anfragen
Data
Warehouse
• Bulk-Insert und Select
• Typische Anfragetypen (drill down, slice, dice, ...)
• Spezialisierte Optimierungsverfahren
2007
2006
Region
2005
2004
...
North America
Asia
Europe
2003
2002
Books CDs DVDs ...
Produktgruppe
2
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Gegeben: ein Multidimensionales Datenmodell
Beispiel eines multidimensionalen Datenmodells (Cube und Dimensionshierarchien)
Datenwürfel
(feinste Granularität)
Dimensionshierarchien
Zeit
Produkt
BlueRay
DVD
2
...
3
3
2
...
5
3
5
4
4
...
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
...
Ma
Ja
i
2
Ap
ril
2
Mä
2
Fachliteratur
Fe
2
rz
2
b.
2
n.
Musik
2
Ort
...
Berlin
Lyon
Paris
Stuttgart
Produkte
Jahr
Typen
Quartal
Ort
Kategorien
Monat
Stadt
Zeit
3
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Ziel: Beantworten Analytische Anfragen
• Erinnerung: Das Data Warehouse integriert Daten, um eine globale Sicht
über Geschäftsprozesse zu erlangen, die für Analysezwecke verwendet
werden soll.
• Im Unterschied zu Anfragen auf “klassichen” relationalen Daten in
operativen Systemen folgen analytische Anfragen oft gewissen
Mustern.
• Man unterscheidet zwischen OLTP (Online Transaction Processing)
Anfragen in operativen Datenbanken und OLAP (Online Analytical
Processing) Anfragen in Data Warehouses.
4
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Beispiele für OLAP Anfragen
• Navigation innerhalb eines Cubes
z.B. “Anzahl verkaufter Kinderbücher im Januar, unabhängig vom Ort”
• Navigation durch verschiedene Granularitätsebenen
z.B. “Verkaufszahlen pro Produkttyp (Musik, Film, ...) in einem Quartal
pro Standort”
• Navigation durch mehrere korrelierte Cubes
z.B. “Gesamtverkaufszahlen in Läden und im Internet”, wobei wir zwei
Cubes (Produkt / Zeit / Stadt) und (Produkt / Zeit / Kunde) haben.
• Rankinganfragen
z.B. “Die 10 beliebteste Bücher im Jahr 2009 pro Land”.
• In diesem ersten Teil von Kapitel 4 besprechen wir häufige
Anfragemuster für OLAP Anfragen genauer.
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Kapitel 4.1
Typische Anfragen
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
6
5
Annahmen
• In diesem Abschnitt nehmen wir an, dass das Data Warehouse Schema (=
Schema der dispositiven Datenbasis) nur einen einzelnen Datenwürfel
beinhaltet.
• Zur Einfachheit der Darstellung verwenden wir stets maximal drei
Dimensionen. Die hier vorgestellten Konzepten gelten aber auch für
Datenwürfel mit beliebig vielen Dimensionen.
• Zur Einfachheit der Darstellung verwenden wir eine Kennzahl pro Fakt. Im
Allgemeinen können beliebig viele Kennzahlen pro Fakt existieren.
7
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Überblick Besprochener Anfragemuster
• Alle in diesem Abschnitt besprochenen Anfragemuster dienen zur
Navigation im multidimensionalen Datenmodell.
• Roll-up / Consolidate: Navigiere zu Daten gröberer Granularität
• Drill-down: Navigiere zu Daten feinerer Granularität
• Drill-out / Split: Expandiere Daten durch weitere Dimensionen
• Drill-in / Merge: Reduziere Dimensionalität der Daten
• Slice: Selektiere Daten basierend auf einer Einschränkung einer
Dimension.
• Dice: Selektiere Daten basierend auf Einschränkungen mehrerer
Dimensionen.
8
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up
Definition
Roll-Up (auch Consolidate)
Gegeben sei ein n-dimensionaler Datenwürfel C = (DS, M) = ({D1, ..., Dn}, {M1, ..., Mp}) mit den
Dimensionen entsprechenden Granularitäten G = {l1, l2, ...,ln}, wobei li der Ebene des Schemas {D1, ...,
Dm, TopD; "} der Dimension Di entspricht, 1 ! li ! m+1.
Während einer Roll-Up Operation (auch Consolidate genannt) wird für eine Menge DSup ⊆ DS zu
einer gröberen Granularität navigiert, d. h. es gilt
∀ Di ∈ DSup, Dj ∈ DS, i = j, i < m + 1: lj < li ! m+1
und
∀ Di ∉
DSup,
Dj ∈ DS, i = j: li = lj
• Ein Roll-up entspricht also einem Hinauszoomen aus dem aktuellen Datenwürfel, was dazu
führt, dass das Ergebnis einen geringeren Detailgrad hat,
z.B. Rollup des Würfels (Produktkategorie / Monat / Stadt) zu (Produkttyp / Monat / Stadt).
• Dieses Hinauszoomen geschieht entlang einer oder mehrerer Dimensionen, z.B. Roll-Up
Beispiel oben oder Roll-up zu (Produkttyp / Quartal / Stadt).
• Es ist auch möglich, zur Wurzel TopD einer oder mehrerer Dimensionen zu navigieren.
Geschieht dies entlang aller Dimensionen, beinhaltet das Ergebnis nur noch einen Fakt.
9
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up
Beispiel - Roll-Up einer Einzelnen Dimension
Roll-Up einer einzelnen Dimension
Produkt
(Kategorie)
2
2
...
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
i
...
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
Roll-Up der Produkt-Dimension:
(Kategorie / Monat / Stadt)
! (Typ / Monat / Stadt)
Produkt
(Typ)
Ort
(Stadt)
...
Medien
Lyon
Paris
Stuttgart
Berlin
i
...
Ma
Ap
ril
.
rz
Mä
n.
Bücher
Ja
Ma
rz
ril
Ap
Mä
Fe
b
Ja
.
2
n.
DVD
Fe
b
BlueRay
Zeit
(Monat)
10
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up
Beispiel - Roll-up Mehrerer Dimensionen
Roll-Up mehrerer Dimension
Produkt
(Kategorie)
BlueRay
2
2
...
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
...
Ma
Ap
Mä
Fe
Ja
i
3
ril
3
rz
2
b.
2
n.
DVD
Roll-Up der Produkt
und der Jahr Dimension:
(Kategorie / Monat / Stadt)
! (Typ / Quartal / Stadt)
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
Produkt
(Typ)
Ort
(Stadt)
...
Medien
Lyon
Paris
Stuttgart
Berlin
Q2
Q1
Bücher
Zeit
(Quartal)
11
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up
Beispiel - Roll-up zur Wurzel aller Dimensionen
Roll-Up zur Wurzel aller Dimensionen
Produkt
(Kategorie)
BlueRay
DVD
2
2
3
2
2
...
3
2
...
3
5
4
4
...
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
i
...
Ma
rz
ril
Ap
Mä
Fe
b
Ja
.
5
n.
Musik
Fachliteratur
Roll-Up zur Wurzel
aller Dimensionen:
(Kategorie / Monat / Stadt)
! (Produkte / Zeit / Ort)
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
Produkt
(Produkt)
Produkte
Ort
(Ort)
Ort
Zeit
Zeit
(Zeit)
12
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up
Ableitung von Kennzahlen
• Wiederhohlung:
• Kennzahl gehört zu einem Fakt, dieser hat wiederum eine gewisse Granularität.
• Zwei Eigenschaften einer Kennzahl:
• Numerischer Wert
• Formel, mit der die Kennzahl aus anderen abgeleitet werden kann.
• Bei einem Roll-Up navigieren wir von einer feineren Granularität G1 der Fakten zu einer
gröberen Granularität G2 der Fakten.
• Die Formel, die für Kennzahlen von Fakten der Granularität G2 definiert ist (falls
vorhanden) wird angewandt, um den numerischen Wert abzuleiten.
• Dabei ist allerdings die Eigenschaft der Summierbarkeit (additiv, semi-additiv oder
nicht additiv) der Kennzahlen zu beachten.
• Im Fall semi-additiver oder nicht-additiver Kennzahlen lassen sich ggf. Kennzahlen nur
aus Basisdaten (Daten feinster Granularität in allen Dimensionen) ableiten.
13
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up
Ableitung von Kennzahlen
Leiten Sie die Kennzahlen des aus dem Roll-Up resultierenden Cubes ab (nur anhand sichtbarer Werte)
Produkt
(Kategorie)
DVD
2
2
3
2
2
4
3
2
3
3
5
4
4
5
2
2
2
2
2
3
Kinder
2
2
3
3
2
2
Belletristik
5
3
5
4
4
2
Ma
i
Ju
ni
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
Produkt
(Typ)
Ort
(Stadt)
...
Medien
Lyon
Paris
Stuttgart
Berlin
Bücher
Q1
rz
ril
Ap
Mä
Fe
b
Ja
.
5
n.
Musik
Fachliteratur
Roll-Up der Produkt
und der Jahr Dimension:
(Kategorie / Monat / Stadt)
! (Typ / Quartal / Stadt)
Ort
(Stadt)
Q2
BlueRay
Zeit
(Quartal)
14
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Down
• Drill-Down ist die inverse Operation zu Roll-Up.
• Ermöglicht Navigation von einem gröberen Detailgrad zu einem feineren Detailgrad
(Hineinzoomen) entlang mindestens einer Dimension.
• Z.B. von (Produkttyp / Quartal / Stadt) zu (Kategorie / Monat / Stadt).
Drill-Down
Gegeben sei ein n-dimensionaler Datenwürfel C = (DS, M) = ({D1, ..., Dn}, {M1, ..., Mp}) mit den
Dimensionen entsprechenden Granularitäten G = {l1, l2, ...,ln}, wobei li der Ebene des
Schemas {D1, ..., Dm, TopD; !} der Dimension Di entspricht, 1 ! li ! m+1.
Während einer Drill-Down Operation wird für eine Menge DSDOWN ⊆ DS zu einer feineren
Granularität navigiert, d. h. es gilt
∀ Di ∈ DSup, Dj ∈ DS, i = j: li < lj
und
∀ Di ∉
DSup,
Dj ∈ DS, i = j: li = lj
15
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Down
Beispiel - Drill-up Mehrerer Dimensionen
Roll-Up mehrerer Dimension
Produkt
(Typ)
Ort
(Stadt)
...
Medien
Lyon
Paris
Stuttgart
Berlin
Produkt
(Kategorie)
BlueRay
2
...
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
i
...
ril
rz
Mä
Ja
.
2
n.
DVD
Fe
b
Drill-Down der Produkt
und der Jahr Dimension:
(Typ / Quartal / Stadt)
! (Kategorie / Monat / Stadt)
2
Ma
Zeit
(Quartal)
Ap
Q2
Q1
Bücher
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
16
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Zusammenfassung Roll-Up / Drill-Down
• Operatoren zur Navigation zwischen unterschiedlichen Granularitäten
entlang einer oder mehrerer Dimensionen.
• Roll-Up: Weniger Detailgrad
• Drill-Down: Mehr Detailgrad
• Ermittlung der Kennzahlen (wenn Ergebniscube nicht materialisiert):
• Bei Roll-Up: mögliche Ableitung anhand der Detaildaten im Eingabecube.
• Bei Drill-Down: Ableitung aus Daten feinster (und materialisierter)
Granularität
• In beiden Fällen bleibt die Dimensionalität des Datenwürfels unverändert,
d.h. die Anwendung eines Roll-Up / Drill-Down auf einen n-dimensionalen
Cube resultiert in einem n-dimensionalen Cube.
• Ausnahme: Navigation von oder zur Wurzel mindestens einer Dimension.
17
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Out / Split
• Bei einem Drill-Out (auch Split genannt) wird ein n-dimensionaler
Datenwürfel durch k weitere Dimension mit feinerer Granularität
als TopD ergänzt, wobei k >= 1.
! Ergebnis ist ein (n+k)-dimensionaler Datenwürfel
• Wie bei Drill-Down wird auch hier zu detaillierteren Daten navigiert.
• Im Gegensatz zu einem Drill-Down wird der Detailgrad nicht wie
bisher durch eine feinere Granularität erhöht, sondern durch eine
Anreicherung dimensionaler Information.
18
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Out / Split
Drill-Out des 1D-Würfels (Kategorie) zum 2D-Würfel (Kategorie / Quartal)
Produkt
(Kategorie)
Drill-Out der
Zeit-Dimension
Produkt
(Kategorie)
BlueRay
BlueRay
30
DVD
40
DVD
Musik
20
Musik
Fachliteratur
15
Kinder
Belletristik
10
15
5
10
3
3
4
4
Fachliteratur
5
4
3
3
20
Kinder
5
5
5
5
50
Belletristik
10
20
20
10
Q4
10
Q3
10
Q2
5
Q1
5
Zeit
(Quartal)
19
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-In / Merge
• Inverse Operation zu Drill-Out.
• Bei einem Drill-In (auch Merge genannt) werdem einem ndimensionalen Datenwürfel k Dimension entfernt, wobei k < n.
! Ergebnis ist ein (n-k)-dimensionaler Datenwürfel
• Wie bei Roll-Up wird auch hier der Detailgrad reduziert.
• Im Gegensatz zu einem Roll-Up wird der Detailgrad nicht wie bisher
durch eine gröbere Granularität reduziert, sondern durch ein
Entfernen dimensionaler Information.
20
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-In / Merge
Drill-In des 2D-Würfels (Kategorie / Quartal) zum 1D-Würfel (Kategorie)
Produkt
(Kategorie)
Produkt
(Kategorie)
BlueRay
BlueRay
30
DVD
40
4
Musik
20
3
Fachliteratur
15
5
5
Kinder
20
20
10
Belletristik
50
10
10
15
5
10
Musik
3
3
4
Fachliteratur
5
4
3
Kinder
5
5
10
20
DVD
Q1
Belletristik
Q4
10
Q3
5
Q2
5
Drill-In der
Zeit-Dimension
Zeit
(Quartal)
21
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
• Realisiert eine Ausschnittsbildung gemäß den in einer Dimension
vordefinierten Begriffswelten (gegeben durch das Dimensionsschema)
• Parameter des Slice-Operators ist ein Filterkriterium, das Punkt- oder
Bereichsanfragen über eine Dimension beschreibt.
• Filterkriterium mit AND-, OR-, NOT-Konstruktionen.
Z.B. Monat > Feb. AND Monat <= Nov. AND Monat <> April
• Filterkriterium auf einer oder mehreren Hierarchieebenen der Dimension
Z.B. Land = DE AND PLZ = 10179
• Notation Slice(p, D): Selektiere nur die “Scheiben” entlang der Dimension D,
die dem Filterkriterium p entsprechen.
22
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
Slice mit einfachem Filterkriterium (Monat = Feb.)
Produkt
(Kategorie)
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
...
Ma
Ap
Mä
Fe
Ja
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Produkt
(Kategorie)
BlueRay
Zeit
(Monat)
2
...
DVD
2
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
Ja
n.
Slice(Monat = Feb., Zeit)
2
i
3
...
5
ril
Musik
Ma
...
Ap
2
i
3
ril
3
rz
2
b.
2
n.
DVD
rz
...
b.
2
Mä
2
Fe
BlueRay
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
23
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
Slice mit einer Disjunktion als Filterkriterium (Monat = Feb. OR Monat = April)
Produkt
(Kategorie)
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
i
...
Ma
rz
ril
Ap
Mä
Fe
b
Ja
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
Produkt
(Kategorie)
BlueRay
2
2
...
DVD
2
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
Ja
n.
Slice(Monat = Feb.
OR Monat = April,
Zeit)
Ort
(Stadt)
i
...
...
2
Ma
3
ril
3
Ap
2
.
2
n.
DVD
rz
...
.
2
Mä
2
Fe
b
BlueRay
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
24
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
Slice über die Zeitdimension, bestehend aus zwei Hierarchien (Kalender- & Bilanzjahr)
Zeit
Produkt
(Kategorie)
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
li
Ju
...
Ap
Ja
...
5
ril
3
n.
5
...
Musik
Monat
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
Slice(
Produkt
(Kategorie)
BlueRay
2
2
...
DVD
2
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
Ja
Kalenderjahr = 2011
AND (Kalenderquartal = Q1
OR Kalenderquartal = Q2)
, Zeit)
Tag
li
...
...
2
Ju
3
Kalenderquartal
...
3
Bilanzquartal
ril
2
...
...
2
2
Kalenderjahr
Ap
DVD
2
n.
BlueRay
Bilanzjahr
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
25
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Dice
• Anwendung von Slice-Operatoren entlang mehrerer Dimensionen.
• Z.B. Slice(Monat = Jan., Zeit) UND Slice(Stadt = Berlin, Ort)
• Bei Slice haben wir stets “Scheiben” des Würfels ausgeschnitten, da nur
entlang einer Dimension gefiltert wurde.
• Mittels Dicing können nun beliebige “Unterwürfel” ausgeschnitten werden.
26
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Dice
Dice entlang zweier Dimensionen
Produkt
(Kategorie)
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
...
Ma
Ap
Mä
Fe
Ja
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Produkt
(Kategorie)
BlueRay
Zeit
(Monat)
2
...
DVD
2
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
Ja
n.
Slice(Monat = April, Zeit)
UND
Slice(Stadt = Berlin
OR Stadt = Stuttgart, Ort)
2
i
3
...
5
ril
Musik
Ma
...
Ap
2
i
3
ril
3
rz
2
b.
2
n.
DVD
rz
...
b.
2
Mä
2
Fe
BlueRay
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
27
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Dice
Dice entlang drei Dimensionen
Produkt
(Kategorie)
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
li
Ju
...
Ap
Ja
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
BlueRay
2
2
...
DVD
2
2
3
3
2
...
Musik
5
3
5
4
4
...
Fachliteratur
2
2
2
2
2
...
Kinder
2
2
3
3
2
...
Belletristik
5
3
5
4
4
...
Ja
Slice(Quartal = Q1 OR Quartal = Q2, Zeit)
AND
Slice(Produkttyp = Medien, Produkt)
AND
Slice(Stadt = Berlin OR Stadt = Stuttgart)
Produkt
(Kategorie)
li
Musik
...
...
Ju
2
...
3
...
3
ril
2
...
2
n.
DVD
ril
...
...
2
Ap
2
n.
BlueRay
Ort
(Stadt)
...
Lyon
Paris
Stuttgart
Berlin
Zeit
(Monat)
28
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Kapitel 4.1
Typische Anfragen
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
29
Korrelierte Datenwürfel
• Bisher haben wir stets einen Datenwürfel betrachtet.
• In einem Data Warehouse werden üblicherweise mehrere Datenwürfel
gespeichert. Zum Beispiel
• Ein Würfel mit Dimensionen (Zeit, Produkt, Ort) zur Verwaltung von
Verkaufszahlen nach Zeit, Produkt und Filiale.
• Ein Würfel mit Dimensionen (Zeit, Produkt, Onlinekunde) zur Verwaltung
von Online-Verkaufszahlen von Produkten an Kunden zu gegebener Zeit.
Warum kein Würfel (Zeit, Produkt, Ort, Kunde)?
30
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Korrelierte Datenwürfel
• Korrelierte Datenwürfel teilen sich eine oder mehrere conformed
dimensions.
Conformed dimensions (übereinstimmende Dimensionen)
Zwei Dimensionen D und D’ sind übereinstimmend wenn für ihre Wertebereiche
dom(D) ⊆ dom(D’) oder dom(D’) ⊆ dom(D) gilt.
Beispiel übereinstimmender und nicht übereinstimmender Dimensionen
conformed
Produkte
Produkte
Bücher
Bücher
Medien
Kinder Roman
Musik
DVD
Produkte
Medien
Kinder Roman Belletristik
Musik
Bücher
Medien
DVD
not conformed
Produkte
Produkte
Bücher
Bücher
Medien
Kinder Roman
Musik
Wissenschaft
DVD
Medien
Roman
Musik
DVD
31
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Korrelierte Datenwürfel
Korrelierte Datenwürfel
Zwei Datenwürfel sind DC = (DS, M) und DC’ = (DS’, M’) korreliert, wenn mindestens ein
Dimensionspaar (Di, Dj), wobei Di ∈ DS, Dj ∈ DS’ übereinstimmt.
Sei CD die Menge aller Dimensionspaare
{(Di, Dj) | Di ∈ DS, Dj ∈ DS’, Di übereinstimmend mit Dj}.
Beispiel zweier korrelierter Datenwürfel mit CD = {(Produkt, Produkt), (Zeit, Zeit)}
Produkt
(Kategorie)
Produkt
(Kategorie)
BlueRay
DVD
ril
Ma
i
...
Ap
Ja
n.
Fe
b.
Mä
rz
Belletristik
Zeit
(Monat)
...
Kinder
Lyon
Paris
Stuttgart
Berlin
Belletristik
ril
Ma
i
...
Lyon
Paris
Stuttgart
Berlin
Ap
...
Kinder
Lager
Fachliteratur
n.
Fe
b.
Mä
rz
Fachliteratur
Ja
Ort
(Stadt)
Musik
Zeit
(Monat)
32
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Across
• Der Drill-Across Operator wird über mehrere korrelierte Datenwürfel angewandt.
• Er dient dazu, Kennwerte der Fakten der korrelierten Würfen zu kombinieren um
eine globalere Analyse (über mehrere Würfel hinweg) durchzuführen.
• Die Kennzahlen müssen sinnvoll kombiniert werden!
• Z.B. kann das bestverkaufte Produkt über Filialhandel und Onlinehandel hinweg
dadurch bestimmt werden, indem die Kennzahlen (jeweils Verkaufszahl) der
Cubes (Zeit, Produkt, Ort) und (Zeit, Produkt, Onlinekunde) summiert werden.
• Der von einem Drill-Across zweier Würfel DC = (DS, M) und DC’ = (DS’, M’)
zurürckgegebene Datenwürfel besteht aus
• Der Menge der Dimensionen {gröbste(Di, Dj) | (Di, Dj) ∈ CD }
(siehe Folie 32 für die Definition von CD)
• Der Menge der Kennzahlen M ∪ M’ bzw. daraus abgeleiteter Kennzahlen
33
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Across
Drill Across Beispiel 1: Gesamtverkauf (Filial- + Onlineverkauf) von Produkten nach Zeit
Produkt
(Kategorie)
BlueRay
DVD
Ort
(Stadt)
Musik
Fachliteratur
BlueRay
...
Kinder
Lyon
Paris
Stuttgart
Berlin
Ja
n.
Fe
b.
Mä
rz
Ap
ril
Ma
i
...
Belletristik
Produkt
(Kategorie)
DVD
Musik
Zeit
(Monat)
Fachliteratur
Kinder
Produkt
(Kategorie)
DVD
Musik
Kunde
Fachliteratur
Platin
Kinder
Gold
Silber
Standard
Neu
Ja
n.
Fe
b.
Mä
rz
Ap
ril
Ma
i
...
Belletristik
Zeit
(Monat)
Ap
Ja
n.
Fe
b.
Mä
rz
BlueRay
ril
Ma
i
...
Belletristik
Zeit
(Monat)
Ableitung der Kennzahlen:
verkaufszahl(m,k) =
"si ∈ Stadt verkaufszahl(m,k,si) +
"ki ∈ Kunde verkaufszahl(m,k,ki)
34
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Across
Drill-Across Bsp. 2: Bei welchen Produkten liegt der Lagerbestand stets über 60% der Anzahl verkaufter Produkte?
Verkaufszahlen
Produkt
(Kategorie)
BlueRay
DVD
Ort
(Stadt)
Musik
Fachliteratur
...
Kinder
Lyon
Paris
Stuttgart
Berlin
ril
Ma
i
...
Ap
Ja
n.
Fe
b.
Mä
rz
Belletristik
Produkt
(Kategorie)
Zeit
(Monat)
Lagerbestände
Lager
Fachliteratur
...
Kinder
Lyon
Paris
Stuttgart
Berlin
Ja
n.
Fe
b.
Mä
rz
Ap
ril
Ma
i
...
Belletristik
Zeit
(Monat)
35
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Kapitel 4.1
Typische Anfragen
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
36
Pivot
• Bei einem Pivot (auch Rotation) wird konzeptuell der Datenwürfel um eine Achse
gedreht.
• Dieser Operator wird hauptsächlich für anschauliche Navigation bzw. zur ReportGenerierung (Menge von 2D-Spreadsheets verwendet).
• Dieses Pivoting ist eigentlich Aufgabe der Präsentationssoftware.
Pivot des Würfels (Zeit, Produkt, Ort) in (Ort, Produkt, Zeit)
Produkt
(Kategorie)
Produkt
(Kategorie)
BlueRay
BlueRay
DVD
Belletristik
Jan.
...
n
Be
rl
utt
St
ril
Ma
i
...
rz
Zeit
(Monat)
Ap
Mä
n.
Ja
Fe
b.
in
Belletristik
...
Kinder
...
Lyon
Paris
Stuttgart
Berlin
Ly
o
Kinder
Fachliteratur
rt
...
ris
Fachliteratur
Zeit
(Monat)
Pa
Ort
(Stadt)
Musik
Musik
ga
DVD
April
März
Feb.
Ort
(Stadt)
37
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Kapitel 4.1
Typische Anfragen
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
38
OLAP Operationen
• Die bisher besprochenen OLAP Operationen arbeiten auf Würfeln
• Navigation entlang der Dimensionshierarchie: Roll-Up, Drill-Down
• Erweiterung / Reduktion der Dimensionalität: Split / Merge
• Selektion: Slice, Dice
• Kombination von Daten mehrerer Würfel: Drill-Across
• Weitere analytische Anfragen, die zu OLAP Operationen gezählt werden
• Gleitende Durchschnitte
• Arbeiten auf Zeitreihen
• Relative Wertevergleiche
39
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Sprachen für OLAP Operationen
• Allgemein
• Bereitstellung der notwendigen Operationen
• Deklarative Ansätze
• Kein vielfach geschachteltes SQL, weniger verbos als Standard SQL
• Im Wesentlichen zwei Ansätze
• Multidimensional Expressions (MDX):
Baut auf dem multidimensionalen Datenmodell (MDDM) auf (Würfel,
Dimensionen, Fakten, ...)
• Erweiterungen von SQL:
Anfragen über relationales Star- / Snowflake-Schema
40
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX
• MDX = Multidimensional Expressions:
Microsoft’s Vorschlag “OLE DB for OLAP”
• Eigene Anfragesprache
• Standard ohne feste Semantik (by example)
• MDDM Konzepte als First-Class Elemente
• Dadurch kompaktere Anfragen als mit SQL
• SQL-artige Syntax (aber nicht identische Semantik)
• Sehr mächtig und komplex
• Erzeugung der Objekte (DDL) erfolgt anderweitig:
DSO Interface (Decision Support Objects) von SQL Server
• Wird von vielen kommerziellen Tools zur Kommunikation mit OLAP Datenbank
benutzt.
nach [Ulf Leser, VL Data Warehouses und Data Mining, SS 2007]
41
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Grundprinzip und Struktur
• Eine MDX Anfrage erzeugt einen mehrdimensionalen Report
• Z.B. ein 2D Spreadsheet
• Z.B. Mehrere Tabs mit 2D Spreadsheets zur Darstellung von 3 Dimensionen
• Grundstruktur ist wie bei SQL eine SELECT-FROM-WHERE Klausel
• Aber andere Semantik als bei SQL!
Allgemeine MDX Grundstruktur
SELECT
FROM
WHERE
<axis-spec1>, <axis-spec2>, ...
<cube-spec1>, <cube-spec2>, ...
( <selection-specification> )
42
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Grundprinzip und Struktur
Einfaches MDX Beispiel (Beispielcube & Dimensionen siehe Folie 3)
SELECT
{ Berlin, Stuttgart } ON ROWS
{ [1. Quartal], [2. Quartal].CHILDREN } ON COLUMNS
FROM
VerkaufsWürfel
WHERE
( Measures.Verkauf,
Zeit.[2010],
Produkte.Produkte
)
Aggregation der Kennzahl
(measure) Verkauf über
vordefinierte Funktion (z.B. SUM)
Einschränkung der ZeitDimension (nur Zeitraum 2010)
Selektion relevanter Produkte.
Hier alle, da TopD Ebene gewählt
1. Quartal 2010
Berlin
Stuttgart
April 2010
Mai 2010
Juni 2010
numerische Zellenwerte
43
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Klammern und SELECT
• Klammern in MDX
• {} - Menge von Elementen für die Erzeugung einer Ergebnisdimension
• [] - Repräsentation von Leer- und Sonderzeichen & nicht numerische
Interpretation von Zahlen.
• () - Liefert Tupel für die WHERE-Klausel
• SELECT - Achsendimensionen
• Beschreibung des Ergebnisraum
• Jeder Dimension der Ergebnisses wird präsentationsgerecht eine Rolle
zugewiesen
ON COLUMNS, ON ROWS, ON PAGES, ON SECTIONS, ON CHAPTERS
• Eine Dimension im Ergebnis entspricht einer (Auswahl einer) Dimension im
MDDM über ein oder mehrere Hierarchieebenen.
{Berlin, Stuttgart} aus Ort-Dimension und Stadt-Ebene
{[1. Quartal], [2. Quartal].CHILDREN} aus Zeit-Dimension,
Quartal- und Monat-Ebene
44
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX FROM und WHERE
• FROM - Würfelspezifikation
• Menge von Datenwürfeln, die zur Konstruktion des Ergebniswürfels
notwendig sind.
• Falls mehr als ein Würfel referenziert wird, wird implizit ein
multidimensionaler Verbund durchgeführt, wobei jeweils zwei Datenwürfel
mindestens eine gemeinsame Dimension aufweisen müssen (siehe auch
korrelierte Datenwürfel)
• WHERE - Restriktion
• Einschränkung der in der FROM-Klausel spezifizierten Datenwürfel
• Einschränkung durch Angabe einer Liste von Klassifikationsknoten aus so
genannten Slicer-Dimensionen.
• Kennzahlen sind “normale” Elemente der speziellen Measures-Dimension
(diese kann in der WHERE-Klausel, aber auch in FROM-Klausel verwendet
werden)
45
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Mengenausdrücke
• Aufzählung von Knoten der dimensionalen Hierarchie
• Einzelne Knoten müssen nicht aus der gleichen Ebene stammen
• Z.B. liefert {Belletristik, Kinder, Medien} eine Mischung aus
Kategorien und Typen der Produkt-Dimension.
• Elementausdrücke zur Erzeugung von Mengen von Knoten
• CHILDREN: Kindknoten eines Klassifikationsknoten
z.B. [2. Quartal].CHILDREN = {April, Mai, Juni}
• MEMBERS: Knoten einer Klassifikationsstufe
z.B. Zeit.Quartal.MEMBERS = {[1. Quartal], ... , [4. Quartal]}
• PARENT: Vaterknoten eines Klassifikationsknoten
z.B. Belletristik.PARENT = {Bücher}
• ...
46
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Mengenausdrücke
• Schachtelung von Mengen mittels CROSSJOIN
• Projektion zweier Dimensionen in eine
• Semantik: Alle möglichen Kombinationen (Kreuzprodukt)
CROSSJOIN Beispiel
SELECT
CROSSJOIN({Berlin, Stuttgart}
{Kiosk, [Mega-Store]} ON ROWS
{ 2010.CHILDREN } ON COLUMNS
FROM
VerkaufsWürfel
WHERE
( Measures.Verkauf, Zeit.[2010], Produkte.Medien )
1. Quartal 2010
Kiosk
Berlin
Mega-Store
Kiosk
Stuttgart
Mega-Store
2. Quartal 2010 3. Quartal 2010 4. Quartal 2010
numerische Zellenwerte (Anzahl Verkäufe von
Produkten von Typ Medien im Zeitraum 2010
47
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Mengenausdrücke
• Relative Auswahl zur Nutzung einer Ordnung innerhalb dimensionaler
Strukturen.
• LASTCHILD - letzte Kind eines Knotens
z.B. Bücher.LASTCHILD = {Fachliteratur}
• NEXTMEMBER - nächster Nachbar auf gleicher Ebene
z.B. [1. Quartal 2010].NEXTMEMBER = {[2. Quartal 2010]}
• LEAD(x) - Nachbar in “positiver Entfernung” x auf gleicher Ebene
z.B. [November 2010].LEAD(2) = {[Januar 2011]}
• [x]:[y] - Bereichseinschränkung zwischen x und y
z.B. [1992]:[2002] beschränkt den zu betrachtenden Zeitraum auf die
Jahre 1992 bis 2002.
48
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Mengenausdrücke
• Methoden für dimensionale Schemata zur Nutzung einer Ordnung innerhalb
dimensionaler Strukturen.
• LEVEL - Ermittlung der Schemaebene
z.B. Belletristik.LEVEL = {Kategorien},
Medien.LEVEL = {Typen}
• LEVELS(x) - Nutzung der internen Nummerierung der Klassifikationsstufen
zum Zugriff auf Schemaebene x
z.B. LEVELS(1) = {Jahr}
49
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Konditionierte Ergebnisproduktion
• Konstruktion des Ergebniswürfels in Abhängigkeit von berechneten Ergebnissen.
• Top-k Anfragen
• TOPCOUNT
• TOPRECENT
• TOPSUM
• Allgemeine Filter-Bedingungen
• FILTER
50
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Konditionierte Ergebnisproduktion
Beispiel der TOPCOUNT Funktion
Ermittlung des Umsatzes der fünf verkaufsstärksten Bundesländer in Deutschland in 2010
(Annahme: Hierachie Land-Bundesland-Stadt)
SELECT
{Measures.Umsatz} ON COLUMNS
{TOPCOUNT(Deutschland.CHILDREN, 5, Measures.Verkauf)}
ON ROWS
FROM
VerkaufsWürfel
WHERE
( Measures.Umsatz,[2010])
Beispiel der Filter Funktion
Zeige Verkaufszahlen für Bundesländer an, deren Umsatz im Jahr 2002 höher als im Jahr
2001 war. Hier bezieht sich der Umsatz auf den Umsatz pro Quartal in der Produktkategorie
Medien.
SELECT
FILTER(Deutschland.CHILDREN,
([2002], Umsatz) > ([2001], Umsatz) ) ON COLUMNS
Quartal.MEMBERS ON ROWS
FROM
VerkaufsWürfel
WHERE
( Verkauf,[2002], Produkte.Medien )
51
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Temporale Auswertung
• Addressierung von Zeitpunkten und - orten
• PERIODSTODATE(k, d)
Alle Knoten vom Beginn der Klasse k bis zum Datum d
z.B. PERIODSTODATE(Quartal, [15. November 2002] = 1.10. - 15.11.2022
• LASTPERIODS(k, d)
Letzte k Zeitabschnitte vor Datum d (k und d auf gleicher Hierarchieebene).
z.B. LASTPERIODS(3, [Sept. 2002]) =
{[Juni 2002], [Juli 2002], [Aug. 2002]}
• PARALLELPERIOD(k, n, d)
z.B. PARALLELPERIOD(Jahre, 3, [Sept. 2002]) = {[Sept. 1999]}
52
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Temporale Auswertung
• Auswertung
• Kovarianz
• Korrelation
• gleitender Durchschnitt
• ...
53
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Fazit
• Hohe Komplexität
• Mächtige Sprache
• Direkte Anlehnung an MDDM
• Weit verbreitet
• Schnittstelle zwischen OLAP GUI und DB-Server
• Unterstützt von Microsoft, Cognos (IBM), BusinessObject (SAP), ...
54
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Kapitel 4.1
Typische Anfragen
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
55
SQL und OLAP
• Übersetzung eines MDDM in Star- oder Snowflake Schema
• Operationen mit Standard SQL (SQL-92)
• Auswahl (slice, dice): Joins und Selects
• Verfeinerung (drill-down): Joins uns Selects
• Aggregation um eine Stufe: Group-By
• OLAP-Erweiterungen von SQL
• Mehrfachgruppierungen ! in dieser Vorlesung
• Analytische Funktionen ! in der Übung
• Prinzipiell auch in SQL-92 möglich, aber nur kompliziert
auszudrücken und ineffizient in der Bearbeitung
56
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Beispiel
Beispiel eines Star Schemas
Produkt
Produkt
PID Kategorie
Typ
1
Belletristik
Bücher
DVD
2
Kinder
Bücher
Musik
3
Fachliteratur
Bücher
Fachliteratur
4
Musik
Medien
Kinder
5
DVD
Medien
Belletristik
6
BlueRay
Medien
BlueRay
PID
ZID
OID
#Verkäufe Gewinn
ZID Monat Quartal
Jahr
1
1
1
5
30
1
Jan10 Q1 2010
2010
1
1
2
5
37
2
Feb10 Q1 2010
2010
1
1
3
5
45
...
1
1
4
5
20
2
1
1
2
33
... ...
...
Ort
...
ParisLyon
Berlin Stuttgart
Ja
n.
Fe
b.
Mä
rz
Ap
ril
Ma
i
...
Faktentabelle
Zeit
Ort
2
1
2
2
35
OID
Stadt
2
1
3
2
40
1
Berlin
2
1
4
2
35
2
Stuttgart
...
...
...
...
...
3
Paris
1
2
1
3
22
4
Lyon
...
...
...
...
...
Zeit
Kennzahlen (Verkäufe & Gewinn) für
Belletristik im Januar 2010 in Stuttgart.
Alle weiteren Kombinationen von
Produktkategorien und Orten im
Januar. 2010.
Beginn der Kombinationen für Februar
2010(danach auch für alle weiteren
Monate)
57
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
• Erinnerung zu GROUP BY (siehe VL Datenbanken I)
• GROUP BY <att1>, <att2>, ..., <attn> partitioniert die von der
Anfrage betrachteten Daten anhand der Werte in Attributen att1 bis attn.
• Wird GROUP BY verwendet, können in der SELECT-Klausel (i) die Attribute
att1 bis attn vorkommen plus (ii) aggregierte Werte anderer Attribute.
• Aggregation mittels SUM, COUNT, AVG, MIN, MAX
Beispiel einer GROUP-BY Anfrage - Gesamtgewinn mit Büchern nach Jahr, Quartal und Monat?
SELECT
FROM
WHERE
AND
AND
GROUP BY
Jahr, Quartal, Monat, SUM(Gewinn)
Faktentabelle, Zeit, Produkt
Produkt.PID = Faktentabelle.PID
Zeit.ZID = Faktentabelle.ZID
Produkt.Typ = ‘Bücher’
Jahr, Quartal, Monat
Summe nur für Tage (unterteilt
nach Monaten / Jahren)
Keine Summe pro Monat / pro Jahr
58
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Beispiel einer GROUP-BY Anfrage - Gesamtgewinn mit Büchern nach Jahr, Quartal und Monat
SELECT
FROM
WHERE
AND
AND
GROUP BY
UNION
SELECT
FROM
WHERE
AND
AND
GROUP BY
UNION
SELECT
FROM
WHERE
AND
AND
GROUP BY
Monat AS Time, SUM(Gewinn) AS Gewinn
Faktentabelle, Zeit, Produkt
Produkt.PID = Faktentabelle.PID
Zeit.ZID = Faktentabelle.ZID
Produkt.Typ = ‘Bücher’
Monat
Time
Monate
Quartal AS Time, SUM(Gewinn) AS Gewinn
Faktentabelle, Zeit, Produkt
Produkt.PID = Faktentabelle.PID
Zeit.ZID = Faktentabelle.ZID
Produkt.Typ = ‘Bücher’
Quartal
Jahr AS Time, SUM(Gewinn) AS Gewinn
Faktentabelle, Zeit, Produkt
Produkt.PID = Faktentabelle.PID
Zeit.ZID = Faktentabelle.ZID
Produkt.Typ = ‘Bücher’
Jahr
Quartale
Jahre
Gewinn
Jan. 2010
150
Feb. 2010
300
...
...
Dec. 2010
400
Jan. 2011
300
...
...
Q1 2010
500
...
...
Q4 2011
800
2010
2000
2011
2300
59
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Gewünschtes Ergebnis - Gesamtgewinn mit
Büchern nach Jahr, Quartal und Monat
Jahr
Quartal
Monat
Mehrfachgruppierung 2: Gewinn pro Quartal
und Produkttyp und Quartal und Ort in 2010
Gewinn
Quartal
Typ
Ort
Gewinn
2010
Q1
Jan.
150
Q1 2010 Bücher
-
50
2010
Q1
Feb.
300
...
Bücher
-
...
2010
Q1
März
50
Q4 2010 Bücher
-
70
...
...
...
...
Q1 2010 Medien
-
40
2011
Q1
Jan.
300
...
Medien
-
...
...
...
...
...
Q4 2010 Medien
-
60
2010
Q1
-
500
Q1 2010
-
Berlin
60
...
...
...
...
...
-
Berlin
...
2011
Q4
-
800
Q4 2010
-
Berlin
50
2010
-
-
2000
Q1 2010
-
Stuttgart 20
2011
-
-
2300
...
-
...
Nutzung einer
Dimensionshierarchie in SQL?
...
Aggregation entlang mehrerer
Dimensionskombinationen in SQL?
60
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
• SQL Erweiterung zur Unterstützung von Mehrfachgruppierungen
• GROUPING SETS - Gruppierungsmengen
Explizite Angabe einer Menge von Gruppierungskombinationen
• CUBE - Multidimensionale Gruppierung
Generierung aller Gruppierungskombinationen der als Parameter
übergebene Attribute
• ROLLUP - Hierarchische Multidimensionale Gruppierung
• Kombination dieser Klauseln mit bekannten SQL-Klauseln (GROUP
BY, HAVING, CASE, ...)
61
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Gruppierungsmengen
Grouping Sets
...
GROUP BY GROUPING SETS ((<set1_a1>, ..., <set1_am>),
(<set2_a1>, ..., <set2_an>),
...)
• Explizite Angabe der gewünschten Gruppierungen
• Jede Gruppierungsmenge (<seti_a1>, ... ) gibt eine
gewünschte Gruppe an
• Äquivalent zu UNION einzelner GROUP BY mit “Auffüllen” der Werte nicht
überlappender Attribute der einzelnen Gruppierungsmengen mit NULL.
• Abfragen der gruppierenden Spalten mittels GROUPING() Funktion:
GROUPING(<attr>) = 0 wenn nach <attr> gruppiert, sonst 1.
62
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Gruppierungsmengen
Mehrfachgruppierung 2: Gewinn pro Quartal
und Produkttyp und Quartal und Ort in 2010
Quartal
Typ
Ort
Gewinn
SELECT
Q1 2010 Bücher
-
50
...
Bücher
-
...
Q4 2010 Bücher
-
70
Q1 2010 Medien
-
40
...
-
...
-
60
Medien
Q4 2010 Medien
Mehrfachgruppierung 2 in SQL unter Verwendung
von Gruppierungsmengen
Q1 2010
-
Berlin
60
...
-
Berlin
...
Q4 2010
-
Berlin
50
Q1 2010
-
Stuttgart 20
...
-
...
Quartal,
Typ,
Ort,
SUM(Gewinn)AS GEWINN
FROM
Faktentabelle FT,
Zeit, Produkt
WHERE
Produkt.PID = FT.PID
AND
Zeit.ZID = FT.ZID
AND
Zeit.Jahr = ‘2010’
GROUP BY GROUPING SETS (
(Quartal, Typ),
(Quartal, Ort)
)
...
63
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Gruppierungsmengen
Mehrfachgruppierung 2 mit Ausgabe der entsprechenden Gruppen
Quartal
Typ
Ort
Gewinn
GQ
GT
GO
Q1 2010 Bücher
-
50
0
0
1
...
-
...
0
0
1
...
Q1 2010
-
Berlin
60
0
1
0
...
-
Berlin
...
0
1
0
Mehrfachgruppierung 2 mit Ausgabe der entsprechenden Gruppen in SQL
SELECT
Quartal, Typ, Ort, SUM(Gewinn) AS GEWINN
GROUPING(Quartal) AS GQ, GROUPING(Typ) AS GT, GROUPING(Ort) AS GO
FROM
...
WHERE
...
GROUP BY GROUPING SETS ((Quartal, Typ), (Quartal, Ort))
64
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Gruppierungsmengen
• Gruppierungssemantik bei Gruppierungsmengen
• GROUP BY A, B ≣ GROUP BY GROUPING SETS ((A, B))
! Gruppe (A, B)
• GROUP BY GROUPING SETS (A, B), (A, C), (A))
≣
GROUP BY A, GROUPING SETS ((B), (C), ( ))
! Gruppen (A) " ( (B), (C), ( )) = (A, B), (A, C), (A)
• GROUP BY GROUPING SETS ((A, B), (B, C)),
GROUPING SETS ((D, E), (D), ())
! Gruppen ( (A, B), (B, C) ) " ( (D, E), (D), ( ) )
= (A, B, D, E), (A, B, D), (A, B), (B, C, D, E), (B, C, D), (B, C)
65
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Gruppierungsmengen
Formulieren Sie eine SQL Anfrage, die das unten dargestellte Ergebnis berechnet
Typ
Jahr
Stadt
Buch
-
-
Buch
2010
Berlin
Buch
2010
Stuttgart 20
-
#Verkäufe
50
30
Medien
-
Medien
2010
Berlin
Medien
2010
Stuttgart 10
40
30
-
-
Berlin
-
-
Stuttgart 30
80
66
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Multidimensionale Gruppierung
Multidimensionale Gruppierung mittels CUBE()
...
GROUP BY CUBE (<a1>, ..., <an>)
• Bildet alle Gruppierungskombinationen der als Parameter übergebenen
Attribute
• Z.B. bildet CUBE(A, B, C) Gruppen (A, B, C), (A, B), (A, C), (B, C),
(A), (B), (C), ( ))
• Insgesamt 2n Gruppen
• In Kombination mit Aggregation wird CUBE() zur Berechnung der
Summen sämtlicher Kombinationen genutzt.
67
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Multidimensionale Gruppierung
Gewinn nach (jeder Kombination von)Quartal, Produkttyp und Ort in 2010
Quartal
Typ
Ort
Gewinn
Q1 2010
Bücher
Berlin
10
Q1 2010
Bücher
Stuttgart
20
...
...
Q1 2010
...
...
...
Bücher
-
20
...
-
...
Q1 2010
-
Berlin
80
Q1 2010
-
Stuttgart
50
...
-
...
...
Berlin
50
-
Bücher
-
Bücher
Stuttgart
-
80
...
...
...
Q1 2010
-
-
160
...
-
-
...
-
Bücher
-
200
-
Medien
-
300
-
-
Berlin
200
-
-
Stuttgart
100
-
-
...
-
-
-
Mehrfachgruppierung 2 in SQL unter Verwendung
von Gruppierungsmengen
SELECT
Quartal, Typ, Ort,
SUM(Gewinn)AS GEWINN
FROM
Faktentabelle FT,
Zeit, Produkt
WHERE
Produkt.PID = FT.PID
AND
Zeit.ZID = FT.ZID
AND
Zeit.Jahr = ‘2010’
GROUP BY CUBE (Quartal, Typ, Ort)
...
68
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Multidimensionale Gruppierung
• Gruppierungssemantik beim CUBE-Operator
• GROUP BY CUBE(A, B, C)
≣
GROUP BY GROUPING SETS ((A,B,C), (A,B), (A,C),
(B,C), (A), (B), (C), ())
• GROUP BY CUBE(A, B), CUBE(B, C)
! Gruppen ( (A, B), (A), (B), ( ) ) " ( (B, C), (B), (C), ( ))
= ( A, B, B, C ), (A, B, B), (A, B, C), (A, B),
(A, B, C), (A, B), (A, C), (A),
(B, B, C), (B, B), (B, C), (B),
(B, C), (B), (C), ( )
= (A, B, C), (A, B), (A, B, C), (A, B),
Duplikate in Kombinationen
(A, B, C), (A, B), (A, C), (A),
(z.B. (A, B, C), (A, B), (B), ...)
(B, C), (B), (B, C), (B),
werden nicht eliminiert!
(B, C), (B), (C), ( )
• GROUP BY GROUPING SETS(CUBE(A, B), CUBE(B,C))
≣
GROUP BY GROUPING SETS ((A,B), (A), (B), (), (B,C), (B), (C), ())
69
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Multidimensionale Gruppierung
Formulierung einer SQL Anfrage mit dem CUBE-Operator
Geben Sie eine SQL Anfrage an, die die Anzahl DVD-Verkäufe im ersten Quartal 2010 aggregiert
nach Monat und Ort ausgibt. Das Ergebnis der Anfrage entspricht demnach den Daten, die das
unten gezeigte Spreadsheet veranschaulicht.
Jan. 10
Feb. 10
März
Summe
Berlin
20
25
22
67
Stuttgart
10
15
17
42
Paris
30
25
30
85
Lyon
10
12
10
32
Summe
70
77
79
226
70
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Hierarchische Multidimensionale Gruppierung
Multidimensionale Gruppierung mittels ROLLUP()
...
GROUP BY ROLLUP (<a1>, ..., <an>)
• In herkömmlichem SQL kann man UNION über k Subanfragen
formulieren, um hierarchische Gruppierung füe k Dimensionsstufen zu
erhalten (siehe z.B. Folie 59).
• Aufwändig zu formulieren, zu berechnen (k Scans der Faktentabelle)
und ungünstige Reihenfolge für Reports (und nur schwer zu sortieren).
• ROLLUP berechnet hierarchische Aggregation in günstiger Reihenfolge.
• Attribute <a1>, ..., <an> stammen aus einer Dimensionshierarchie
und werden in absteigender Granularität angegeben.
71
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Hierarchische Multidimensionale Gruppierung
Gesamtgewinn mit Büchern nach Jahr,
Quartal und Monat
Jahr
Quartal
Monat
Gewinn
2010
Q1
Jan.
150
2010
Q1
Feb.
300
2010
Q1
März
50
...
...
...
...
2011
Q1
Jan.
300
...
...
...
...
2010
Q1
-
500
...
...
...
...
2011
Q4
-
800
2010
-
-
2000
2011
-
-
2300
-
-
-
4300
SQL Anfrage mit ROLLUP
SELECT
Jahr, Quartal, Monat,
SUM(Gewinn)AS GEWINN
FROM
Faktentabelle FT,
Zeit, Produkt
WHERE
Produkt.PID = FT.PID
AND
Zeit.ZID = FT.ZID
AND
Produkt.Typ = ‘Bücher’
GROUP BY ROLLUP (Jahr, Quartal, Monat)
72
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Hierarchische Multidimensionale Gruppierung
• Gruppierungssemantik beim CUBE-Operator
• GROUP BY ROLLUP(A1, A2, ..., An)
≣
GROUP BY
GROUPING SETS ( (A1, ..., An-1, An), (A1, ..., An-1), ...,
(A1, A2), (A1), () )
wobei die funktionalen Abhängigkeiten An " An-1 " ... " A2 " A1 gelten
• GROUP BY ROLLUP(A1, ..., An), ROLLUP(B1, ..., Bm)
! Gruppen ( (A1, ..., An), ..., (A1, A2), (A1), ( ) )
"
( (B1, ..., Bn), ..., (B1, B2), (B1), ( ) )
73
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
Hierarchische Multidimensionale Gruppierung
Formulierung einer SQL Anfrage mit hierarchischer multidimensionaler Gruppierung
Geben Sie eine SQL Anfrage an, die die Anzahl
Von Verkäufen von Medien-Produkten nach Jahr,
Monat, Kategorie und Stadt wie in der rechten
Beispieltabelle aufschlüsselt. Verwenden Sie dabei
keine GROUPING SETS Klausel.
Jahr
Monat
Kategorie
Stadt
Verkauf
2010
Dez.
Musik
-
200
2010
Dez.
DVD
-
150
2010
Dez.
BlueRay
-
50
2010
Dez.
-
-
400
2011
Dez.
-
-
450
2010
-
-
-
2000
2011
-
-
-
3000
-
-
-
5000
2010
-
-
Berlin
2010
-
-
Stuttgart 300
2010
-
-
...
...
2011
-
-
Berlin
1500
2011
-
-
...
...
-
-
-
Berlin
4000
-
-
-
Stuttgart 2000
-
-
-
...
-
1000
...
74
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Zusammenfassung
• OLAP-Operationen
• Navigation entlang der Dimensionshierarchie: Roll-Up, Drill-Down
• Erweiterung / Reduktion der Dimensionalität: Split / Merge
• Selektion: Slice, Dice
• Kombination von Daten mehrerer Würfel: Drill-Across
• OLAP-Sprachen
• MDX - Orientiert an MDDM und Spreadsheets
• SQL Erweiterungen: GROUPING SETS, CUBE, ROLLUP
75
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Herunterladen