Vorlesung Wissensentdeckung in Datenbanken

Ähnliche Dokumente
Vorlesung Wissensentdeckung in Datenbanken

Data Cubes PG Wissensmangement Seminarphase

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

Vorlesung Wissensentdeckung in Datenbanken

bersicht Datenbanken und Datawarehouses Datenbank Datenbanksysteme Niels Schršter

Anfragen an multidimensionale Daten

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

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

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Aggregatfunktionen in SQL

SQL: Abfragen für einzelne Tabellen

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

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

Geoinformation Abbildung auf Tabellen

Datenbanksysteme 2009

Wissensentdeckung in Datenbanken

Kapitel 5: Vom relationalen zum multidimensionalen Datenmodell

Kapitel 5: Vom relationalen zum multidimensionalen Datenmodell

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

GROUP BY, HAVING und Sichten

Kap. 6 Data Warehouse

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

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

Wiederholung VU Datenmodellierung

Es geht also im die SQL Data Manipulation Language.

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

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

Data Warehouses und Moderne Betriebliche Anwendungen von Datenbanksystemen

Themenblock: Erstellung eines Cube

Vorlesung Datenbankmanagementsysteme

Fachbereich Informatik Praktikum 1

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

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

Kapitel 17: Date Warehouse

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

SQL Intensivpraktikum SS 2008

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

IV. Datenbankmanagement

SQL als Zugriffssprache

Übersicht der wichtigsten MySQL-Befehle

Business Intelligence & Reporting. Michael Cordes Holger Oehring Matthias Rein

Visualisierung in Informatik und Naturwissenschaften

Datenbanken Unit 7: Normalisierung ctd.

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

Aufgabe 1: [Logische Modellierung]

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Übung 1: SQL. Übungen finden bei Bedarf anstelle der Vorlesungen statt Fragen? Vorlesung Datenbankeinsatz WS 04/05 IPD

Kapitel 3: Datenbanksysteme

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

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

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

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

Kapitel 8: Data Warehouse 1

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Data Warehousing. Sommersemester Ulf Leser Wissensmanagement in der Bioinformatik

Niedersächsisches Kultusministerium Juli 2014

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

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

Anfrageoptimierung Logische Optimierung

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

Analytic Views: Einsatzgebiete im Data Warehouse

Garten - Daten Bank. - survival pack -

Fortsetzung: Projektion Selektion. NULL Werte

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

Implementierung der SQL Operatoren GROUP BY und CUBE

Kapitel 5: Der SQL-Standard

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

Niedersächsisches Kultusministerium Juli 2015

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

Musterlösung zur Finalklausur Datenbanksysteme am

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

ACCESS SQL ACCESS SQL

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

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

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin

Datenbankensysteme Aufgabenblatt 2

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

Microsoft Access Abfragen: Informationen anzeigen und sortieren

7. Übung - Datenbanken

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

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

3.17 Zugriffskontrolle

7. XML-Datenbanksysteme und SQL/XML

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

Aggregatfunktionen in der Relationenalgebra?

Download:.../~rieche. gehalten am 2. Februar Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse

Informatik 12 Datenbanken SQL-Einführung

Realisierung von OLAP Operatoren in einem visuellen Analysetool. Vortrag von Alexander Spachmann und Thomas Lindemeier

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Operationen auf Relationen

Betriebliche Anwendungen

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Performance-Vergleich zwischen InterSystems Caché und Oracle in einer Data-Mart-Applikation

Sructred Query Language

durch Einfügen von Knoten konstruiert werden kann.

Transkript:

Gliederung Vorlesung Wissensentdeckung in Datenbanken Data Cube Katharina Morik, Claus Weihs 14.07.2009 1 Einführung 2 Aggregation in SQL, GROUP BY 3 Probleme mit GROUP BY 4 Der Cube-Operator 5 Implementierung des Data Cube 6 Zusammenfassung 1 von 25 2 von 25 On-line Analytical Processing (OLAP) OLAP-Werkzeuge Ziel: Auffinden interessanter Muster in großen Datenmengen Formulierung einer Anfrage Extraktion der Daten Visualisierung der Ergebnisse Analyse der Ergebnisse und Formulierung einer neuen Anfrage Datenmenge wird als n-dimensionaler Raum aufgefasst Identifizierung von interessanten Unterräumen In relationalen Datenbanken werden n-dimensionale Daten als Relationen mit n-attributen modelliert Dimensionsreduktion durch Aggregation der Daten entlang der weggelassenen Dimensionen 3 von 25 4 von 25

