3. Mehrdimensionale Datenmodellierung und Operationen Grundlagen



Ähnliche Dokumente
Data Warehousing Kapitel 3: Mehrdimensionale Datenmodellierung

3. Mehrdimensionale Datenmodellierung und Operationen Grundlagen

3. Mehrdimensionale Datenmodellierung. Kennzahlen

3. Mehrdimensionale Datenmodellierung und Operationen Grundlagen. multi-dimensionale Speicherung (MOLAP)

Data Warehousing. und Operationen. Dr. Andreas Thor Wintersemester 2009/10. Universität Leipzig Institut für Informatik.

3. Mehrdimensionale Datenmodellierung. Cb Cube-Operator, Rollup-Operator, Grouping Sets SS08, Prof. Dr. E. Rahm 3-1 y yy

Multidimensionale Modellierung

Datenbanksysteme 2009

Anfragen an multidimensionale Daten

Kapitel 17: Date Warehouse

Unterstützung der Unternehmenssteuerung durch Data Warehouses mit ganzheitlicher Sicht auf Daten aus operativen Systemen

Unterstützung der Unternehmenssteuerung durch Data Warehouses mit ganzheitlicher Sicht auf Daten aus operativen Systemen

Business Intelligence & Reporting. Michael Cordes Holger Oehring Matthias Rein

Multidimensionales Datenmodell, Anfrageverarbeitung und Anfrageoptimierung

Summarization-based Aggregation

Data-Warehouse-Technologien

Betriebliche Anwendungen

Data Warehousing. Aufbau eines DWH OLAP <-> OLTP Datacube

Data Warehousing. Beispiel: : Amazon. Aufbau eines DWH OLAP <-> OLTP Datacube. FU-Berlin, DBS I 2006, Hinze / Scholz

Data Warehousing. Ausführung von OLAP Operationen. Ulf Leser Wissensmanagement in der Bioinformatik

Themenblock: Erstellung eines Cube

Anfragesprachen für On-Line Analytical Processing (OLAP)

Data Cubes PG Wissensmangement Seminarphase

Einführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.

Data Cube. 1. Einführung. 2. Aggregation in SQL, GROUP BY. 3. Probleme mit GROUP BY. 4. Der Cube-Operator. 5. Implementierung des Data Cube

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

Das Multidimensionale Datenmodell

6.2 Datenmodellierung

Data Warehouses und Moderne Betriebliche Anwendungen von Datenbanksystemen

Multidimensionales Datenmodell

Kapitel 7 Grundlagen von Data

Vorlesung Wissensentdeckung in Datenbanken

Analytic Views: Einsatzgebiete im Data Warehouse

Data Warehousing. Fragen des Marketingleiters. Beispiel: : Amazon. Technisch... Amazon weltweit... Datenbank. Aufbau eines DWH OLAP <-> OLTP Datacube

Vorlesung Wissensentdeckung in Datenbanken

Kapitel 6. Vorlesung: PD Dr. Peer Kröger

Oracle Analytic SQL. o Anderer Name: Window functions o Ab 8i o Einfache Ansätze für komplexe Problemstellungen. o Anwendung:

Online Kurse Modulbeschreibungen

Oracle Analytic Functions

Datenbankprogrammierung

Data Warehouse. Kapitel 17. Abbildung 17.1: Zusammenspiel zwischen OLTP und OLAP. Man unterscheidet zwei Arten von Datenbankanwendungen:

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Kapitel 5: Vom relationalen zum multidimensionalen Datenmodell

Kapitel 5: Vom relationalen zum multidimensionalen Datenmodell

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen

6.5 Workshop: Operationen auf dem Cube Multidimensional Expressions (MDX)

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Betriebliche Anwendungen

7. XML-Datenbanksysteme und SQL/XML

Data Warehouse. Kapitel 17. Abbildung 17.1: Zusammenspiel zwischen OLTP und OLAP. Man unterscheidet zwei Arten von Datenbankanwendungen:

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

1 Vorstellung Kursbeispiel

Data Warehousing und Data Mining

Data Warehousing und Data Mining

Einführung in Data Warehouses

Datenbanksysteme 2009

Betriebliche Anwendungen

Kapitel 5: Vom relationalen zum multidimensionalen Datenmodell

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

OLTP: Online Transaction Processing

Fortgeschrittene OLAP Analysemodelle

Data Warehouse. Kapitel 16. Abbildung 16.1: Zusammenspiel zwischen OLTP und OLAP. Man unterscheidet zwei Arten von Datenbankanwendungen:

Frühjahrsemester Data Warehousing Kapitel 5: Data Warehousing. H. Schuldt. 5.1 Einführung. Filiale Allschwil

Einführung in OLAP und Business Analysis. Gunther Popp dc soft GmbH

