Anfragen an multidimensonale Daten

Slides:



Advertisements
Ähnliche Präsentationen
Data Cubes PG Wissensmangement Seminarphase Hanna Köpcke Lehrstuhl für Künstliche Intelligenz Universität Dortmund.
Advertisements

Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Alternativen und Muster. Alternativen Gegeben ist eine Tabelle in der ein Attribut der Tabelle Buecher Gruppe genannt wurde. So gibt es unter anderem.
SQL als Abfragesprache
Universeller Zugriff auf multimediale Dokumentstrukturen auf der Basis von RDF und MPEG-7 Stefan Audersch BerlinXSW Juni.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
OLAP. © T. Kudraß, HTWK Leipzig Warum? Daten einer Firma verfügbar machen für Entscheidungsprozesse – Umsetzung schwierig neue Konzepte notwendig zur.
Prof. Dr. T. Kudraß1 Datenbanken zur Entscheidungsunterstützung - Data Warehousing.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
Einführung Dateisystem <-> Datenbanksystem
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
... und alles was dazugehört
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
Problemstellung Heterogene DV-Strukturen Mangelnde Kapazität in der EDV-Abteilung Historische Daten nicht verfügbar Analysen belasten die vorhandene Infrastruktur.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Data Warehouse: ETL-Praktikum
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Speichern und Lesen von Daten im Data Warehouse
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
Vorlesung #10 Physische Datenorganisation
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Einfache OQL-Ausdrücke (1) Literale und Objekte können direkt konstruiert werden; gültige Ausdrücke und ihre Typen sind z.B.: "Quader77": string struct(x:1.0,
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Verdichten von Daten mit Gruppenfunktionen
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Structured Query Language
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Vorlesung #5 SQL (Teil 2).
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).
Einführung Dateisystem <-> Datenbanksystem
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #10 RDBMS Erweiterungen.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Datenbank System (DBS) - Warum?
1 SQL-Erweiterungen für Data Warehousing Songbo Wang Januar 2004.
Komponenten und Phasen des Data Warehousing
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Dr. Klaus Ruhlig Technology & Product Consulting Sun Microsystems, München Skalierbare Rechnerarchitekturen für ein DWH: Eine vergleichende Analyse.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Data Warehouses und Moderne Betriebliche Anwendungen von Datenbanksystemen Online Transaction Processing Betriebswirtschaftliche Standard- Software (SAP.
DOAG SID Data Warehouse
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Multidimensionale Datenbanken
Multidimensional Expressions (MDX)
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Indexierung Oracle: indexes Indexierung.
Stream-Verwaltung mit konventionellen Datenbanksystemen
Nutzung und Modellierung von Datenbanken
(Structured Query Language)
 Präsentation transkript:

Anfragen an multidimensonale Daten Alexander Heidrich - BID8 09.06.2005 - nach Architektur, Speichermodellen etc. bekannt wie Daten ins Data Warehous kommen, nun weiter mit Anfragen an die gespeicherten Daten

Anfragen an multidimensionale Daten Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Motivation Daten sind im Data Warehouse  Wie kommt man nun an seine Informationen? Theoretische Grundlagen Welche Erweiterungen der vorhandenen (Datenbank-)mittel gibt es? Wie werden sie benutzt? Betriebswirtschaftliche Kennzahlen stehen im Mittelpunkt (Erlöse, Umsätze, Verkäufe, etc.) 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten OLAP-Operationen Online Analytic Processing Werkzeuge und Technologien, mit denen ein zugrundeliegendes DW benutzerfreundlich analysiert und abgefragt werden kann eingesetzt zur Unterstützung von Managemententscheidungen (decision support) beschäftigt sich mit der Auswertung von Daten, die über einen längeren Zeitraum gesammelt wurden 09.06.2005 Anfragen an multidimensionale Daten

OLAP-Operationen: Ausgangssituation Ausgangssituation: multidimensionaler Datenwürfel (einfacher Fall  Würfel) Dimensionsgrößen (Geographie, Zeit, Produkt) Granularität (Jahr, Quartal, Monat, Tag) usw. einzelne elemente beinhalten Daten 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten OLAP-Operationen Roll-Up – Wechsel auf eine übergeordnete Betrachtungsebene Drill-Down – Wechsel auf eine untergeordnete Betrachtungsbene Roll-up – Aggregation (weniger Detail) Drill-down (mehr Detail), Bewegung entlang der Granularitäten 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten OLAP-Operationen Drill-Across – Wechseln des betrachteten Fakts unter Beibehaltung der Betrachtungsebene 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten OLAP-Operationen Slice – Zugriff auf Daten einer extrahierten Schicht Selektion, Beschränkung einer Dimension SELECT * FROM VERKÄUFE WHERE Produkt = „VW“ SELECT * FROM VERKÄUFE WHERE GEOGRAPHIE = „FILIALE1“ 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten OLAP-Operationen Dice – Zugriff auf Teilwürfel Beschränkung aller Dimensionen auf Menge von Werten SELECT * FROM Verkäufe WHERE ARTIKEL = „GOLF“ AND TAG = „1“ AND FILIALE=„JENA“ 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten OLAP-Operationen Pivotierung – Drehen des Würfels durch Vertauschen der Dimensionen davon ausgehend, daß der Nutzer den Würfel immer von vorn sieht Eine Art Slicing Zur Analyse betriebswirtschaftlicher Daten meist Summenbildung entlang weggelassener Dimensionen (Verkäufe nach Zeit und Ort, Verkäufe nach Produkt und Zeit, Verkäufe nach Produkt und Ort), dabei noch nach Granularität 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! 09.06.2005 Anfragen an multidimensionale Daten

Umsetzung in Standards - SQL SQL-OLAP-Erweiterungen (seit SQL:1999) (erweiterte) Gruppierungsfunktionalität GROUP BY GROUPINGSETS GROUPING() ROLLUP CUBE SQL-OLAP-Funktionen Aggregate, Partitioning, Windows, Ranking IBM und Oracle an Standardisierung beteiligt  integriert in DB2 und Oracle (DBMS) Pivotierung nicht in SQL  Aufgabe der Darstellungsschicht DB2: 7.2, Oracle: 9 neben Informix (von IBM aufgekauft) und Compaq (mit HP fusioniert) Microsoft und IBM und CUBE-Operator Syntax in Beispielen 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: Beispieldaten Firma X mit Filialen in Frankreich und Deutschland, verkauft Autos und Computer Firma an allen Gruppierungen interessiert, Verkaufszahlen usw. usf. (vollständig wie möglich) 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: Aggregate Aggregatfunktionen COUNT(), SUM(), MIN(), MAX(), AVG() Funktionen liefern in dieser Anwendung nur einen einzelnen Wert Verwendung von GROUP BY Summen, Mittelwerte, etc. sind interessant, manche DBMS bieten auch weitere und benutzerdefinierte Funktionen um eine Anfrageergebnis mit Aussage, unterteilt nach Dimensionen zu bekommen (Summe nach Jahr, Summe nach Kategorie) im folgenden das Kernkonstrukt für die verschiedenen Gruppierungsmöglichkeiten 09.06.2005 Anfragen an multidimensionale Daten

SQL: GROUP BY – Beispiel -Ergebnis: Tabelle, unterteilt nach gewählten Attributmengen -Jede Gruppe wird mit der gewählten Funktion und gewähltem Attribut aggregiert -reicht eingentlich schon aus, würde sich bei großen Tabellen aber ungünstig machen, viel Schreibarbeit, Performance! 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: GROUPING SETS GROUP BY immer noch umständlich bei der Erzeugung von verschiedenen Gruppierungen (z.B. (Jahr, Land), (Jahr), (Jahr, Land, Verkäufe), etc.) Lösung: GROUPING SETS  Gruppierungskombinationen - () = Superaggregat 09.06.2005 Anfragen an multidimensionale Daten

SQL: GROUPING SETS – Beispiel - Null-Werte unschön 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: ROLLUP-Operator Implizit drill-down, Rollup zeigen GROUPING()-Funktion, um NULL-Werte, die von der Aggregation erschaffen werden von benutzerseitig eingefügten NULL-Werten zu unterscheiden, seit SQL1999 Zurückführen auf GROUPING SETS  Group-By  es fehlen Zeilen (Aggregation nach Land)  Hinzufügen per SQL-Statement fehlende Kombinationen  Wunderwaffe CUBE-Operator Erweiterung der GROUP-BY-Syntax um ROLLUP-Operator erzeugt hierarchisch multidimensionale Gruppierung GROUPING()-Funktion zur Indentifizierung von NULL-Werten 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: CUBE-Operator Vorschlag von Microsoft und IBM Erweiterung der GROUP-BY-Syntax um den CUBE-Operator N-Dimensionale Generalisierung der einfachen Aggregatfunktionen Referenz zum Paper (Microsoft, IBM)  Rechen- und Schreibaufwand verringern, Einführung vorgeschlagen 0D data cube = Punkt 1D data cube = Linie mit Punkt 2D data cube = Kreuztabelle 3D data cube = Würfel mit drei sich überschneidenden Kreuztabellen 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten CUBE erzeugt eine Tabelle, die sämtliche Aggregationen enthält GROUP-BYs für alle möglichen Kombinationen der Attribute, bei n Attributen müssen 2^n GROUP-BYs berechnet werden potenzmenge (stichwort) wenn mich diese ganzen Kombinationen nicht interessieren, Rückgriff auf ROLLUP entsprechend GROUPING SETS( (),(Jahr),(Land),(Kategorie), (Jahr,Land),(Jahr, Kategorie),(Land,Kategorie), (Jahr,Land, Kategorie)) 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: Cube ineinander verschachtelte Kreuztabellen http://www.cs.nyu.edu/courses/spring05/G22.3033-010/2dw.ppt&e=10313 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: OLAP-Funktionen mit SQL:1999 eingeführt umfassen: Aggregate Partionierung Window (Bildung dynamischer Fenster) Ranking Kernkonstrukt: Over-Klausel 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: Over-Klausel Funktion: z.B. AVG, SUM, später auch RANK(), DENSERANK() 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: Over() – Beispiel Over()  Aggregation über alle Tupel Aggregatbildung, keine weitere Verdichtung 09.06.2005 Anfragen an multidimensionale Daten

SQL: Over() mit Partionierung - Beispiel Partitionierung ähnlich Gruppierung PARTION BY JAHR = Partionierungsschema PARTITON BY <attribute list> 09.06.2005 Anfragen an multidimensionale Daten

SQL: Over() Bildung dynamischer Fenster OVER(ORDER BY <attribute list> [<window-spec>]) ROWS: explizite Angabe der Tupel RANGE: Angabe über between (UNBOUNDED PRECEDING = alle vorhergehenden, CURRENT ROW = aktuelle Zeile, n PRECEDING, n FOLLOWING = n vohergehende, n folgenden) and oder nur folgende TUPEL ab AKTUELLER ZEILE 09.06.2005 Anfragen an multidimensionale Daten

SQL: Over() Bildung dynamischer Fenster - Beispiel - erfordert explizite Sortierung der Tupel 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten SQL: Ranking Bestimmung der Postion eines Tupels in der Ergebnismenge Duplikate erhalten den gleichen Rang RANK() (mit Lücken) DENSE_RANK() (ohne Lücken) also bzgl. angegebener Sortierung innerhalb der Partition 09.06.2005 Anfragen an multidimensionale Daten

SQL: Ranking - Beispiel Order By Angabe als Grundlage fürs Ranking notwendige Angabe! 1. Spalte Dense_Rank 2. Spalte Rank 09.06.2005 Anfragen an multidimensionale Daten

SQL: Umsetzung in DB2 und Oracle Behauptung: DB2 und Oracle hinsichtlich den in SQL:1999 definierten OLAP-Erweiterungen/-funktionen gleich SQL:2003 bringt weitere analytische Funktionen  bislang nur von/in Oracle implementiert Standardisierungsvorschlag stammt ja von beiden, Over Ranking usw. gibt’s auch in beiden 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten MDX MDX = MultiDimensional eXpressions orientiert sich stark an SQL-Syntax und MDDM Entwicklung/Vorschlag von Microsoft kein relationaler „Aufsatz“ dementsprechend integriert in MS SQLServer 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten MDX Dimensions (Select) max. 64 on COLUMNS, ROWS, … Cube (From) Slicer (Where) Auswahl der darzustellenden Werte Fakten Slice 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten MDX: Elemente Measures  Fakten als Dimension modelliert Dimensions  Dimensionen Level: Klassifikationsstufe (Jahr) Member: Klassifikationsknoten (2003) Syntax {} Sets [] Einschluß von Strings implizite Summierung Measures  Fakten  in MDX auch Dimension Measures vorher festgelegt 09.06.2005 Anfragen an multidimensionale Daten

MDX: Navigationsfunktionen Members: Knoten einer Klassifikationsstufe Children: Kinderknoten eines Klassifikationsknotens Parent: Elternknoten eines Klassifikationsknotens SELECT {[Kategorie].MEMBERS}  Autos, Computer SELECT {[ATHLONXP].PARENT}  CPU SELECT {[CPU].CHILDREN}  ATHLON64, ATHLONXP, PENTIUM4 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten MDX: Beispiele Drill-Down Roll-Up Crossjoin Cross-Join  Projektion zweier Dimensionen in die Ebene, Erzeugung aller möglichen Kombinationen 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten MDX: Beispiel CROSSJOIN Drill-Down Roll-Up 09.06.2005 Anfragen an multidimensionale Daten

MDX: weitere Funktionen TOPCOUNT  Ergebnisbereich einer Dimension einschränken FILTER  Einschränkung über beliebige Bedingungen + viele weitere Funktionen  sehr mächtige Sprache mit hoher Komplexität 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Anfragetypen bereichsanfrage (in allen dimensionen beschränkt)  häufigste anfragetypen (wieviel waschmaschinen wurden im januar verkauft) teilbereichsanfrage (nicht in allen dimensionen beschränkt)  häufigste anfragetypen (wieviel artikel wurden im januar verkauft) partialmatch-anfrage (eine dimension streng begrenzt) punktanfrage (alle dimensionen streng begrenzt) zusammengesetzte anfragen unregelmäßige anfrageformen 09.06.2005 Anfragen an multidimensionale Daten

Methoden der Abfrageverarbeitung – Star Join Star Schema als Grundlage sehr große Faktentabelle kleine, voneinander unabhängige Dimensionstabellen Verbund zwischen n Dimensionstabellen und der Faktentabelle, Restriktionen über Dimensionstabellen typisches Muster für DW-Anfragen http://publib.boulder.ibm.com/infocenter/dzichelp/index.jsp?topic=/com.ibm.db2.doc.admin/bjndmstr783.htm häufigstes Anfragemuster (Anfragen an Fakten- und dimensionstabelle) charakteristika der typischen DW-Anfrage: es wird meist nur ein bestimmter in fast allen dimensionen beschränkter datenbereich abgefragt Dimensionstabelle  enthält Details (Produktbeschreibung, etc.), Fremdschlüsselbeziehung zur Faktentabelle Faktentabelle  enthält die eigentlich zu verwaltenden Kennzahlen 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Star Join: Aufbau SELECT-Klausel Kenngrößen Granularitäten FROM-Klausel Fakten- und Dimensionstabellen WHERE-Klausel Verbundbedingungen Restriktionen weitestgehend SFW-Schema (ganz klassisch) SUM(irgendwas), ZEIT.Tag, ZEIT.Jahr Land = „Deutschland“ AND Zeit = „2003 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Star Join: Beispiel SELECT Geographie.Region, Zeit.Monat, SUM(Verkaeufe) FROM Verkauf, Zeit, Produkte, Geographie WHERE Verkauf.Produkt_ID = Produkt.ProduktID AND Verkauf.Zeit_ID = Zeit.ZeitID AND Verkauf.Geographie_ID = Geographie.GeographieID AND Produkt.Produktkategorie = 'Waschgeräte' AND Geographie.Land = 'Deutschland' AND Zeit.Jahr = 2000 - wieviel waschgeräte im jahr 2000 in deutschland verkauft 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Star Join: Beispiel Mögliche Abarbeitungsstragie Performance-Probleme  10.000.000 Datensätze in der Tabelle Verkauf, 1/10 Geschäfte in Deutschland (10 von 100 Geschäften), 1/50 aller gespeicherten Verkaufstage im Januar (20 von 1000 Tagen), 1/20 aller Produkte Waschmaschinen (50 von 1000 Produkten) 1. Join  1000000 Tupel als Ergebnis 2. Join  20000 Tupel 3. Join  1000 Tupel  Optimierung in weiteren Vorträgen vorgestellt 09.06.2005 Anfragen an multidimensionale Daten

Anfragen an multidimensionale Daten Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! 09.06.2005 Anfragen an multidimensionale Daten

Fragen? Diskussion!