Multidimensionales Datenmodell, Anfrageverarbeitung und Anfrageoptimierung



Ähnliche Dokumente
Data-Warehouse-Technologien

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

Anfragen an multidimensionale Daten

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Vorlesung Datenbankmanagementsysteme

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

Aufgabe 1: [Logische Modellierung]

Informatik 12 Datenbanken SQL-Einführung

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Das Multidimensionale Datenmodell

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

6.2 Datenmodellierung

Kapitel 3: Datenbanksysteme

Kampagnenmanagement mit Siebel Marketing/Oracle BI ein Praxisbericht

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

SQL Intensivpraktikum SS 2008

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

IV. Datenbankmanagement

Star-Schema-Modellierung mit ERwin - eine kritische Reflexion der Leistungspotentiale und Anwendungsmöglichkeiten

Multidimensionale Modellierung

Pivotieren. Themenblock: Anfragen auf dem Cube. Roll-up und Drill-down. Slicing und Dicing. Praktikum: Data Warehousing und Data Mining. Produkt.

Beispiele für Datenbank-Struktur-Probleme

Datenbanktechnologie für Data-Warehouse-Systeme

Datenbankprogrammierung

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

7. Übung - Datenbanken

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Business Intelligence Praktikum 1

Business Intelligence Praktikum 1

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Data Warehouse Technologien

Cayuga. A General Purpose Event Monotoring System. David Pfeiffer. 19. Juli 2007

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Hetero-Homogene Data Warehouses

Berechnungen in Access Teil I

Veit Köppen Gunter Saake Kai-Uwe Sattler. 2. Auflage. Data Warehouse Technologien

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Allgemeines zu Datenbanken

Fachbereich Informatik Praktikumsversuch 4. Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Grundbegriffe der Informatik

Mean Time Between Failures (MTBF)

MIN oder MAX Bildung per B*Tree Index Hint

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fortgeschrittene OLAP Analysemodelle

Fachhochschule Deggendorf Platzziffer:...

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Professionelle Seminare im Bereich MS-Office

Logische Modelle für OLAP. Burkhard Schäfer

Data Warehouse Definition (1)

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Fachbereich Informatik Praktikum 1

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 6. Lösung

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

SQL. Fortgeschrittene Konzepte Auszug

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Apache HBase. A BigTable Column Store on top of Hadoop

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Einführung in Data Warehouses

Markus Mauritz 4BBW 97/98 BET - Referat. ABC Analyse (Kostenschwerpunktanalyse)

QM: Prüfen -1- KN

2 Evaluierung von Retrievalsystemen

Freigabemitteilung Nr. 39. Neue Funktionen adresse zurücksetzen / ändern Kennung ändern Anlegen von OCS (elektr. Postfach) Mailbenutzern

Abfragen: Grundbausteine

Data Cubes PG Wissensmangement Seminarphase

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

Themenblock: Erstellung eines Cube

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Übungen zur Softwaretechnik

Informationsblatt Induktionsbeweis

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Verwandt, logisch kohärent, zweckspezifisch, an reale Welt orientiert. Entität kann in einer oder mehreren Unterklassen sein

Ein Beispiel: Tabelle DICHTER

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Dokumentation zur Versendung der Statistik Daten

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Konzepte der Informatik

Excel Pivot-Tabellen 2010 effektiv

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Easyline 8 Auswertungen... 2

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

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

3. GLIEDERUNG. Aufgabe:

Abfrage-Befehle in MySQL -diverse Funktionen -

Seminar C16 - Datenmodellierung für SAP BW

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Transkript:

Multidimensionales Datenmodell, Anfrageverarbeitung und Anfrageoptimierung Grundbegriffe Dimensionen, Fakten/Kennzahlen Eigenschaften von multidimensionalen Anfragen Relationale Umsetzung von Anfragen Star-Joins Optimierungsaspekt Gruppierung und Aggregation Group-By-Erweiterungen Cube-Operator Benutzerdefinierte Aggregatfunktionen Sequenzbasierte Operationen Gruppierung: Implementierung und Optimierung