Data Warehouses. Data Warehouse Architektur ... Sommersemester Melanie Herschel

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Kapitel 6 Einführung in Data Warehouses

Komponenten und Architekturen von Analytischen Informationssystemen (AIS)

Vorlesung Datenbankmanagementsysteme

SQL structured query language

Kap. 6 Data Warehouse

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle Art der Info Technische Background Info (April 2002)

Datenbanksysteme Kapitel 5: SQL - Grundlagen

OLAP und Data Warehouses

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Verbunde (Joins) und mengentheoretische Operationen in SQL

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

Aufgabe 1: [Logische Modellierung]

Agenda. Themenblock: Data Warehousing (I) Referenzarchitektur. Eigenschaften eines Data Warehouse. Einführung Data Warehouse Data Access mit SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Warehousing. Weitere Buzzwörter: OLAP, Decision Support, Data Mining

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Repetitorium. Data Warehousing und Data Mining 11/12. Sebastian Wandelt 13./16. Februar 2012

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Frühjahrsemester Data Warehousing Kapitel 5: Data Warehousing. H. Schuldt. 5.1 Einführung. Filiale Allschwil

ACCESS SQL ACCESS SQL

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen

Optimierung von Datenbanken

7. XML-Datenbanksysteme und SQL/XML

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL: Weitere Funktionen

Themenblock: Data Warehousing (I)

Oracle OLAP 11g: Performance für das Oracle Data Warehouse

Übersicht der wichtigsten MySQL-Befehle

Garten -Daten Bank. Was ist das? Dr. Karsten Tolle PRG2 SS 2014

Transkript:

3. Mehrdimensionale Datenmodellierung und Operationen Grundlagen Kennzahlen, Dimensionen, Cube Cuboide / Aggregationsgitter hierarchische Dimensionen / Konzepthierarchien Cube-Operationen Multi-dimensionale Speicherung (MOLAP) MDX Relationale Repräsentation mehrdimensionaler Daten (ROLAP) Star-Schema Varianten: Snowflake-, Galaxien-Schema Anfragen: Star Join, Roll-Up, Drill-Down CUBE- und ROLLUP-Operator SQL-Erweiterungen (Group By): Cube, Rollup, Grouping Sets RANK, WINDOW SS14, Prof. Dr. E. Rahm 3-1 y yy Kennzahlen Kennzahl ist numerische Größe mit konzentrierter Aussagekraft zur Diagnose, Überwachung und Steuerung eines Systems auch: Fakten, Meßgrößen, Measures, Key Performance Indicators (KPI) meist betriebswirtschaftliche Größen, z.b. Umsatz / Gewinn / Rentabilität komplexe Beziehungen zwischen Kennzahlen möglich KPIs oft aus einfacheren Kennzahlen abgeleitet: Umsatz pro Kunde, Liefertreue, Anlagenauslastung, ROI Kennzahlen besitzen beschreibende Attribute z.b. Einheit, Wertebereich, Berechnungsvorschrift Arten von Kennzahlen Additive bzw. semi-additive Kennzahlen: additive Aggregation bzgl. aller bzw. nur ausgewählter Dimensionen möglich nicht-additive Kennzahlen (Bsp. Durchschnittswerte, Prozentanteile) SS14, Prof. Dr. E. Rahm 3-2 y yy

Sachsen Dimensionen Bücher Wo? Mit was? Umsatz = 67000 EUR Wann? 1. Quartal Zahlenwert einer Kennzahl ist ohne semantischen Bezug nichtssagend Dimensionen setzen Kennzahlen in Bezug zu Eigenschaften / sachlichen Kriterien Dimension: Datentyp, i.a. endlich (z.b. Aufzählung) Beispiele: Menge aller Produkte, Regionen, Kunden, Zeitperioden etc. Dimensionselement: Element / Ausprägung / Wert zu einer Dimension Klassifikations-/Kategorienattribute (inkl. eines Primärattributs für detaillierteste Stufe) Dimensionale Attribute : zusätzliche beschreibende Eigenschaften, z.b. Produktfarbe / Gewicht SS14, Prof. Dr. E. Rahm 3-3 y yy Data Cube Datenwürfel bzw. OLAP-Würfel (Cube), Data Cube Dimensionen: Koordinaten Kennzahlen: Zellen im Schnittpunkt der Koordinaten Cube bezüglich Dimensionen D 1, D n und k Kennzahlen (Fakten): W = { (d 1, d n ), (f 1, f k ), Dimensionselement d i aus D i, i= 1..n, Kennzahlen f j, j = 1..k)} eindeutige Zellen-Adresse: (d 1, d n ) Zellen-Inhalt: (f 1, f k ) n: Dimensionalität des Cube Alternative: k Cubes mit je einer Kennzahl pro Zelle (Multi-Cube) typischerweise 4-12 Dimensionen Zeitdimension fast immer dabei weitere Standarddimensionen: Produkt, Kunde, Verkäufer, Region, Lieferant, Zeit SS14, Prof. Dr. E. Rahm 3-4 y yy 563 764 1Q 2Q 3Q 4Q y y y Region Ost West Nord Süd Sonstiges PC Video TV Produkt

