Datenbanken: Relationales Modell und SQL. Dr. Matthias Uflacker, Stefan Klauck 23. April 2018

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

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Wiederholung VU Datenmodellierung

[ SQL] Wissen, das sich auszahlt

Relationen-Algebra. Prof. Dr. T. Kudraß 1

Wiederholung VU Datenmodellierung

2.5 Relationale Algebra

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

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

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

Datenbanken: Datenkompression. Dr. Matthias Uflacker, Stefan Klauck 2. Mai 2018

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

ACCESS SQL ACCESS SQL

Rückblick: Relationales Modell

SQL als Zugriffssprache

Abfragen (Queries, Subqueries)

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

Es geht also im die SQL Data Manipulation Language.

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

Garten - Daten Bank. - survival pack -

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Einführung in die Spezialisierungsrichtungen

Kap. 3 Relationenmodell mit relationaler Algebra

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

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

Wiederholung: Relationale Algebra

Übersicht der wichtigsten MySQL-Befehle

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Rückblick: Relationale Normalisierung

Diskussion: Personal (1)

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Relationale Algebra. Thomas Heimrich. Rel. Algebra. Grundlagen. Beispielrelationen. rel. Algebra. Definition der rel. Algebra.

Kapitel 3: Datenbanksysteme

Vorlesung Datenbanksysteme vom

Query Languages (QL) Relationale Abfragesprachen/Relational

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Das Relationale Modell

Wirtschaftsinformatik 7a: Datenbanken. Dozent: R. Witte

Datenbanksysteme I WS 17/18 HS-Übung. Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M.

Das relationale Modell (Teil 1)

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

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

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

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

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

SQL structured query language

4. Relationenalgebra. Einleitung. Selektion und Projektion Mengenoperatoren. Verbundoperationen (Join) Division Beispielanfragen

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

Verbunde (Joins) und mengentheoretische Operationen in SQL

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Verbunde (Joins) und mengentheoretische Operationen in SQL

IV. Datenbankmanagement

Relationale Anfragesprachen

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

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Einführung in die Informatik II

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

Am Campus Bockenheim, im Sozialzentrum/Neue Mensa Foyer. zwischen 10 Uhr und 16 Uhr Der Eintritt ist kostenfrei.

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

SQL Data Manipulation Language (DML) und Query Language (QL)

Relationale Datenbanksprachen

DATENBANKSYSTEME: SQL

Entity Relationship Modell

Wiederholung: Relationale Algebra

Abstraktionsschichten. Das Relationale Datenmodell

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

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

Garten -Daten Bank. Was ist das? Dr. Karsten Tolle PRG2 SS 2014

Relationale Datenbanken

SQL und MySQL. Kristian Köhntopp

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Grundlagen von Datenbanken

Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit

Einleitung 19. Teil I Einführung in Datenbanksysteme 25. Kapitel 1 Wozu Datenbanksysteme da sind 27

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

SQL - Datenbankdesign - Aufbau

Datenmanipulation in SQL (1): Subselect:

Visualisierung in Informatik und Naturwissenschaften

DB1. DB SQL-DQL 1 Mario Neugebauer

Oracle 10g Einführung

Oracle 10g Einführung

Datenbanksysteme I Relationale Algebra. Felix Naumann

Relationales Datenmodell Relationale Algebra

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

SQL: Weitere Funktionen

Vorlesung Wissensentdeckung in Datenbanken

Relationale Datenbanken

Transkript:

Datenbanken: Relationales Modell und SQL Dr. Matthias Uflacker, Stefan Klauck 23. April 2018

Vorlesungsinhalte/-aufbau Phase 1 Einführung zu Unternehmensanwendungen (2 Vorlesungen) Grundlagen von spaltenorientierten Hauptspeicherdatenbanken (4 Vorlesungen) Wöchentliche Übungsblätter Phase 2 Grundlagen des IT-gestützten Rechnungswesens und Planung (3 Vorlesungen) Programmiermodelle für Unternehmensanwendungen (1 Vorlesung) Zwei praktische Programmierübungen Klausur 2

Überblick Relationales Modell Geschichte und Motivation Relationale Datenbanken Relationale Algebra Erweiterungen Structured Query Language Zusammenfassung Übungsblatt 1 3

