Speichermodelle Fabian Geitner 12.01.2012 Seminar Data Warehousing und analytische Datenbanken Lehrstuhl für Datenbanken und Informationssysteme Friedrich-Schiller-Universität Jena 1 Gliederung 1. ROLAP 1.1 Snowflake-Schema 1.2 Star-Schema 1.3 Mischformen 1.4 Weitere Darstellungsarten 2. MOLAP 2.1 Datenstrukturen 2.2 Array-Speicherung 2.3 HOLAP 3. Fazit 2 Beschreibung ROLAP = Relational OLAP Ziel: Abbildung finden, um multidimensionale Konstrukte (Würfel, Dimension, Klassifikationshierarchien, …) auf relationaler Datenbank abzubilden Anforderungen: möglichst wenig anwendungsbezogene Semantik verlieren effiziente Übersetzung multidimensionaler Anfragen effiziente Abarbeitung der Anfragen durch DBMS einfache und schnelle Wartung der Tabellen 3 Beschreibung Umsetzung ohne Klassifikationshierarchien: Spalten der Relation werden als Dimension des Würfels betrachtet → Tupel in der Tabelle = eine Zelle im multidimensionalen Würfel betrachtet man nur manche Spalten als Dimension und die restlichen als Kenngrößen, entsteht eine Faktentabelle 4 Snowflake-Schema 5 Snowflake-Schema Vorteile: keine Redundanz und geringerer Speicherplatzbedarf optimale Aggregationsbildung Nachteile: komplexer Aufbau langsame Anfragen durch teure Verbundoperationen hoher Wartungsaufwand 6 Star-Schema 7 Star-Schema Vorteile: einfache Struktur einfache und flexible Darstellung von Klassifikationshierarchien effiziente Anfrageverarbeitung innerhalb der Dimensionen → spart teure Verbundoperationen Nachteile: Redundanz durch Denormalisierung → Änderungsanomalien 8 Vergleich Denormalisierung im Star-Schema spart aufwendige Verbundoperationen → schnellere Anfragebearbeitung Datenvolumen der Dimensionstabellen ist im Vergleich zur Größe der Faktentabelle gering → Redundanzen erhöhen Datenvolumen nicht dramatisch (gilt aber nicht immer!) Änderung an Klassifikationen sind seltener als das Hinzufügen von Faktendaten → Gefahr von Änderungsanomalien gering Fazit: Star-Schema oftmals geeigneter, hängt aber von der Anwendung ab! → Mischform? 9 Mischformen Galaxy-Schema Schema mit nur einer Faktentabelle ist nicht ausreichend, wenn mehrere Kenngrößen mit unterschiedlichen Dimensionen existieren → mehrere Faktentabellen, teilweise mit gleichen Dimensionstabellen verknüpft 10 Mischformen Fact Constellation Spezialfall des Galaxy-Schemas Aggregierte Daten in jeweils eigene Faktentabellen ausgelagert → bessere Performance durch kleinere Faktentabellen (schnellerer Zugriff) Anzahl der Faktentabellen noch größer als beim Galaxy-Schema → oftmals unübersichtlich 11 Weitere Darstellungsarten 12 Weitere Darstellungsarten Horizontale Darstellung Stufen des Klassifikationsschemas als Spalten modelliert Vorteil: Anfragen auf höherer Granularität ohne Verbundoperationen Nachteil: Duplikateliminerung relativ teuer (z.B. alle Produktgruppen, die zu einer Produktkategorie gehören) Hinzufügen neuer Klassifikationsstufen → Änderung des relationalen Schemas Produkt_ID Artikel … Produktgruppe Produktfamilie Kategorie … 1235 Lavamat S … Waschmaschinen Waschgerä Waschgeräte Weiß Weiße Ware … 1236 Duett … Waschmaschinen Waschgerä Waschgeräte Weiß Weiße Ware … 1237 Novotronic … Trockner Waschgerä Waschgeräte Weiß Weiße Ware … 1238 Vento 500 … Trockner Waschgerä Waschgeräte Weiß Weiße Ware … ... … ... ... ... … ... 13 Weitere Darstellungsarten Vertikale Darstellung Normalisiertes Modell Dimensionstabelle enthält zwei Attribute: Dimensions_ID und Eltern_ID Dimension_ID Eltern_ID Lavamat S Waschmaschinen Duett Waschmaschinen Novotronic Trockner Vento 500 Trockner ... ... Waschmaschinen Waschgeräte Trockner Waschgeräte ... ... Waschgeräte Weiße Ware ... ... 14 Weitere Darstellungsarten Vertikale Darstellung Vorteil: Enthält keine Informationen über Klassifikationsschema → Schemaänderungen flexibel Klassifikationsknoten unterschiedlicher Granularität über gleichen Fremdschlüssel ansprechbar → elegante Behandlung vorberechneter Aggregate innerhalb der Faktentabelle Nachteil: Mehrere teure Selbstverbunde (self-joins), wenn man z.B. alle Produktgruppen abfragt, die zu einer Produktkategorie gehören 15 Weitere Darstellungsarten Kombinierte Darstellung Klassifikationsstufen wie im horizontalen Modell als Spalten Stufen nicht mit Namen der Klassifikationsstufen benannt Zusätzliches Attribut Stufe Dimension_ID Stufe1_ID Stufe2_ID Stufe3_ID Stufe Lavamat S Waschmaschinen Waschgerä Waschgeräte Weiß Weiße Ware 0 Duett Waschmaschinen Waschgerä Waschgeräte Weiß Weiße Ware 0 Novotronic Trockner Waschgerä Waschgeräte Weiß Weiße Ware 0 Vento 500 Trockner Waschgerä Waschgeräte Weiß Weiße Ware 0 ... ... ... ... ... Waschmaschinen Waschgerä Waschgeräte Weiß Weiße Ware NULL 1 Trockner Waschgerä Waschgeräte Weiß Weiße Ware NULL 1 ... ... ... ... ... Waschgerä Waschgeräte Weiß Weiße Ware NULL NULL 2 ... ... ... ... ... 16 Semantikverluste Nicht mehr eindeutig erkennbar, ob Attribut in der Faktentabelle Kenngröße oder Dimension ist In Dimensionstabellen kann nicht zwischen beschreibenden Attribut und Attribut zum Aufbau der Klassifikationshierarchie unterschieden werden Aufbau der Dimensionen geht verloren → Semantikverluste Lösung: Erweiterung des Systemkatalogs um Metadatentabellen 17 Gliederung 1. ROLAP 1.1 Snowflake-Schema 1.2 Star-Schema 1.3 Mischformen 1.4 Weitere Darstellungsarten 2. MOLAP 2.1 Datenstrukturen 2.2 Array-Speicherung 2.3 HOLAP 3. Fazit 18 Multidimensionale Speicherung MOLAP = Multidimensional OLAP Niedrigerer Aufwand bei Datenhaltung und –auswertung Unterschiedliche Datenstrukturen für Dimension und Datenwürfel Speicherung basiert auf Arrays Umsetzung durch multidimensionale Datenbankmanagementsysteme (MDBMS) 19 Datenstrukturen Dimension Endliche geordnete Liste von Dimensionswerten (sowohl Dimensionselemente als auch Klassifikationsknoten) Werte besitzen vorher festgelegten, einfachen Datentyp (Text, Ganzzahl, Datum, …) Durch Ordnung enthält jeder Dimensionswert eine Ordnungszahl, mit der er eindeutig identifiziert werden kann |D| = m ist die Anzahl der Dimensionswerte der Dimension D 20 Datenstrukturen Würfel Kombination mehrerer Dimensionen n Dimensionswerte spannen n-dimensionalen Raum auf m Werte einer Dimension teilen den Würfel für diese Dimension in m unterschiedliche parallele Ebenen Schnittpunkt von n Ebenen des n-dimensionalen Würfels bezeichnet eine einzelne Zelle Zelle wird eindeutig über einen n-Tupel von Dimensionswerten bestimmt Würfel W wird beschrieben durch: W =(( D 1 , D 2 , ... , D n ) ,( M 1 :Typ1, ... , M m : Typm )) Beispiel: Verkauf = ((Produkt, Geografie, Zeit), (Verkäufe: integer, Umsatz: long)) 21 Array-Speicherung Grundlegende Speicherstruktur in MDBMS Zellen des Würfel in n-dimensionalen Array sequentiell gespeichert → Überführung in eindimensionale Liste (Linearisierung) Indizes des Array ( x1, x 2, ... , xn ) = Koordinaten der Würfelzellen Index einer Zelle z lässt sich ermitteln durch Index( z ) = x1 + ( x 2 − 1) ⋅ | D1 | + ( x3 − 1) ⋅ | D1 | ⋅ | D 2 | + ... + ( xn − 1) ⋅ | D1 | ⋅ ... ⋅ | Dn − 1 | n i −1 = 1 + ∑ ( xi − 1) ⋅ ∏ | Di | i =1 j =1 22 Array-Speicherung Beispiel: 2) ( ) ) (1 en 4) 5) 3 ( ( n ( l d r e te se m ke d n c e i o ä H H Rö Kle M 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 März(3) 16 17 18 19 20 April(4) Januar(1) Februar(2) Index( z ) = x1 + ( x 2 − 1)⋅ | D1 | Index( Hemden, März ) = 2 + 2 ⋅ 5 = 12 23 Array-Speicherung Probleme: Mögliche Anfragepfade müssen vorher bedacht werden, da Linearisierungsreihenfolge entscheidenden Einfluss auf Performance hat Flaschenhals zwischen schnellem Hauptspeicher und langsameren Sekundärspeicher → Caching und Swapping empfehlenswert Alle Zellen des Würfels müssen im Array vorhanden sein, also auch leere → bei dünn besetzten Würfeln müssen mehr Blöcke bzw. Seiten übertragen werden als bei dicht besetzten (Lösung: leere Blöcke nicht physisch speichern und für Indexberechnung Korrekturverfahren verwenden) 24 Hybrides OLAP Zugriff über mulidimensionales Anfragewerkzeug, welches entscheidet ob Daten in multidimensionaler Welt vorliegen nur in relationaler Datenbank vorhanden sind in keiner der beiden Welten vorhanden sind und nur über Berechnung aus einer der beiden gewonnen werden können Transparent für Anwender Aufteilung muss anwendungsspezifisch getroffen werden Grundsätzlich: Detaildaten relational gespeichert Aggregierte Daten multidimensional gespeichert 25 Hybrides OLAP Vorteile: Stärken von ROLAP (Skalierbarkeit, offener Standard) mit Stärken von MOLAP (analytische Mächtigkeit, intuitive Bedienung, direkte OLAP-Umsetzung) kombiniert Nachteile: Umfassende Kenntnisse von beiden Welten nötig Höherer Implementierungsaufwand 26 Gliederung 1. ROLAP 1.1 Snowflake-Schema 1.2 Star-Schema 1.3 Mischformen 1.4 Weitere Darstellungsarten 2. MOLAP 2.1 Datenstrukturen 2.2 Array-Speicherung 2.3 HOLAP 3. Fazit 27 Fazit Technologie ROLAP Relational MOLAP Multidimensional HOLAP Gemischt Datenmenge Groß Klein bis mittel Groß Speicherbedarf Groß Mittel Mittel Antwortzeit Mittel Schnell Mittel Skalierbarkeit Füllgrad Hoch Niedrig Niedrig Hoch Hoch - StandardAbfragesprache Wartungsaufwand SQL - - Mittel Hoch Hoch ROLAP geeignet für dünnbesetzte, große Würfel MOLAP geeignet für dichtbesetzte, kleine Würfel 28