Data Cube: 3D-Beispiel mit Aggregation TV PC VCR Summe Zeit 1Qtr 2Qtr 3Qtr 4Qtr Gesamtjahresabsatz für TV in Region West Summe West Süd Ost Region Summe SS14, Prof. Dr. E. Rahm 3-5 y yy Cube mit Aggregationen Aggregationen von Kennzahlen für jede Dimension und Kombination von Dimensionen möglich -> Cuboide Basis-Cuboid: N-dimensionaler Cube Hieraus lassen sich Cuboiden geringerer Dimensionsanzahl ableiten -> Data Cube entspricht Verband (Lattice) von Cuboiden (Aggregationsgitter) N-dimensionaler Cube hat 2 N Cuboiden inkl. Basis-Cuboid (ohne Dimensionshierarchien) Scheitel-Cuboid: 0-dimensionale Aggregation über alle Dimensionen All 0-D (Scheitel) Cuboid Zeit Produkt Region 1-D Cuboiden Zeit, Produkt Zeit, Region Produkt, Region 2-D Cuboiden Zeit, Produkt, Region 3-D (Basis)-Cuboid SS14, Prof. Dr. E. Rahm 3-6 y yy

Cuboid-Verband für 4D Cube All 0-D(Scheitel) Cuboid Zeit Produkt Region Lieferant 1-D Cuboide Zeit, Produkt Zeit, Region Produkt, Region Region, Lieferant Zeit, Lieferant Produkt, Lieferant 2-D Cuboide Zeit,Region,Lieferant Zeit, Produkt, Region Zeit,Produkt,Lieferant Produkt, Region, Lieferant 3-D Cuboide Zeit, Produkt, Region, Lieferant 4-D (Basis)-Cuboid SS14, Prof. Dr. E. Rahm 3-7 y yy Dimensionshierarchien (Konzepthierarchien) häufig hierarchische Beziehungen zwischen Dimensionsobjekten Top-Level pro Hierarchie für alle Dimensionselemente (Gesamt, Top, All) Primärattribut: unterste (genaueste) Stufe funktionale Abhängigkeiten zwischen Primärattribut und Klassifikationsattributen höherer Stufen Beispiele Zeit Produkt Region Gesamt Gesamt Gesamt Jahr Branche Kontinent Quartal Produktgruppe Land Monat Produktfamilie Bezirk Tag Produkt Ort Dimensionen können neben Klassifikations(Hierarchie)attributen noch beschreibende dimensionale Attribute aufweisen SS14, Prof. Dr. E. Rahm 3-8 y yy

Beispiel einer Konzepthierarchie (Region) einfache Hierarchie (pro Element höchstens ein übergeordnetes Element) vs. parallele Hierarchie bzw. Halbordnung Region (Gesamt) abgeleitete (verdichtete) Elemente Gebiet Ost Ort Leipzig Basiselemente (unabhängige Dimensionselemente) SS14, Prof. Dr. E. Rahm 3-9 y yy Konzepthierarchien (3) Hierarchien: 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) 0-30 (jung) mittel alt 0-15 16-30 31-40 SS14, Prof. Dr. E. Rahm 3-10 y yy

Cube mit hierarchischen Dimensionen Land Ort Gesamt Produkt Region Monat Quartal Jahr SS14, Prof. Dr. E. Rahm 3-11 y yy Zeit Operationen auf Cubes Slice: Herausschneiden von Scheiben aus dem Würfel durch Einschränkung (Selektion) auf einer Dimension Verringerung der Dimensionalität Dice: Herausschneiden einen Teilwürfels durch Selektion auf mehreren Dimensionen unterschiedlichste mehrdimensionale Aggregationen / Gruppierungen Pivot (Austausch von Dimensionen), Sortierung, Top-n-Anfragen, Zeit Regionalleiter-Sicht Region Controller- Sicht Produkt Umsatzdaten Produktleiter-Sicht Sicht Ad-Hoc- SS14, Prof. Dr. E. Rahm 3-12 y yy

Beispiele: Slice / Pivot Quelle: J. Han, M. Kamber: Data Mining, Morgan Kaufmann SS14, Prof. Dr. E. Rahm 3-13 y yy Beispiel: Dice SS14, Prof. Dr. E. Rahm 3-14 y yy

