Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Werbung
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Datenbanken
Unit 9: OLAP, OLTP und objektrelationale
Datenbanken
Ronald Ortner
31. V. 2016
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Outline
1
Organisatorisches
2
SQL
3
OLTP, OLAP, SAP, and Data Warehouse
OLTP and OLAP
SAP
Data Warehouse & OLAP
4
Objekt-relationale Datenbanken
Beispiel
Objekt-relationale Datenbanken
5
Normalisierung: Weiteres Beispiel
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Organisatorisches
Abschlusstest am 14. Juni
(Gruppe 1: 10:00–11:15, Gruppe 2: 11:30–12:45 )
noch zwei Wissensüberprüfungen (heute und am 7. Juni)
Am 21. Juni finden beide Übungsgruppen gleichzeitig statt
(10–11 Uhr im RWZ HS).
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
SQL
Heute:
Nachbetrachtung Wissensüberprüfungen
Ergänzungen zu COUNT und JOIN
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Nachbetrachtung Wissensüberprüfung
Beispiel: Geben Sie alle Länder aus, die in derselben Region liegen
wie Österreich.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Nachbetrachtung Wissensüberprüfung
Beispiel: Geben Sie alle Länder aus, die in derselben Region liegen
wie Österreich.
kann über Subquery oder Self Join gelöst werden:
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Nachbetrachtung Wissensüberprüfung
Beispiel: Geben Sie alle Länder aus, die in derselben Region liegen
wie Österreich.
kann über Subquery oder Self Join gelöst werden:
Subquery:
SELECT DISTINCT name FROM cia
WHERE region =
(SELECT region FROM cia WHERE name = ’Austria’)
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Nachbetrachtung Wissensüberprüfung
Beispiel: Geben Sie alle Länder aus, die in derselben Region liegen
wie Österreich.
kann über Subquery oder Self Join gelöst werden:
Subquery:
SELECT DISTINCT name FROM cia
WHERE region =
(SELECT region FROM cia WHERE name = ’Austria’)
Self Join:
SELECT DISTINCT a.name FROM cia a JOIN cia b
ON a.region = b.region
WHERE b.name = ’Austria’
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
OLTP and OLAP
Outline
1
Organisatorisches
2
SQL
3
OLTP, OLAP, SAP, and Data Warehouse
OLTP and OLAP
SAP
Data Warehouse & OLAP
4
Objekt-relationale Datenbanken
Beispiel
Objekt-relationale Datenbanken
5
Normalisierung: Weiteres Beispiel
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
OLTP and OLAP
OLTP vs. OLAP
OLTP: online transaction processing
Online-Datenbankanwendungen
Beispiele: Bestellungen, Buchungen, etc.
wichtig ist die Verarbeitung aktuell anfallender Daten
→ viele Updates und neue Einträge in der Datenbank
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
OLTP and OLAP
OLTP vs. OLAP
OLTP: online transaction processing
Online-Datenbankanwendungen
Beispiele: Bestellungen, Buchungen, etc.
wichtig ist die Verarbeitung aktuell anfallender Daten
→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processing
Datenbankanwendungen für Analyse und Decision Support
Beispiele: Trendanalyse, Big Data
historische Daten sind wichtig
→ viele Daten, die meist in aggregierter Form benötigt werden
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
SAP
Outline
1
Organisatorisches
2
SQL
3
OLTP, OLAP, SAP, and Data Warehouse
OLTP and OLAP
SAP
Data Warehouse & OLAP
4
Objekt-relationale Datenbanken
Beispiel
Objekt-relationale Datenbanken
5
Normalisierung: Weiteres Beispiel
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
SAP
SAP
SAP: Softwaresystem, hauptsächlich für OLTP
SAP hat drei Ebenen:
großes relationales Datenbanksystem im Hintergrund
Applikationen, die auf Datenbank aufsetzen
GUI
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
SAP
SAP
SAP: Softwaresystem, hauptsächlich für OLTP
SAP hat drei Ebenen:
großes relationales Datenbanksystem im Hintergrund
Applikationen, die auf Datenbank aufsetzen
GUI
Zugriff auf dahinterliegende Datenbanken:
Auf einige Tabellen kann normal via SQL zugegriffen werden.
Dabei ist meist nur lesender Zugriff sinnvoll.
Auf andere Tabellen kann nur via SAP zugegriffen werden.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
SAP
SAP
SAP: Softwaresystem, hauptsächlich für OLTP
SAP hat drei Ebenen:
große relationales Datenbanksystem im Hintergrund
Applikationen, die auf Datenbank aufsetzen
GUI
Eigene Applikationen könne mit ABAP/4 geschrieben werden –
Datenbankzugriff mit
Native SQL (mit speziellem User Interface)
Open SQL (direkter Zugriff auf Datenbanken)
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Outline
1
Organisatorisches
2
SQL
3
OLTP, OLAP, SAP, and Data Warehouse
OLTP and OLAP
SAP
Data Warehouse & OLAP
4
Objekt-relationale Datenbanken
Beispiel
Objekt-relationale Datenbanken
5
Normalisierung: Weiteres Beispiel
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
OLTP vs. OLAP
OLTP: online transaction processing
Online-Datenbankanwendungen
Beispiele: Bestellungen, Buchungen, etc.
wichtig ist de Verarbeitung aktuell anfallender Daten
→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processing
Datenbankanwendungen für Analyse und Decision Support
Beispiele: Trendanalyse, Big Data
historische Daten sind wichtig
→ viele Daten, die meist in aggregierter Form benötigt werden
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
OLTP vs. OLAP
OLTP: online transaction processing
Online-Datenbankanwendungen
Beispiele: Bestellungen, Buchungen, etc.
wichtig ist de Verarbeitung aktuell anfallender Daten
→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processing
Datenbankanwendungen für Analyse und Decision Support
Beispiele: Trendanalyse, Big Data
historische Daten sind wichtig
→ viele Daten, die meist in aggregierter Form benötigt werden
→ Es ist keine gute Idee, OLTP und OLAP auf derselben Datenbank
auszuführen.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Data Warehouse
Grundidee von Data Warehouse:
Operationale Datenbank für OLTP
Speichere regelmäßig (aber nicht online!) Daten von operationaler
Datenbank in Data Warehouse
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Data Warehouse
Grundidee von Data Warehouse:
Operationale Datenbank für OLTP
Speichere regelmäßig (aber nicht online!) Daten von operationaler
Datenbank in Data Warehouse
Datenbankschemata für Data Warehouse:
Sternschema:
eine zentrale Faktentabelle
andere Tabellen nicht normalisiert
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Data Warehouse
Grundidee von Data Warehouse:
Operationale Datenbank für OLTP
Speichere regelmäßig (aber nicht online!) Daten von operationaler
Datenbank in Data Warehouse
Datenbankschemata für Data Warehouse:
Sternschema:
eine zentrale Faktentabelle
andere Tabellen nicht normalisiert
Schneeflockenschema:
eine zentrale Faktentabelle
andere Tabellen normalisiert (→ benötigt mehr Joins)
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Roll Up und Drill Down
Abfragen auf Data Warehouse typischerweise in aggregierter Form
(→ GROUP BY)
Drill down: mehr Attribute im GROUP BY
Roll up: weniger Attribute im GROUP BY
Daten können in einer Tabelle bzw. allgemein im “Data cube”
dargestellt werden.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendig
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendig
können Tabelle für Data cube speichern
(mit NULL Werten, wo aggregiert wird)
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendig
können Tabelle für Data cube speichern
(mit NULL Werten, wo aggregiert wird)
immer noch recht aufwendig und unpraktisch
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendig
können Tabelle für Data cube speichern
(mit NULL Werten, wo aggregiert wird)
immer noch recht aufwendig und unpraktisch
→ Idee: neuer SQL Operator CUBE
Verwendung: GROUP BY CUBE( attr1, attr2, . . . )
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendig
können Tabelle für Data cube speichern
(mit NULL Werten, wo aggregiert wird)
immer noch recht aufwendig und unpraktisch
→ Idee: neuer SQL Operator CUBE
Verwendung: GROUP BY CUBE( attr1, attr2, . . . )
Weitere Möglichkeit:
speichern Tabelle, die maximal “drilled-down” ist
aggregieren diese Tabelle
(weniger aufwendig als Aggregation jedesmal neu zu machen)
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Row Store vs. Column Store
Typischerweise werden Tabellen zeilenweise gespeichert.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Row Store vs. Column Store
Typischerweise werden Tabellen zeilenweise gespeichert.
Bei vielen Spalten, kann es aus Performancegründen u.U. auch
besser sein, spaltenweise zu speichern:
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Row Store vs. Column Store
Typischerweise werden Tabellen zeilenweise gespeichert.
Bei vielen Spalten, kann es aus Performancegründen u.U. auch
besser sein, spaltenweise zu speichern:
Die meisten Abfragen betreffen nur wenige Spalten.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Row Store vs. Column Store
Typischerweise werden Tabellen zeilenweise gespeichert.
Bei vielen Spalten, kann es aus Performancegründen u.U. auch
besser sein, spaltenweise zu speichern:
Die meisten Abfragen betreffen nur wenige Spalten.
Spaltenwerte sind ähnlicher und können leichter komprimiert
werden.
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Data Warehouse & OLAP
Row Store vs. Column Store
Typischerweise werden Tabellen zeilenweise gespeichert.
Bei vielen Spalten, kann es aus Performancegründen u.U. auch
besser sein, spaltenweise zu speichern:
Die meisten Abfragen betreffen nur wenige Spalten.
Spaltenwerte sind ähnlicher und können leichter komprimiert
werden.
Verwendung von Wörterbuch-Tabelle
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Beispiel
Outline
1
Organisatorisches
2
SQL
3
OLTP, OLAP, SAP, and Data Warehouse
OLTP and OLAP
SAP
Data Warehouse & OLAP
4
Objekt-relationale Datenbanken
Beispiel
Objekt-relationale Datenbanken
5
Normalisierung: Weiteres Beispiel
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Beispiel
Beispiel: Bücherdatenbank
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Beispiel
Beispiel: Bücherdatenbank
Wir führen IDs für Autoren, Bücher und Keywords ein.
Dann:
eine Tabelle für jeden Entitätstyp (mit den IDs als
Primärschlüssel):
Autoren: {[a_id, Name]}
Bücher: {[b_id, Titel, Verlag]}
Keywords: {[k_id, Keyword]}
eine Tabelle für jede Relation:
schreibt: {[a_id, b_id]}
hat_Keyword: {[b_id, k_id, Gewicht]}
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Beispiel
Beispiel: Bücherdatenbank
Wir führen IDs für Autoren, Bücher und Keywords ein.
Dann:
eine Tabelle für jeden Entitätstyp (mit den IDs als
Primärschlüssel):
Autoren: {[a_id, Name]}
Bücher: {[b_id, Titel, Verlag]}
Keywords: {[k_id, Keyword]}
eine Tabelle für jede Relation:
schreibt: {[a_id, b_id]}
hat_Keyword: {[b_id, k_id, Gewicht]}
→ brauchen fünf (!) Tabellen für einen Entitätstyp
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Objekt-relationale Datenbanken
Outline
1
Organisatorisches
2
SQL
3
OLTP, OLAP, SAP, and Data Warehouse
OLTP and OLAP
SAP
Data Warehouse & OLAP
4
Objekt-relationale Datenbanken
Beispiel
Objekt-relationale Datenbanken
5
Normalisierung: Weiteres Beispiel
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Objekt-relationale Datenbanken
Objektorientierte Erweiterungen
→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:
Mögliche Ansätze:
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Objekt-relationale Datenbanken
Objektorientierte Erweiterungen
→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:
Mögliche Ansätze:
zusätzliche Struktur in Datenbanken:
→ implizite Joins (keine Join-Bedingung nötig)
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Objekt-relationale Datenbanken
Objektorientierte Erweiterungen
→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:
Mögliche Ansätze:
zusätzliche Struktur in Datenbanken:
→ implizite Joins (keine Join-Bedingung nötig)
geben 1.NF auf und erlauben strukturierte Informationen:
→ können z.B. mehrere Autoren oder Keywords speichern
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Objekt-relationale Datenbanken
Objekt-relationale Datenbanken
In objekt-relationaler Datenbank gibt es weiters:
Möglichkeit, Objekte mithilfe anderer Objekte zu definieren
Vererbung
Objektmethoden
→ objekt-orientierte Programmiersprachen wie etwa Java
Ronald Ortner
Organisatorisches SQL OLTP, OLAP, SAP, and Data Warehouse Objekt-relationale Datenbanken Normalisierung: Weiteres Beisp
Normalisierung: Weiteres Beispiel
Verwenden Sie Normalisierung, um ein Datenbankschema für
Verkehrsstrafen zu entwerfen. Gespeichert werden sollen das
Kfz-Kennzeichen sowie das Land, in dem das Fahrzeug zugelassen
wurde, die Art des Vergehens sowie Datum, Zeit und Ort. Weiters
sollen der Lenker sowie der Zulassungsbesitzer, Marke, Modell und
Farbe des Fahrzeugs gespeichert werden.
Ronald Ortner
Herunterladen