Literatur und Empfehlung Hector Garcia-Molina Database Systems Avi Silberschatz Database System Concepts http://db-book.com/ Felix Naumann Datenbanksysteme 1 4

Relationales Modell Vorher: enge Kopplung von Datenbankanfragen und physischer Repräsentation der Daten (wie sind Daten gespeichert) -> schlechte Wartbarkeit (insbesondere von Anwendungen) Kein Konzept welche Operationen/Funktionalität benötigt wird Ted Codd schlägt das Relationale Model vor A Relational Model of Data for Large Shared Data Banks (1970) Abstraktes Modell mit einfachen Datenstrukturen und high-level/abstrakten Operationen Implementierung und physische Umsetzung im Speicher sind nicht spezifiziert 5

Relationale Datenbanken Datenbank - organisierte Sammlung von Daten Datenbankmanagementsystem (DBMS) Datenbankverwaltungssoftware Relationale Datenbanken basieren auf dem relationalen Datenmodell 1. Struktur der Daten Hier als konzeptionelles Modell (im Gegensatz zur physischen Repräsentation) 2. Operationen auf den Daten Datenbankveränderungen Datenbankanfragen/Queries 3. Constraints ( Einschränkungen ) auf den Daten 6

Relationales Modell Konzeptionelles Modell Daten zwei-dimensionale Tabelle (Relation genannt) R D 1... D n mit D 1... D n := {(a 1,..., a n ) a 1 D 1... a n D n } R ist (im relationalen Modell üblicherweise) eine Menge (relationale Datenbanken speichern üblicherweise Multimengen) Attribut A i Name einer Spalte Schema R(A 1,..., A n ) Name der Relation und Menge der Attribute Tupel (a 1,..., a n ) Element (Zeile (außer Kopfzeile)) der Relation mit Werten a i Weitere Konzepte: Gleichheit, Relations-Instanz/-Beispiel, Schlüssel, Normalisierung, Datendomäne/ Datentypen, NULL (Wert ist unbekannt) 7

Relationales Modell Beispielrelation R First Name Last Name Country Year of Birth Paul Smith Australia 1986 Lena Jones USA 1990 Hanna Schulze Germany 1942 Hanna Schulze USA 2000 8

Relationale Algebra Operationen Relationale Algebra ist eine Anfragesprache für das relationale Modell und Basis für Umsetzung in der Praxis (Datenbanksystemen), d.h. theoretische Grundlage für relationale Datenbanken und SQL (Structured Query Language) Operationen: Benötigen eine oder mehrere Relationen als Eingabe und geben eine neue Relation aus Können zu komplexen Anfragen/Queries verkettet werden Klassen von traditionellen Operationen: Operationen, die Teile der Relation entfernen: Selektion und Projektion Operationen, die Tupel zweier Relationen verknüpfen: kartesisches Produkt und Join Umbenennung von Relationen und Attributen Mengenoperationen: Vereinigung, Schnitt, Differenz und Division 9

Relationale Algebra Operationen, die Teile der Relation entfernen Projektion π A1,..., An (R) erzeugt eine neue Relation mit einer Untermenge der Spalten von R In der relationalen Algebra von Mengen werden Duplikat-Tupel entfernt Selektion σ C (R) erzeugt eine neue Relation mit einer Untermenge der Tupel von R (die eine Bedingung C erfüllen) 10

Relationale Algebra Projektion R First Name Last Name Country Year of Birth Paul Smith Australia 1986 Lena Jones USA 1990 Hanna Schulze Germany 1942 Hanna Schulze USA 2000 π First Name, Last Name (R) First Name Paul Lena Hanna Last Name Smith Jones Schulze 11

Relationale Algebra Selektion R First Name Last Name Country Year of Birth Paul Smith Australia 1986 Lena Jones USA 1990 Hanna Schulze Germany 1942 Hanna Schulze USA 2000 σ Country= USA (R) First Name Last Name Country Year of Birth Lena Jones USA 1990 Hanna Schulze USA 2000 12