Navigation in Hierarchien Drill-Down Navigation nach unten in der Hierarchie Erhöhung des Detailgrad: von verdichteten Daten zu weniger verdichteten/aggregierten Daten Roll-Up (Drill-Up) Navigation nach oben in der Hierarchie von weniger verdichteten (aggregierten) Daten zu stärker verdichteten Daten Region (Gesamt) Roll-Up Land Ort Drill-Down Drill across SS14, Prof. Dr. E. Rahm 3-15 y yy Roll-Up SS14, Prof. Dr. E. Rahm 3-16 y yy

Drill-Down SS14, Prof. Dr. E. Rahm 3-17 y yy 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 Roll-Up Elektronik Ost Süd Nord West TV 800 DVD-Player 600 Camcorder 400 SS14, Prof. Dr. E. Rahm 3-18 y yy

Aggregation: 2D-Beispiel Summenbildung 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 SS14, Prof. Dr. E. Rahm 3-19 y yy Größe der Cubes Größe der Basis-Cuboids Anzahl der Zellen entspricht Produkt der Dimensionskardinalitäten D i, 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 für jedes Dimensionselement auf einer höheren Hierarchiestufe möglich Kombinationsmöglichkeit mit jedem Element auf einer der Hierarchiestufen der anderen n-1 Dimensionen Anzahl Cuboiden bei n-dimensionalem Cube: L i : #Ebenen von Dimension i (ohne Top-Level) T n ( L i 1) i 1 Zeit Produkt Kunde Gesamt 1 Gesamt 1 Gesamt 1 Quartal 12 Branche 50 Kundengruppe 10.000 Monat 36 Produktgruppe 5.000 Einzelkunde 1 Million Tag 1000 Produkt 100.000 SS14, Prof. Dr. E. Rahm 3-20 y yy

Umsetzung des multi-dimensionalen Modells Aspekte Speicherung der Daten Formulierung / Ausführung der Operationen 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 nicht ausreichend (nur 1-dimensionale Gruppierung, ) HOLAP: hybride Lösung relationale Speicherung der Detail-Daten, multidimensionale Zugriffsschnittstelle unterschiedliche Kombinationen mit multidimensionaler Speicherung / Auswertung von aggregierten Daten Vorberechnung von Aggregationen erforderlich für ausreichende Leistung SS14, Prof. Dr. E. Rahm 3-21 y yy Multi-dimensionale Datenspeicherung Datenspeicherung in multi-dimensionaler Matrix direkte Umsetzung der logischen Cube-Sicht Vorab-Berechnung und Speicherung der Kennzahlen basierend auf dem Kreuzprodukt aller Wertebereiche der Dimensionen schneller direkter Zugriff auf jede Kennzahl über Indexposition (x 1, x 2, x n ) multi-dimensional (Kreuztabelle) Sachsen Brandenburg Thüringen TV 100 150 200 DVD-Player 50 170 150 Camcorder 20 120 100 relational Produkt Region Umsatz TV Brandenburg 150 Camcorder Sachsen 20 Anfragen: - Wie hoch ist der Umsatz für DVD-Player in Thüringen - Wie hoch ist der Gesamtumsatz für Camcorder? SS14, Prof. Dr. E. Rahm 3-22 y yy

