2 Datenbankentwurf: Schritte Informationssysteme: Neuere Konzepte – Teil II Entwurfsschritte z Anforderungsanalyse z konzeptioneller DB-Entwurf Î z Î z logisches Schema (in konkretem Datenmodell) physischer DB-Entwurf Î Kapitel 2: Data-Warehouse-Entwurf konzeptionelles Schema (unabhängig vom Zieldatendatenmodell) logischer DB-Entwurf internes/physisches Schema (in konkretem Datenbanksystem) iterativer Entwurfsprozess konzeptueller und logischer DB-Entwurf nicht immer leicht zu trennen Folien teilweise übernommen von Matthias Gimbel Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 3 Datenbankentwurf: Vergleich Relationaler DB-Entwurf Informationssysteme: Neuere Konzepte – Teil II Multidimensionaler DB-Entwurf konzeptuelles Schema E/R-Modellierung, UML ME/R, mUML, … logisches Schema Relationen mit Attributen Datenwürfel mit Summenattributen: Fakten und Kennzahlen internes/physisches Schema Speicherorganisation: Indexstrukturen, Partitionierung, … Dimensionshierarchien mit Kategorienattributen SS 2005 Relationale Speicherorganisation (ROLAP) Multidimensionale Speicherorganisation (MOLAP) Kapitel 2: Data-Warehouse-Entwurf - Konzeptueller Datenbankentwurf - Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 5 6 Datenmodell für Data Warehouses Datenmodell für Data Warehouses Woran ist ein Analyst interessiert? Datenmodell muss zwei Arten von an Kennzahlen z Umsatz, Gewinn, Menge, Kilometer gruppiert nach Dimensionen z Produkt: Produktkategorie, Produktklasse, Produktgruppe, Produktabteilung z Region: Filiale, Gemeinde, Landkreis, Bundesland, Staat z Zeit: Tag, Woche, Monat, Quartal, Jahr z Auftraggeber/Kunde: Alter, Geschlecht, Beruf, Einkommen, … z … z ... und allen sinnvollen Kombinationen SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II Informationen unterscheiden: Quantifizierende Informationen (Kennzahlen) z Qualifizierende Informationen: (Dimensionen) z SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 1 7 8 Quantifizierende Informationen Konzeptueller DB-Entwurf Quantifizierende Informationen sind oft numerisch und bestehen aus: Fakten („Basiskennzahlen“) z z. B.: Einnahmen aus einer Dienstleistung Kennzahlen („abgeleitete Kennzahlen“) z Berechnungsvorschrift über existierende Fakten Erweiterung bestehender Entwurfstechniken an Anforderungen durch Multidimensionalität ME/R multidimensionales E/R z mUML multidimensionales UML z Zählung: count() Summierung: sum() Mittelwertbildung: avg() Minimum: min() Maximum: max() Varianz Standardabweichung … Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 9 10 ME/R-Modellierung ME/R-Modellierung: Beispiel Erweiterung des E/R-Modells um multidimensionale Konstrukte: z Fakt Fahrzeug Jahr Spedition Quartal Fakt Kennzahlen Landkreis z Dimensionsebene Ebene Bundesland ProduktKategorie Klassifikationsbeziehung z Faktbeziehung z ProduktKlasse ProduktGruppe ProduktAbteilung Staat Aus E/R-Notation übernommen Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Monat Transport Einnahmen Ausgaben 11 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 12 ME/R-Modellierung: Beispiel Fahrzeug ME/R-Modellierung: Beispiel Jahr Fahrzeug Quartal Spedition Monat Landkreis Fakten und Kennzahlen Jahr Dimensionen Spedition Landkreis Transport Quartal Einnahmen Ausgaben Bundesland Bundesland ProduktKategorie ProduktKlasse ProduktGruppe ProduktAbteilung ProduktKategorie Staat SS 2005 Monat Transport Einnahmen Ausgaben ProduktKlasse ProduktGruppe ProduktAbteilung Staat Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 2 13 14 ME/R-Modellierung: Beispiel mUML-Modellierung Fahrzeug Erweiterung des UML-Klassendiagramms um Jahr Dimensionen bestehen aus Ebenen Spedition Landkreis Ebenen bilden eine Klassifikationshierarchie Quartal Monat Transport nicht erlaubt! multidimensionale Konstrukte durch Steoreotypen: ProduktKategorie Fakt z Dimensionsebene z Klassifikationsbeziehung Faktbeziehung «Dimensional-Class» Dimensionsebene Einnahmen Ausgaben Bundesland Staat «Fact-Class» Fakt z ProduktKlasse ProduktGruppe z ProduktAbteilung «RollUp» «Dimension» Dimensionen sind orthogonal (voneinander unabhängig) Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 15 16 mUML-Modellierung: Beispiel Qualifizierende Informationen Dimensionen Dimensionen sind orthogonal (voneinander unabhängig) z Dimensionen bestehen aus Dimensionsebenen z Dimensionsebenen bilden eine Klassifikationshierarchie z Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 17 18 Dimension: Ebenen topD Bundesländer parallele Klassifikationshierarchien Dimension: Zeit kommt in fast jeder Anfrage vor: hat linearen Charakter z topD z z DE1 NUTS-I topD Baden-Württemberg Jahr z Regierungsbez. NUTS-II Karlsruhe Landkreise NUTS-III Wahlkreis #xyz Gemeinde verschiedene Klassifikationspfade denkbar Woche 2004-KW29 DE122 Karlsruhe, Stadtkreis Monat Mai 2004 Gemeinden immer montags immer im 4. Quartal Quartal 2004-II Wahlkreis 1., 2., 3., … Januar, Februar, März, … hat Wiederholungscharakter z 2004 DE12 Vergleich Quartal mit Vorjahresquartal Î muss von jedem Analysesystem unterstützt werden Karlsruhe Tag 11. Mai 2004 SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 3 19 20 Funktionale Abhängigkeiten Dimension: Kategorieattribute Funktionale Abhängigkeit Funktionale Abhängigkeit topD = functional dependency (FD) Zwischen zwei Attributen A und B existiert eine funktionale Abhängigkeit (AÆB) genau dann, wenn für jedes a aus A genau ein b aus B existiert. z Für Attribute A, B, C: z MinisterpräsidentIn Bevölkerungsdichte ca3 Bundesland da3,2 da3,3 da3,4 Arbeitslosenzahl Arbeitslosenquote Regierungsbezirke Man schreibt ABÆC, wenn für jedes Paar (a,b) mit a aus A und b aus B genau ein c aus C existiert. Man schreibt AÆBC, wenn AÆB und AÆC gilt. ca2 da2,1 Fläche Gemeinde pa da1,1 da1,2 Einwohner Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 da3,1 Kurort pa Primärattribut cai Klassifikationsattribut (Ebene i) dai,j dimensionales Attribut (Ebene i) top generisches Top-Element da1,3 # Kneipen Heiko Schepperle - Informationssysteme: Neuere KonzepteD Teil II SS 2005 22 Relationale Abbildung Informationssysteme: Neuere Konzepte – Teil II Wie lassen sich Kennzahlen und Dimensionen gut in einem relationalen Schema abbilden? möglichst gut verständlich auch relationales Schema sollte Zusammenhänge (z. B. Fakt- und Klassifikationsbeziehungen) abbilden z möglichst performante Anfragebearbeitung z möglichst redundanzfrei z z Kapitel 2: Data-Warehouse-Entwurf - Logischer Datenbankentwurf - SS 2005 23 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 24 Star-Schema Dimensionen sternförmig um Faktentabelle Faktentabelle Dimensionstabelle1 Dimensionstabelle2 PK PK pa_dim1_id Faktentabelle = fact table pa_dim2_id enthält Analysegegenstand, eigentliche ca2_attr dim2*_attr ca3_attr dim3*_attr ca4_attr ca2_attr dim2*_attr ca3_attr dim3*_attr ca4_attr Geschäftsdaten Faktentabelle PK PK PK PK PK fakt1 fakt2 fakt3 Dimensionstabelle5 PK pa_dim5_id Tupel besteht aus z Zeigern auf Dimensionstabellen (Fremdschlüssel), die den Kontext des Tupels eindeutig bestimmen z den eigentlichen Kennzahlen pa_dim1_id pa_dim2_id pa_dim3_id pa_dim4_id pa_dim5_id ca2_attr dim2*_attr ca3_attr dim3*_attr ca4_attr Dimensionstabelle3 PK pa_dim3_id ca2_attr dim2*_attr ca3_attr dim3*_attr ca4_attr Schlüssel der Faktentabelle =Gesamtheit der Dimensionszeiger Dimensionstabelle4 PK 1 Tabelle pro Dimension SS 2005 pa_dim4_id ca2_attr dim2*_attr ca3_attr dim3*_attr ca4_attr Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 1 Tabelle für alle Fakten Faktentabelle kann viele Millionen Tupel enthalten SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 4 25 26 Dimensionstabelle Star-Schema: Beispiel Dimensionstabelle = dimensional table Fahrzeug pro Dimension existiert eine Dimensionstabelle PK PK Fahrzeug-Modell Spedition-ID Speditionsname Landkreis-ID Landkreis-Beschreibung Landkreis-Einwohner Regierungsbezirk-ID Regierungsbezirk-Beschreibung Regierungsbezirk-Fläche Bundesland-ID Bundesland-Beschreibung Bundesland-Arbeitslosenquote Staat-ID Staat-Beschreibung Dimensionstabelle enthält z einen eindeutigen Schlüssel (Primärattribut), z.B. Produktnummer, Datums-ID, ... z weitere (beschreibende) Attribute der Dimension (Klassifikations- und dimensionale Attribute) Dimensionstabelle deutlich kleiner als Faktentabelle Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Zeit Fahrzeug-ID Monats-ID Produkt-Kategorie-ID Fahrzeug-ID Produkt Einnahmen Ausgaben PK Produkt-Kategorie-ID Produkt-Kategorie Produkt-Klasse-ID Produkt-Klasse Produkt-Gruppe-ID Produkt-Gruppe Produkt-Abteilung-ID Produkt-Abteilung Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 27 Monats-Name Quartals-ID Quartals-Name Jahr-ID Jahr-Name Faktentabelle PK PK PK Monats-ID 28 Star-Schema Snowflake-Schema Eigenschaften sehr übersichtlich z einfach erweiterbar z recht performante Anfragebearbeitung z Satellitentabelle1_3 Satellitentabelle1_2 Satellitentabelle1 Satellitentabelle2 Satellitentabelle2_2 Satellitentabelle2_3 PK ca3_dim1_id PK PK pa_dim1_id PK pa_dim2_id pa_dim2_id PK PK dim31_attr dim32_attr dim33_attr dim34_attr dim35_attr FK FK ca2_dim1_id dim11_attr FK ca1_attr ca2_dim2_id dim1*_attr dim11_attr dim12_attr dim13_attr dim14_attr FK ca2_dim1_id ca3_dim1_id dim21_attr dim22_attr Dimensionen schneeflockenförmig um Faktentabelle Probleme Satellitentabelle3 PK Satellitentabelle3_2 pa_dim3_id PK Satellitentabelle3_3 pa_dim3_id FK ca2_dim3_id PK pa_dim3_id dim1*_attr FK ca2_dim3_id dim1*_attr FK ca2_dim3_id dim1*_attr Satellitentabelle4 PK pa_dim4_id dim11_attr dim12_attr dim13_attr dim14_attr dim15_attr 1 Tabelle für alle Fakten Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 29 pa_dim5_id FK ca2_dim_id dim11_attr dim21_attr dim12_attr dim22_attr dim13_attr 1 Tabelle pro Dimensionsebene Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 dim31_attr dim32_attr Dimensionen normalisiert pa_dim1_id pa_dim2_id pa_dim3_id pa_dim4_id pa_dim5_id fakt1 fakt2 fakt3 Satellitentabelle5 PK ca2_dim2_id Faktentabelle PK PK PK PK PK Satellitentabelle5_2 PK pa_dim5_id denormalisierte Dimensionstabellen eventuell immer noch groß und redundant z Dimensionsklassifikationen nicht explizit modelliert z ca1_dim2_id ca3_dim1_id dim21_attr dim22_attr 30 Snowflake-Dimension: Beispiel Fahrzeug Spedition PK Fahrzeug-ID PK Spedition-ID FK1 Fahrzeug-Modell Spedition-ID FK1 Speditionsname Landkreis-ID Regierungsbezirk Landkreis PK Landkreis-ID PK Regierungsbezirk-ID Landkreis-Beschreibung Landkreis-Einwohner Regierungsbezirk-ID FK1 Regierungsbezirk-Fläche Bundesland-ID FK1 Snowflake-Schema Warum muss jetzt alles ID heißen? z Eindeutigkeit der Referenzkette in der Klassifkationshierarchie: Bundesland PK Bundesland-ID FK1 Bundesland-Arbeitslosenquote Staat-ID Staat PK Staat-ID Staat-Beschreibung Eine Monats-ID aus der Faktentabelle gehört zu einem bestimmten Quartal in einem bestimmten Jahr „2. Quartal“ reicht dafür nicht, weil das Jahr nicht mehr herausgefunden werden kann Îgegebenfalls sind zu den IDs in den Satellitentabellen noch Beschreibungen zu ergänzen (Speditionsname, LandkreisBeschreibung, …) SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 5 31 32 Snowflake-Schema Star- vs. Snowflake-Schema Probleme Welche Variante ist besser? weniger übersichtlich z weniger performante Anfragebearbeitung Î Welches Schema geeignet ist, hängt vom Anwendungsprofil ab! Î Dennoch wird sehr häufig ein Star-Schema oder ein leicht modifiziertes Star-Schema verwendet. z Eigenschaften z z normalisierte Dimensionstabellen Dimensionsklassifikationen explizit modelliert Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 34 Speicherorganisation Informationssysteme: Neuere Konzepte – Teil II ROLAP relationale Speicherorganisation MOLAP multidimensionale Speicherorganisation HOLAP hybride Speicherorganisation Kapitel 2: Data-Warehouse-Entwurf - Physischer Datenbankentwurf - SS 2005 35 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 36 ROLAP MOLAP ROLAP = Relational OLAP MOLAP = Multidimensional OLAP relationale Speicherung des multidimensionale Speicherung des multidimensionalen Datenmodells Speicherung der aggregierten Daten in Relationen geringere Performanz „unbegrenzt“ skalierbar SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II multidimensionalen Datenmodells Speicherung der aggregierten Daten in speziellen multidimensionalen Datenstrukturen hohe Performanz begrenzte Skalierbarkeit SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 6 37 38 Multidimensionale Speicherung Multidimensionale Speicherung Würfel („Hypercube“) Array-Speicherung multidimensionaler Daten Dimensionen: ÎLinearisierung z Produkt, Ort, Zeit Dimensionen D1, D2, D3, …, Dm Punkt (x1,x2,x3,…,xn) Tierfutter Öle und Fette Molkereiprodukte Obst und Gemüse Fleisch Fisch Getränke Produkt Ort 2003-Oktober 2003-November 2003-Dezember 2004-Januar 2004-Februar 2004-März 2004-April Zeit 39 i −1 i =1 j =1 Beispiel: n=3, |D1|=3, |D2|=4, |D3|=2; x=(2,3,1) z = 1 + ( x1 − 1) + ( x 2 − 1) D1 + ( x3 − 1) D1 D2 z = 1 + ( 2 − 1) + (3 − 1) * 3 + (1 − 1) * 3 * 4 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 n z = 1 + ∑ (( xi − 1)∏ D j ) DE1-BW DE117-Heilbronn-Stadt DE122-Karlsruhe-Stadt DE123-Karlsruhe-Land DE124-Rastatt Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 40 Multidimensionale Speicherung ROLAP vs. MOLAP Probleme ROLAP Reihenfolge der Dimensionen spielt eine Rolle Nachbarschaftsbeziehung geht verloren z bei dünn besetztem Würfel hoher Speicherbedarf z Speicherung z dicht besetzt (dense) bei hohem Füllgrad dünn besetzt (sparse) bei niedrigem Füllgrad Füllgrad = Anzahl der nicht leeren Zellen / Anzahl aller Zellen Eine Zelle mit dem Wert „0“ ist nicht leer! Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 41 MOLAP relationales OLAP multidimensionales OLAP relationale Speicherstruktur (Tabellen, Tupel) spezielle multidimensionale Speicherstruktur (Arrays) Speicherzugriff über Schlüssel, über Indizes, … über Berechnungsvorschrift Performanz mittel hoch Skalierbarkeit „unbegrenzt“ begrenzt SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 42 HOLAP Zwei-Ebenen-Datenstruktur Hybrides OLAP Unterscheidung in dünn- (sparse) und dichtbesetzte (dense) Kombination von ROLAP und MOLAP speichere Relation für dünn besetzte Dimensionen mit Zeiger Problem MOLAP gut für dicht besetzte Würfel (leere Zellen belegen unnötig Speicher) z ROLAP gut für dünn besetzte Würfel (jedes Tupel speichert Schlüsselattribute) Î Zwei-Ebenen-Datenstruktur z SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II Dimensionen auf einen Block Block ist Würfel aus dicht besetzten Dimensionen falls alle Dimensionen dünn besetzt sind und relational gespeichert werden: Î Block besteht aus einer Zelle Î äquivalent zu ROLAP falls alle Dimensionen dicht besetzt sind und in einem Block gespeichert werden: Î Relation ist leer bzw. enthält Zeiger auf genau einen Block Î äquivalent zu MOLAP SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 7 43 Weitere Elemente Informationssysteme: Neuere Konzepte – Teil II Es existieren weitere Elemente des physische Datenbankentwurfs Indexstrukturen Materialisierung z Partitionierung z z Kapitel 2: Data-Warehouse-Entwurf - Indexstrukturen - Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 45 46 Indexstrukturen Indexstrukturen Wie werden die gewünschten Tupel einer Aufgabe einer Indexstruktur Tabelle gefunden? z lineare Suche? Î linearer Aufwand z Binärsuche? Î logarithmischer Such-Aufwand, aber teure Sortierung nötig z geht‘s besser? Î durch Einsatz von Indexstrukturen(=Indizes) z EMQ=Exact Match Query (assoziativer/wertbasierter Zugriff) 47 mehrere Tupel über Wertebereichen RQ = Range Query (Assoziativer Zugriff und sequentielles Lesen) Beispiel: WHERE Jahrgang = 1998 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 effizienter, wertbasierter Zugriff auf einzelne Tupel Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 48 Indexstrukturen Varianten … Ziel: z Minimierung des zu übertragenden Datenvolumens (Seiten) Lineare Strukturen z Minimierung der wahlfreien Zugriffe SS 2005 Festplattenzugriff hat den größten Einfluss auf Antwortzeit auf Festplatte erfolgt Zugriff in Blöcken Indexstrukturen arbeiten auf Seiten (4kB – 8kB) (hier kann 1:1-Zuordnung zu Blöcken angenommen werden) wahlfreier Zugriff Zugriff auf Blöcke unabhängig von der Reihenfolge der Speicherung sequentieller Zugriff Zugriff auf Blöcke in der Reihenfolge der Speicherung Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II z Listen z einfach-verkettet doppelt-verkettet Arrays Hashtabellen Bäume z z SS 2005 B-Baum B*-Baum Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 8 49 50 … im Vergleich Listen Array Hashtable Baum Einfügen Löschen ++ -+ + assoziativer Zugriff -+ ++ + Binärbaum Indexzugriff ++ - 520 sequentielles Lesen + ++ -+(+) 740 356 231 409 622 834 Einfügen/Löschen sowie sequentielles Lesen 123 benötigt meist zusätzlich noch assoziativen Zugriff zum Auffinden der korrekten Position Î bei Listen problematisch Î meist Bäume als Zugriffsstruktur 51 386 469 587 701 822 910 65 143 241 278 361 399 420 501534 597679 712 780 831 878 923 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 277 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 52 Binärbaum: Eigenschaften B-Baum 50 50 White Probleme: z Sehr viele Navigationen bei Direktzugriff z Aufteilung auf Seiten unklar z Balancierung? 30 30 Brown • 40 40 Black Idee: Mehrwegbaum: z Anzahl der Elemente pro Knoten > 1 z Knotenelemente in Sortierreihenfolge (wegen sequentieller Verarbeitung) z garantierter Füllgrad (Splitten und Vereinigen von Knoten) 10 10 Yellow 53 707070 • 80 80 Blue • • 20 20 Red Red • • 90 90 Yellow 60 60 Green • • Schlüssel Datensatz Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 • SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 54 B-Baum B-Baum: Einfügen Jeder innere Knoten hat n+1 Söhne mit k ≤ n < 2k, Suche nach dem Schlüssel des neuen Datensatzes Ausnahme: Wurzel (1 ≤ n < 2k) Jeder Knoten ist mit n sortiert angeordneten Schlüsseln belegt Seien S1,...,Sn die Schlüssel, so gilt: z z z Z0 weist auf den Unterbaum mit Schlüsseln < S1 Zj (für j=1...n-1) weisen auf Unterbäume, deren Schlüssel echt zwischen Sj und Sj+1 liegen. Zn weist auf den Unterbaum, dessen Schlüssel größer als Sn sind. Jeder Weg von der Wurzel zu einem Blatt hat die (notfalls bis zum Blatt). Falls gefunden: Einfügen des neuen Datensatzes in den entsprechenden Knoten des B-Baums (bei nicht eindeutigem Schlüssel). Falls nicht gefunden: Einfügen des neuen Datensatzes in das bei der Suche erreichte Blatt. Bei Überlauf eines Knotens wird der Knoten gespalten, d.h. die Einträge des Knotens werden auf zwei Knoten verteilt. gleiche Länge (= Höhe des Baumes) SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 9 55 56 B-Baum: Überlauf/Unterlauf B-Baum: Eigenschaften Der Datensatz, der in der Mitte des übergelaufenen Probleme z Höhe = Anzahl Zugriffe = logs(n) z Verzweigungsgrad s = Knotengröße / (Schlüssel- + Datensatzgröße) z s und damit Baumhöhe abhängig von Datensatzlänge z immer noch Ineffizienz beim sequentiellen Lesen Knotens liegt, wird zum Vaterknoten propagiert. Propagation zum Vaterknoten S1 < S2< … < Sk < Sk+1 < S k+2 < … < S2k+1 Alter Knoten Neuer Knoten Lösung z “hohler Baum”, Daten nur an den Blattknoten z Verkettung der Blattknoten Bei Unterlauf (n<k) werden zuerst Elemente aus Nachbarknoten verschoben Falls dort ebenfalls Unterlauf Î Knoten wird mit Nachbarknoten verschmolzen Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 57 58 B*-Baum Indexarten Primärindex Wegweiser 25 45 65 • 10 10 Yellow 20 20 Red • • 80 80 Blue 90 90 Yellow • • 30 30 „brown“ 40 40 „black“ • • 70 70 „red“ • • 50 50 „white“ 60 60 „green“ • Schlüssel Index über eindeutiges Attribut (ID=Schlüsselattribut) der Datenkollektion Sekundärindex Index über nicht eindeutiges Attribut (ID≠Schlüsselattribut) der Datenkollektion Clusterindex Datenkollektion ist physisch in der Reihenfolge der Indexwerte angeordnet Î geclusterte Primärindizes Î geclusterte Sekundärindizes 75 Datensatz doppeltverkette Liste Regeln zum Über-/Unterlauf wie beim B-Baum Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 59 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 60 Was es sonst noch gibt Indizes im Data Warehouse Mehrdimensionale Datenstrukturen Welche Indexstrukturen unterstützen Data- z Anwendungsfelder: z Beispiele: SS 2005 Geographische Datenbanken (GIS) CAD-Datenbanken (EDM/PDM) Data Warehouses Warehouse-Anfragen besonders gut? Problem z z UB-Baum: space filling curve + B-Baum Bitmap-Index R*-Baum: Bounding Rectangle in inneren Knoten k-d-B-Baum: achsenparallele Splits Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II Filterung auf der Faktentabelle Anforderung SS 2005 Effiziente Verknüpfung von Einschränkungen der Faktentabelle auf disjunkten Attributmengen Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 10 61 62 Indizes im Data Warehouse Multidimensionale Indizes Variante 1 Immer Kompromiss zwischen 1 B-Baum auf einer Dimension z Restliche Einschränkungen werden zu normalen Selektionsbedingungen Î Viel zu viele Tupel gelesen! Variante 2 z 1 B-Baum für jede Dimension z für jede Dimension IDs der selektierten Tupel bestimmen z Schnittmenge bilden z hoher Wartungsaufwand (pro Insert bis zu 50 Indizes anzupassen) Variante 3 z Multidimensionale Indizes z Füllgrad Überlappungsfreiheit z Balancierung des Baumes z Clusterung benachbarter Daten z z Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 63 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 64 Bitmap-Index Bitmap-Index Bitmap-Index besteht aus einer Menge von Bitvektoren Struktur Nr. 1 2 3 4 5 1 Bitmap-Index pro Dimension z 1 Bitvektor pro Attributwert z Länge des Bitvektors = #Tupel der Faktentabelle z Eintrag 1 in Position i eines Bitvektors Î Tupel i hat entsprechenden Wert z Eintrag 0 in Position i eines Bitvektors Î Tupel i hat nicht entsprechenden Wert Verwendung z zuerst innerhalb der Dimension ODER-Verknüpfung aller passenden Bitvektoren z dann UND-Verknüpfung der resultierenden Bitvektoren verschiedener Dimensionen z alle Lebensmittel-Transporte (Produkt-ID=3) z 65 Produkt-ID 1 2 3 4 5 6 7 1 0 0 0 0 1 0 0 2 0 0 0 0 0 0 1 3 0 0 1 0 0 0 0 4 0 0 0 1 0 0 0 5… 0 0 1 0 0 0 0 Monats-ID 2004-Jan 2004-Feb 2004-Mar 2004-Apr 1 1 0 0 0 2 1 0 0 0 3 0 1 0 0 4 0 0 1 0 5… 0 0 0 1 Fahrzeug-ID 1 2 3 1 1 0 0 2 0 0 1 3 0 1 0 4 1 0 0 5… 0 0 1 00101 (Tupel Nr. 3 und Nr. 5) alle Lebensmittel-Transporte (Produkt-ID=3) von Fahrzeug 3 z 00101 UND 01001 = 00001 (nur Tupel Nr. 5) alle Kleidungs- (Produkt-ID=5) und SchuhTransporte (Produkt-ID=7) im Januar 2004 z (10000 ODER 01000) UND 11000 = 11000 UND 11000 = 11000 (Tupel Nr. 1 und Nr. 2) Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Monats-ID Produkt-ID Fahrzeug-ID Einnahmen Ausgaben 2004-Jan 5 1 1235 879 2004-Jan 7 3 5321 6345 2004-Feb 3 2 543 367 2004-Mar 4 1 235 198 2004-Apr 3 3 5432 5399 SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 66 Bitmap-Index UB-Baum Problem Linearisierung des mehrdimensionalen z Bitmap-Index braucht Platz #Anzahl benötigter Bytes = Kardinalität (Anzahl der verschiedenen Werte) der Domäne * Anzahl Tupel der Faktentabelle / 8 Unterstützung für Range Queries nicht optimal Verbesserungsansätze Bereichsbasierte Kodierung (range-based encoding) z Komprimierung von Bitvektoren z SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II Raums durch „space filling curve“, anschließend Verwendung eines eindimensionalen Index (B*-Baum) Nachbarschaftsbeziehung bleibt besser erhalten als einfache Linearisierung (wie bei MOLAP beschrieben) Beispiel Z-Kurve SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 11 67 UB-Baum Informationssysteme: Neuere Konzepte – Teil II Reihenfolge der Dimensionen: erst →, dann ↓ Z-Wert: Position in der Z-Kurve Z-Region: Anfangs- und Endpunkt als Paar von Z-Werten Kapitel 2: Data-Warehouse-Entwurf - Materialisierung - Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 69 70 Materialisierung Materialisierung Faktentabelle durchsuchen und Berechnung von Kostenmodell z Speicherplatzkosten z Update-Kosten Aggregationen kostet Zeit Idee z häufig gebrauchte aggregierte Zwischenergebnisse materialisieren (physisch ablegen, speichern) Systematisches Vorgehen z Dimensionshierarchien aufstellen z Häufigkeit der Zugriffe auf die einzelnen Aggregationsstufen protokollieren z Modell aufstellen, welche Ergebnisse von welchem Zwischenergebnis profitieren z kostenbasierte Entscheidung treffen (Speicherplatz ↔ Lesezugriff ↔ Schreibzugriff) SS 2005 also Kosten für Anpassung materialisierter Zwischenergebnisse bei Datenänderung wobei Update auch von Materialisierung profitieren kann Nichttriviales Problem: Query Rewriting z also Umschreiben von Anfragen, so dass bestehende Materialisierungen genutzt werden können Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 71 72 Materialisierung: Beispiel Monats-ID Produkt-ID Fahrzeug-ID Einnahmen Ausgaben 2004-Jan 5 1 1235 879 2004-Jan 7 3 5321 6345 2004-Feb 3 2 543 367 2004-Mar 4 1 235 198 2004-Apr 3 3 5432 5399 2004-Jan 2 2 745 4536 2004-Feb 2 3 346 636 2004-Jan 4 1 6246 3677 2004-Apr 1 2 326 436 2004-Apr 2 2 6436 7858 2004-May 4 3 8658 6356 2004-Jun 5 1 568 456 2004-May 4 3 5868 3167 2004-Jun 5 2 8762 6788 Quartals-ID 2004-I 2004-I 2004-I 2004-I 2004-I 2004-II 2004-II 2004-II 2004-II 2004-II Materialisierung: Beispiel Produkt-ID Einnahmen 2 1091 3 543 4 6481 5 1235 7 5321 1 326 2 6436 3 5432 4 14526 5 9330 Aggregationsdimensionen: z PID MID PID, FID Lebensmittel-Transporten (Produkt-ID=3) pro Quartal mit und ohne Einsatz der aggregierten Tabelle aus? Star- oder Snowflake-Schema? Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II --- PID, MID Wie sieht eine Anfrage nach den Einnahmen bei SS 2005 Produkt (PID), Fahrzeug (FID), Monat (MID) PID, FID, MID SS 2005 FID FID, MID Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 12 73 Materialisierung Informationssysteme: Neuere Konzepte – Teil II Erweiterung um mehrstufige Aggregationshierarchien (wie z.B. Monat Æ Quartal im Beispiel) und gegebenenfalls Dimensionseinschränkungen führen zu explosionsartigem Wachstum der Möglichkeiten! Kapitel 2: Data-Warehouse-Entwurf - Data-Warehouse-Werkzeuge - Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 75 76 Data-Warehouse-Werkzeuge Vergleich DW-Werkzeuge ETL-Werkzeuge z Werkzeuge zur Unterstützung des Aufbaus und der Wartung eines Data Warehouse z Beispiele: DataJunction DataStage (Ascential) … OLAP-Werkzeuge z Werkzeuge zur multidimensionalen Datenanalyse z Beispiele: Hyperion Essbase BusinessObjects Cognos MicroStrategy … SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 77 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 78 Literatur Anfragebearbeitung: SQL A. Bauer, H. Günzel: Data Warehouse Beispiel SQL Systeme. Architektur, Entwicklung, Anwendung. dpunkt.verlag, 2001. W. Lehner: Datenbanktechnologie für DataWarehouse-Systeme. dpunkt.verlag, 2003. SELECT <Felder> FROM <Tabellen> WHERE <Einschränkungen> GROUP BY <Gruppierungsfelder> HAVING <Gruppeneinschränkungen> Oder UPDATE <Tabelle> SET <Feld> = <Wert> WHERE <Einschränkungen> SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 13 79 Anfragebearbeitung: SQL Zum Aufwärmen: SELECT Name, Vname, AVG(Note) AS Schnitt z FROM Klausuren, Schüler z WHERE Jahrgang = 1998 z AND Schüler.ID = Klausuren.SID z GROUPBY Name, Vname z HAVING Schnitt > 4.0 z Was macht diese Anfrage? SS 2005 Heiko Schepperle - Informationssysteme: Neuere Konzepte Teil II 14