Vorlesung Datenbankmanagementsysteme



Ähnliche Dokumente
Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Kapitel 3: Datenbanksysteme

Vorlesung Datenbankmanagementsysteme

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Informatik 12 Datenbanken SQL-Einführung

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

IV. Datenbankmanagement

SQL Intensivpraktikum SS 2008

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Abfragen: Grundbausteine

SQL. Abfragesprache Datenmanipulation - DML

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

MySQL: Einfaches Rechnen.

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Erstellen einer Datenbank. Datenbankabfragen

5.3 Datenänderung/-zugriff mit SQL (DML)

Bibliografische Informationen digitalisiert durch

OLAP und Data Warehouses

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

SQL structured query language

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Sructred Query Language

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Abfrage-Befehle in MySQL -diverse Funktionen -

8. Relationale Datenbanksprachen

7. Übung - Datenbanken

Ein Beispiel: Tabelle DICHTER

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL als Zugriffssprache

3.17 Zugriffskontrolle

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

105.3 SQL-Datenverwaltung

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SQL: statische Integrität

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Übersicht der wichtigsten MySQL-Befehle

Datenbankanfragen und -operationen mittels SQL

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Kurzanleitung für Umsteiger von DataEase.

Views in SQL. 2 Anlegen und Verwenden von Views 2

Themenblock: Erstellung eines Cube

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Einführung in die Wirtschaftsinformatik Kapitel 4: Relationale Datenbanksprachen: SQL

Fortgeschrittene OLAP Analysemodelle

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Relationale Datenbanksprachen

3. Das Relationale Datenmodell

Einführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Tabellenausdrücke. Bedingungen

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

Schlüssel bei temporalen Daten im relationalen Modell

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Abfragen (Queries, Subqueries)

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Oracle: Abstrakte Datentypen:

Aufgabensammlung SQL SW4 1. Einfache Anfragen

MIN oder MAX Bildung per B*Tree Index Hint

Vorlesung Datenbankmanagementsysteme

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Quelle: TU Dresden, Fakultät Informatik, Institut für Systemarchitektur, Professur für Datenbanken, Dr.-Ing. B. Keller

Transkript:

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