Multi-dimensionale Datenspeicherung (2) mehrdimensionale Speicherung führt oft zu dünn besetzten Matrizen Beispiel (Kundenumsätze nach Regionen) multi-dimensional (2-dimenstional) REGION Kunde B S NRW SH BW SA MVP HH TH Kunde 1 100 - - - - - - - - Kunde 2 - - 150 - - - - - - Kunde 3 - - - - 200 - - - - Kunde 4-50 - - - - - - - Kunde 5 - - - 170 - - - - - Kunde 6 - - - - - - - - 100 Kunde 7 - - - - - 20 - - - Kunde 8 - - - - - - 120 - - Kunde 9 - - - - - - - 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 relational 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 Kunde 7 SA 20 Kunde 8 MVP 120 Kunde 9 HH 100 SS14, Prof. Dr. E. Rahm 3-23 y yy Sprachansatz MDX* MDX: MultiDimensional expressions Microsoft-Spezifikation für Cube-Zugriffe / Queries an SQL angelehnt Extraktion von aggregierten Sub-Cubes / Cuboiden aus Cubes Unterstützung durch Microsoft und zahlreiche Tool- Anbieter Hauptanweisung SELECT [<axis_specification> [, <axis_specification>]] FROM [<cube_specification>] [WHERE [<slicer_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 SS14, Prof. Dr. E. Rahm 3-24 y yy

MDX: Beispiele SELECT Region.CHILDREN ON COLUMNS, Produkt.CHILDREN ON ROWS FROM Verkauf WHERE (Umsatz, Zeit.[2011]) SELECT Measures.MEMBERS ON COLUMNS, TOPCOUNT(Filiale.Ort.MEMBERS, 10, Measures.Anzahl) ON ROWS FROM Verkauf SS14, Prof. Dr. E. Rahm 3-25 y yy ER-Diagramm eines multi-dimensionalen Datenmodells KundenNr Datum-ID KundenName Kunde Zeit Tag Geschlecht Monat Jahr Verkauf ProduktNr Anzahl Umsatz Fname ProduktName Produkt Filialen Ort Produktgruppe Land SS14, Prof. Dr. E. Rahm 3-26 y yy

Relationale Speicherung: Star-Schema Faktentabelle bildet Zentrum des Star-Schemas und enthält die Detail-Daten mit den zu analysierenden Kennzahlen 1 Dimensionstabelle pro Dimension, die nur mit Faktentabelle verknüpft ist (-> sternförmige Anordnung der Tabellen) Kunde KundenNr KundenName Geschlecht Alter 1 1 n n Verkauf KundenNr ProduktNr Datum Filiale Datum Tag Monat Quartal Jahr Zeit Produkt ProduktNr ProduktName Produkttyp Branche Hersteller Farbe Preis 1 n Anzahl Umsatz n 1 Fname Ort Land Region Filialen Dimensionstabelle Faktentabelle Dimensionstabelle SS14, Prof. Dr. E. Rahm 3-27 y yy Beispielausprägungen Verkauf Datum Filiale ProduktNr KundenNr Anzahl Umsatz 7654 Leipzig4 1847 4711 1 26900 Filialen FName Ort Land Region Leipzig4 Leipzig Sachsen Ost Kunde KundenNr Name Geschlecht Alter 4711 Weber M 39 Zeit Datum Tag Monat Jahr Quartal 7654 25 April Produkt ProduktNr Produktname Produkttyp Hersteller Farbe Preis 1847 Passat XY Auto 2012 2 Blau 31999 SS14, Prof. Dr. E. Rahm 3-28 y yy

Star-Schema (2) Formale Definition: Star-Schema besteht aus einer Menge von Tabellen D 1, D n, F mit Dimensionstabellen D i bestehend aus (i.a. künstlichen) Primärschlüssel d i und Dimensionsattributen Faktentabelle F bestehend aus Fremdschlüsseln d 1, d n 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.) SS14, Prof. Dr. E. Rahm 3-29 y yy Snowflake-Schema explizite Repräsentation der Dimensionshierarchien normalisierte Dimensionstabellen leicht geringere Redundanz, geringerer Änderungsaufwand erhöhte Zugriffskosten (höherer Join-Aufwand) Star-Schema ist Snowflake-Schema meist vorzuziehen PGruppe Produktgruppe Branche Kunde KundenNr KundenName Geschlecht Alter Produkt ProduktNr ProduktName Produkttyp Hersteller Farbe Preis Verkauf KundenNr ProduktNr Datum Filiale Anzahl Umsatz Faktentabelle Zeit Datum Tag Monat Jahr Filialen Fname Ort MonatQ Monat Quartal OrtL Ort Land Land Region SS14, Prof. Dr. E. Rahm 3-30 y yy

Galaxien-Schema Data Warehouses benötigen meist mehrere Faktentabellen -> Multi-Star-Schema (Galaxien-Schema, Fact Constellation Schema ) gemeinsame Nutzung von Dimensionstabellen Speicherung vorberechneter Aggregate separate Faktentabelle im Rahmen der Faktentabelle mit Detail-Daten Kunde Filiale Verkauf Zeit Produkt Einkauf Lieferant SS14, Prof. Dr. E. Rahm 3-31 y yy Behandlung von Änderungen in Dimensionen Änderungsarten neue Dimensionselemente (z.b. neue Produktversion) Änderung von Werten zu einem Dimensionselement (z.b. neuer Familienstand/Wohnort von Kunden) neue Hierarchiestufe einer Dimension neue Dimension Behandlung auf Schema-Ebene (Schema-Evolution) oder Tupel-Ebene Änderung von Dimensionselementen Lösung 1: Überschreiben der alten Werte (Auswertungen für ältere Zeiträume sind verfälscht) Lösung 2: Versionierung von Dimensionselementen auf Tupel-Ebene, z.b. erweiterte Schlüsselwerte Lösung 3: Versionierung auf Schema-Ebene (Neue Zeitattribute für Gültigkeitszeit, Änderungszeit) SS14, Prof. Dr. E. Rahm 3-32 y yy

Anfragen auf dem Star-Schema Star-Join sternförmiger Join der (relevanten) Dimensionstabellen mit der Faktentabelle Einschränkung der Dimensionen Verdichtung der Kennzahlen durch Gruppierung und Aggregation Allgemeine Form aggregierte Kennzahlen select g 1, g k, agg(f 1 ), agg (f m ) from D 1,, D n, F where group by g 1, g k sort by ; <Selektionsbedingung auf D 1 > and and <Selektionsbedingung auf D n > and D 1.d 1 = F.d 1 and and D n.d n = F.d n Relationen des Star-Schemas Join-Bedingungen Ergebnis-Dimensionalität SS14, Prof. Dr. E. Rahm 3-33 y yy Beispiel eines Star-Join In welchen Jahren wurden von weiblichen Kunden in Sachsen im 1. Quartal die meisten Autos gekauft? select from where group by order by z.jahr as Jahr, sum (v.anzahl) as Gesamtzahl Filialen f, Produkt p, Zeit z, Kunden 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 Gesamtzahl Descending; Jahr 2012 2013 2011 Gesamtzahl 745 710 650 SS14, Prof. Dr. E. Rahm 3-34 y yy

Mehrdimensionale Aggregationen mit Group-By Attributanzahl in group by-klausel bestimmt Dimensionalität select Hersteller, Jahr, sum (Anzahl) as Anzahl from Verkauf v, Produkt p, Zeit z where v.produktnr = p.produktnr and v.datum= z.datum and p.produkttyp = Auto group by Hersteller, Jahr; select Hersteller, sum (Anzahl) as Anzahl from Verkauf v, Produkt p where v. Produkt = p. ProduktNr and and p. Produkttyp = Auto group by Hersteller; select sum (Anzahl) as Anzahl from Verkauf v, Produkt p where v. Produkt = p. ProduktNr and p. Produkttyp = Auto ; Hersteller Jahr Anzahl BMW Ford Ford Ford Hersteller Ford BMW SS14, Prof. Dr. E. Rahm 3-35 y yy 2011 2012 2013 2011 2013 2011 2012 2013 Anzahl 19.500 Anzahl 8.500 3.500 4.500 3.000 2.000 3.000 3.500 1.000 1.500 1.000 1.500 2.000 Relationale Speicherung aggregierter Werte Kreuztabelle (Crosstab-Darstellung) Jahr Hersteller 2011 2012 2013 BMW Ford 2.000 1.000 500 1.000 3.000 1.000 1.000 1.500 3.500 1.500 1.500 2.000 8.500 3.500 3.000 4.500 4.500 6.500 8.500 19.500 relationale Darstellung (2D-Cube) Hersteller Jahr Anzahl BMW BMW BMW 2011 2012 2013 2011 2012 2013 2011 2012 2013 2.000 3.000 3.500 1.000 1.000 1.500 500 1.000 1.500 Ford 2011 1.000 Ford 2012 1.500 Ford 2013 2.000 ALL 8.500 ALL 3.500 BMW ALL 3.000 Ford ALL 4.500 ALL 2011 4.500 ALL 2012 6.500 ALL 2013 8.500 ALL ALL 19.500 SS14, Prof. Dr. E. Rahm 3-36 y yy

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) from Verkauf v, Produkt 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) from Verkauf v, Produkt p where v.produktnr = p. ProduktNr and p.produkttyp = Auto ); SS14, Prof. Dr. E. Rahm 3-37 y yy Cube-Operator SQL-Erweiterung um CUBE-Operator für n-dimensionale Gruppierung und Aggregation Syntax: Group By CUBE (D 1, D 2, D n ) generiert als Ergebnis eine Tabelle mit aggregierten Ergebnissen (ALL-Tupel) implementiert in MS SQL-Server, DB2, Oracle erspart mehrfache Berechnung der Aggregationen erspart 2 n 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); SS14, Prof. Dr. E. Rahm 3-38 y yy