Relationale Algebra Operationen, die Tupel zweier Relationen verknüpfen Kartesische Produkt (Kreuzprodukt) R S ist die Menge aller Paare mit einen beliebigen ersten Element aus R und einem beliebigen zweiten Element aus S Das Schema der neuen Relation ist die Vereinigung der Schemata von R und S (Außnahme: R und S haben ein Attribut A gemeinsam -> Umbenennung zu R.A und S.A) Join verknüpft Tupel, die irgendwie zusammenpassen/übereinstimmen Hängende (dangling) Tuple: Tupel ohne Übereinstimmung Natürlicher Join R S : Übereinstimmung in allen gemeinsamen Attributen von R und S Theta-Join R θ S: Übereinstimmung basierend auf einer beliebigen Bedingung C Produkt von R und S + Filter mit Bedingung C Ergebnisschema wie beim Kreuzprodukt Semi-Join R S ist die Menge der Tupel in R, die eine Übereinstimmung mit S haben 13

Relationale Algebra Kreuzprodukt R First Name Last Name Country Year of Birth Paul Smith Australia 1986 Lena Jones USA 1990 Hanna Schulze Germany 1942 Hanna Schulze USA 2000 R S First Name Last Name R.Country Year of Birth S.Country Capital Paul Smith Australia 1986 Germany Berlin Paul Smith Australia 1986 USA Washington Lena Jones USA 1990 Germany Berlin Lena Jones USA 1990 USA Washington Hanna Schulze Germany 1942 Germany Berlin S Country Germany USA Berlin Capital Washington Hanna Schulze Germany 1942 USA Washington Hanna Schulze USA 2000 Germany Berlin Hanna Schulze USA 2000 USA Washington 14

Relationale Algebra Natürlicher Join R First Name Last Name Country Year of Birth Paul Smith Australia 1986 Lena Jones USA 1990 Hanna Schulze Germany 1942 R S First Name Last Name Country Year of Birth Capital Lena Jones USA 1990 Washington Hanna Schulze Germany 1942 Berlin Hanna Schulze USA 2000 Washington Hanna Schulze USA 2000 S Country Capital Germany USA Berlin Washington 15

Relationale Algebra Mengenoperationen Vorbedingung für Vereinigung, Schnitt und Differenz von R und S: R und S müssen das gleiche Schema (Attributnamen und Datentypen) haben Vereinigung R S ist die Menge der Elemente, die in R, S oder beiden Mengen sind Schnitt R S ist die Menge der Elemente, die in R und S sind Differenz R \ S ist die Menge der Elemente, die in R, aber nicht in S sind R \ S ist verschieden von S \ R Division R S (Übung 2) 16

Relationale Algebra Vereinigung R R S Country Capital Country Capital Norway Oslo Norway Oslo USA Washington USA Washington Poland Warsaw Poland Warsaw Germany Berlin S Country Capital Germany Berlin USA Washington 17

Relationale Algebra Schnitt R R S Country Capital Country Capital Norway Oslo USA Washington USA Washington Poland Warsaw S Country Capital Germany Berlin USA Washington 18

Relationale Algebra Differenz R R \ S Country Capital Country Capital Norway Oslo Norway Oslo USA Washington Poland Warsaw Poland Warsaw S S \ R Country Capital Country Capital Germany Berlin Germany Berlin USA Washington 19

Relationale Algebra Komplexe Ausdrücke Operationen können zu komplexen Ausdrücken (Anfragen) kombiniert werden Ausdrücke entsprechen immer Relationen Ausdrücke als geklammerter Ausdruck oder Baum darstellbar 20

Relationale Algebra Minimale relationale Algebra? Vereinigung, Schnitt, Differenz, Division, Projektion, Selektion, Kartesisches Produkt, natürlicher Join, Theta-Join, Semi-Join, Umbenennung 21

Relationale Algebra Minimale relationale Algebra! Vereinigung, Schnitt, Differenz, Division, Projektion, Selektion, Kartesisches Produkt, natürlicher Join, Theta-Join, Semi-Join, Umbenennung 22

Relationales Modell Was fehlt in der relationalen Algebra? Multimengen-Semantik (+ Duplikatentfernung) Aggregation (und Gruppierung) Sortierung Erweiterte Projektion Outer Join NULL 23

Relationales Modell Multimengen-Semantik Multimengen (erlauben Duplikate) Neue Definitionen für Operationen! Einige relationale Operationen sind für Multimengen effizienter (ohne Duplikatentfernung) Union Projektion Duplikatentfernung δ wandelt Multimenge in Menge um 24

