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