Hersteller Jahr Geschl Anzahl BMW 2011 2011 2012 2012 2013 2011 2011 3D-Cube in relationaler Form m w m w m m w 1300 700 1900 1100 2300 800 200 CUBE Hersteller Jahr Geschl Anzahl 2011 2011 m w 1300 700 2011 ALL 2.000 ALL Ford 2013 ALL 2.000 ALL m 5.400 Ford ALL w ALL 2011 m ALL ALL 8.500 ALL 2011 ALL ALL ALL m ALL ALL ALL 19.500 SS14, Prof. Dr. E. Rahm 3-39 y yy Cube-Aggregatgitter Dimensionalität (ALL, ALL, ALL) 0 (Hersteller, ALL, ALL) (ALL, Jahr, ALL) (ALL, ALL, Geschlecht) 1 (Hersteller, Jahr, ALL) (Hersteller, ALL, Geschlecht) (ALL, Jahr, Geschlecht) 2 (Hersteller, Jahr, Geschlecht) 3 niedrig-dimensionale Aggregate / Cuboiden können aus höherdimensionalen abgeleitet werden Materialisierung / Caching häufiger benutzter Aggregate ermöglicht Anfrageoptimierung SS14, Prof. Dr. E. Rahm 3-40 y yy

ROLLUP-Operator CUBE-Operator: inter-dimensionale Gruppierung / Aggregierung generiert Aggregate für alle 2 n Kombinationsmöglichkeiten bei n Dimensionen zu aufwendig für Roll-Up / Drill-Down innerhalb einer Dimension 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, f () Reihenfolge der Attribute relevant! SS14, Prof. Dr. E. Rahm 3-41 y yy ROLLUP-Operator: Beispiel select p. Hersteller, p. Marke, p.farbe, sum (v. Anzahl) from Verkauf v, Produkt p where v.produktnr = p. ProduktNr and p.hersteller in (, ) group by rollup (p.hersteller, p.marke, p.farbe); (ALL, ALL, ALL) 0 (Hersteller, ALL, ALL) 1 (Hersteller, Marke, ALL) 2 (Hersteller, Marke, Farbe) 3 SS14, Prof. Dr. E. Rahm 3-42 y yy

