Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining
Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen Menge von Grundoperationen Produkt Oracle Datenbank 2
Relationenname Relationenmodell 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 3
Primärschlüssel Schlüssel Identifiziert ein Tupel eindeutig Fremdschlüssel Referenziert von einem Tupel auf ein anderes Tupel 4
Eigenschaften SQL die Sprache für relationale Datenbanken mengenorientiert & deklarativ Konstrukte zur Datenmanipulation CREATE, INSERT, UPDATE, DELETE Konstrukt für Datenabfragen SELECT 5
Datentypen Zeichenketten CHARACTER(N), CHAR(n) VARCHAR(n) Zahlen INTEGER, INT NUMERIC(p, s) FLOAT Datum und Uhrzeit DATE 6
Anlegen von Relationen SQL - Create Syntax CREATE TABLE <Relation> ( ) <Attribut><Datentyp>, PRIMARY KEY (<Attribut>) FOREIGN KEY <Attribut> REFERENCES <Relation>(<Attribut>) 7
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 <Attribut> = <Datum> 8
SQL - Delete Löschen von Tupeln aus einer Relation Syntax DELETE FROM <Relation> WHERE <Attribut> = <Datum> Löschen von Realtionen Syntax DELETE FROM <Relation> 9
Anfragen - Grundgerüst Anfragen an den Datenbestand Syntax SELECT <Attribut>, FROM <Relation> WHERE <Selektionsbedingung> GROUP BY <Attribut> 10
Projektion Auswahl von Spalten einer Relation Syntax SELECT <Attribut>, FROM <Relation> Name Paris Tokyo Hamburg Stockholm Seoul Berlin CID FR JA GM SW KS GM Population 2153000 8022000 1706000 704000 10776000 3472000 11
Anfragen - Selektion Auswahl von Tupeln einer Relation Syntax SELECT * FROM <Relation> WHERE <Selektionsbedingung> Name Paris Tokyo Hamburg Stockholm Seoul Berlin CID FR JA GM SW KS GM Population 2153000 8022000 1706000 704000 10776000 3472000 12
Anfragen - Verbund Kombination mehrerer Relationen Syntax SELECT <Attribut>, FROM <Relation1>, <Relation2> WHERE <Relation1>.<Attribut> = <Relation2>.<Attribut> 13
Anfragen Aggregatfunktionen Berechnung von Aggregaten auf Relationen Syntax SELECT <Aggregat>(<Attribut>) AS <Name> FROM <Relation> Wichtige Aggregatfunktionen: COUNT SUM MIN MAX AVG 14
Anfragen Gruppierung Gruppierung von gleichen Attributwerten Syntax SELECT <Attribut> FROM <Relation> GROUP BY <Attribut> HAVING <Gruppenbedingung> 15
Anfragen - Mengenoperationen Mengenoperationen auf Anfrageergebnissen (SELECT <Attribut>, FROM <Relation>) INTERSECT UNION MINUS (SELECT <Attribut>, FROM <Relation>) 16
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 17
isql*plus SQL mit Oracle Webinterface zur Eingabe von SQL-Befehlen URL: http://i40fs3:5560/isqlplus Anmeldung mit Benutzername, Passwort Datenbank: dwm ( Connect-Bezeichner ) 18
Data Warehousing mit Oracle Enterprise Manager Informationen zur Systemperformanz Administrationsaufgaben Teilbereich Warehouse Benutzung URL: http://i40fs3:5504/em Anmeldung mit Benutzername, Passwort 19
Der Enterprise Manager 20
Beobachtungen Sichten I Gleiche Teile von Relation häufig benutzt (Teil-)Anfragen treten sehr häufig auf Anfragen sehr komplex Lösung (materialisierte) Sichten Vorgehen Anfrageergebnisse werden gespeichert 21
Performanz Sichten II Berechnung häufiger Zwischenergebnisse entfällt Zusätzliche Indexe über materialisierten Sichten Zugriff durch weniger User Keine kontinuierlichen Updates Materialisierte Sichten im Data Warehouse Speicherung des Ergebnisses von Data Cleaning Analyse historischer Entwicklung des Datenbestands 22
Sichten sind: Sichten III das Ergebnis einer SELECT-Anweisung "virtuelle" Relationen Syntax CREATE [MATERIALIZED] VIEW <Viewname> AS <Anfrage> 23
Zu Erreichen über Materialisierte Sichten Administration -> Warehouse -> Materialized Views 24
Einsatzbereiche Datenbanken Tagesgeschäft Transaktionsorientierte Datenzugriffe Erfassen von Daten Lesezugriffe auf Daten OLTP (Online Transactional Processing) Datenbanken Entscheidungsunterstützung Konsolidierung von Daten Betrachtung und Analyse von (aggregierten) Daten OLAP (Online Analytical Processing) Data Warehouse 25
Überblick Extraktion Transformation Laden Data Warehouse Analyse Data Mining Operative Datenbanken Reporting OLAP Server Data Mart 26
ETL-Prozess Extraktion Datenquelle Laden Basisdatenbank Data Warehouse Transformation Analyse 27
Data Warehouse - Eigenschaften Repository aus heterogenen Quellen Daten meist aggregiert materialisierten Sichten auf Originaldaten Multidimensionales Datenmodell Datenwürfel Entsprechenden Operationen 28
Data Mart Kleines Data Warehouse für bestimmte Zielgruppe z.b. Finanzabteilung, Produktentwicklung, speziell aufbereitete Teil-Daten schnellere Verfügbarkeit bei Anfragen bessere Transparenz für den Anwender 29
Data Cube Einführung 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 30
Data Cube Beispiel Jahr Quartal Monat Tag Produkt. Zeit Umsatz Geographie 31
Relationale Umsetzung: Anforderungen Beibehaltung der Semantik z.b. Hierarchien Effiziente Verarbeitung von Anfragen Einfache Pflege z.b. beim Nachladen von Daten 32
Relationale Umsetzung: Faktentabelle Umsetzung des Datenwürfels ohne Hierarchien Kennzahlen, Dimensionen Spalten Zellen Tupel Jahr Quartal Produkt Monat Tag Produkt BMW 3er Zeit 01.02.2005 Geographie Karlsruhe Umsatz 6.000 BMW 7er 04.06.2005 Mannheim 3.254. BMW 1er 03.07.2005 Mannheim 726 Zeit Umsatz Geographie 33
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 34
Relationale Umsetzung: Star Schema - Beispiel Produkt Zeit Geographie Umsatz Jahr Quartal Produkt BMW 3er BMW 7er 01.02.2005 04.06.2005 Karlsruhe Mannheim 6.000 3.254 Monat Tag BMW 1er 03.07.2005 Mannheim 726 Tag Monat Quartal Jahr. 01.01.2005 02.01.2005 Januar Januar Q1 Q1 2005 2005 03.01.2005 Januar Q1 2005 Zeit Umsatz Geographie 35
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 36
Relational Umsetzung: Snowflake - Beispiel Jahr Quartal Monat Tag Produkt Produkt BMW 3er BMW 7er BMW 1er Zeit 01.02.2005 04.06.2005 03.07.2005 Geographie Karlsruhe Mannheim Mannheim Umsatz 6.000 3.254 726 Tag Bezeichnung Monat_ID. 01.01.2005 02.01.2005 Neujahr Namenstag Adelhard 1 1 03.01.2005 Namenstag Adula 1 Zeit Geographie Umsatz Monat_ID 1 2 Bezeichnung Januar Februar Quartal_ID Q1 Q1 3 März Q1 37
Vorgehen Dimensionen mit Oracle Namen vergeben Anlegen von Ebenen aus Relation nach Star Schema Hierarchische Anordnung der Ebenen 38
Dimensionen Anlegen von Hierarchieebenen Zu Erreichen über Administration->Warehouse->Dimensions 39
Dimensionen Anordnung der Ebenen 40
Zu Erreichen über Cube mit Oracle erstellen Administration->Warehouse->Cubes 41
Cube um Dimensionen erweitern 42
Cube um Kennzahlen erweitern 43
Beispieldaten Faktentabelle Sales Dimensionstabellen Promotions, Times, Products, Customers, Channels Sind im Starschema Promotions Sales Channels Times Products Customers 44
Beispieldaten Beschreibung Faktentabelle Sales Kennzahlen + Fremdschlüssel zu Dimensionstabellen Dimensionstabellen Promotions beschreibt Werbeaktionen Products Produktbeschreibungen Customers Times Daten über die Kunden Zeitabschnitte 45