Themenblock: Data Warehousing (I) Praktikum: Data Warehousing und Data Mining
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 2
Eigenschaften eines Data Warehouse Integrierte Sicht auf beliebige Daten aus verschieden Datenbanken Integration von Schemata und Daten aus Quellen Analyseaspekt multidimensionales Datenmodell Online Analytical Processing (OLAP) Stabile Datenbasis Eingebrachte Daten werden nicht mehr modifiziert Neue Daten können aufgenommen werden Data Warehouse System Komponenten zur Integration und Analyse + Data Warehouse 3
Referenzarchitektur 4
Data Warehouse Prozess Monitoring Entdecken und melden von Änderungen in den Quellen Extraktion Selektion und Transport von Daten aus den Quellen in den Arbeitsbereich Transformation Vereinheitlichung, Bereinigung, Integration, Konsolidierung, Aggregierung und Ergänzung der Daten im Arbeitsbereich Laden Laden der Daten aus dem Arbeitsbereich in die Basisdatenbank bzw. ins Data Warehouse Analyse Analyse und Präsentation der Daten im Data Warehouse 5
Vereinfachte Sicht auf die Referenzarchitektur Extraktion Transformation Laden Data Warehouse Analyse Operative Datenbanken OLAP Server 6
Fokus im Praktikum Unser Fokus Extraktion Transformation Laden Data Warehouse Analyse Operative Datenbanken OLAP Server 7
Fokus im Praktikum - Analysephase Unterschiedliche Ansätze: Online Transactional Processing (OLTP) Themenkomplex I, Heute Zugriff auf vorhandenen Datenbestand Nutzung von Datenmanipulationssprachen (z.b. SQL) Wieviele Einheiten von Artikel X wurden in Filiale Y im Jahr Z verkauft? Online Analytical Processing (OLAP) Themenkomplex II Anpassung des Datenbestands an die Analyse Suche nach neuen oder unerwarteten Beziehungen zwischen Variablen In welcher Stadt macht Produktgruppe X den größten Umsatz? Data Mining bisher Suche nach Mustern im Datenbestand Wie ist die Entwicklung des Absatzes der Produktgruppen im Jahresverlauf? 8
Tools: Data Access Anfragesprachen (z.b. SQL) Lesen von Daten Arithmetische Operationen auf Daten Keine Präsentationsmöglichkeit Reporting Tools (z.b. Cognos) Lesen der Daten jetzt Themenkomplex II Anreicherung der Daten durch arithmetische Operationen Präsentation der Daten in Berichten Unterstützung von Ampelfunktionalität 9
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 10
Relationenmodell Kurze Wiederholung Relationenname Attribut Stadt Name CID Population Paris FR 2153000 Tokyo JA 8022000 Hamburg GM 1706000 Stockholm SW 704000 Seoul KS 10776000 Berlin GM 3472000 Relationenschema Relation Tupel Attributwert 11
Primärschlüssel Integritätsbedingungen Menge von Attributen zur eindeutigen Identifikation eines Tupels Nötig um eindeutig auf Tupel zugreifen zu können Fremdschlüssel Referenziert von einem Tupel auf ein Tupel einer anderen Relation Nötig zur Speicherung von Abhängigkeiten 12
Eigenschaften SQL die Sprache für relationale Datenbanken mengenorientiert & deklarativ Konstrukte zur Datendefinition (SQL-DDL) CREATE, ALTER, DROP Konstrukte zur Datenmanipulation (SQL-DML) INSERT, UPDATE, DELETE Konstrukt für Datenabfragen SELECT 13
Datentypen Zeichenketten CHARACTER(n), CHAR(n) VARCHAR(n) Zahlen INTEGER, INT NUMERIC(p, s) FLOAT Datum und Uhrzeit DATE 14
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 15
Anlegen von Relationen Create Syntax CREATE TABLE <Relation> ( <Attribut><Datentyp>, PRIMARY KEY (<Attribut>[, ]) FOREIGN KEY <Attribut> REFERENCES <Relation>(<Attribut>) [, ] ) 16
SQL Insert und Update Einfügen von Tupeln in Relation Syntax INSERT INTO <Relation> VALUES (<Datum1>, <Datum2>, ) Ändern von Tupeln Syntax UPDATE <Relation> SET <Attribut> = <Datum> WHERE <Selektionsbedingung> 17
SQL Delete und Drop Löschen von Tupeln aus einer Relation Syntax DELETE FROM <Relation> WHERE <Attribut> = <Datum> Löschen von Relationen Syntax DROP TABLE <Relation> 18
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 19
Anfragen - Grundgerüst Anfragen an den Datenbestand Syntax SELECT <Attribut>, FROM <Relation> WHERE <Selektionsbedingung> 20
Projektion Auswahl von Spalten einer Relation Syntax SELECT <Attribut>, FROM <Relation> Name CID Population Paris FR 2153000 Tokyo JA 8022000 Hamburg GM 1706000 Stockholm SW 704000 Seoul KS 10776000 Berlin GM 3472000 21
Selektion Auswahl von Tupeln einer Relation Syntax SELECT * FROM <Relation> WHERE <Selektionsbedingung> Name CID Population Paris FR 2153000 Tokyo JA 8022000 Hamburg GM 1706000 Stockholm SW 704000 Seoul KS 10776000 Berlin GM 3472000 22
Verbund Kombination mehrerer Relationen Syntax SELECT <Attribut>, FROM <Relation1>, <Relation2> WHERE <Relation1>.<Attribut> = <Relation2>.<Attribut> 23
Aggregatfunktionen Berechnung von Aggregaten auf Relationen Syntax SELECT <Aggregat>(<Attribut>) AS <Name> FROM <Relation> Wichtige Aggregatfunktionen: COUNT SUM MIN MAX AVG 24
Gruppierung Gruppierung von gleichen Attributwerten Syntax SELECT <Attribut> FROM <Relation> GROUP BY <Attribut> HAVING <Gruppenbedingung> 25
Mengenoperationen Mengenoperationen auf Anfrageergebnissen (SELECT <Attribut>, FROM <Relation>) INTERSECT UNION MINUS (SELECT <Attribut>, FROM <Relation>) 26
Syntaxdiagramm des SQL-SELECT- Befehls (vereinfacht ): SELECT-Syntax Entnommen aus [Stock und Pinger, 1997] 27
Vorgehen bei der Definition von Anfragen FROM Ausgangsrelationen WHERE GROUP BY HAVING SELECT Selektion von Tupeln, die der Bedingung genügen Gruppierung von Tupeln gemäß gleicher Attributwerte Selektion von Gruppen, die der Bedingung genügen Projektion der gewählten Attribute 28
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 29
Anforderungen an Online Analytical Processing Geschwindigkeit Anfragen sollten in 5 Sekunden beantwortet sein Analysemöglichkeit Ermöglichung anwenderfreundlicher und intuitiver Analyse Sicherheit Sicherer Mehrbenutzerbetrieb Stabile Sicherungsmechanismen Multidimensionalität Multidimensionale Sicht auf die Daten Kapazität Hohe Skalierbarkeit der verwalteten Daten 30
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 31
Multidimensionales Datenmodell - Begriffe Hilfsmittel zur Veranschaulichung von Daten verschiedene Aspekte auf gleiche Weise zugreifbar Einsatz bei OLAP Anwendungen Kennzahlen Elemente eines Würfels Dimensionen Beschreiben Daten Ermöglichen Zugriff auf Kennzahlen Können Hierarchien sein Dimension Kennzahl 32
Multidimensionales Datenmodell Beispiel Jahr Quartal Monat Tag Produkt. Zeit Umsatz Geographie 33
Dimensionen Einordnung Bewertung der Analysedaten durch Kenngrößen (z.b. Umsatz, Kosten) Untersuchung der Kenngrößen aus verschiedenen Perspektiven (z.b. Stadt, Bundesland, Zeitachse) Betrachtungsperspektive heißt Dimension Eigenschaften Mindestens 2 Dimensionselemente Dimensionselemente Bilden Blätter eines Baums (sog. Klassifikationshierarchie) 34
Dimensionen Beispiel Zeit Jahr Quartal Monat Tag. Klassifikationshierarchie Dimensionselement 35
Arten von Klassifikationshierarchien Einfache Hierarchien Höhere Hierarchieebenen enthalten die aggregierten Werte der jeweils niedrigeren Ebenen Oberster Knoten: Gesamtknoten Verdichtung aller Werte einer Dimension Parallele Hierarchien Entstehen bei unterschiedlicher Art der Gruppierung Parallele Äste ohne Beziehung Betrachtung eines Teilaspekts der Hierarchie pro Ast 36
Klassifikationshierarchie Beispiele TOP TOP Land Jahr Region Quartal Woche Stadt Monat Strasse Tag Einfache Hierarchie Parallele Hierarchie 37
Würfel Weitere Begriffe Kanten von Dimensionen aufgespannt Katenlänge entspricht Anzahl der Elemente in Dimension Eine oder mehrere Kennzahlen pro Würfelzelle Anzahl der Dimensionen heißt Dimensionalität Konsolidierungspfad Pfade im Klassifikationsschema 38
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 39
Konzeptionelle Modellierung Einsatz Entity Relationship Modells oder UML Probleme: Modellierung der Konsolidierungspfade nicht möglich Entitäten besitzen keine Semantik Hier aber: Höherer Automatisierungsgrad durch Verzicht auf universelle Anwendbarkeit Unterscheidung zwischen Klassifikationsstufen, beschreibenden Attributen und Kennzahlen nicht möglich Daher eigene Modellierungsmodelle Multidimensionales Entity/Relationship Modell (ME/R) Multidimensionale Unified Modeling Language (muml) Ansatz von Totok Hier: ME/R 40
ME/R-Modell Weiterentwicklung des E/R-Modells Anforderungen Spezialisierung: Alle eingeführten Elemente sind Spezialfälle von E/R Konstrukten Minimale Erweiterung: Leicht erlernbar für erfahrene E/R-Modellierer Darstellung der multidimensionalen Semantik: Klassifikationsschema, Würfelstruktur muss abbildbar sein Eingeführte Konstrukte Entitätenmenge Dimension Level (Klassifikationsstufe) n-äre Faktenbeziehung Binäre Klassifikationsbeziehungsmenge 41
Visualisierung der ME/R - Konstrukte Fakt Klassifikationsstufe Klassifikationsbeziehung Kenngröße Quartal Monat Tag Einkauf Kosten Region Stadt Strasse 42
Agenda Einführung Data Warehouses Online Transactional Processing (OLTP) Datenmanipulation mit SQL Anfragen mit SQL Online Analytical Processing (OLAP) Multidimensionales Datenmodell Konzeptionelle Modellierung Relationale Umsetzung des multidim. Modells 43
Relationale Umsetzung des multidim. Modells Anforderungen Beibehaltung der Semantik z.b. Hierarchien Effiziente Umsetzung von Anfragen Effiziente Verarbeitung von Anfragen Einfache Wartung z.b. beim Nachladen von Daten 44
Relationale Umsetzung: Faktentabelle Umsetzung des Datenwürfels ohne Hierarchien Kennzahlen, Dimensionen Spalten Zellen Tupel Jahr Quartal Monat Tag. Produkt Produkt Zeit Geographie Umsatz BMW 3er 01.02.2005 Karlsruhe 6.000 BMW 7er 04.06.2005 Mannheim 3.254 BMW 1er 03.07.2005 Mannheim 726 Zeit Umsatz Geographie 45
Relationale Umsetzung: Star Schema gängiger Schematyp für Data Warehouses Beschreibung der Dimensionen durch: Dimension Tables Je eine Relation pro Dimension Nicht in dritter Normalform Hierarchien führen zu Redundanz Vorteil Performanz 46
Relationale Umsetzung: Star Schema - Beispiel Produkt Zeit Geographie Umsatz Jahr Quartal Monat Tag. Zeit Produkt Umsatz BMW 3er 01.02.2005 Karlsruhe 6.000 BMW 7er 04.06.2005 Mannheim 3.254 BMW 1er 03.07.2005 Mannheim 726 Tag Monat Quartal Jahr 01.01.2005 Januar Q1 2005 02.01.2005 Januar Q1 2005 03.01.2005 Januar Q1 2005 Geographie 47
Relational Umsetzung: Snowflake Schema Verfeinerung des Star Schemas Mehrere Dimension Tables pro Dimension Relation pro Ebene einer Hierarchie Normalisiert Höherer Join-Aufwand bei Anfragen Keine Redundanz 48
Relational Umsetzung: Snowflake - Beispiel Jahr Quartal Monat Tag. Produkt Produkt Zeit Geographie Umsatz BMW 3er 01.02.2005 Karlsruhe 6.000 BMW 7er 04.06.2005 Mannheim 3.254 BMW 1er 03.07.2005 Mannheim 726 Tag Bezeichnung Monat_ID 01.01.2005 Neujahr 1 02.01.2005 Namenstag Adelhard 1 03.01.2005 Namenstag Adula 1 Zeit Geographie Umsatz Monat_ID Bezeichnung Quartal_ID 1 Januar Q1 2 Februar Q1 3 März Q1 49
Relationale Umsetzung: Semantikverluste Verluste in Faktentabelle Unterscheidung von Dimensionen und Kenngrößen nicht ersichtlich Dimensionstabelle Unterscheidung zwischen beschreibendem Attribut und Attribut der Klassifikationsebene nicht möglich Aufbau der Dimensionen geht verloren Lösung: Erweiterung des Systemkatalogs in relationalen Datenbankmanagementsystemen Aber: Für jedes DBMS anderes Vorgehen 50
Quellenangaben A. Bauer, H. Günzel: Data Warehouse Systeme Architektur, Entwicklung, Anwendung, dpunkt.verlag, 2004. K. Sattler, S. Conrad: Folien zur Vorlesung Data Warehouse Technologien, 2003 C. von der Weth: Folien zum Datenbankpraktikum, 2005 M. Stock und R. Pinger: Kleiner Leitfaden zur Anwendung von SQL-Anweisungen, 1997, http://www.ifis.cs.tu-bs.de/ html_d/skripte/handbuch.2.ps 51