Beispiel: Autoverkäufe Aggregation in SQL Ford 1990 weiß 62 Aggregatfunktionen: COUNT(), SUM(), MIN(), MAX(), AVG() Beispiel: SELECT AVG(Anzahl) Aggregation nur über verschiedene Werte Beispiel: SELECT COUNT(DISTINCT Modell) FROM Autoverkäufe Aggregatfunktionen liefern einen einzelnen Wert Aggregation über mehrere Attribute mit GROUP BY 5 von 25 6 von 25 GROUP BY Beispiel: GROUP BY SELECT Modell, Jahr, SUM(Anzahl) GROUP BY Modell, Jahr Die Tabelle wird gemäß den Kombinationen der ausgewählten Attributmenge in Gruppen unterteilt Jede Gruppe wird über eine Funktion aggregiert Das Resultat ist eine Tabelle mit aggregierten Werten, indiziert durch die ausgewählte Attributmenge Ford 1990 weiß 62 SELECT Modell, Jahr, SUM(Anzahl) GROUP BY Modell, Jahr Modell Jahr SUM(Anzahl) Opel 1990 154 Opel 1991 198 Opel 1992 156 Ford 1990 189 Ford 1991 116 Ford 1992 128 7 von 25 8 von 25

Roll Up GROUP BY: Roll Up Gleiche Anfrage in unterschiedlichen Detailierungsgraden Verminderung des Detailierungsgrades = Roll Up Erhöhung des Detailierungsgrades = Drill Down Beispiel: Autoverkäufe Roll Up über drei Ebenen Daten werden nach Modell, dann nach Jahr, dann nach Farbe aggregiert Die Verkaufszahlen werden zuerst für jedes Modell aus jedem Jahr in jeder Farbe aufgelistet, dann werden alle Verkaufszahlen des gleichen Modells und Jahres aufsummiert und daraus die Verkaufszahlen der Modelle berechnet nach Modell, Jahr, Farbe weiß 87 blau 62 1991 rot 54 weiß 95 blau 49 1992 rot 31 weiß 54 blau 71 Anzahl nach Modell, Jahr 154 198 156 Anzahl nach Modell 508 9 von 25 10 von 25 Probleme mit GROUP BY: Roll Up GROUP BY: Roll Up mit ALL Tabelle ist nicht relational, da man wegen der leeren Felder (Null-Werte) keinen Schlüssel festlegen kann. Die Zahl der Spalten wächst mit der Zahl der aggregierten Attribute Um das exponentielle Anwachsen der Spaltenanzahl zu vermeiden, wird der ALL-Wert eingeführt. Der ALL-Wert repräsentiert die Menge, über die die Aggregation berechnet wird. Beispiel: Ein ALL in der Spalte Farbe bedeutet, dass in der Anzahl dieser Zeile die Verkaufszahlen der roten, weißen und blauen Autos zusammengefasst sind. Opel 1990 ALL 154 Opel 1991 ALL 198 Opel 1992 ALL 156 Opel ALL ALL 506 Erzeugung der Tabelle mit SQL: SELECT Modell, ALL, ALL, SUM(Anzahl) WHERE Modell = Opel GROUP BY Modell UNION SELECT Modell, Jahr, ALL, SUM(Anzahl) WHERE Modell = Opel GROUP BY Modell, Jahr UNION SELECT Modell, Jahr, Farbe, SUM(Anzahl) WHERE Modell = Opel GROUP BY Modell, Jahr, Farbe 11 von 25 12 von 25

Probleme mit GROUP BY: Roll Up Kreuztabellen Symmetrische Darstellung mehrdimensionaler Daten und Aggregationen Beispiel war ein einfaches dreidimensionales Roll Up Eine Aggregation über n Dimensionen erfordert n Unions Roll Up ist asymmetrisch: Verkäufe sind nach Jahr, aber nicht nach Farbe aggregiert Opel 1990 1991 1992 Total (ALL) rot 5 54 31 90 weiß 87 95 54 236 blau 62 49 71 182 Total (ALL) 154 198 156 508 Diese Kreuztabelle ist eine zweidimensionale Aggregation Nimmt man noch andere Automodelle hinzu, kommt für jedes Modell eine weitere Ebene hinzu Man erhält eine dreidimensionale Aggregation 13 von 25 14 von 25 Der CUBE-Operator n-dimensionale Generalisierung der bisher genannten Konzepte Der 0D Data Cube ist ein Punkt Der 1D Data Cube ist eine Linie mit einem Punkt Der 2D Data Cube ist eine Kreuztabelle Der 3D Data Cube ist ein Würfel mit drei sich überschneidenden Kreuztabellen (Gray, Chaudhuri, Bosworth, Layman 1997) Der CUBE-Operator Beispiel: SELECT Modell, Jahr, Farbe, SUM(Anzahl) GROUP BY CUBE Modell, Jahr, Farbe (Der CUBE-Operator ist nicht für jede Datenbank direkt verfügbar) Der Cube-Operator erzeugt eine Tabelle, die sämtliche Aggregationen enthält Es werden GROUP BYs für alle möglichen Kombinationen der Attribute berechnet Die Erzeugung der Tabelle erfordert die Generierung der Potenzmenge der zu aggregierenden Spalten. Bei n Attributen werden 2 n GROUP BYs berechnet Sei C 1, C 2,...,C n die Kardinalität der n Attribute, dann ist die Kardinalität der resultierenden Data Cube-Relation (Ci + 1) 15 von 25 16 von 25