Hersteller Marke Farbe Anzahl Passat Passat Passat Golf Golf Golf Vectra Vectra Vectra rot weiß blau rot weiß blau rot rot weiß blau 800 600 600 1.200 800 1.000 1.400 400 300 300 ROLLUP-Beispiel ROLLUP Hersteller Marke Farbe Anzahl Passat Passat Passat Golf Golf Golf Vectra Vectra Vectra rot weiß blau rot weiß blau rot rot weiß blau 800 600 600 1.200 800 1.000 1.400 400 300 300 Passat ALL 2.000 Golf ALL 3.000 ALL 3.500 Vectra ALL 1.600 ALL ALL ALL 8.500 ALL ALL 3.500 ALL ALL ALL 12.000 SS14, Prof. Dr. E. Rahm 3-43 y yy Grouping Sets mehrere Gruppierungen pro Anfrage GROUP BY GROUPING SETS ( <Gruppenspezifikationsliste> ) Gruppenspezifikation: (<Gruppenspezifikationsliste> ) 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 v.produktnr = p. ProduktNr and p.hersteller in (, ) group by grouping sets ((p.hersteller), (p.farbe)); Hersteller Farbe Anzahl ALL ALL ALL ALL ALL blau rot weiß CUBE, ROLLUP, herkömmliches Group-By entsprechen speziellen Grouping-Sets 8500 3500 3100 6200 2700 SS14, Prof. Dr. E. Rahm 3-44 y yy

Statistische Funktionen in SQL Varianz VAR_POP (bzgl gesamter Population/Eingabepartition) VAR_SAMP (berücksichtigt Bessel-Korrektur) Standardabweichung; STDDEV_POP, STDEV_SAMP Kovarianz: COVAR_POP, COVAR_SAMP Korrelationskoeffizient: CORR select p.produkttyp, CORR (p.verkaufspreis, p.einkaufspreis) from Verkauf v, Produkt p where v.produktnr = p. ProduktNr group by p.produkttyp Lineare Regressionsanalysen REGR_SLOPE (Anstieg Regressionsgerade) REGR_COUNT (Anzahl berücksicht. Wertepaare ungleich NULL) REGR_R2 (Regr.koeffizienz) REGR_AVGX, REGR_AVGY (Mittelwerte der X/Y-Parameter) SS14, Prof. Dr. E. Rahm 3-45 y yy Rank/Windowing-Funktionen Standardisiert seit SQL:1999 / 2003 Erweiterte Analysemöglichkeiten Berechnung von Rangfolgen / Top-N Kumulierte Häufigkeiten/Anteile (z.b. bezüglich eines Jahres/Monats) Vergleiche, z.b. Monatsumsatz gegenüber gleitendem 3- Monatsdurchschnitt Nutzung eines OVER-Prädikats in Select-Klausel zur Bezugnahme auf Datenstrom /Sequenz WFctType(expr) OVER (WPartitioning WOrdering Wframe) WFctType: SUM, AVG, RANK, DENSE_RANK Wpartitioning: optionale PARTITION-Klausel WOrdering: optionale ORDER BY-Klausel Wframe: optionale tupelweise (ROWS) oder wertebereichsweise (RANGE) Einschränkung für Aggregationsfenster in Verbindung mit ORDER BY Alternative WINDOW-Klausel SS14, Prof. Dr. E. Rahm 3-46 y yy

