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