Motivation Datenmodell ausgerichtet auf Unterstützung der Analyse Datenanalyse im Entscheidungsprozess Betriebswirtschaftliche Kennzahlen (Erlöse, Gewinne, Verluste etc.) stehen im Mittelpunkt Betrachtung der Kennzahlen aus unterschiedlichen Perspektiven (zeitlich, regional, produktbezogen) Dimensionen Unterteilung der Auswertedimensionen möglich (Jahr, Quartal, Monat) Hierarchien oder Konsolidierungsebenen Karczewski Data Warehouse Systeme 2

Dimensionen beschreiben mögliche Sicht auf die assoziierte Kennzahl endliche Menge von n (n 2) Dimensionselementen (Hierarchieobjekten), die eine semantische Beziehung aufweisen dienen der orthogonalen Strukturierung des Datenraums Beispiele: Produkttypen: Tasse, Service, Haushaltswaren Geografie: Hessen, Bundesrepublik, Europa Zeit: Monat, Quartal, Jahr Karczewski Data Warehouse Systeme 3

Hierarchien in Dimensionen Dimensionselemente: Knoten einer Klassifikationshierarchie Klassifikationsstufe beschreibt Verdichtungsgrad Darstellung von Dimensionen über Klassifikationsschema (Schema von Klassifikationshierarchien) Formen einfache Hierarchien parallele Hierarchien Karczewski Data Warehouse Systeme 4

Einfache Hierarchien Höhere Hierarchieebene enthält die aggregierten Werte genau einer niedrigeren Hierarchiestufe Oberster Knoten (Top) enthält Verdichtung auf einen einzelnen Wert der Dimension Top Top Produktfamilie Haushaltswaren Europa Erdteil Produktgruppe Service Bundesrepublik Staat Artikel Tasse Hessen Land Karczewski Data Warehouse Systeme 5

Parallele Hierarchien Innerhalb einer Dimension sind zwei verschiedene Arten der Gruppierung möglich Keine hierarchische Beziehung in den parallelen Zweigen Parallelhierarchie Pfad im Klassifikationsschema (Konsolidierungspfad) Top Jahr Quartal Woche Monat Karczewski Data Warehouse Systeme 6 Tag

Kategorienattribute Inhaltliche Verfeinerung durch unterschiedliche Rollen Primärattribut Kategorienattribut, das alle anderen Attribute einer Dimension bestimmt definiert maximale Feinheit Beispiel: Auftrag Klassifikationsattribut Element der Menge, die mehrstufige Kategorisierung (Klassifikationshierarchie) bilden Beispiel: Kunde, Nation, Kontinent Dimensionales Attribut Element der Menge der Attribute, die vom Primärattribut oder einem Klassifikationsattribut bestimmt werden und nur TopD bestimmen Beispiel: Adresse, Telefon Karczewski Data Warehouse Systeme 7

Struktur einer Dimension: Beispiel Top Region Klassifikationsattribute Dimensionsattribute Nation Kunde Adresse Telefon Status Bestellpreis Auftrag Primärattribut Karczewski Data Warehouse Systeme 8

Kennzahlen / Fakten Kennzahlen/Fakten: (vedichtete) numerische Messgrößen beschreiben betriebswirtschaftliche Sachverhalte Fakt: Basiskennzahl Kennzahl: aus Fakten konstruiert (abgeleitete Kennzahl) durch Anwendung arithmetischer Operationen Beispiele: Umsatz, Gewinn, Verlust, Deckungsbeitrag Karczewski Data Warehouse Systeme 9

Kennzahl: Berechnungsvorschrift Bildung von f(): Skalarfunktionen +, -, *, /, mod Beispiel: Umsatzsteueranteil = Menge * Preis * Steuersatz Aggregatfunktionen Funktion H() zur Verdichtung eines Datenbestandes, indem aus n Einzelwerten ein Aggregatwert ermittelt wird SUM(), AVG(), MIN(), MAX(), COUNT() Ordnungsbasierte Funktionen Definition von Kennzahlen auf Basis zuvor definierter Ordnungen (Bsp.: Kumulation) Karczewski Data Warehouse Systeme 10

Logische vs. Physische Operatoren Bereichsanfrage range query Produkt (Artikel) Zeit (Tage) Partielle Bereichsanfrage partial range query Produkt (Artikel) Zeit (Tage) Karczewski Data Warehouse Systeme 11

