Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
DatenbankenUnit 9: OLAP, OLTP, Data Warehouse
Ranking Algorithmen
Ronald Ortner
28. V. 2018
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Outline
1 Organisatorisches
2 OLTP, OLAP, SAP, and Data WarehouseOLTP and OLAPSAPData Warehouse & OLAP
3 Ranking
4 SQL
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Organisatorisches
Ergebnisse 2. Zwischentest (Einsichtnahme in den UE)
Nächste Woche letzte Wissensüberprüfung(Thema: Datumsfunktionen/Stoff von heute)
UE-Abschlusstest am 13. Juni(Gruppe 1: 14:45–16:00, Gruppe 2: 16:00–17:15 ??)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
OLTP and OLAP
Outline
1 Organisatorisches
2 OLTP, OLAP, SAP, and Data WarehouseOLTP and OLAPSAPData Warehouse & OLAP
3 Ranking
4 SQL
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
OLTP and OLAP
OLTP vs. OLAP
OLTP: online transaction processingOnline-DatenbankanwendungenBeispiele: Bestellungen, Buchungen, etc.wichtig ist die Verarbeitung aktuell anfallender Daten→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processingDatenbankanwendungen für Analyse und Decision SupportBeispiele: Trendanalyse, Big Datahistorische Daten sind wichtig→ viele Daten, die meist in aggregierter Form benötigt werden
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
OLTP and OLAP
OLTP vs. OLAP
OLTP: online transaction processingOnline-DatenbankanwendungenBeispiele: Bestellungen, Buchungen, etc.wichtig ist die Verarbeitung aktuell anfallender Daten→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processingDatenbankanwendungen für Analyse und Decision SupportBeispiele: Trendanalyse, Big Datahistorische Daten sind wichtig→ viele Daten, die meist in aggregierter Form benötigt werden
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
SAP
Outline
1 Organisatorisches
2 OLTP, OLAP, SAP, and Data WarehouseOLTP and OLAPSAPData Warehouse & OLAP
3 Ranking
4 SQL
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
SAP
SAP
SAP: Softwaresystem, hauptsächlich für OLTP
SAP hat drei Ebenen:großes relationales Datenbanksystem im HintergrundApplikationen, die auf Datenbank aufsetzenGUI
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 OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
SAP
SAP
SAP: Softwaresystem, hauptsächlich für OLTP
SAP hat drei Ebenen:großes relationales Datenbanksystem im HintergrundApplikationen, die auf Datenbank aufsetzenGUI
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 OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
SAP
SAP
SAP: Softwaresystem, hauptsächlich für OLTP
SAP hat drei Ebenen:große relationales Datenbanksystem im HintergrundApplikationen, die auf Datenbank aufsetzenGUI
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 OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Outline
1 Organisatorisches
2 OLTP, OLAP, SAP, and Data WarehouseOLTP and OLAPSAPData Warehouse & OLAP
3 Ranking
4 SQL
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
OLTP vs. OLAP
OLTP: online transaction processingOnline-DatenbankanwendungenBeispiele: Bestellungen, Buchungen, etc.wichtig ist de Verarbeitung aktuell anfallender Daten→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processingDatenbankanwendungen für Analyse und Decision SupportBeispiele: Trendanalyse, Big Datahistorische Daten sind wichtig→ viele Daten, die meist in aggregierter Form benötigt werden
→ Es ist keine gute Idee, OLTP und OLAP auf derselben Datenbankauszuführen.
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
OLTP vs. OLAP
OLTP: online transaction processingOnline-DatenbankanwendungenBeispiele: Bestellungen, Buchungen, etc.wichtig ist de Verarbeitung aktuell anfallender Daten→ viele Updates und neue Einträge in der Datenbank
OLAP: online analytical processingDatenbankanwendungen für Analyse und Decision SupportBeispiele: Trendanalyse, Big Datahistorische Daten sind wichtig→ viele Daten, die meist in aggregierter Form benötigt werden
→ Es ist keine gute Idee, OLTP und OLAP auf derselben Datenbankauszuführen.
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Data Warehouse
Grundidee von Data Warehouse:Operationale Datenbank für OLTPSpeichere regelmäßig (aber nicht online!) Daten von operationalerDatenbank in Data Warehouse
Datenbankschemata für Data Warehouse:Sternschema:
eine zentrale Faktentabelleandere Tabellen nicht normalisiert
Schneeflockenschema:eine zentrale Faktentabelleandere Tabellen normalisiert (→ benötigt mehr Joins)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Data Warehouse
Grundidee von Data Warehouse:Operationale Datenbank für OLTPSpeichere regelmäßig (aber nicht online!) Daten von operationalerDatenbank in Data Warehouse
Datenbankschemata für Data Warehouse:Sternschema:
eine zentrale Faktentabelleandere Tabellen nicht normalisiert
Schneeflockenschema:eine zentrale Faktentabelleandere Tabellen normalisiert (→ benötigt mehr Joins)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Data Warehouse
Grundidee von Data Warehouse:Operationale Datenbank für OLTPSpeichere regelmäßig (aber nicht online!) Daten von operationalerDatenbank in Data Warehouse
Datenbankschemata für Data Warehouse:Sternschema:
eine zentrale Faktentabelleandere Tabellen nicht normalisiert
Schneeflockenschema:eine zentrale Faktentabelleandere Tabellen normalisiert (→ benötigt mehr Joins)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
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 OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
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 CUBEVerwendung: GROUP BY CUBE( attr1, attr2, . . .)Weitere Möglichkeit:
speichern Tabelle, die maximal “drilled-down” istaggregieren diese Tabelle(weniger aufwendig als Aggregation jedesmal neu zu machen)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendigkönnen Tabelle für Data cube speichern(mit NULL Werten, wo aggregiert wird)
immer noch recht aufwendig und unpraktisch→ Idee: neuer SQL Operator CUBEVerwendung: GROUP BY CUBE( attr1, attr2, . . .)Weitere Möglichkeit:
speichern Tabelle, die maximal “drilled-down” istaggregieren diese Tabelle(weniger aufwendig als Aggregation jedesmal neu zu machen)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendigkönnen Tabelle für Data cube speichern(mit NULL Werten, wo aggregiert wird)immer noch recht aufwendig und unpraktisch
→ Idee: neuer SQL Operator CUBEVerwendung: GROUP BY CUBE( attr1, attr2, . . .)Weitere Möglichkeit:
speichern Tabelle, die maximal “drilled-down” istaggregieren diese Tabelle(weniger aufwendig als Aggregation jedesmal neu zu machen)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendigkönnen Tabelle für Data cube speichern(mit NULL Werten, wo aggregiert wird)immer noch recht aufwendig und unpraktisch→ Idee: neuer SQL Operator CUBEVerwendung: GROUP BY CUBE( attr1, attr2, . . .)
Weitere Möglichkeit:speichern Tabelle, die maximal “drilled-down” istaggregieren diese Tabelle(weniger aufwendig als Aggregation jedesmal neu zu machen)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Data Warehouse & OLAP
Cube Operator
Data cube:
Ausführung aller nötigen Abfragen aufwendigkönnen Tabelle für Data cube speichern(mit NULL Werten, wo aggregiert wird)immer noch recht aufwendig und unpraktisch→ Idee: neuer SQL Operator CUBEVerwendung: GROUP BY CUBE( attr1, attr2, . . .)Weitere Möglichkeit:
speichern Tabelle, die maximal “drilled-down” istaggregieren diese Tabelle(weniger aufwendig als Aggregation jedesmal neu zu machen)
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Ranking
Aufgabe:haben mehrere Listen derselben Objekte, gereiht nachverschiedenen Kriterienaggregieren die verschiedenen Kriterien zu einem Wert(einfachster Fall: Summe)hätten gerne die besten k Objekte
Naive Lösung:Berechnen Wert für alle Objekte und sortieren
Bessere Lösung:Threshold AlgorithmusNo Random Access Algorithmus
(für Details siehe Folien von Alois Kemper)Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
SQL
Heute:Nachbetrachtung WissensüberprüfungenErgänzungen zu COUNT und Joins
Ronald Ortner
Organisatorisches OLTP, OLAP, SAP, and Data Warehouse Ranking SQL
Nachbetrachtung Zwischentest
Zusätzliche Bedingungen in (korrel.) Subqueries innen und außen!Falsche Korrelationen liefern falsche Ergebnisse.Unabsichtliche KorrelationenCOUNT 6= SUM
Eine Subtilität:Oft sollte im GROUP BY nicht der Ausdruck im SELECT sondernentsprechende id verwendet werden.
Ronald Ortner