- Der Ausdruck OLAP kann definiert werden als "the interactive process of creating, managing, analyzing, and reporting on data”.
- Sofern die Daten als konventionelle Tables vorliegen, können die OLAP-Facilities von SQL genutzt werden.
- Das Ergebnis verschiedener Aggregationen (GROUPING SETS) kann in eine einzige Liste mit vielen NULLs zusammengefasst werden.
- Mittels einfacher Syntax für das "Window"-Konzept können spezielle Listen (zum Beispiel mit kumulierten Werten und moving averages) generiert werden.
- Ein "Window" ist eine vom Anwender spezifizierte Auswahl von Zeilen innerhalb einer Query (oder innerhalb einer logischen Partition einer Query) die die Menge von Zeilen bestimmt, die benutzt werden um gewisse Berechnungen auszuführen relativ zur aktuellen Zeile (current row under examination).
SQL/OLAP:
- GROUP BY GROUPING SETS, ROLLUP, CUBE
- ORDER BY GROUPING
- Window Partitioning PARTITION BY
- Window Ordering ORDER BY
- Window Framing ROWS BETWEEN, RANGE BETWEEN, EXCLUDE
- Window Functions Aggregate, Ranking, Offset, Analytic, Distribution
- MAX, MIN, AVG, SUM, COUNT, STRING_AGG
- ROW_NUMBER, RANK, DENSE_RANK NTILE
- LAG und LEAD, FIRST_VALUE und LAST_VALUE
Temporale Datenbanken:
- Temporale Daten (d. h. vergangene, aktuelle bzw. zukünftige Daten) sind das tägliche Brot der Fachabteilung und der Anwendungsentwicklung.
- Viele Anwendungen benötigen die Daten, wie sie sich im Laufe der Zeit entwickeln, "Verträge gelten von... bis..., Preise gelten seit...".
- Das Abfragen und Ändern solcher Daten ist eine nichttriviale Aufgabe.
- Das Seminar diskutiert Design und Integritätsbedingungen für temporale Daten und präsentiert SQL-Implementierungen der temporalen relationalen Operationen, wie z.B. Join bzw. Projektion.
SQL/Temporal:
- Präsentation [closed,closed] bzw. Präsentation [closed,open]
- Requirements und Integritätsbedingungen
- Redundancy, Circumlocution, Contradiction
- Datendefinition
- Current Table und historical Table
- Intervalle und Allen's Operatoren
- Die Pack- und die Unpack-Operation
- Projektion temporal - Join temporal - Except temporal.
SQL und Performance, das Was und das Wie:
- Mit Hilfe der Sprache SQL schreiben wir SELECT-Anweisungen und nutzen dabei die Operationen der relationalen Algebra.
- Subqueries in der WHERE-Klausel, in der SELECT-Klausel bzw. in der FROM-Klausel ermöglichen andere, logisch äquivalente Varianten der Was-Formulierung für die gleiche Anforderung, diese zeigen aber oft eine andere Performance.
- Das Seminar diskutiert auf dem Hintergrund der internen Ebene verschiedene Fallbeispiele und bietet einen Blick auf das Wie und in die Black Box Optimizer.
SQL/Was und Wie:
- Interne Datenablage, INDEX, UNIQUE, nonunique, Clustered Index, Partitioning
- ORDER BY und INDEX, "Einen Sort vermeiden!"
- Scan oder Zugriff über den Index
- Expression und Performance,"schlechte Formulierungen in der WHERE-Klausel"
- der Optimizer und die Statistikdaten, "Wie schlau ist der Optimizer?"
- Zugriffsmethoden für den JOIN, merge scan join, nested loop join, hash join
- Execution Plan, EXPLAIN, Oracle SET AUTOTRACE ON
- Komponenten des Datenbankmanagementsystems
- Derived Column und Index, Function Based Index
MethodeVortrag, Demonstration, Diskussion, Praktikum am System. Für das Praktikum, in dem Sie das Erlernte ausprobieren und festigen können, stehen als Datenbanksysteme wahlweise DB2, Oracle und SQL Server zur Verfügung.