Logische vs. Physische Operatoren Partial-Match-Abfrage Produkt (Artikel) Zeit (Tage) Punktanfrage Produkt (Artikel) Zeit (Tage) Karczewski Data Warehouse Systeme 12

Logische vs. Physische Operatoren Zusammengesetzte Anfragebereiche Produkt (Artikel) Zeit (Tage) Unregelmäßige Anfrageform Produkt (Artikel) Zeit (Tage) Karczewski Data Warehouse Systeme 13

Star-Join: Beispiel SELECT FROM Geographie.Region, Zeit.Monat, sum(verkaeufe) Verkauf, Zeit, Produkte, Geographie WHERE Verkauf.Produkt_ID = Produkt.Produkt.ID AND Verkauf.Zeit_ID = Zeit.Zeit_ID AND Verkauf.Geographie_ID = Geographie.Geographie_ID AND Produkt.Produktkategorie = Kosmetik AND Geographie.Land = Deutschland AND Zeit.Jahr = 2000 GROUP BY Geographie.Region, Zeit.Monat Karczewski Data Warehouse Systeme 14

Star-Join: Aufbau Select-Klausel Kenngrößen (evtl. aggregiert) Ergebnisgranularität (z.b. Monat, Region) From-Klausel Fakten- und Dimensionstabellen Where-Klausel Verbundbedingungen Restriktionen (z.b. Zeit.Jahr = 2000) Karczewski Data Warehouse Systeme 15

Star-Join: Optimierung (1) Star-Joins stellen typisches Muster für Data-Warehouse-Anfragen dar Typische Eigenschaften durch das Star-Schema: Sehr große Faktentabelle Deutlich kleinere, unabhängige Dimensionstabellen Klassische relationale Optimierer schlagen fehl, weil sie i.d.r. von gleichmäßigen Verteilungen in den Tabellen ausgehen Karczewski Data Warehouse Systeme 16

Star-Join: Optimierung (2) Im Beispiel: Join über Faktentabelle Verkauf und die drei Dimensionstabellen Produkt, Zeit und Geographie: 4-Wege-Join In RDBMS üblicherweise nur paarweiser Join: Sequenz paarweiser Joins notwendig 4! Mögliche Join-Reihenfolgen Heuristik zur Verringerung der zu untersuchenden Möglichkeiten: Joins zwischen Relationen, die nicht durch eine Join-Bedingung in der Anfrage verknüpft sind, werden nicht betrachtet Karczewski Data Warehouse Systeme 17

Star-Join: Optimierung (3) Heuristik liefert z.b. folgenden Ausführungsplan: Plan A: σ Produktkategorie= Kosmetik σ Monat= Januar 2000 Produkt Verkauf σ Land= Deutschland Zeit Geographie Karczewski Data Warehouse Systeme 18

Star-Join: Optimierung (4) Heuristik liefert z.b. folgenden Ausführungsplan: Plan B: Verkauf σ Land= Deutschland σ Produktkategorie= Kosmetik σ Monat= Januar 2000 Geographie Produkt Zeit Karczewski Data Warehouse Systeme 19

Star-Join: Berechnungsbeispiel Annahmen: Tabelle Verkauf: 10.000.000 Datensätze 10 Geschäfte in Deutschland (von 100) 20 Verkaufstage im Januar 2000 (von 1000 gespeicherten Tagen) 50 Produkte in Produktkategorie Kosmetik (von 1000) Gleichverteilung/gleiche Selektivität der einzelnen Ausprägungen Plan A: 1. Join: 1.000.000 Tupel (Ergebnis) 2. Join: 20.000 Tupel 3. Join: 1.000 Tupel Plan B: 1. Kreuzprodukt 200 Tupel 2. Kreuzprodukt 10.000 Tupel Join: 1.000 Tupel Karczewski Data Warehouse Systeme 20

Gruppierung und Aggregation Datenanalyse: Aggregation mehrdimensionaler Daten Aggregatfunktion: Standard: SUM, MIN, MAX, COUNT Erweiterungen: statistische, physikalische und Finanzfunktion Benutzerdefinierte Aggregatfunktionen Gruppierung: Ergebnis: Tabelle mit Aggregatwerten indiziert durch Menge von Attributen Karczewski Data Warehouse Systeme 21