Data Cube des Beispiels Data Cube des Beispiel Ford 1990 weiß 62 Opel 1990 ALL 154 Opel 1991 ALL 198 Opel 1992 ALL 156 Opel ALL rot 90 Opel ALL weiß 236 Opel ALL blau 182 Opel ALL ALL 508 Ford 1990 weiß 72 Ford 1990 ALL 189 Ford 1991 ALL 116 Ford 1992 ALL 128 Ford ALL rot 143 Ford ALL weiß 133 Ford ALL blau 157 Ford ALL ALL 433 ALL 1990 rot 69 ALL 1990 weiß 149 ALL 1990 blau 125 ALL 1990 ALL 343 ALL 1991 rot 106 ALL 1991 weiß 104 ALL 1991 blau 104 ALL 1991 ALL 314 ALL 1992 rot 58 ALL 1992 weiß 116 ALL 1992 blau 110 ALL 1992 ALL 284 ALL ALL rot 233 ALL ALL weiß 369 ALL ALL blau 339 ALL ALL ALL 941 17 von 25 18 von 25 Implementationsalternativen Physische Materialisierung des gesamten Data Cube: beste Antwortzeit hoher Speicherplatzbedarf Keine Materialisierung: jede Zelle wird nur bei Bedarf aus den Rohdaten berechnet kein zusätzlicher Speicherplatz schlechte Antwortzeit Materialisierung von Teilen des Data Cube: Werte vieler Zellen sind aus Inhalt anderer Zellen berechenbar diese Zellen nennt man abhängige Zellen Zellen, die einen ALL-Wert enthalten, sind abhängig Problem: Welche Zellen des Data Cube materialisieren? Zellen des Data Cube entsprechen SQL Anfragen (Sichten) 19 von 25 Abhängigkeit von Sichten Die Abhängigkeitsrelation zwischen zwei Anfragen Q 1 und Q 2 Q 1 Q 2 gdw. Q 1 kann beantwortet werden, indem die Ergebnisse von Q 2 verwendet werden. Q 1 ist abhängig von Q 2 Anfragen bilden einen Verband unter folgenden Voraussetzungen: 1 ist eine Halbordnung und 2 es gibt ein maximales Element (eine oberste Sicht) Der Verband wird durch eine Menge von Anfragen (Sichten) L und der Abhängigkeitsrelation definiert und mit L, bezeichnet Ein Verband wird dargestellt durch einen Graphen, in dem die Anfragen die Knoten sind und die Kanten. 20 von 25

Auswahl von Sichten zur Materialisierung Der Greedy Algorithmus Optimierungsproblem, das unter folgenden Bedingungen gelöst werden soll: Die durchschnittliche Zeit für die Auswertung der Anfragen soll minimiert werden. Man beschränkt sich auf eine feste Anzahl von Sichten, die materialisiert werden sollen, unabhängig von deren Platzbedarf Das Optimierungsproblem ist NP-vollständig. Heuristiken für Approximationslösungen: Greedy-Algorithmus Der Greedy-Algorithmus verhält sich nie zu schlecht: Man kann zeigen, dass die Güte mindestens 63% beträgt (Harinayaran, Rajaraman, Ullman 1996). 21 von 25 Gegeben ein Verband mit Speicherkosten C(v) für jede Sicht v Annahme: Speicherkosten = Anzahl der Reihen in der Sicht Beschränkung auf k materialisierte Sichten Nach Auswahl einer Menge S von Sichten wird der Nutzen der Sicht v relativ zu S mit B(v, S) bezeichnet und wie folgt definiert: 1 Für jede Sicht w v wird B w berechnet: 1 Sei u die Sicht mit den geringsten Kosten in S, so { dass w u C(u) C(v), falls C(v) < C(u) 2 B w = 0, sonst 2 B(v, S) = w v B w v u i u j w 1 w 2... w m 22 von 25 Der Greedy Algorithmus Beispiel 1 S = {oberste Sicht} 2 for i = 1 to k do begin 3 Wähle die Sicht v / S, so dass B(v, S) maximal ist; 4 S = S {v} 5 end; 6 return S; 100 a 50 b 30 c 75 20 d e g 1 h 10 f 40 Erste Wahl Zweite Wahl Dritte Wahl b 50 x 5 = 250 c 25 x 5 = 125 25 x 2 = 50 25 x 1 = 25 d 80 x 2 = 160 30 x 2 = 60 30 x 2 = 60 e 70 x 3 = 210 20 x 3 = 60 20 + 20 + 10 = 50 f 60 x 2 = 120 60 + 10 = 70 g 99 x 1 = 99 49 x 1 = 49 49 x 1 = 49 h 90 x 1 = 90 40 x 1 = 40 30 x 1 = 30 S : {a}, S : {a, b}, S : {a, b,f}, S : {a, b,d, f} Greedy Auswahl: b, d,f werden zusätzlich materialisiert 23 von 25 24 von 25

Was wissen Sie jetzt? Möglichkeiten und Grenzen der Aggregation in SQL Einführung von Data Cubes zur Unterstützung von Aggregationen über n Dimensionen Greedy-Algorithmus zur Auswahl einer festen Anzahl von Sichten, die materialisiert werden 25 von 25