Relationales Modell Aggregation Aggregationen fassen Werte einer Spalte zusammen Beispiele: SUM, AVG, MIN, MAX, COUNT Gruppierungen γ ermöglichen Aggregationen von Tupel-Gruppen, deren Werte in einer oder mehreren Spalten übereinstimmen γ A1,..., Am, AVG(Au), COUNT(Av), MIN(Aw), MAX(Ax), SUM(Ay) (R) 25

Relationales Modell Sortierung Sortierung τ verwandelt ungeordnete Datenstrukturen (z.b. Menge, Multimenge) in geordnete/sortierte (z.b. Liste) Nur nützlich als letzter Operator einer relationalen Query (und ihres logischen Anfrageplans), weil nachfolgende Operatoren die Liste zurück in eine Menge/Multimenge umwandeln Wichtig für physische Anfragepläne (spezifische Implementierungen von Operator können sortierte Eingaben benötigen) 26

Relationales Modell Erweiterte Projektion Neben Umbenennungen erlauben erweiterte Projektionen beliebige Ausdrücke Konstanten Arithmetische Operationen String-Operationen 27

Relationales Modell Outer Join Das Ergebnis des Outer Joins R S ist die Vereinigung des natürlichen Joins R S und aller Dangling Tupel von R und S; Dangling Tupel werden mit NULL-Werten aufgefüllt Full, Left, Right Outer Join Theta-Join- Versionen des Outer Joins arbeiten analog Inner Join ist ein Synonym des normalen Joins 28

SQL Die Datenbanksprache Structured Query Language unterstützt: Deklarative Anfragen für relationales Modell Datenbankveränderungen (Insert, Update, Delete) Datendefinitionen Schemadefinition und änderung Datendomäne Constraints Weitere Informationen: Indexe, physische Speicherung Syntax und Funktionalität kann sich von System zu System leicht unterscheiden 29

SQL Die Datenbanksprache Tabellendefinition und Datenbankveränderungen CREATE TABLE R(A 1 D 1,..., A n D n ) DROP TABLE R INSERT INTO R VALUES(a 1,..., a n ) DELETE FROM R 30

SQL Die Datenbanksprache Datenbankanfragen Basisform SELECT A 1,..., A j FROM R 1,..., R k WHERE P Auswertungs-/Lesereihenfolge 1. FROM... - angefragte Tabellen (entspricht dem kartesischen Produkt in der relationalen Algebra) 2. WHERE... - Filterkriterien (entspricht der Selektion in der relationalen Algebra) 3. SELECT... - auszugebene Attributwerte (entspricht der Projektion in der relationalen Algebra) 31

SQL Die Datenbanksprache Datenbankanfragen Aggregation und Sortierung SELECT A 1,..., A m, AVG(A u ), COUNT(A v ), MIN(A w ), MAX(A x ), SUM(A y ) FROM R WHERE P GROUP BY A 1,..., A m SELECT A 1,..., A m FROM R WHERE P ORDER BY A 1,..., A j 32

SQL Die Datenbanksprache Datenbankanfragen NULL und Dreiwertige Logik Drei Werte: wahr, falsch, unbekannt Jeder Vergleich mit NULL gibt unbekannt zurück 4 < NULL NULL <> NULL NULL = NULL 33

SQL Die Datenbanksprache Datenbankanfragen NULL und Dreiwertige Logik Dreiwertige Logik OR: unbekannt OR wahr = wahr unbekannt OR falsch = unbekannt unbekannt OR unbekannt = unbekannt AND: unbekannt AND wahr = unbekannt unbekannt AND falsch = falsch unbekannt AND unbekannt = unbekannt NOT: NOT unbekannt = unbekannt A IS NULL um Attribut auf NULL zu prüfen Ergebnis der WHERE-Klausel wird als falsch betrachtet, wenn es unbekannt ist Randbemerkung von Thomas Neumann: http://databasearchitects.blogspot.de/2017/02/reasoning-in-presence-of-nulls.html 34

Relationales Modell und SQL Zusammenfassung Relationales Modell ist ein konzeptionelles Modell, welches Daten als Tabellen abbildet Relationale Algebra definiert Operationen auf Relationen SQL ist die in der Praxis genutzte Anfragesprache, die auf der relationalen Algebra aufbaut (der Umfang von SQL geht über Queries hinaus) 35