Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-1
Themen der Vorlesung Grundlagen Architekturen Modellierung Relationale Datenbanken Relationaler DB-Entwurf SQL zur Datendefinition SQL zur Datenabfrage/Manipulation SQL zur Datenanalyse Sichten, Zugriffskontrolle, Trigger XML, binäre Inhalte, OO Dateiorganisation und Zugriffsstrukturen Programmiersprachenanbindung Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-2
Gliederung SQL zur Datenanalyse Wiederholung - SFW-Block, SQL: SELECT, WHERE, JOIN, INSERT, UPDATE, DELETE Zusammenfassung Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-3
Wiederholung Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-4
Grundbausteine von SQL-Anfragen SELECT SpaltenDerErgebnistabelle FROM ListeDerTabellenWelcheDieDatenEnthalten Evtl. mit Aggregatfunktionen für Gruppen oder mit Formeln zur Berechnung der neuen Spaltenwerte WHERE SelektionsbedingungenUndOderVerbundbedingungen GROUP BY SpaltenDerenZeilenNachGleichenWertenGruppiertWerden HAVING AuswahlbedingungFürDieGruppen ORDER BY BenutzerdefinierteSortierungDerErgebnisZeilen Rote, grüne, blaue Zeilen sind optional HAVING nur, wenn GROUP BY vorhanden Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-5
SFW-Block: Projektion Liefert die Ergebnisrelation als Multimenge select Land from Musiker Eliminierung von Duplikaten mit distinct select distinct Land from Musiker Ergibt Projektion aus der Relationenalgebra Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-6
SQL-Sortierung im SFW-Block Sortierung mit order by Notation order by attributliste Beispiel: select Titel, Jahr from Album order by Jahr asc Sortierung aufsteigend (asc) oder absteigend (desc) Sortierung als letzte Operation einer Anfrage Sortierattribut muss in der select-klausel vorkommen Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-7
SFW-Block: where Die where-klausel select from where bedingung Formen der Bedingung: - Vergleich eines Attributs mit einer Konstanten: attribut1 (konstante attribut2) mögliche Vergleichssymbole abhängig vom Wertebereich; etwa =, <>, >, <, >= sowie <= - between, like - is null - logische Konnektoren or, and und not Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-8
Selektionen mit SQL in-prädikat und geschachtelte Anfragen Notation: attribut in (SFW-Block) Beispiel: select Name, Land from Musiker where MNr in ( select MNr from Album) not in kann für Bildung von Differenzen verwendet werden, z.b. für die Anfrage Musiker ohne Album : select Name, Land from Musiker where MNr not in (select MNr from Album) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-9
Selektion mit SQL Bedingungen mit Quantoren Quantoren: all, any, some und exists Notation attribut { all any some } ( select attribut from...where...) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-10
Selektion mit SQL Das exists/not exists-prädikat Musiker ohne Album in 2006: select Name from Musiker where not exists (select * from Album where Album.MNr = Musiker.MNr and Jahr = 2006) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-11
Selektion mit SQL Skalare Ausdrücke / Funktionen - numerischen Wertebereichen: etwa +, -, * und / - Strings: Operationen wie char_length (aktuelle Länge eines Strings), die Konkatenation und die Operation substring (Suchen einer Teilzeichenkette an bestimmten Positionen des Strings) - Datumstypen und Zeitintervallen: Operationen wie current_date (aktuelles Datum), current_time (aktuelle Zeit), +, - und * Siehe Oracle-Referenz Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-12
SQL-Datenmanipulation update update basisrelation set attribut 1 = ausdruck 1, delete delete attribut n = ausdruck n [where bedingung] from basisrelation [where bedingung] Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-13
SQL-Datenmanipulation insert insert into basisrelation [(attribut 1,, attribut n )] values (konstante 1,, konstante n ) Insert mit SQL select insert into basisrelation [(attribut 1,, attribut n )] SQL-Anfrage Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-14
Datenanalyse mit Aggregatfunktionen Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-15
Szenario: Getränkemarkt Umsatz, Portfolio SSaufland Werbung Quelle: Saake/Sattler Vorlesung Data-Warehouse-Technologien Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-16
Beispiel einer Anfrage Welche Umsätze sind in den Jahren 1998 und 1999 in den Abteilungen Kosmetik, Elektro und Haushaltswaren in den Bundesländern Sachsen-Anhalt und Thüringen angefallen? Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-17
Ergebnis (Würfel) Produkt Summe Haushalt Elektro Kosmetik 1998 1999 Summe Zeitraum Sachsen- Anhalt Thüringen Summe Region Kennzahl Umsatz Quelle: Saake/Sattler Vorlesung Data-Warehouse-Technologien Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-18
Ergebnis (Bericht) Umsatz Kosmetik Elektro Haushalt SUMME 1998 Sachsen-Anhalt 45 123 17 185 Thüringen 43 131 21 195 SUMME 88 254 38 380 1999 Sachsen-Anhalt 47 131 19 197 Thüringen 40 136 20 196 SUMME 87 267 39 393 SUMME 175 521 77 773 Quelle: Saake/Sattler Vorlesung Data-Warehouse-Technologien Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-19
DB-Schema Produkt liefert Lieferant kauft Menge Kunde Quelle: Saake/Sattler Vorlesung Data-Warehouse-Technologien Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-20
Begriffe OLAP (Online Analytical Processing) - explorative, interaktive Analyse auf Basis des konzeptuellen Datenmodells Klassische operative Informationssysteme Online Transactional Processing (OLTP) - Erfassung und Verwaltung von Daten - Verarbeitung unter Verantwortung der jeweiligen Abteilung - Transaktionale Verarbeitung: kurze Lese-/ Schreibzugriffe auf wenige Datensätze Data Warehouse - Analyse im Mittelpunkt - lange Lesetransaktionen auf vielen Datensätzen - Integration, Konsolidierung und Aggregation der Daten Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-21
OLAP: Betriebswirtschaftliche Anwendungen Informationsbereitstellung - Daten und Informationen als Grundlage einer erfolgreichen Abwicklung von Geschäftsprozessen (z.b. Kennzahlen) - Anwender: Manager, Abteilungsleiter, Fachkräfte - Formen der Bereitstellung Query-Ansätze: frei definierbare Anfragen und Berichte Reporting: Zugriff auf vordefinierte Berichte Redaktionell aufbereitete, personalisierte Informationen Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-22
Aggregate Aggregatfunktionen berechnen neue Werte für eine gesamte Spalte, etwa die Summe oder den Durchschnitt der Werte einer Spalte Beispiel: Ermittlung des Durchschnittspreises aller Artikel oder des Gesamtumsatzes über alle verkauften Produkte bei zusätzlicher Anwendung von Gruppierung: Berechnung der Funktionen pro Gruppe, z.b. der Durchschnittspreis pro Warengruppe oder der Gesamtumsatz pro Kunde Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-23
Beispiel Aggregatfunktion sum Aggregatfuktionen: Beispiel Gesamtwert aller Alben: select sum(preis) from Album erzeugt folgende Ergebnistabelle: Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-24 7.2 Anfragen mit SQL
Beispiel Gruppierungsfunktion Gruppierung von Zeilen mit gleichen Attributwerten Group by definiert die zu gruppierenden Attribute Genau ein Ergebnistupel pro Gruppe Quelle: K. Schneider Vorlesung Datatenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-25
Beispiel Gruppierungsselektion mit having mit der having-klausel werden Gruppen ausgewählt Vorsicht: having nicht gleich where!!!! Quelle: K. Schneider Vorlesung Datatenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-26
Aggregatfunktionen in SQL Aggregatfunktionen in Standard-SQL: - count: berechnet Anzahl der Werte einer Spalte oder alternativ (im Spezialfall count(*)) die Anzahl der Tupel einer Relation - sum: berechnet die Summe der Werte einer Spalte (nur bei numerischen Wertebereichen) - avg: berechnet den arithmetischen Mittelwert der Werte einer Spalte (nur bei numerischen Wertebereichen) - max bzw. min: berechnen den größten bzw. kleinsten Wert einer Spalte - Viele weitere statistische Funktionen: z.b. median, rank,. Argumente einer Aggregatfunktion: - ein Attribut der durch die from-klausel spezifizierten Relation - ein gültiger skalarer Ausdruck - im Falle der count-funktion auch das Symbol * Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-27
Aggregatfunktionen ind SQL vor dem Argument (außer im Fall von count(*)) optional auch die Schlüsselwörter distinct oder all distinct: vor Anwendung der Aggregatfunktion werden doppelte Werte aus der Menge von Werten, auf die die Funktion angewendet wird all: Duplikate gehen mit in die Berechnung ein (Default- Voreinstellung) Nullwerte werden in jedem Fall vor Anwendung der Funktion aus der Wertemenge eliminiert (außer im Fall von count(*)) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-28
Beispiel Aggregatfunktionen count, avg Anzahl der Alben: select count(*) from Album Anzahl der Musiker mit Alben select count(distinct MNR) from Album Durchschnittspreis aller Alben: select avg(all Preis) from Album Verwendung von all, da bei distinct doppelte Preise eliminiert werden würden, was den Durchschnittspreis verfälscht Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-29
Aggregatfunktionen in where-klauseln Aggregatfunktionen liefern nur einen Wert, Einsatz in Konstanten-Selektionen der where-klausel möglich Beispiel: Alben, deren Preis unter dem Durchschnitt liegt: select Titel, Preis from Album where Preis < ( select avg(all Preis) from Album) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-30
Syntax Group By select... from... [where...] [group by attributliste ] [having bedingung ] Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-31 7.2 Anfragen mit SQL
Das Window-Konstrukt Wie Group by: Skalare Werte pro Gruppe berechnen Aber: jede (group by eine) Zeile im Ergebnis ausgeben Quelle: K. Schneider Vorlesung Datatenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-32
Das Window-Konstrukt Quelle: K. Schneider Vorlesung Datatenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-33
Das Window-Konstrukt Mehrere Gruppierungen in einem SFW-Block Quelle: K. Schneider Vorlesung Datatenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-34
Zusammenfassung Begriffssbestimmung OLAP und OLTP Aggregatfunktionen zur Berechnung von Kennzahlen - Z.b. Durchschnitt, Summe, Anzahl Group by zur Berechnung von Kennzahlen über Gruppierte Zeilen Window-Konstrukt zur Mehrfach-Aggregierung und Tabellengültigkeit von berechneten Kennzahlen Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S. Weise Folie #9-35