preview of “04 1 anfragetypen” - db.inf.uni-tuebingen.de · data warehouses sommersemester 2011...
TRANSCRIPT
Data Warehouses
Sommersemester 2011
Melanie [email protected]
Lehrstuhl für Datenbanksysteme, Universität Tübingen
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Europe
North America
Anfragen in Operativen Systemen und Data Warehouses
2
OperativeDatenbank
Data Warehouse
• Transaktionale Anfragen
• Insert, Update, Delete, Select
•Anfragen über einzelne / wenige Tupel
•Anfrageoptimierung siehe VL Datenbanken II
•Analytische Anfragen
•Bulk-Insert und Select
• Typische Anfragetypen (drill down, slice, dice, ...)
•Spezialisierte Optimierungsverfahren
Anfragen
Produktgruppe
Region
Jahr
Asia
...
2002
2003
2004
2005
2006
2007
Books CDs DVDs ...
UPDATE OrderSET amount = amount + 1WHERE OrderID = 1 AND BookID = 204
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Beispiel eines multidimensionalen Datenmodells (Cube und Dimensionshierarchien)
Gegeben: ein Multidimensionales Datenmodell
3
Produkt
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit
Ort
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Datenwürfel(feinste Granularität) Dimensionshierarchien
Produkte
Typen
Kategorien
Jahr
Quartal
Monat
Zeit
Stadt
Ort
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Ziel: Beantworten Analytische Anfragen
4
• 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.
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Beispiele für OLAP Anfragen
5
• Navigation innerhalb eines Cubes z.B. “Anzahl verkaufter Kinderbücher im Januar, unabhängig vom Ort”
• Navigation durch verschiedene Granularitätsebenenz.B. “Verkaufszahlen pro Produkttyp (Musik, Film, ...) in einem Quartal pro Standort”
• Navigation durch mehrere korrelierte Cubesz.B. “Gesamtverkaufszahlen in Läden und im Internet”, wobei wir zwei Cubes (Produkt / Zeit / Stadt) und (Produkt / Zeit / Kunde) haben.
• Rankinganfragenz.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.
Kapitel 4.1Typische Anfragen
6
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Annahmen
7
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Überblick Besprochener Anfragemuster
8
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Roll-UpDefinition
9
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
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-UpBeispiel - Roll-Up einer Einzelnen Dimension
10
Roll-Up einer einzelnen Dimension
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Typ)
Bücher
Medien
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Roll-Up der Produkt-Dimension:(Kategorie / Monat / Stadt) ! (Typ / Monat / Stadt)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up mehrerer Dimension
Roll-UpBeispiel - Roll-up Mehrerer Dimensionen
11
Produkt(Typ)
Bücher
Medien
Zeit (Quartal)
Ort(Stadt)
BerlinStuttgartParis
Lyon...Q1
Q2
Roll-Up der Produkt und der Jahr Dimension:(Kategorie / Monat / Stadt) ! (Typ / Quartal / Stadt)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up zur Wurzel aller Dimensionen
Roll-Up zur Wurzel aller Dimensionen:
(Kategorie / Monat / Stadt) ! (Produkte / Zeit / Ort)
Roll-UpBeispiel - Roll-up zur Wurzel aller Dimensionen
12
Produkt(Produkt)
Produkte
Zeit Zeit (Zeit)
Ort(Ort)
Ort
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Roll-UpAbleitung von Kennzahlen
13
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Leiten Sie die Kennzahlen des aus dem Roll-Up resultierenden Cubes ab (nur anhand sichtbarer Werte)
Roll-UpAbleitung von Kennzahlen
14
Produkt(Typ)
Bücher
Medien
Zeit (Quartal)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Q1
Q2
Roll-Up der Produkt und der Jahr Dimension:(Kategorie / Monat / Stadt) ! (Typ / Quartal / Stadt)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai
Juni
5 3 5 4 4 2
2
2
5
2
2 3 3 2 2
2 2 2 2 3
3 5 4 4 5
2 3 3 2 3
2 2 4
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Down
15
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
• 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).
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Roll-Up mehrerer Dimension
Drill-DownBeispiel - Drill-up Mehrerer Dimensionen
16
Drill-Down der Produkt und der Jahr Dimension:
(Typ / Quartal / Stadt)! (Kategorie / Monat / Stadt)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Typ)
Bücher
Medien
Zeit (Quartal)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Q1
Q2
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Zusammenfassung Roll-Up / Drill-Down
17
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Drill-Out / Split
18
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Out des 1D-Würfels (Kategorie) zum 2D-Würfel (Kategorie / Quartal)
Drill-Out / Split
19
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
50
20
15
20
40
30
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
10
5
5
3
10
5
Q1
Q2 Zeit
(Quartal)
20
5
4
3
15
5
20
5
3
4
5
10
10
5
3
4
10
10
Q3
Q4
Drill-Out der Zeit-Dimension
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Inverse Operation zu Drill-Out.
• Bei einem Drill-In (auch Merge genannt) werdem einem n-dimensionalen 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.
Drill-In / Merge
20
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-In des 2D-Würfels (Kategorie / Quartal) zum 1D-Würfel (Kategorie)
Drill-In / Merge
21
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
50
20
15
20
40
30
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
10
5
5
3
10
5
Q1
Q2 Zeit
(Quartal)
20
5
4
3
15
5
20
5
3
4
5
10
10
5
3
4
10
10
Q3
Q4
Drill-In der Zeit-Dimension
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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 DimensionZ.B. Land = DE AND PLZ = 10179
• Notation Slice(p, D): Selektiere nur die “Scheiben” entlang der Dimension D, die dem Filterkriterium p entsprechen.
Slice
22
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
23
Slice mit einfachem Filterkriterium (Monat = Feb.)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Slice(Monat = Feb., Zeit)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
24
Slice mit einer Disjunktion als Filterkriterium (Monat = Feb. OR Monat = April)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Slice(Monat = Feb. OR Monat = April, Zeit)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Slice
25
Slice über die Zeitdimension, bestehend aus zwei Hierarchien (Kalender- & Bilanzjahr)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan. ...
April
... Juli ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan. ...
April
... Juli ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Slice( Kalenderjahr = 2011 AND (Kalenderquartal = Q1
OR Kalenderquartal = Q2) , Zeit)
Monat
Tag
Bilanzquartal Kalenderquartal
Bilanzjahr Kalenderjahr
Zeit
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Dice
26
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Dice
27
Dice entlang zweier Dimensionen
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Slice(Monat = April, Zeit)UND
Slice(Stadt = Berlin OR Stadt = Stuttgart, Ort)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Dice
28
Dice entlang drei Dimensionen
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan. ...
April
... Juli ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan. ...
April
... Juli ...
5 3 5 4 4 ...
2
2
5
2
2 3 3 2 ...
2 2 2 2 ...
3 5 4 4 ...
2 3 3 2 ...
2 2 ...
Slice(Quartal = Q1 OR Quartal = Q2, Zeit)ANDSlice(Produkttyp = Medien, Produkt)ANDSlice(Stadt = Berlin OR Stadt = Stuttgart)
Kapitel 4.1Typische Anfragen
29
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
Korrelierte Datenwürfel
30
Warum kein Würfel (Zeit, Produkt, Ort, Kunde)?
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Korrelierte Datenwürfel teilen sich eine oder mehrere conformed dimensions.
Korrelierte Datenwürfel
31
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
Produkte
Bücher Medien
Kinder Roman Musik DVD
Produkte
Bücher Medien
BelletristikKinder Roman Musik DVD
conformed
not conformed
Produkte
Bücher Medien
Kinder Roman Musik DVD
Produkte
Bücher Medien
Wissenschaft Roman Musik DVD
Produkte
Bücher Medien
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Korrelierte Datenwürfel
32
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)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Zeit (Monat)
Lager
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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
Drill-Across
33
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Across
34
Drill Across Beispiel 1: Gesamtverkauf (Filial- + Onlineverkauf) von Produkten nach Zeit
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Kunde
NeuStandardSilber
GoldPlatin
Jan.
Feb.
März
April
Mai ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Jan.
Feb.
März
April
Mai ...
Ableitung der Kennzahlen:verkaufszahl(m,k) = "si ∈ Stadt verkaufszahl(m,k,si) + "ki ∈ Kunde verkaufszahl(m,k,ki)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Drill-Across
35
Drill-Across Bsp. 2: Bei welchen Produkten liegt der Lagerbestand stets über 60% der Anzahl verkaufter Produkte?
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Zeit (Monat)
Lager
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Verkaufszahlen
Lagerbestände
Kapitel 4.1Typische Anfragen
36
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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 Report-Generierung (Menge von 2D-Spreadsheets verwendet).
• Dieses Pivoting ist eigentlich Aufgabe der Präsentationssoftware.
Pivot
37
Pivot des Würfels (Zeit, Produkt, Ort) in (Ort, Produkt, Zeit)
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit (Monat)
Ort(Stadt)
BerlinStuttgartParis
Lyon...
Jan.
Feb.
März
April
Mai ...
Produkt(Kategorie)
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Ort(Stadt)
Zeit(Monat)
Jan.Feb.
MärzApril
...
Berlin
Stuttgart
Paris
Lyon ... ...
Kapitel 4.1Typische Anfragen
38
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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
OLAP Operationen
39
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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
Sprachen für OLAP Operationen
40
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
MDX
41
nach [Ulf Leser, VL Data Warehouses und Data Mining, SS 2007]
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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!
MDX Grundprinzip und Struktur
42
Allgemeine MDX Grundstruktur
SELECT <axis-spec1>, <axis-spec2>, ...FROM <cube-spec1>, <cube-spec2>, ...WHERE ( <selection-specification> )
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MDX Grundprinzip und Struktur
43
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
)
Berlin
Stuttgart
1. Quartal 2010 April 2010 Mai 2010 Juni 2010
Aggregation der Kennzahl (measure) Verkauf über
vordefinierte Funktion (z.B. SUM)
Einschränkung der Zeit-Dimension (nur Zeitraum 2010)
Selektion relevanter Produkte. Hier alle, da TopD Ebene gewählt
numerische Zellenwerte
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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 zugewiesenON 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
MDX Klammern und SELECT
44
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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)
MDX FROM und WHERE
45
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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 Klassifikationsstufez.B. Zeit.Quartal.MEMBERS = {[1. Quartal], ... , [4. Quartal]}
• PARENT: Vaterknoten eines Klassifikationsknotenz.B. Belletristik.PARENT = {Bücher}
• ...
MDX Mengenausdrücke
46
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Schachtelung von Mengen mittels CROSSJOIN
• Projektion zweier Dimensionen in eine
• Semantik: Alle möglichen Kombinationen (Kreuzprodukt)
MDX Mengenausdrücke
47
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 )
BerlinKiosk
BerlinMega-Store
StuttgartKiosk
StuttgartMega-Store
1. Quartal 2010 2. Quartal 2010 3. Quartal 2010 4. Quartal 2010
numerische Zellenwerte (Anzahl Verkäufe von Produkten von Typ Medien im Zeitraum 2010
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Relative Auswahl zur Nutzung einer Ordnung innerhalb dimensionaler Strukturen.
• LASTCHILD - letzte Kind eines Knotensz.B. Bücher.LASTCHILD = {Fachliteratur}
• NEXTMEMBER - nächster Nachbar auf gleicher Ebenez.B. [1. Quartal 2010].NEXTMEMBER = {[2. Quartal 2010]}
• LEAD(x) - Nachbar in “positiver Entfernung” x auf gleicher Ebenez.B. [November 2010].LEAD(2) = {[Januar 2011]}
• [x]:[y] - Bereichseinschränkung zwischen x und yz.B. [1992]:[2002] beschränkt den zu betrachtenden Zeitraum auf die Jahre 1992 bis 2002.
MDX Mengenausdrücke
48
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Methoden für dimensionale Schemata zur Nutzung einer Ordnung innerhalb dimensionaler Strukturen.
• LEVEL - Ermittlung der Schemaebenez.B. Belletristik.LEVEL = {Kategorien}, Medien.LEVEL = {Typen}
• LEVELS(x) - Nutzung der internen Nummerierung der Klassifikationsstufen zum Zugriff auf Schemaebene xz.B. LEVELS(1) = {Jahr}
MDX Mengenausdrücke
49
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Konstruktion des Ergebniswürfels in Abhängigkeit von berechneten Ergebnissen.
• Top-k Anfragen
• TOPCOUNT
• TOPRECENT
• TOPSUM
• Allgemeine Filter-Bedingungen
• FILTER
Konditionierte Ergebnisproduktion
50
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Konditionierte Ergebnisproduktion
51
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 )
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Addressierung von Zeitpunkten und - orten
• PERIODSTODATE(k, d) Alle Knoten vom Beginn der Klasse k bis zum Datum dz.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]}
Temporale Auswertung
52
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Auswertung
• Kovarianz
• Korrelation
• gleitender Durchschnitt
• ...
Temporale Auswertung
53
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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), ...
MDX Fazit
54
Kapitel 4.1Typische Anfragen
55
OLAP Operationen
• Innerhalb eines Cubes
• Über mehrere Cubes
• Pivot
Sprachen für OLAP
• MDX
• SQL Erweiterungen
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• Ü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
SQL und OLAP
56
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Beispiel
57
Beispiel eines Star Schemas
Produkt
Belletristik
Kinder
Fachliteratur
Musik
DVD
BlueRay
Zeit
Ort
BerlinStuttgartParisLyon
...
Jan.
Feb.
März
April
Mai ...
Faktentabelle
PID Kategorie Typ
1 Belletristik Bücher
2 Kinder Bücher
3 Fachliteratur Bücher
4 Musik Medien
5 DVD Medien
6 BlueRay Medien
Produkt
ZID Monat Quartal Jahr
1 Jan10 Q1 2010 2010
2 Feb10 Q1 2010 2010
... ... ... ...
Zeit
OID Stadt
1 Berlin
2 Stuttgart
3 Paris
4 Lyon
Ort
Kennzahlen (Verkäufe & Gewinn) für Belletristik im Januar 2010 in Stuttgart.
PID ZID OID #Verkäufe Gewinn
1 1 1 5 30
1 1 2 5 37
1 1 3 5 45
1 1 4 5 20
2 1 1 2 33
2 1 2 2 35
2 1 3 2 40
2 1 4 2 35
... ... ... ... ...
1 2 1 3 22
... ... ... ... ...
Alle weiteren Kombinationen von Produktkategorien und Orten im Januar. 2010.
Beginn der Kombinationen für Februar 2010(danach auch für alle weiteren Monate)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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
Mehrfachgruppierungen
58
Beispiel einer GROUP-BY Anfrage - Gesamtgewinn mit Büchern nach Jahr, Quartal und Monat?
SELECT Jahr, Quartal, Monat, SUM(Gewinn)FROM Faktentabelle, Zeit, ProduktWHERE Produkt.PID = Faktentabelle.PIDAND Zeit.ZID = Faktentabelle.ZIDAND Produkt.Typ = ‘Bücher’GROUP BY Jahr, Quartal, Monat
Summe nur für Tage (unterteilt nach Monaten / Jahren)
Keine Summe pro Monat / pro Jahr
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
59
Beispiel einer GROUP-BY Anfrage - Gesamtgewinn mit Büchern nach Jahr, Quartal und Monat
SELECT Monat AS Time, SUM(Gewinn) AS GewinnFROM Faktentabelle, Zeit, ProduktWHERE Produkt.PID = Faktentabelle.PIDAND Zeit.ZID = Faktentabelle.ZIDAND Produkt.Typ = ‘Bücher’GROUP BY MonatUNIONSELECT Quartal AS Time, SUM(Gewinn) AS GewinnFROM Faktentabelle, Zeit, ProduktWHERE Produkt.PID = Faktentabelle.PIDAND Zeit.ZID = Faktentabelle.ZIDAND Produkt.Typ = ‘Bücher’GROUP BY QuartalUNIONSELECT Jahr AS Time, SUM(Gewinn) AS GewinnFROM Faktentabelle, Zeit, ProduktWHERE Produkt.PID = Faktentabelle.PIDAND Zeit.ZID = Faktentabelle.ZIDAND Produkt.Typ = ‘Bücher’GROUP BY Jahr
Time Gewinn
Jan. 2010 150
Feb. 2010 300
... ...
Dec. 2010 400
Jan. 2011 300
... ...
Q1 2010 500
... ...
Q4 2011 800
2010 2000
2011 2300
Monate
Quartale
Jahre
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
Mehrfachgruppierungen
60
Gewünschtes Ergebnis - Gesamtgewinn mit Büchern nach Jahr, Quartal und Monat
Nutzung einer Dimensionshierarchie in SQL?
Mehrfachgruppierung 2: Gewinn pro Quartal und Produkttyp und Quartal und Ort in 2010
Quartal Typ Ort Gewinn
Q1 2010 Bücher - 50
... Bücher - ...
Q4 2010 Bücher - 70
Q1 2010 Medien - 40
... Medien - ...
Q4 2010 Medien - 60
Q1 2010 - Berlin 60
... - Berlin ...
Q4 2010 - Berlin 50
Q1 2010 - Stuttgart 20
... - ... ...
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
Aggregation entlang mehrerer Dimensionskombinationen in SQL?
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• SQL Erweiterung zur Unterstützung von Mehrfachgruppierungen
• GROUPING SETS - GruppierungsmengenExplizite Angabe einer Menge von Gruppierungskombinationen
• CUBE - Multidimensionale GruppierungGenerierung aller Gruppierungskombinationen der als Parameter übergebene Attribute
• ROLLUP - Hierarchische Multidimensionale Gruppierung
• Kombination dieser Klauseln mit bekannten SQL-Klauseln (GROUP BY, HAVING, CASE, ...)
Mehrfachgruppierungen
61
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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.
MehrfachgruppierungenGruppierungsmengen
62
Grouping Sets
...GROUP BY GROUPING SETS ((<set1_a1>, ..., <set1_am>), (<set2_a1>, ..., <set2_an>), ...)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenGruppierungsmengen
63
Mehrfachgruppierung 2: Gewinn pro Quartal und Produkttyp und Quartal und Ort in 2010
Quartal Typ Ort Gewinn
Q1 2010 Bücher - 50
... Bücher - ...
Q4 2010 Bücher - 70
Q1 2010 Medien - 40
... Medien - ...
Q4 2010 Medien - 60
Q1 2010 - Berlin 60
... - Berlin ...
Q4 2010 - Berlin 50
Q1 2010 - Stuttgart 20
... - ... ...
Mehrfachgruppierung 2 in SQL unter Verwendung von Gruppierungsmengen
SELECT Quartal, Typ, Ort, SUM(Gewinn)AS GEWINNFROM Faktentabelle FT, Zeit, ProduktWHERE Produkt.PID = FT.PIDAND Zeit.ZID = FT.ZIDAND Zeit.Jahr = ‘2010’GROUP BY GROUPING SETS ( (Quartal, Typ), (Quartal, Ort) )
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenGruppierungsmengen
64
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 GOFROM ...WHERE ...GROUP BY GROUPING SETS ((Quartal, Typ), (Quartal, Ort))
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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)
MehrfachgruppierungenGruppierungsmengen
65
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenGruppierungsmengen
66
Formulieren Sie eine SQL Anfrage, die das unten dargestellte Ergebnis berechnet
Typ Jahr Stadt #Verkäufe
Buch - - 50
Buch 2010 Berlin 30
Buch 2010 Stuttgart 20
Medien - - 40
Medien 2010 Berlin 30
Medien 2010 Stuttgart 10
- - Berlin 80
- - Stuttgart 30
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenMultidimensionale Gruppierung
67
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.
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenMultidimensionale Gruppierung
68
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
... - ... ...
- Bücher Berlin 50
- 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 GEWINNFROM Faktentabelle FT, Zeit, ProduktWHERE Produkt.PID = FT.PIDAND Zeit.ZID = FT.ZIDAND Zeit.Jahr = ‘2010’ GROUP BY CUBE (Quartal, Typ, Ort)
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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), (A, B, C), (A, B), (A, C), (A), (B, C), (B), (B, C), (B), (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), ())
MehrfachgruppierungenMultidimensionale Gruppierung
69
Duplikate in Kombinationen(z.B. (A, B, C), (A, B), (B), ...)
werden nicht eliminiert!
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenMultidimensionale Gruppierung
70
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.
Berlin
Stuttgart
Paris
Lyon
Summe
Jan. 10 Feb. 10 März Summe20 25 22 67
10 15 17 42
30 25 30 85
10 12 10 32
70 77 79 226
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenHierarchische Multidimensionale Gruppierung
71
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.
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenHierarchische Multidimensionale Gruppierung
72
Gesamtgewinn mit Büchern nach Jahr, Quartal und Monat
SQL Anfrage mit ROLLUP
SELECT Jahr, Quartal, Monat, SUM(Gewinn)AS GEWINNFROM Faktentabelle FT, Zeit, ProduktWHERE Produkt.PID = FT.PIDAND Zeit.ZID = FT.ZIDAND Produkt.Typ = ‘Bücher’ GROUP BY ROLLUP (Jahr, Quartal, 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
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
• 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), ( ) )
MehrfachgruppierungenHierarchische Multidimensionale Gruppierung
73
Data Warehouses | SS 2011 | Melanie Herschel | Universität Tübingen
MehrfachgruppierungenHierarchische Multidimensionale Gruppierung
74
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 rechtenBeispieltabelle aufschlüsselt. Verwenden Sie dabeikeine 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 1000
2010 - - Stuttgart 300
2010 - - ... ...
2011 - - Berlin 1500
2011 - - ... ...
- - - Berlin 4000
- - - Stuttgart 2000
- - - ... ...
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