Gruppierung und Aggregation SQL: GROUP BY attr-liste [ HAVING bedingung ] Gruppierung bzgl. gleicher Werte der Gruppierungsattribute Abschließende Projektion nur über Gruppierungsattribute oder Aggregationen Einschränkungen Berechnung von Histogrammen: Aggregationen über berechnete Kategorien Berechnung von Zwischen- und Gesamtsummen Berechnung von Kreuztabellen Karczewski Data Warehouse Systeme 22

Berechnung von Zwischen- und Gesamtsummen PRODUKT JAHR REGION VERKÄUFE VERKÄUFE VERKÄUFE Produkt Jahr Region Produkt Jahr Produkt Sonnenschutz 1999 Hessen 135 Thüringen 120 255 2000 Hessen 140 Thüringen 135 275 530 Karczewski Data Warehouse Systeme 23

Berechnung von Zwischen- und Gesamtsummen PRODUKT JAHR REGION VERKÄUFE Sonnenschutz 1999 Hessen 135 Sonnenschutz 1999 Thüringen 120 Sonnenschutz 1999 NULL 255 Sonnenschutz 2000 Hessen 140 Sonnenschutz 2000 Thüringen 135 Sonnenschutz 2000 NULL 275 Sonnenschutz NULL NULL 530 Karczewski Data Warehouse Systeme 24

Berechnung von Zwischen- und Gesamtsummen: SQL-Anfrage SELECT Produkt, NULL, NULL, SUM(Verkäufe) UNION FROM Verkauf WHERE Produkt = Sonnenschutz GROUP BY Produkt SELECT Produkt, Jahr, NULL, SUM(Verkäufe) UNION FROM Verkauf WHERE Produkt = Sonnenschutz GROUP BY Produkt, Jahr SELECT Produkt, Jahr, Region, SUM(Verkäufe) FROM Verkauf WHERE Produkt = Sonnenschutz GROUP BY Produkt, Jahr, Region; Karczewski Data Warehouse Systeme 25

Berechnung von Zwischen- und Gesamtsummen Nachteil von Variante mit UNION Hoher Aufwand: Berechnung aller Teilsummen für N Gruppierungsattribute erfordert 2 N Teilanfragen Eventuelle Vebundoperationen müssen mehrfach wiederholt werden Aufwändige Formulierung: Eventuell jedoch Generierung durch OLAP-Werkzeuge Karczewski Data Warehouse Systeme 26

Berechnung von Kreuztabellen Symmetrische Aggregation Pivottabellen (MS Access: Transform-Pivot) Sonnenschutz 1999 2000 TOTAL Hessen 135 140 275 Thüringen 120 135 255 TOTAL 255 275 530 Karczewski Data Warehouse Systeme 27

Cube-Operator Kurzform für Anfragemuster zur Berechnung von Teil- und Gesamtsummen Generierung aller möglichen Gruppierungskombinationen aus einer gegebenen Menge von Gruppierungsattributen Ergebnis: Tabelle mit aggregierten Werten NULL, NULL,, NULL, SUM( ) Jeweils einmal NULL weniger Am Ende ohne NULL Karczewski Data Warehouse Systeme 28

