Rückblick § Unterstützung der Unternehmenssteuerung durch Data Warehouses mit ganzheitlicher Sicht auf Daten aus operativen Systemen § Online Transaction Processing (OLTP) und Online Analytical Processing unterscheiden sich deutlich § Datenintegration als eine wichtige Herausforderung § Multidimensional Entity-Relationship-Model zur konzeptuellen Modellierung von Data Warehouses Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 34 Implementierung von Data Warehouses § Verschiedene Ansätze zur Speicherung von Datenwürfeln § Relationales OLAP (ROLAP) bildet Datenwürfel auf Relationen ab und verwendet RDBMS § Multidimensionales OLAP (MOLAP) speichert Datenwürfel direkt in Form eines mehrdimensionalen Arrays § Hybrides OLAP (HOLAP) verwendet eine Kombination von ROLAP und MOLAP (z.B. Detaildaten relational und vorberechnete Aggregate mehrdimensional) Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 35 Snowflake-Schema § Snowflake-Schema setzt Fakten in eine Faktentabelle und jede Dimension in mehrere normalisierte Dimensionstabellen um § Faktentabelle enthält Kennzahl sowie Fremdschlüssel der jeweils niedrigsten Klassifikationsstufe § Dimensionstabelle enthält eine ID, beschreibende Attribute sowie Fremdschlüssel der jeweils nächsthöheren Klassifikationsstufe Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 36 Snowflake-Schema Multidimensionales Datenmodell Relationale Umsetzung des multidimensionalen Datenmodells Snowflake-Schema: Beispiel Dimension "Produkt" Produktkategorie 1 PK_ID PK_Bezeichnung * Produktgruppe PG_ID PG_Bezeichnung PG_PKategorie_ID 1 Dimension "Kunde" Kundengruppe Kunde 1 KG_ID KG_Bezeichnung * * Bundesland B_ID B_Name B_Land_ID 1 * Stadt S_ID S_Name S_BLand_ID 1 1 K_ID K_Name K_Wohnort K_Strasse K_Geschlecht K_KGruppe_ID 1 * Filiale F_ID F_Filiale F_Stadt_ID 1 * * Verkauf V_Anzahl V_Kanal V_Produkt_ID V_Zeit_ID V_Kunden_ID V_Filial_ID Produkt P_ID P_Bezeichnung P_Verkaufspreis P_Einkaufspreis P_Rabatt P_Steuern P_PGruppe_ID * * * 1 Zeit Z_ID Z_Datum Dimension "Zeit" 1 Land L_ID L_Name Dimension "Ort" c Sattler / Saake / Köppen Data-Warehouse-Technologien Letzte Änderung: 08.11.2013 3–47 Quelle: Köppen, Saake und Sattler [2, S.58] Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 37 Star-Schema § Star-Schema setzt Fakten in eine Faktentabelle und jede Dimension in eine denormalisierte Dimensionstabelle um § Faktentabelle enthält Kennzahl sowie Fremdschlüssel der jeweils zugehörigen Einträge in den Dimensionstabellen § Dimensionstabelle enthält ID sowie beschreibende Attribute für eine der niedrigsten Klassifikationsstufe und allen höheren Klassifikationsstufen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 38 Star-Schema Multidimensionales Datenmodell Relationale Umsetzung des multidimensionalen Datenmodells Star-Schema: Beispiel Kunde 1 K_ID K_Name K_Wohnort K_Strasse K_Geschlecht K_Kundengruppe Ort O_ID O_Filiale O_Stadt O_Bundesland O_Land c Sattler / Saake / Köppen 1 * * Verkauf V_Anzahl V_Kanal V_Produkt_ID V_Zeit_ID V_Kunden_ID V_Ort_ID 1 Produkt P_ID P_Bezeichnung P_Verkaufspreis P_Einkaufspreis P_Rabatt P_Steuern P_Produktgruppe P_Produktkategorie 1 Zeit * * Data-Warehouse-Technologien Z_ID Z_Datum Letzte Änderung: 08.11.2013 3–50 Quelle: Köppen, Saake und Sattler [2, S.59] Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 39 Snowflake-Schema vs. Star-Schema § Snowflake-Schema hält Dimensionstabellen in 3NF und vermeidet somit redundante Datenspeicherung; beim Star-Schema sind sie nur in 1NF, wodurch Redundanzen und Anomalien entstehen § Star-Schema kann, dank seiner Denormalisierung, Anfragen bzgl. höherer Klassifikationsstufen direkt, ohne zusätzliche Joins bearbeiten Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 40 Snowflake-Schema vs. Star-Schema § Beispielanfrage im Snowflake-Schema (5 Joins) 1 2 3 4 5 6 SELECT FROM WHERE AND AND GROUP BY S_Name , YEAR ( Z_Datum ) , SUM ( V_Anzahl ) Verkauf , Filiale , Stadt , Produkt , Produktgruppe , Zeit V_Produkt_ID = P_ID AND P_PGruppe_ID = PG_ID V_Filial_ID = F_ID AND F_Stadt_ID = S_ID V_Zeit_ID = Z_ID AND PG_Bezeichnung = ’ Wein ’ S_Name , YEAR ( Z_Datum ) § Beispielanfrage im Star-Schema (3 Joins) 1 2 3 4 5 SELECT FROM WHERE AND GROUP BY O_Stadt , YEAR ( Z_Datum ) , SUM ( V_Anzahl ) Verkauf , Ort , Produkt , Zeit V_Produkt_ID = P_ID AND V_Zeit_ID = Z_ID V_Ort_ID = O_ID AND P_Produktgruppe = ’ Wein ’ O_Stadt , YEAR ( Z_Datum ) Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 41 Galaxie-Schema § Snowflake-Schema und Star-Schema beinhalten eine Faktentabelle, die Kennzahlen in den gleichen Dimensionen speichert § Galaxie-Schema als Erweiterung des Snowflake-Schemas beinhaltet mehrere Faktentabellen, die Kennzahlen in verschiedenen Dimensionen speichern § Vorberechnete Aggregate (z.B. über alle Filialen hinweg) als eine Quelle zusätzlicher Faktentabellen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 42 Multidimensionales Datenmodell Relationale Umsetzung des multidimensionalen Datenmodells Galaxie-Schema Galaxie-Schema: Beispiel 1 Land L_ID L_Name Kunde Bundesland B_ID B_Name B_Land_ID * * * 1 * * Filiale F_ID F_Filiale F_Stadt_ID Verkauf V_Anzahl V_Kanal V_Produkt_ID V_Zeit_ID V_Kunden_ID V_Filial_ID * * 1 1 * c Sattler / Saake / Köppen * 1 * Stadt S_ID S_Name S_BLand_ID 1 1 K_ID K_Name K_Wohnort K_Strasse K_Geschlecht K_KGruppe_ID 1 1 Produktkategorie PK_ID PK_Bezeichnung Kundengruppe KG_ID KG_Bezeichnung 1 Summe_Verkauf SV_Anzahl SV_Kanal SV_Monat_ID SV_PGruppe_ID SV_BLand_ID Data-Warehouse-Technologien 1 * Produktgruppe PG_ID PG_Bezeichnung PG_PKategorie_ID Produkt P_ID P_Bezeichnung P_Verkaufspreis P_Einkaufspreis P_Rabatt P_Steuern P_PGruppe_ID 1 1 * Zeit Z_ID Z_Datum Z_Monat_ID Z_Monat * Letzte Änderung: 08.11.2013 3–67 Quelle: Köppen, Saake und Sattler [2, S.63] Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 43 4.4 Anfragen an Data Warehouses § Analytische Anfragen an Data Warehouses wählen einen mehrdimensionalen Teilbereich von Fakten aus und berechnen Aggregationen auf höheren Klassifikationsstufen § Beispiel: Umsatz je Produktkategorie in allen europäischen Filialen in den Monaten seit Januar 2010 § Beispiel: Verkaufte Einheiten je Produkt über alle Filialen pro Jahr seit 2005 Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 44 Anfragen an Data Warehouses § Analytische Anfragen betreffen oft eine große Menge von Daten (z.B. alle Verkäufe seit 2010) § Antwortzeiten sollen interaktiv (d.h. kürzer 5 Sekunden) sein, um eine Interaktion mit dem Datenwürfel zu erlauben § Betrachtung eines kleineren Teilwürfels § Verdichtung der Kennzahlen zu höherer Klassifikationsstufe § etc. § Data Warehouses setzen auf Vorberechnungen, um diese Anforderungen zu erfüllen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 45 OLAP-Operatoren § Datenwürfel dient nicht nur der Modellierung, sondern es lassen sich eine Reihe von Operatoren auf ihm definieren, die dann effizient umgesetzt werden müssen § Pivotieren/Rotieren des gesamten Datenwürfels (PIVOT) § Navigieren aufwärts/abwärts entlang der Dimensionen (ROLL UP / DRILL DOWN) § Betrachten eines Teilwürfels oder einer Scheibe (DICE / SLICE) Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 46 Multidimensionales Datenmodell Operationen zur Datenanalyse PIVOT Pivotierung / Rotation § Pivotieren/Rotieren des gesamtender Datenwürfels Drehen des Würfels durch Vertauschen Dimensionen Analyse der Daten aus verschiedenen Perspektiven Produkt Zeit Softdrink Wein Bier 2009 2010 2011 2009 Bier 2010 Wein 2011 Softdrink Zeit nse lt h c a Sa n h A T n ge n ri hü e ay rn Ort Produkt B c Köppen, Sattler /Saake Saakeund / Köppen Quelle: Sattler [2, S.126] Data-Warehouse-Technologien Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses en s ch alt Sa nh A T n ge n ri hü y Ba er n Ort Letzte Änderung: 08.11.2013 3–34 47 DRILL DOWN und ROLL Multidimensionales Datenmodell UP Operationen zur Datenanalyse Roll-Up und Drill-Down § Navigieren aufwärts/abwärts entlang der Dimensionen Drill Down Produkt Produkt Softdrink Wein Bier Softdrink Wein Bier Roll Up 2009 Q1 2010 2009 2011 Zeit Q2 Q3 T r in hü n ge B er ay n Q4 Ort 2010 ... en s ch alt Sa nh A 2011 Zeit nse lt h c a Sa nh A T n ge n ri hü r ye a B n Ort Quelle: Köppen, Saake und Sattler [2, S.127] Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 48 SLICE Multidimensionales Datenmodell Operationen zur Datenanalyse § Betrachten einer Scheibe des Datenwürfels Slice Produkt Produkt Softdrink Wein Bier Softdrink Wein Bier 2009 2009 2010 2010 2011 2011 Zeit nse lt h c a Sa nh A T ri hü en ng B n er ay Ort Zeit en s ch alt Sa nh A T n ge n ri hü r ye a B n Ort Quelle: Köppen, Saake und Sattler [2, S.127] c Sattler / Saake / Köppen Data-Warehouse-Technologien Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses Letzte Änderung: 08.11.2013 3–38 49 DICE Datenmodell Operationen Datenanalyse § Betrachten Multidimensionales eines Teilwürfels deszurDatenwürfels Dice Produkt Produkt Softdrink Wein Bier Softdrink Wein Bier 2009 2009 2010 2010 2011 2011 Zeit nse lt h c a Sa nh A T n ge n ri hü B e ay rn Ort Zeit en s ch alt Sa n h A T n ge n ri hü B er ay n Ort Quelle: Köppen, Saake und Sattler [2, S.128] Datenbanken & Informationssysteme Warehouses c Sattler / Saake / Köppen / Kapitel 4: Data Data-Warehouse-Technologien Letzte Änderung: 08.11.2013 3–39 50 Umsetzung in SQL § Data-Warehouse-Systeme vertrauen meist auf RDBMS zur Speicherung und zum Anfragen der Daten § Bei Verwendung eines Star-Schema ergibt sich folgendes Anfragemuster zum Berechnen eines Datenwürfels § (n+1)-Wege-Verbund zwischen n Dimensionstabellen und einer Faktentabelle § Restriktionen über den Dimensionstabellen § Aggregation und Gruppierung über Kennzahlen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 51 Umsetzung in SQL § Beispiel: 1 2 3 4 5 SELECT FROM WHERE AND GROUP BY O_Stadt , YEAR ( Z_Datum ) , SUM ( V_Anzahl ) Verkauf , Ort , Produkt , Zeit V_Produkt_ID = P_ID AND V_Zeit_ID = Z_ID V_Ort_ID = O_ID AND P_Produktgruppe = ’ Wein ’ O_Stadt , YEAR ( Z_Datum ) § In den Standards SQL:1999 und SQL:2003 wurden Erweiterungen speziell für OLAP eingeführt § zusätzliche (statistische) Aggregatfunktionen § CUBE und ROLLUP Operatoren Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 52 Aggregatfunktionen § Zusätzliche statistische Aggregatfunktionen in SQL:2003 § VAR_POP(A) und VAR_SAMP(A) zum Berechnen der Varianz auf Population oder Stichprobe § STDDEV_POP(A) und STDDEV_SAMP(A) zum Berechnen der Standardabweichung auf Population oder Stichprobe § COVAR_POP(A,B) und COVAR_SAMP(A,B) zum Berechnen der Kovarianz auf Population oder Stichprobe § CORR(A,B) zum Berechnen des Korrelationskoeffizienten Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 53 CUBE Anfragen an Data Warehouse Gruppierung und Aggregation Berechnung von Zwischen- und Gesamtsummen § Analysen benötigen oft Zwischen- und Gesamtsummen PGruppe Jahr Bundesland Wein 2010 Sachsen-Anhalt Thüringen Umsatz PGruppeJahrBundesland 45 43 Umsatz PGruppeJahr Umsatz PGruppe 88 2011 Sachsen-Anhalt 47 47 135 Bier 2011 Thüringen 42 42 42 Quelle: Köppen, Saake und Sattler [2, S.132] c Sattler / Saake / Köppen Data-Warehouse-Technologien Letzte Änderung: 08.11.2013 5–13 § Je Zwischen- oder Gesamtsumme ist eine separate Unteranfrage an das RDBMS notwendig Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 54 CUBE § Beispiel: Zwischen- und Gesamtsummen mittels Vereinigung von Unteranfragen 1 2 3 4 5 6 -- Zwischensumme (1) ü ber alle Produktgruppen , Jahre und Bundesl ä nder SELECT P_Produktgruppe AS PGruppe , YEAR ( Z_Datum ) , O_Bundesland , SUM ( V_Anzahl * P_Verkaufspreis ) AS Umsatz FROM Verkauf , Zeit , Produkt , Ort WHERE V_Zeit_ID = Z_ID AND V_Produkt_ID = P_ID AND V_Ort_ID = O_ID GROUP BY P_Produktgruppe , YEAR ( Z_Datum ) , O_Bundesland 7 8 UNION ALL 9 10 11 12 13 14 15 16 -- Zwischensumme (2) ü ber alle Produktgruppen und Jahre SELECT P_Produktgruppe AS PGruppe , YEAR ( Z_Datum ) , CAST ( NULL AS VARCHAR (50)) , SUM ( V_Anzahl * P_Verkaufspreis ) AS Umsatz FROM Verkauf , Zeit , Produkt , Ort WHERE V_Zeit_ID = Z_ID AND V_Produkt_ID = P_ID AND V_Ort_ID = O_ID GROUP BY P_Produktgruppe , YEAR ( Z_Datum ) 17 18 UNION ALL 19 20 ... Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 55 CUBE § Vollständige Berechnung aller Zwischen- und Gesamtsummen führt bei n Gruppierattributen zu 2n auszuwertenden Unteranfragen § CUBE-Operator berechnet für gegebene Menge von Gruppierattributen {A1, ..., An} Summen für alle Teilmengen der Gruppierattribute {} {A1 }, {A2 }, {A3 }, . . . {A1 , A2 }, {A1 , A3 }, . . . .. . {A1 , . . . An } Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 56 CUBE § Beispiel: Zwischen- und Gesamtsummen mittels Verwendung des CUBE-Operators 1 2 3 4 5 SELECT P_Produktgruppe AS PGruppe , O_Bundesland , YEAR ( Z_Datum ) , SUM ( V_Anzahl * P_Verkaufspreis ) AS Umsatz FROM Verkauf , Zeit , Produkt , Ort WHERE V_Zeit_ID = Z_ID AND V_Produkt_ID = P_ID AND V_Ort_ID = O_ID GROUP BY CUBE ( P_Produktgruppe , O_Bundesland , YEAR ( Z_Datum )) § CUBE-Operator ist interdimensional, d.h. Gruppierattribute stammen von verschiedenen Klassifikationsstufen unterschiedlicher Dimensionen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 57 ROLLUP § ROLLUP-Operator als intradimensionales Pendant zum CUBE-Operator berechnet Zwischen- und Gesamtsummen entlang verschiedener Klassifikationsstufen einer Dimension § Beispiel: Zwischen- und Gesamtsummen für Bundesländer, Städte und Filialen 1 2 3 4 5 6 7 SELECT O_Bundesland , O_Stadt , O_Filiale , SUM ( V_Anzahl * P_Verkaufspreis ) AS Umsatz FROM Verkauf , Zeit , Produkt , Ort WHERE V_Produkt_ID = P_ID AND V_Ort_ID = O_ID AND V_Zeit_ID = Z_ID AND YEAR ( Z_Datum ) = 2011 AND P_Produktgruppe = Wein GROUP BY ROLLUP ( O_Bundesland , O_Stadt , O_Filiale ) Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 58 MDX § Multidimensional Expressions (MDX) als von Microsoft vorgeschlagene Anfragesprache für multidimensionale Daten, die auch von anderen Herstellern unterstützt wird § MDX-Anfrage nach folgendem Muster 1 2 3 SELECT < Achsen > FROM <Cube> WHERE < Slicer > zur Spezifikation eines Datenwürfels Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 59 MDX § Achsen-Klausel spezifiziert Achsen des Datenwürfels § Aufzählung z.B. {ProduktA, ProduktC} § Mengenausdruck z.B. Produkte.CHILDREN § Kreuzprodukt z.B. CROSSJOIN(Produkte, Regionen) § Cube-Klausel spezifiziert Faktentabelle als Datenquelle § Slicer-Klausel erlaubt eine Selektion der Daten gemäß Dimensionen, die nicht als Achsen verwendet werden (z.B. Measures.[Umsatz] betrachtet nur Umsätze) Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 60 MDX § Beispiel ([2], S. 149) 1 2 3 4 5 6 7 8 9 10 11 § SELECT CROSSJOIN ( { Produkt . Kategorie . Gruppe .[ Rotwein ] , Produkt . Kategorie . Gruppe .[ Wei ß wein ]} , { Ort .[ Sachsen - Anhalt ]. CHILDREN , Ort .[ Th ü ringen ]}) ON COLUMNS , { Zeit .[2011].[ Q1 ]. CHILDREN , Zeit .[2011].[ Q2 ] , Zeit .[2011].[ Q3 ] , Zeit .[2011].[ Q4 ]. CHILDREN } ON ROWS FROM Verkauf WHERE ( Measures .[ Umsatz ]) Achse 1: Kreuzprodukt aus Produktkategorien Rotwein und Weißwein mit Orten in Sachsen-Anhalt und Thüringen § Achse 2: Monate im ersten Quartal von 2011, zweites und drittes Quartal von 2011, Monate im vierten Quartal von 2011 Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 61 MDX § Beispiel ([2], S. 149) 1 2 3 4 5 6 7 8 9 10 11 SELECT CROSSJOIN ( { Produkt . Kategorie . Gruppe .[ Rotwein ] , Produkt . Kategorie . Gruppe .[ Wei ß wein ]} , { Ort .[ Sachsen - Anhalt ]. CHILDREN , Ort .[ Th ü ringen ]}) ON COLUMNS , { Zeit .[2011].[ Q1 ]. CHILDREN , Zeit .[2011].[ Q2 ] , Zeit .[2011].[ Q3 ] , Zeit .[2011].[ Q4 ]. CHILDREN } ON ROWS FROM Verkauf WHERE ( Measures .[ Umsatz ]) § Datenquelle: Faktentabelle Verkauf § Slicer: Nur Umsätze werden berücksichtigt Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 62 MDX Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX §Beispiel BeispielCUBE ([2], S. 149) Umsätze 2011 1. Quart. 2. Quart. 3. Quart. 4. Quart. Jan Feb Mär Okt Nov Dez Rotwein S.-A. Magdeb. 14 13 15 42 44 13 14 16 Halle 12 10 14 40 42 12 12 14 Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses Thür. 25 22 23 82 80 23 24 26 Weißwein S.-A. Magdeb. 12 11 11 39 37 10 9 12 Halle 9 9 10 37 35 10 10 11 Thür. 22 21 22 75 73 22 21 20 63 4.5 Implementierungsaspekte § Implementierungsansätze für Data-Warehouse-Systeme § ROLAP verwendet RDBMS zum Speichern und Anfragen § MOLAP speichert Daten als multidimensionales Array § HOLAP verwendet Kombination der beiden Ansätze § Bitmap-Indizes als zusätzliche Indexstruktur, die insbesondere für Attribute mit kleiner Anzahl möglicher Attributwerte und relativ statische Daten geeignet ist Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 64 ROLAP § Relationales OLAP (ROLAP) verwendet ein RDBMS, um Datenwürfel in Fakten- und Dimensionstabellen zu speichern § Vorteile: § RDBMS sind ausgereifte Systeme und weit verfügbar § geringer Implementierungsaufwand und Kosten § Nachteile: § Faktentabellen haben, aufgrund von Dimensionsattributen, einen vergleichsweise hohen Speicherbedarf Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 65 MOLAP § Multidimensionales OLAP (MOLAP) verwendet ein multidimensionales Arrays zur Speicherung des Datenwürfels § Klassifikationsstufen der verschiedenen Dimensionen müssen intern als ganze Zahlen (0...n) kodiert werden § Dimensionsinformation eines Fakts muss dann nicht separat gespeichert werden, sondern ist aus seiner Position im multidimensionalen Array ablesbar Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 66 MOLAP Speicherstrukturen für Data Warehouse Multidimensionale Speicherung fikationshierarchien § Datenwürfel als multidimensionales Array, welches dann mensionswerte umfassen alle Ausprägungen der Dimension: mittels in Programmiersprachen) mente (Blätter) undLinearisierung Knoten der höheren(wie Klassifikationsstufen oten der als höheren Stufen bilden weitere (Kennzahlen) Ebenen Speicherstrukturen für Data Warehouse Multidimensionale Folge von Fakten gespeichert wird Speicherung Linearisierungsreihenfolge D3 D1 Magdeburg D2 Halle Sachsen-Anhalt Erfurt Thüringen Januar Februar März 1. Quartal Quelle: Köppen, Saake und Sattler [2, S.157/159] / Saake / Köppen Data-Warehouse-Technologien Letzte Änderung: 08.11.2013 c Sattler / Saake / Köppen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 6–22 Data-Warehouse-Technologien Letzte Änderung: 08.1 67 Bitmap-Indizes § Bitmap-Indizes als zusätzliche Form von Indexstruktur (neben B+-Bäumen und hashbasierten Indizes), die insbesondere in Data Warehouses Anwendung findet § Bitmap-Indizes geeignet für Attribute mit kleiner Anzahl möglicher Attributwerte (z.B. Geschlecht, Kategorie) § Für jeden möglichen Attributwert wird ein Bitvektor gespeichert, der Tupel anzeigt (Bit auf 1 gesetzt), welche diesen Attributwert besitzen Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 68 Bitmap-Indizes § Beispiel: Weibliche Kunden in Vertriebsgebieten S und W G:w V:S V:W V:W V:W S T 0 W1X W X W0X W X W1X W X W1X W X U0V 0 QSS TTR 01 cWW01XXd cWW XXd cWW01XXd cWW XXd cWW00XXd cWW XXd cWW10XXd cWW XXd aUU00VVb 10 QSS TTR 00 cWW00XXd cWW XXd cWW00XXd cWW XXd cWW00XXd cWW XXd cWW11XXd cWW XXd aUU00VVb 11 · Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses ‚ = S T 0 W1X W X W0X W X W0X W X W1X W X U0V 0 69 Bitmap-Indizes § Bitvektoren lassen sich kompakt speichern und sehr effizient mittels Boole‘scher Operationen verknüpfen § Bitmap-Indizes haben für Attribut mit wenigen möglichen Werten einen geringeren Speicherbedarf als herkömmliche B+-Bäume § Bitmap-Indizes sind insbesondere für statische Daten geeignet; ein Einfügen oder Löschen von Tupeln erfordert eine Neuberechnung aller Bitvektoren Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 70 Zusammenfassung § Datenwürfel besteht aus Fakten und Dimensionen, die sich in Form eines Snowflake-Schemas oder eines Star-Schemas in Relationen abbilden lassen § OLAP-Operatoren (ROLL UP, DRILL DOWN, SLICE, etc.) zur Interaktion mit einem Datenwürfel § OLAP-Unterstützung in SQL und durch in Form der von Microsoft vorgeschlagenen Anfragesprache MDX Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 71 Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme – Eine Einführung, De Gruyter Oldenbourg, 2015 (Kapitel 17) [2] V. Köppen, G. Saake und K.-U. Sattler: Data Warehouse Technologien, mitp Professional, 2014 Datenbanken & Informationssysteme / Kapitel 4: Data Warehouses 72