Inhaltsverzeichnis
Vorlesung 1
Motivation
Beispielszenarien
- Supermarkt: Datenverwaltung über Mitarbeiter, Lieferanten, Ware usw.
- Krankenhaus: Datenverwaltung über Patienten, Ärzte, Medikamente usw.
- Meteorologie: Datenverwaltung über Orte, Temperaturen, Windstärke usw.
Typen von Informationssystemen
- Operative Systeme (OLTP)
- Entscheidungsunterstützende Systeme (EUS)
- DSS (Decision Support Systems)
- MIS (Management Information Systems)
- EIS (Executive Information Systems)
IT-Landschaft ohne DWH
- Probleme:
- Schlechte Vergleichbarkeit
- Schlechte Reproduzierbarkeit
- Mangelnde Flexibilität
- Mangelnde Einbeziehung externer Daten
Spinnennetzarchitektur
- Entstehung durch “Auswertungen von Auswertungen”
Referenzarchitektur
Datenquellen
- Interne Quellen: ERP- bzw. CRM-Systeme
- Externe Quellen: Web, demographische Daten, Social Media
- Heterogenität: Relationale Datenbanken, semistrukturierte Daten, unstrukturierte Informationen
Staging Area
- Back End-Werkzeuge
- Integrationsprozess (ETL-Prozess)
- Monitoring, Archiv, Metadaten-Repository, ODS
Integrationsprozess
- Extrahieren: Datenübertragung in den Operational Data Store
- Transformieren: Datenmigration (Datentypen, Kodierungen, Maßeinheiten)
- Laden: Übertragung ins DWH (Online- vs. Offline-Ladevorgänge)
- Bereinigung: Data Cleansing (Dubletten, Ausreißer, veraltete Daten)
DWH und Archiv
- Data Warehouse (DWH): Integrierte, analyse-orientierte, historisierte Datenbank
- Archiv: Speicherung nicht mehr benötigter Daten mit möglicher Rückübertragung
Front End-Werkzeuge
- Berichtswerkzeuge: Vordefinierte Abfragen in tabellarischer/graphischer Form
- OLAP-Werkzeuge: Multidimensionale, interaktive Datenanalyse
- Data Mining-Werkzeuge: Maschinelles Lernen zur Mustererkennung
Data Marts
- “Kleines Data Warehouse”
- Arten:
- Abhängige Data Marts (Hub and Spoke Architektur)
- Unabhängige Data Marts
- Vergleich Data Mart – DWH:
- Geringere Datenmengen, stärker aggregiert, kürzere Datenhistorie
- Data Marts für Abteilungen, DWH unternehmensweit
- Wirtschaftlicher Aspekt:
- Pro DWH: Konsolidierung, Effizienzgewinne, einheitliche Datensicht
- Pro Data Mart: Einfachere Organisation, geringere Anfangsinvestition
Vorlesung 2
Eigenschaften multidimensionaler Schemata
Fakten
- Berechnungsvorschriften:
- Disjunktheit
- Vollständigkeit
- Typverträglichkeit
- Klassifikation von Kennzahlen (FLOW, STOCK, VALUE PER UNIT)
- Struktur: Innere Struktur und abgeleitete Attribute
Dimensionen
- Mehrfachhierarchie
- Alternative Verdichtungspfade
- Unbalancierte Hierarchien
- Anteilige Verrechnung
- Nicht-vollständige Verdichtung
Schema
- Ein oder mehrere Fakten pro Schema
- Beziehungen zwischen Fakten
- Nutzung von Dimensionen durch Fakten
- Beziehungen zwischen Dimensionen
- Raumaufspannung durch Dimensionen
Besetzungsgrad und Sparsity-Faktor
- Maximalvolumen des Hypercubes
- Besetzungsgrad
- Sparsity-Faktor
Notationen
Übersicht
- Bekannte Notationen: ME/RM, starER-Modell, ADAPT, DFM, MD-Modell, MAC, mUML, Ansatz von Trujillo, YAM
mUML
- MML als Basis
- Objektorientierung (UML) als Grundlage
- Designkriterien:
- Beibehaltung objektorientierter Konstrukte
- Ergänzung multidimensionaler Konzepte
- Unterstützung vielseitiger dimensionaler Strukturen
- Verschiedene graphische Notationen
- Graphische Notation mit Mechanismen:
- Tagged Values
- Stereotypen (
<<FactClass>>
,<<DimensionalClass>>
,<<Dimension>>
,<<RollUp>>
,<<SharedRollUp>>
,<<NonCompleteRollUp>>
)
- Beziehungen zwischen Fakt- und Dimensionalklassen
- Beispielschema mit verschiedenen Rollup-Beziehungen
Vorlesung 3
Weitere Anwendungen
Dashboards/Scorecards
- Überblick über wichtige Kennzahlen
Wenn-Dann-Analyse
- Synonyme: What-If-Analysis, Probable Clause
- Vorgabe von Zielwerten/Szenarien und Vergleich der Auswirkungen
Vorhersage
- Synonyme: Forecasting, Prognosen
- Quantitative Verfahren:
- Extrapolation und Hochrechnung
- Trendprognose
- Exponentielle Glättung
- Regression
Aktive Systeme
- Push-Technologie: Automatische Datenbereitstellung (z. B. Berichte)
- Frühwarnsystem:
- Definition von Schwellwerten/Mustern
- Automatische Benachrichtigung
Zeitnahe Verarbeitung
- Stetiges Nachladen ins DWH für zeitnahe Daten
- Begriffe:
- (Near) Real Time Data Warehouse
- Status Monitoring
- Activity Tracking
- Konfiguration überwachter Quelldaten
- Zugriff auf weitere Daten
Klassifikation von Systemen
- Beispiel: BI Maturity Model (biMM)
- Quelle: [Mumm04]
Vorlesung 5
Relationale Speicherung
Fakten und Dimensionstabellen
- Umsetzung multidimensionaler Daten in relationale Strukturen
- Sternschema: Dimensionstabellen mit Primärschlüsseln und Faktentabelle mit Fremdschlüsseln
- Schneeflockenschema: Normalisierte Dimensionstabellen mit separaten Hierarchiestufen
Sternschema
- Denormalisierte Dimensionstabellen mit allen Hierarchieebenen
- Faktentabelle mit Fremdschlüsseln und Kennzahlen
- Effiziente Anfragebearbeitung und verbreitete Nutzung in OLAP
Schneeflockenschema
- Jede Hierarchieebene in separater Tabelle
- Normalisierung reduziert Redundanzen, erschwert aber Anfragen
- Weniger Speicherplatzverbrauch, aber teurere Verbund-Operationen
Vor- und Nachteile der Schemaformen
- Sternschema: Einfach, effizient für OLAP, aber mehr Redundanz
- Schneeflockenschema: Speicheroptimiert, aber komplexe Abfragen
Änderungen in den Dimensionen
- Neue Elemente, Werteänderungen, neue Hierarchieebenen oder Dimensionen
- Slowly Changing Dimensions (SCD) nach Kimball:
- Typ I: Überschreiben
- Typ II: Historisierung mit Gültigkeitsintervall
- Typ III: Neue Attribute
Anfragen an relationale Schemata
- Übersetzung multidimensionaler Anfragen in SQL
- OLAP-Operationen (Slice, Dice, Roll-Up, Drill-Down) durch SQL-Konstrukte
- Beispiel: SQL-Query mit JOINs, WHERE-Klauseln und GROUP BY
Aufbau von SQL-Anweisungen für multidimensionale Speicherung
- Auswahl von Kennzahlen mit Aggregationsfunktionen
- JOIN-Bedingungen zwischen Fakten- und Dimensionstabellen
- Filterung in WHERE-Klauseln, Gruppierung in GROUP BY
- Umsetzung von ROLAP (Relational OLAP)
Vorlesung 6
Extrahieren – Transformieren - Laden
Datenfluss
- Extraktion (E1, …, En) der Daten aus Quellen (S1, …, Sn)
- Schrittweise Bearbeitung der Daten durch Transformationsschritte (T1, …, Tn)
- Ladeprozess (L) ins DWH
- Nutzung einer Data Staging Area als Zwischenspeicher
Extraktion
- Erstes ETL-Schritt: Datenübertragung in die Staging Area
- Filterung und Bereitstellung der Daten
- Meldung oder Ermittlung von Änderungen
- Extraktion durch Extraktor
- Lieferung periodisch, synchron oder ereignisgesteuert
- Methoden: Snapshot, Logfile, Snapshot-Differenz
Transformation (Diverse Transformationsschritte)
- Selektion: Auswahl bestimmter Datensätze
- Projektion: Auswahl bestimmter Spalten
- Pivotisierung: Umwandlung von Zeilen in Spalten
- Automatische Erkennung & Korrektur: Erkennen von Mustern und Bereinigung
- Felder separieren oder zusammenfassen
- Disaggregation: Aufteilung in separate Tabellen
- Einheitliches Format (Formatieren)
- Konvertieren: Einheitliche Darstellung von Einheiten
- Matching und Deduplizieren: Identifizierung und Entfernung von Dubletten
- Konsistenzprüfungen (Validierungen)
- Codierungen vereinheitlichen
- Berechnung abgeleiteter Werte
- Daten aggregieren
- Abgleich (Reconciliation)
Ladeprozess
- Einbringen der Daten ins Data Warehouse
- Strategien abhängig von Aktualisierungsintervallen und Speicherstrategie
Architekturen und Werkzeuge
Individualentwicklung
- Nutzung verschiedener Technologien: Replikationssoftware, FTP, Skriptsprachen, Programmiersprachen, Bulk Loader
- Herausforderungen: Unübersichtlichkeit, schlechte Wartbarkeit
Codegenerierung
- Automatisierte Code-Erstellung für Datenbewegungen
ETL-Werkzeug
- Standalone- oder Suite-Lösungen
- Beispiele: Talend, Oracle, Microsoft
- Funktionale Eigenschaften: Quellenunterstützung, Transformation, Skalierbarkeit, Sicherheit, Metadatenmanagement
- Management/Administration: Ladepläne, Monitoring, Reporting
Datenbankerweiterungen für den ETL-Prozess
Externe Tabellen
- Strukturierte Dateien werden wie interne Tabellen behandelt
- Einschränkungen: Read-Only, keine Constraints, keine Indizes
Gleichzeitiges Einfügen (INSERT WHEN)
- Ermöglicht Einfügen in mehrere Tabellen mit einer Anweisung
- INSERT ALL vs. INSERT FIRST
MERGE INTO
- Kombiniert UPDATE- und INSERT-Operationen
- Optional DELETE anstelle von UPDATE
Bulk Loader
- Effizientes Einfügen großer Datenmengen
- Umgehung von Konsistenzprüfungen und Schreibmechanismen
Andere Integrationsansätze
ELT
- Extrahieren – Laden - Transformieren
EAI, SOA
- EAI (Enterprise Application Integration): Anwendungsintegration mittels Protokollen und Schnittstellen
- SOA (Service Orientierte Architektur): Service-Paradigma für Applikationen
ESB, EII
- ESB (Enterprise Service Bus): Routing, Transformation und Transport von Nachrichten
- EII (Enterprise Information Integration): Einordnung nach Verarbeitung und Datenmenge
Vergleich
- Abgrenzung von EII, ETL und EAI nach Verarbeitungsarten und Datenvolumen
Vorlesung 7
CLIQ (data CLeansing mit Intelligentem Qualitätsmanagement)
-
Prüfung von Schlüssel-Eindeutigkeit und referentieller Integrität
- Erzeugung global eindeutiger Primärschlüssel
- Behandlung von Nullwerten
- Anpassung von Datentypen
- Konvertierung von Codierungen/Maßeinheiten
- Berechnung abgeleiteter Werte
- Kombination/Separierung von Attributwerten
-
Vereinheitlichung der Repräsentation
-
Statistische Prozesskontrolle (SPC)
- Verwaltung statistischer Kennzahlen zu Attributwerten: Mittelwert, Varianz etc.
- Neue Daten: Signifikante Abweichungen?
-
Domänenspezifische Konsistenzprüfung / Nachbearbeitung
-
Record Linkage
-
Merging
- Kriterien: Informationsgehalt, Quellenpriorität, Zeitnähe, Wahrscheinlichkeit, Häufigkeit
- Verschiedene Verfahren in der Literatur
- Wichtig: Abweichungstoleranz
- Resultat: Menge von Tupelmengen, deren Elemente dieselbe Entität beschreiben
-
Qualitätsmessung und -analyse
- Einsatz von Metriken/Indikatoren
- Basis: Anforderungen aus der Qualitätsplanung
-
Lenkung von Datenprodukten / Qualitätsverbesserung
- Symptomorientierte Maßnahmen
- Ursachenorientierte Maßnahmen
- Vergabe von Nutzungsauflagen
- Wiederaufsetzen bei Phase 8
- Inkrementelles Update des Operational Data Store
- Historisieren vs. Überschreiben
-
Freigabe von Datenprodukten
-
Analyse von Kundenfeedback / Datenrücknahme
- Maß für die Wirksamkeit des DQM
Q-Metriken (Qualitätsmetriken)
- Qualitätsmessung und -analyse im CLIQ-Vorgehensmodell
- Beispiel für eine Metrik: Anzahl der NULL-Werte in Spalten mit Interessen
- Verwendung von Metriken in der statistischen Prozesskontrolle
- Anzahl der NULL-Werte von Nicht-Schlüsselattributen als Maß für Unvollständigkeit
- Bedeutung von Q-Metriken für die Datenqualitätssicherung
Vorlesung 8
ROLLUP-Operator
- Ergänzt die GROUP BY-Klausel
- Ermöglicht die Berechnung von Zwischensummen
- Berechnet Standardaggregationen (wie bei GROUP BY ohne ROLLUP)
- Berechnet Zwischensummen höherer Ebenen durch das Durchgehen der Argumente von rechts nach links
- Berechnet die Gesamtsumme
- Reihenfolge der Attribute in der ROLLUP-Liste bestimmt die Aggregationsebenen
- Semantik von NULL-Werten: “Teilsumme” statt “unbekannt”
- Partieller ROLLUP: Aggregierung nur für ausgewählte Dimensionen
- Vergleich ROLLUP vs.
UNION ALL
: Effizienz und Lesbarkeit - Grenzen des ROLLUP-Operators: Nicht alle möglichen Teilsummen werden berechnet
CUBE-Operator
- Syntax:
GROUP BY CUBE(<Liste>)
- Berechnung von Teilsummen aller möglichen Kombinationen der Dimensionen
- Anzahl der berechneten Teilsummen: 2ⁿ (n = Anzahl der Dimensionen)
- Möglichkeit zur Einschränkung der Berechnung durch Gruppierung vor dem CUBE-Operator
- Vergleich CUBE vs.
UNION ALL
: Effizienzunterschiede - Unterstützung weiterer Aggregatfunktionen (
SUM
,COUNT
,AVG
,MIN
,MAX
,STDDEV
,VARIANCE
) - Einschränkung:
DISTINCT
ist in Kombination mit CUBE/ROLLUP nicht erlaubt
Weitere Themen
- GROUPING-Funktion zur Interpretation von Ergebnissen
- DECODE-Funktion zur Formatierung von Ergebnissen
- Hierarchien und der ROLLUP-Operator
- Verwendung in HAVING- und ORDER BY-Klauseln
- Übungsaufgaben zum ROLLUP- und CUBE-Operator
Vorlesung 9
Windowing
- Definition und windowing_clause
- Analytische Funktionen beziehen sich auf einen Ausschnitt an Zeilen innerhalb einer Teilmenge, der als Fenster bezeichnet wird.
- Berechnung erfolgt relativ zur aktuellen Position.
- Syntax:
<windows_mode> BETWEEN <start_point> AND <end_point>
- Definitionen
- Current Row (CR): Aktuelle Zeile
- Peer Group (PG): Alle Zeilen mit gleichem Wert im Sortierargument.
- Current Group (CG): Peer Group der aktuellen Zeile.
- windows_mode
- Bezug: Zeile (ROWS) oder Peer Group (RANGE, GROUPS).
- Offset-Berechnung: Physisch (ROWS, GROUPS) oder logisch (RANGE).
- <start_point> und <end_point>
- Mögliche Werte für
<value_expr>
:- PRECEDING, FOLLOWING, UNBOUNDED PRECEDING, UNBOUNDED FOLLOWING, CURRENT ROW.
- Einschränkung: Anfang muss vor Ende liegen.
- Einschränkungen bei Modus RANGE.
- Mögliche Werte für
- Standardfenster
- Keine ORDER BY-Klausel: Gesamte Teilmenge (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING).
- Mit ORDER BY-Klausel: Beginn Teilmenge bis aktuelle Gruppe (RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW).
- Verkürzte Notation
- Weglassen von BETWEEN/AND, nur Angabe eines Punkts
<point>
.
- Weglassen von BETWEEN/AND, nur Angabe eines Punkts
- Unterschied ROWS vs. RANGE/GROUPS
- Beispielhafte Unterschiede bei Fenster mit Vorgängern und Nachfolgern.
- Anwendungen
- Durchschnitt ganze Teilmenge, Aufsummierung, (Teil-)Aufsummierung, Gleitender Durchschnitt.
- Schlüsselwort WINDOW
- Auslagerung von Teilmengendefinition und Sortierung.
- Verbessert Lesbarkeit des SQL-Codes.
- Schlüsselwort EXCLUDE
- Ermöglicht explizites Ausschließen von Fensterteilen.
- Optionen: EXCLUDE NO OTHERS, EXCLUDE CURRENT ROW, EXCLUDE GROUP, EXCLUDE TIES.
Rangfunktionen
- Motivation
- Standard SQL bietet keine direkte Möglichkeit zur Berechnung von Rangfolgen oder Verteilungen.
- Allgemeines
- Alle Rangfunktionen haben optional eine Teilmengenbildung (PARTITION BY) und benötigen eine Sortierung (ORDER BY).
- Rangfunktionen dürfen keine Fensterbildung (windowing_clause) haben.
- Funktion RANK()
- Vergibt innerhalb einer Teilmenge fortlaufende Nummern basierend auf dem Sortierkriterium.
- Funktion DENSE_RANK()
- Vergibt innerhalb einer Teilmenge fortlaufende Nummern, bei gleichen Werten erhalten alle Zeilen den gleichen Rang.
- Funktion ROW_NUMBER()
- Vergibt innerhalb einer Teilmenge fortlaufende, eindeutige Zeilennummern.
- Funktion PERCENT_RANK()
- Ermittelt den Prozentrang jedes Datensatzes innerhalb einer Teilmenge.
- Funktion CUME_DIST()
- Ermittelt die kumulative Verteilung jedes Datensatzes innerhalb einer Teilmenge.
- Funktion NTILE(n)
- Unterteilt die Datenmenge in n nahezu gleich große Teilmengen (Quantile).
Zugriff bestimmter Zeilen
- Funktionen LAG() und LEAD()
- Zugriff auf die n-te vorhergehende bzw. nachfolgende Zeile.
- Häufige Anwendungen: Prozentuale Veränderung, Differenzbildung.
- Funktionen FIRST_VALUE(), LAST_VALUE(), NTH_VALUE()
- Zugriff auf die erste, letzte oder n-te Zeile im Fenster.
- Umgang mit NULL-Werten: RESPECT NULLS und IGNORE NULLS.
- Beispiel zur Ermittlung des ersten und letzten Verkaufswerts eines Artikels.
Vorlesung 10
Grundbegriffe
- Motivation
- Hohe Leistungsanforderungen
- Sehr große Datenmengen, vor allem Faktentabelle
- Schnelle Antwortzeiten für Benutzer bei OLAP
- Umfangreiche mehrdimensionale Auswahlbedingungen (Restriktionen) und Aggregationen
- Gruppierung, Sortierung, aufwändige Berechnungen
- (Periodische) Aktualisierung mit vielen Änderungen (ETL, Aktualisierung der DWH-Tabellen, Hilfsstrukturen, Hypercubes)
- Scan-Operationen auf Faktentabelle i.A. nicht akzeptabel
- Beispiel: 100 GB, Lesegeschwindigkeit 40 MB/s (Stand ca. 2002) → Mehr als halbe Stunde
- Technik-Update (2013): HDD ca. 160 MB/s, SSD ca. 510 MB/s
- Standard-Join-Verfahren (z.B. Hash-Join) oft zu ineffizient für Star Join → Einsatz von Performance-Techniken unter besonderer Berücksichtigung von DWH-Charakteristika
- Hohe Leistungsanforderungen
- Multidimensionale Anfragetypen
- Neben Aggregationen spielen Restriktionen (Slice and Dice) wichtige Rolle
- Allgemeine Anfragetypen
- Spezielle Anfragetypen
Indexstrukturen
- (Standard-)Bitmap-Index
- Speichert jede Ausprägung eines Attributs getrennt ab
- Vor allem für Attribute mit geringer Kardinalität geeignet
- Struktur: Für jede Attribut-Ausprägung Bitvektor anlegen, Länge jedes Vektors entspricht Anzahl der Tupel, i-te Bit eines Vektors wird auf 1 gesetzt → i-te Tupel besitzt entsprechenden Wert
- UND- bzw. ODER-Verknüpfungen durch entsprechende Operationen auf Bitvektoren realisierbar
- Syntax zur Erstellung und zum Löschen
- Mehrkomponenten-Bitmap-Index
- Speicherung von n*m möglichen Ausprägungen durch n+m Bitmap-Vektoren
- Beispiel zur Codierung der Monate mit m=3 und n=4
- Bewertung: Speicheraufwand reduziert, aber bei Punktanfrage immer zwei Vektoren lesen
- Bereichscodierter Bitmap-Index
- Idee: In Bitvektor zu Wert w Bit auf 1 setzen, wenn der Attributwert kleiner oder gleich w ist
- Voraussetzung: Ordnung auf indiziertem Attribut
- Bereichsanfragen: Beidseitig begrenzter Bereich (zwei Bitvektoren, NOT und AND)
- Bewertung: Speicherplatz fast wie bei Standard-Bitmap-Index, Bereichsanfragen effizienter, Punktanfragen nicht
- Intervallcodierter Bitmap-Index
- Optimierung bereichscodierter Bitmap-Indizes mit reduziertem Speicherplatzbedarf
- Jeder Bitvektor repräsentiert Wertezugehörigkeit zu bestimmtem Intervall
- Bewertung: Anfragen wie bei Bereichscodierung, aber etwa halber Speicherplatzbedarf
- Kompression
- Idee: Bitvektor besteht häufig aus „vielen Nullen, aber wenigen Einsen“
- Verschiedene Arten der Komprimierung möglich
- Beispiel: Lauflängencodierung (Run-Length-Encoding, RLE)
- Bitmap bei Verbundanfragen
- Anfrage an Sternschema (Star Query): Fakttabelle und mehrere Dimensionstabellen betroffen
- Verbesserung durch besondere Gegebenheiten des Schemas: Fremdschlüssel in Faktentabelle mit Bitmap-Verbund-Index versehen
Materialisierung
- Verwendung
- Materialisierte Sichten := Abgespeichertes Ergebnis einer Sicht
- Sehr effektive Optimierung für DWH wegen häufig ähnlicher Anfragen, Lokalität bei Auswertungen
- Bewertung: Vorteil Beschleunigung, Nachteil Platzverbrauch, Erstellungs-/Aktualisierungskosten
- Auswahl
- Aggregationsgitter := Graph, der anzeigt, welche Kombinationen von Aggregationsattributen sich (in)direkt auseinander ableiten lassen
- Optimierungs-Tradeoff: Nutzen vs. erhöhte Speicherungs- und Aktualisierungskosten
- Statische Vorgehensweise: Kostenfunktion definieren, Workload definieren, Optimierungsproblem, heuristisches Vorgehen
- Beispiel zum Greedy-Algorithmus
- Dynamische Auswahl: Materialisierung von Anfrageergebnissen in reserviertem Bereich, insb. bei OLAP sinnvoll
- Beispiel Oracle
- Aktualisierung: Sofortige, verzögerte, Schnappschuss
- Syntax zur Erstellung von Materialized Views und verschiedenen Optionen
Kompression
- Kompressionsfaktor
- Definition und Beispiel für Kompressionsfaktor
- Wörterbuchkompression
- Idee: Kürzel statt des Wertes speichern
- Beispiel mit Farben
- Kompression in Oracle
- Komprimierung strukturierter Daten am Beispiel einer Tabelle
- Kompressionsprozess mit leeren, anfangs unkomprimierten, teilweise komprimierten und komprimierten Blöcken
- Untersuchungen
- Untersuchung einer Fakttabelle mit zusammengesetztem Primärschlüssel und 10 Integer-Attributen
- Kompressionsraten für verschiedene Datensatzmengen und Wertebereiche
Spaltenorientierte Speicherung
- Prinzip
- Vergleich zeilen- vs. spaltenorientierte Speicherung
- Vorteile
- Bessere Anfragezeit bei sehr breiten Tabellen
- Vorbereitet zur Kompression
- Metadaten können effizient genutzt werden
- Verschiedene Kompressionsverfahren
- Verschiedene (leichtgewichtige) Verfahren bekannt
- Beispiele: Wörterbuchkompression, Lauflängencodierung, Differenzspeicherung
- Untersuchungen
- Metadaten: Zerlegung in Gruppen, Speicherung statistischer Informationen
- Beispiel: MySQL-Engine Infobright
- Kompression gegenüber MyISAM (Faktor ca. 8 im Beispiel)
- Beispiele für den Einfluss von Datentypen, NULL-Werten und unterschiedlichen Werten auf die Kompression
- Beispielszenario Kartenzahlung und Anfragezeitenvergleich zwischen Infobright und MyISAM