Rank-Funktion select Hersteller, Anzahl, rank() over (order by Anzahl desc) as Rang, dense_rank() over (order by Anzahl desc) as DRang from verkauf natural join produkt natural join zeit where jahr=2011 order by Anzahl desc, Hersteller Hersteller Anzahl Rang DRang 2000 1 1 Ford 1000 2 2 1000 2 2 BMW 500 4 3 DENSE_RANK überspringt keine Nummer 47 SS14, Prof. Dr. E. Rahm 3-47 y yy Rank-Funktion (2) Partitionsweises Ranking select Hersteller, Anzahl, rank() over (partition by Jahr order by Anzahl desc) as Rang, from verkauf natural join produkt natural join zeit order by Jahr, Rang Weitere Ranking-Funktionen percent_rank(): relativer Anteil pro Partition (zwischen 0 und 1) percentile_cont(p), percentile_disc(p): Perzentile (Prozentränge) für kontinuierliche bzw. gleichmäßige Verteilung der Attributwerte innerhalb einer Gruppe (WITHIN GROUP- und ORDER BY-Klauseln) Beispiel: Median der Verkaufspreise pro Hersteller select Hersteller, percentile_disc(0.5) within group (order by Verkaufspreis) over (partition by Hersteller) as Preismedian, from verkauf natural join produkt SS14, Prof. Dr. E. Rahm 3-48 y yy

Aggregatberechnung auf Windows Nutzung von SUM, AVG etc. in Verbindung mit OVER Anwendungsbeispiel für Tabelle sales (date, value) Summe der Verkäufe pro Tag sowie Anteil an Gesamtsumme select date, sum(value) as day_sum, sum(value) over () as all_sum, 100.0*day_sum/all_sum as anteil from sales group by date Summe der Verkäufe eines Tages im Verhältnis zu Verkäufen des Jahres select date, sum(value) as day_sum, sum(value) over (partition by year(date)) as year_sum, 100.0*day_sum/year_sum as janteil from sales group by date SS14, Prof. Dr. E. Rahm 3-49 y yy date value 1.2.2011 500 1.2.2011 300 5.7.2011 200 2.3.2012 400 3.4.2012 100 9.6.2013 500 Beispieldaten date day_sum all_sum anteil 1.2.2011 5.7.2011 2.3.2012 3.4.2012 9.6.2013 SS14, Prof. Dr. E. Rahm 3-50 y yy

Bsp.: Kumulierte Summe Aggregatfunktion vor OVER aggregiert bei Order By vom ersten bis zum aktuellen Tupel Nutzbar zur Berechnung einer kumulierten Summe Beispiel für Tabelle sales (date, value) Summe der Verkäufe pro Tag sowie die kumulierten Gesamtverkäufe nach Tagen und die kumulierten Verkäufe im jeweiligen Jahr nach Tagen sortiert select date, sum(value) AS day_sum, sum(value) over (order by date) as cum_sum, sum(value) over (partition by year(date) order by date) as cumy_sum from sales group by day order by day SS14, Prof. Dr. E. Rahm 3-51 y yy Windowing mit expliziter Fensterangabe Beispiel Moving Average für Tabelle sales (date, value) Berechne pro Datum durchscnittlichen Umsatz für diesen Tag, den vorhergehenden Tag sowie den nächsten Tag select date, avg(value) over (order by date between rows 1 preceding and 1 following) from sales Weitere dynamische Windows-Spezifikationen rows unbounded preceding (alle Vorgänger inkl. aktuellem Tupel) rows unbounded following (alle Nachfolger inkl. aktuellem Tupel) rows between 2 preceding and 2 following (Fenster von 5 Sätzen, zb 5 Tage, Monate etc.) rows 3 following (aktueller Satz und maximal 3 nachfolgende Sätze) range between interval 10 day preceding and current row (wertebasierter Bereich ) SS14, Prof. Dr. E. Rahm 3-52 y yy

Explizites Windowing (2) Partitionsweises Windowing Tabelle transaction (account-number, date-time, amount) Amount ist positiv für Zubuchung, negativ für Abbuchung Bestimme Kontostand (kumulierte Summe) pro Konto nach jeder Kontobewegung select account-number, date-time, sum (amount) over (partition by account-number order by date-time rows unbounded preceding ) as balance from transaction order by account-number, date-time Alternative Formulierung mit WINDOW-Klausel select account-number, date-time, sum (amount) over w as balance from transaction order by account-number, date-time window w as (partition by account-number order by date-time rows unbounded preceding ) SS14, Prof. Dr. E. Rahm 3-53 y yy Zusammenfassung Einfachheit des multi-dimensionalen Modellierungsansatzes 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 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 Gruppierung und Aggregation Vorberechnung aggregierter Daten wesentlich für ausreichende Leistung Sprachansätze MDX-Anweisungen für Cubes SQL-Erweiterungen: CUBE-, ROLLUP, GROUPING SETS, Rank/Windowing- Funktionen SS14, Prof. Dr. E. Rahm 3-54 y yy