Cube-Operator: SQL-Syntax Implementierung in Oracle (ab Version 8i) Syntax: SELECT Produktgruppe, Region, Jahr, SUM(Verkäufe) FROM Verkauf GROUP BY CUBE (Produktgruppe, Region, Jahr) Funktion grouping(attribut) Liefert Wert=1, wenn über Attribut aggregiert wurde Liefert Wert=0, wenn über Attribut gruppiert wurde Dient der Unterdrückung von Teilsummen Bsp.: having not (grouping(produktgruppe)=1 Karczewski Data Warehouse Systeme 29

Rollup-Operator Cube-Operator ist interdimensional Anwendbar für Attribute aus unterschiedlichen Dimensionen Ist für Roll-Up oder Drill-Down-Operationen zu aufwendig Rollup-Operator ist intradimensional Generierung der Attributkombinationen (A1,, An), (A1,, An-1),, (A1, A2), (A1), ( ) für gegebene Attributliste A1,, An Karczewski Data Warehouse Systeme 30

Rollup-Operator: Beispiel Anfrage: SELECT Prodkategorie, Prodfamilie, Land, Region, sum(verkäufe) FROM GROUP BY ROLLUP (Produkategorie, Prodfamilie), Auswertung: ROLLUP (Land, Region) 1. Rollup: (Prodkategorie, Prodfamilie), (Prodkategorie), ( ) 2. Rollup: (Land, Region), (Land), ( ) Kreuzprodukt beider Kombinationen Karczewski Data Warehouse Systeme 31

Rollup-Operator: Beispiel Prodkategorie Prodfamilie Land Region Verkäufe Elektronik Video D Europa 102 Elektronik Audio D Europa 98 Elektronik NULL D Europa 200 Elektronik Video D NULL 541 Elektronik Audio D NULL 326 Elektronik NULL D NULL 867 Karczewski Data Warehouse Systeme 32

Cube- vs. Rollup-Operator Cube-Operator: generiert alle Kombinationen: z.b. für 4 Gruppierungsattribute: 16 Kombinationen Rollup-Operator: generiert nur Kombinationen mit sogenannten Superaggregaten: (f1, f2,, NULL) (f1, NULL,, NULL) (NULL, NULL,, NULL) Karczewski Data Warehouse Systeme 33

Grouping Sets Standard in SQL99 GROUP BY GROUPING SETS (gruppierung) Gruppierung: Einfache Gruppierungskombinatioen, z.b. (Land, Region) Komplexe Gruppierungsbedingung mit Cube oder Rollup Karczewski Data Warehouse Systeme 34

Grouping Sets: Beispiel Anfrage: GROUP BY ROLLUP (Prodkategorie, Prodfamilie), (1) GROUPING SETS ((Stadt), (Region)), (2) GROUPING SETS (ROLLUP (Jahr, Quartal, Monat), (Woche)) (3) Bedeutung: (1) entlang der Klassifikationshierarchie (2) nur für Städte und Regionen (3) Nutzung der Parallelhierarchien Jahr Quartal Monat bzw. Woche Karczewski Data Warehouse Systeme 35

Grouping Sets: Semantik Fall 1: GROUP BY A, B GROUP BY GROUPING SETS ((A, B)) (A, B) Fall 2: GROUP BY GROUPING SETS ((A, B), (A, C), (A)) GROUP BY A, GROUPING SETS ((B), (C), ( )) (A) x (B), (C), () (A, B), (A, C), (A) Karczewski Data Warehouse Systeme 36

Grouping Sets: Semantik Fall 3: GROUP BY GROUPING SETS ((A, B), (B, C)), GROUPING SETS ((D, E), (D), ( )) (A, B), (B, C) x (D, E), (D), ( ) (A, B, D, E), (A, B, D), (A, B), (B, C, D, E), (B, C, D), (B, C) Karczewski Data Warehouse Systeme 37

Sequenzbasierte Operationen SQL:1999 Erweiterung um OLAP-Funktionen zur attribut- und sequenzbasierten Auswertung Attribut- und tupelbasierte Aggregation Umsetzung existiert u.a. ab Oracle 9i bzw. DB2 V7.2 Unterstützte Anfragetypen Ratio-To-Total Laufende Summen (Kumulation) Gleitender Durchschnitt Ranking-Analyse Karczewski Data Warehouse Systeme 38

OLAP-Funktionen: Syntax Allgemein: FUNKTION (arg) OVER (Partitionierungsklausel, Ordnungsklausel, Fenster) Partitionierung für jedes Attribut des Ergebnisses ohne Verdichtung: jeder Eingangswert liefert Ergebniswert optional Ordnung innerhalb einer Partition optional Festlegung des Aggregationsfensters optional nur in Verbindung mit Ordnungsklausel Karczewski Data Warehouse Systeme 39

OLAP-Funktionen: Motivation Ratio-To-Total-Analyse Berechnung des täglichen Anteils an Gesamtstückzahlen Schemabeispiel aus der Übung: Produkt (Produktreihe, Produkttyp, Produktname, Produktnummer) Umsatz (Bestelldatum, Produktnummer,...,Umsatz) Ratio-To-Total- mit SQL (ohne OLAP-Funktion): SELECT bestelldatum, umsatz AS t_umsatz, g_umsatz, 100.0*umsatz/g_umsatz AS a_umsatz FROM produkt p, umsatz u, (SELECT SUM (umsatz) as g_umsatz FROM umsatz WHERE to_char(bestelldatum,'mm')=11) WHERE p.produktnummer=u.produktnummer AND to_char(bestelldatum,'mm')=11; Karczewski Data Warehouse Systeme 40

OLAP-Funktionen: Bsp. Ergebnis BESTELLDATUM T_UMSATZ G_UMSATZ A_UMSATZ 08.11.1999 46 768 5,99 14.11.1999 51 768 6,64 10.11.2000 3 768 0,39 10.11.2000 8 768 1,04 15.11.2000 372 768 48,44 16.11.2000 3 768 0,39 22.11.2000 45 768 5,86 22.11.2000 14 768 1,82 26.11.2000 6 768 0,78 28.11.2000 34 768 4,43 11.11.2001 17 768 2,21 18.11.2001 77 768 10,03 19.11.2001 44 768 5,73 30.11.2001 34 768 4,43 30.11.2001 14 768 1,82 T: Teil G: Gesamt A: Anteil in % Karczewski Data Warehouse Systeme 41

OLAP-Funktionen: Anwendung Anfrage SELECT bestelldatum, umsatz AS t_umsatz, SUM (umsatz) OVER () AS g_umsatz, 100.0*umsatz / SUM (umsatz) OVER () AS a_umsatz FROM produkt p, umsatz u WHERE p.produktnummer=u.produktnummer AND to_char(bestelldatum,'mm')=11; Ergebnis identisch OLAP-Funktion SUM (umsatz) OVER() Aggregation über gesamten Eingangsbereich Partition für Aggregation wird lokal für jeden Eintrag generiert Karczewski Data Warehouse Systeme 42

Attributlokale Partitionierung Partitionierung des Eingabestroms einer OLAP-Funktion (ähnlich Gruppierung) Aber: Partitionierung erfolgt pro Attribut/Anweisung der Aggregatoperation. Dies ermöglich Nachgruppierung. Beispiel: Ermittlung der Anteile der Tageszahlen im Vergleich zu Monatszahlen SELECT bestelldatum, umsatz, SUM (umsatz) OVER (PARTITION BY bestelldatum) AStagesumsatz, 100.0*umsatz / SUM (umsatz) OVER (PARTITION BY bestelldatum) AS a_tagesumsatz FROM produkt p, umsatz u WHERE p.produktnummer=u.produktnummer AND (to_char(bestelldatum,'mm')=3) ORDER BY bestelldatum; Karczewski Data Warehouse Systeme 43

Attributlokale Partitionierung (tagesweise) BESTELLDATUM UMSATZ TAGESUMSATZ A_TAGESUMSATZ 14.03.2000 112 112 100,00 15.03.2000 13 13 100,00 18.03.2000 5 35 14,29 18.03.2000 30 35 85,71 A: Anteil in % 26.03.2000 5 5 100,00 19.03.2001 24 321 7,48 19.03.2001 51 321 15,89 19.03.2001 246 321 76,64 25.03.2001 17 17 100,00 27.03.2001 19 19 100,00 31.03.2001 32 32 100,00 Karczewski Data Warehouse Systeme 44

Attributlokale Partitionierung (jahresweise) SELECT bestelldatum, umsatz, SUM (umsatz) OVER (PARTITION BY extract (YEAR FROM bestelldatum)) AS jahresumsatz, 100.0*umsatz / SUM (umsatz) OVER (PARTITION BY extract (YEAR FROM bestelldatum)) AS a_jahresumsatz FROM produkt p, umsatz u WHERE p.produktnummer=u.produktnummer AND (to_char(bestelldatum,'mm')=11) ORDER BY bestelldatum; Karczewski Data Warehouse Systeme 45

Sequenzorientierte Analyse (jahresweise) BESTELLDATUM UMSATZ JAHRESUMSATZ A_JAHRESUMSATZ 08.11.1999 46 97 47,42 14.11.1999 51 97 52,58 10.11.2000 8 485 1,65 10.11.2000 3 485 0,62 15.11.2000 372 485 76,70 16.11.2000 3 485 0,62 22.11.2000 14 485 2,89 22.11.2000 45 485 9,28 26.11.2000 6 485 1,24 28.11.2000 34 485 7,01 11.11.2001 17 186 9,14 18.11.2001 77 186 41,40 19.11.2001 44 186 23,66 30.11.2001 34 186 18,28 30.11.2001 14 186 7,53 A: Anteil in % Karczewski Data Warehouse Systeme 46

Attributlokale Partitionierung Prinzip: SUM (umsatz) OVER (PARTITION BY bestelldatum) Partitionierungsschema Keine Konflikte durch unterschiedliche Partitionierungsschemata innerhalb einer Anfrage Jeweils alle Einträge einer Partition werden in die Berechnung einbezogen. Karczewski Data Warehouse Systeme 47

Sequenzorientierte Analyse Spezifikation einer attributlokalen Ordnung für Partitionen Anwendung: laufende Summe, gleitender Durchschnitt usw. Beispiel: kumulative Liefermengen über Gesamtzeitraum und pro Jahr SELECT bestelldatum, umsatz, SUM (umsatz) OVER (ORDER BY bestelldatum) as sum_gesamt, SUM (umsatz) OVER (PARTITION BY extract (YEAR FROM bestelldatum) ORDER BY bestelldatum) AS sum_jahr FROM produkt p, umsatz u WHERE p.produktnummer=u.produktnummer AND (to_char(bestelldatum,'mm')=3) ORDER BY bestelldatum; Karczewski Data Warehouse Systeme 48

Sequenzorientierte Analyse BESTELLDATUM UMSATZ SUM_GESAMT SUM_JAHR 14.03.2000 112 112 112 15.03.2000 13 125 125 18.03.2000 5 160 160 18.03.2000 30 160 160 26.03.2000 5 165 165 Pro Tag wird kumuliert, wobei SUM_GESAMT unabhängig vom Jahr vorgeht, SUM_JAHR pro Jahr neu beginnt. 19.03.2001 24 486 321 19.03.2001 246 486 321 19.03.2001 51 486 321 25.03.2001 17 503 338 27.03.2001 19 522 357 31.03.2001 32 554 389 Karczewski Data Warehouse Systeme 49

Sequenzorientierte Analyse Prinzip: Anzahl der Tupel, die in ein Ergebnistupel eingehen, entspricht der Position des Tupels bzgl. gegebener Ordnung Eingangstupel ti, Ergebnistupel si t1 SUM({t1}) s1 t2 SUM({t1, t2}) s2 t3 SUM({t1, t2, t3}) s3 Schrittweise Vergrößerung des Analysefensters Karczewski Data Warehouse Systeme 50

Nutzung für Ranking-Analyse Funktionen RANK(): liefert Rang eines Tupels bzgl. vorgegebener Ordnung innerhalb der Partition DENSERANK(): wie RANK(), jedoch ohne Lücken Beispiel A: Ranking nach Umsatz SELECT bestelldatum, umsatz, RANK() OVER (ORDER BY umsatz) AS rang FROM produkt p, umsatz u WHERE p.produktnummer=u.produktnummer; Beispiel B: Ranking nach Umsatz und Datum SELECT bestelldatum, umsatz, RANK() OVER (ORDER BY umsatz, bestelldatum) AS rang FROM produkt p, umsatz u WHERE p.produktnummer=u.produktnummer; Karczewski Data Warehouse Systeme 51

Ranking-Analyse (Beispiel) A: BESTELLDATUM UMSATZ RANG B: BESTELLDATUM UMSATZ RANG 10.11.2000 3 1 10.11.2000 3 1 16.11.2000 3 1 16.11.2000 3 2 26.11.2000 6 3 26.11.2000 6 3 10.11.2000 8 4 10.11.2000 8 4 30.11.2001 14 5 22.11.2000 14 5 22.11.2000 14 5 30.11.2001 14 6 11.11.2001 17 7 11.11.2001 17 7 28.11.2000 34 8 28.11.2000 34 8 30.11.2001 34 8 30.11.2001 34 9 19.11.2001 44 10 19.11.2001 44 10 22.11.2000 45 11 22.11.2000 45 11 08.11.1999 46 12 08.11.1999 46 12 14.11.1999 51 13 14.11.1999 51 13 18.11.2001 77 14 18.11.2001 77 14 15.11.2000 372 15 15.11.2000 372 15 Karczewski Data Warehouse Systeme 52

Ranking-Analyse (Beispiel) Beschränkung auf Hitlisten Beispiel: Top10 der Tage mit dem höchsten Volumen pro Jahr Anfrage: SELECT AUF.bestelldatum, AUF.topMonat FROM (select bestelldatum, RANK() OVER(PARTITION BY extract(year from bestelldatum) ORDER BY umsatz DESC) AStopMonat FROM umsatz u, produkt p WHERE u.produktnummer=p.produktnummer AND extract(year from bestelldatum) = 2001) AUF WHERE AUF.topMonat <= 10 ORDER BY AUF.topMonat DESC; Karczewski Data Warehouse Systeme 53

Ranking-Analyse (Beispiel) BESTELLDATUM TOPMONAT 09.08.2001 9 13.05.2001 9 14.01.2001 8 18.11.2001 7 04.10.2001 6 14.05.2001 5 09.06.2001 4 14.06.2001 3 19.03.2001 2 17.08.2001 1 Karczewski Data Warehouse Systeme 54

Bildung dynamischer Fenster Bisher: nur wachsende Fenstergröße für die Partition Jetzt: explizite Angaben des Fensters ROWS: Anzahl der Tupel RANGE: Anzahl der wertmäßig verschiedenen Tupel Anwendung: gleitender Durchschnitt Karczewski Data Warehouse Systeme 55

Bildung dynamischer Fenster Ausgehend von definiertem Startpunkt bis zum aktuellen Tupel UNBOUNDED PRECEDING: erstes Tupel der jeweiligen Partition n PRECEDING: n-ter Vorgänger relativ zur aktuellen Position CURRENT ROW: aktuelles Tupel (nur mit RANGE und Duplikaten sinnvoll) Karczewski Data Warehouse Systeme 56

Bildung dynamischer Fenster Angabe der unteren und oberen Schranken: BETWEEN <untere Grenze> AND <obere Grenze> Spezifikation der Grenzen UNBOUNDED PRECEDING UNBOUNDED FOLLOWING n PRECEDING n FOLLOWING CURRENT ROW <obere Grenze> muss höhere Position als <untere Grenze> spezifizieren Karczewski Data Warehouse Systeme 57

Bildung dynamischer Fenster: Beispiel Gleitender Durchschnitt SELECT bestelldatum, umsatz, AVG (umsatz) OVER(PARTITION BY extract(year from bestelldatum) ORDER BY bestelldatum ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING) as Durch3Tage FROM umsatz u, produkt p WHERE u.produktnummer=p.produktnummer AND extract(month from bestelldatum)=8; Karczewski Data Warehouse Systeme 58

Bildung dynamischer Fenster: Beispiel Gleitender Durchschnitt mit 3-Tages-Fenster auf Jahresebene BESTELLDATUM UMSATZ DURCH3TAGE 13.02.1999 17 111,50 14.04.1999 25 92,80 24.04.1999 299 77,83 17.05.1999 105 71,57 27.05.1999 18 74,57 03.06.1999 3 80,43 05.06.1999 34 45,00 09.06.1999 38 31,29 27.06.1999 66 32,14 27.06.1999 51 37,86 27.06.1999 9 62,57 09.07.1999 24 58,14 20.07.1999 43 57,71 (25 + 299 + 105 +...... + 34 + 38) / 7 = 74,57 Karczewski Data Warehouse Systeme 59

Gruppierung: Optimierungsaspekte Berücksichtigung der Gruppierungs-/Aggregationsoperationen im Rahmen der Optimierung Logische/Algebraische Optimierung: Push-down von Gruppierungen Reduzierung der Kardinalität der Zwischenergebnisse Invariantes Gruppieren Frühzeitiges Vorgruppieren Physische/Interne Optimierung: Spezielle Implementierungen für GROUP BY CUBE, sowie OLAP-Funktionen Karczewski Data Warehouse Systeme 60