Datenbanksysteme I WS 2015/16. Übungsblatt 12: Lösungsvorschlag



Ähnliche Dokumente
Übungsblatt 10: Lösungsvorschlag

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

Klausur zur Vorlesung Einführung in die Informatik: Systeme und Anwendungen

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

Aufgabe 1: Kanonische Überdeckung

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

3. Übungsblatt (Testatwoche: Mai 2010) Einführung in Datenbanksysteme Datenbanken für die Bioinformatik

Kapitel 5: Der SQL-Standard

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

2. Übungsblatt 3.0 VU Datenmodellierung

GROUP BY, HAVING und Sichten

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Semesterklausur Datenbanksysteme 1 SS 2015

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Wir haben folgende Ausprägung der Relation Studenten:

Kapitel 2: Einstieg in SQL

Übungen Teil 2: Normalisierung und ER-Modell. Dozent: Stefan Maihack Dipl. Ing. (FH)

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

SQL als Zugriffssprache

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

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

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

Grundlagen: Datenbanken WS 15/16

Kapitel 3: Datenbanksysteme

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

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

Kommunikation und Datenhaltung. Übungsblatt D1. (Relationale Algebra & SQL)

Datenbanken 1 Sommersemester 2014/

Diskussion: Personal (1)

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.

Wir haben folgende Ausprägung der Relation Studenten:

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

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnummer ein, und legen Sie Ihren Studierendenausweis

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

Wiederholung VU Datenmodellierung

Disclaimer. 1 Allgemeine Grundlagen (8 Punkte) (3 Punkte) (3 Punkte) (2 Punkte)... 2

Entity Relationship Modell

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

Kommunikation und Datenhaltung

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

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

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

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

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Wiederholung VU Datenmodellierung

Kapitel 3: Datenbanksysteme

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Kapitel 10: Relationale Anfragebearbeitung

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

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

Grundlagen Datenbanken Sommersemester 2008

Geoinformation Abbildung auf Tabellen

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Probeklausur mit Musterlösung

Wirtschaftsinformatik 2. Tutorium im WS 11/12

Datenbanksysteme Kapitel 5: SQL - Grundlagen

2. Übungsblatt 3.0 VU Datenmodellierung

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

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

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

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

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

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

SQL. Structured Query Language

Datenbanken und Informationssysteme Sommersemester 2012 Probeklausur

Prüfung Informatik für Ökonomen II. 14. Januar Teil 1: Datenbanktechnik Musterlösungen

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

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

Datenbanken Unit 3: Das relationale Modell

2. Übungsblatt 3.0 VU Datenmodellierung

Datenbanken Unit 3: Das relationale Modell

Relationaler Datenbankentwurf

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

5. Übungsblatt (Testatwoche: Mai 2010)

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

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 6. Lösung

Übung Datenbanken in der Praxis. Relationale Algebra

Datenmodelle und Datenbanken 2

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

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

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

Datenbanksysteme I, SS 2004

Rückblick: Relationale Normalisierung

1. Übungsblatt 3.0 VU Datenmodellierung

4.5 Anfragen mit Mengenoperatoren

1. Übungsblatt 3.0 VU Datenmodellierung

Vorlesung Datenbankmanagementsysteme

1 Informationsmodellierung mit dem Entity-Relationship-Modell

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

Transkript:

Ludwig-Maximilians-Universität München Institut für Informatik Prof. Dr. Christian Böhm Sebastian Goebl DATUM Datenbanksysteme I WS 2015/16 Übungsblatt 12: Lösungsvorschlag Abgabe bis ABGABE BEMERKUNG Aufgabe 12-1 E/R Modell In einer relationalen Datenbank sollen Informationen über die nächsten Olympischen Spiele 2012 in London gespeichert werden. Die einzelnen Wettkämpfe besitzen eine Wettkampfnummer, den Namen der Sportart, einen Termin und eine Wettkampfstätte. An jedem Wettkampf nehmen beliebig viele Sportler teil, die durch eine Startnummer identifiziert werden. Jeder Wettkampf wird von genau einem Schiedsrichter geleitet, der eine eindeutige Schiedsrichternummer besitzt. Es sollen die Nationen mit eindeutigem Kürzel und dem vollen Namen abgespeichert werden. Jede Person besitzt einen Namen und gehört zu einer Nation. (a) Entwerfen Sie zu diesem Zweck ein E/R-Modell. Bezeichnung Kürzel Nation gehört_zu gehört_zu Start Nr Name Sportler Schiedsrichter Schiri Nr Name nimmt_teil leitet Wettkampf Zeit Sportart WK Nr Ort 1

(b) Setzen Sie das vollständige E/R-Diagramm in ein entsprechendes relationales Datenbankschema um. Identifizieren Sie für jede Relation einen Primärschlüssel und unterstreichen Sie diesen. Achten Sie auf eine geeignete Modellierung der Relationships. Sie müssen keine SQL-DDL-Befehle angeben. Relation Sportler Wettkampf Nation Schiedsrichter nimmt teil Attribute (Schlüsselattribute unterstrichen) Name, Start-Nr, Nationkürzel WK-Nr, Sportart, Ort, Zeit, Schiri-Nr Bezeichnung, Kürzel Name, Schiri-Nr, Nationkürzel Start-Nr, WK-Nr 2

Aufgabe 12-2 Relationale Algebra Gegeben seien folgende Relationen R und S. R A B C D 1 2 3 4 4 3 2 1 1 2 2 5 4 3 3 4 1 2 2 4 4 3 3 5 S C D E 3 4 1 2 5 2 2 4 3 Geben Sie die Ergebnisrelationen folgender Ausdrücke der relationalen Algebra als Tabellen an. Wenn nötig, ist Duplikat-Elimination durchzuführen. (a) R π C,D (S) A B 1 2 (b) R π D (S) A B C 1 2 2 4 3 3 3

Aufgabe 12-3 Relationale Algebra und Kalküle Gegeben sei das folgende Relationenschema. Dabei sind die Schlüsselattribute jeweils unterstrichen. Produkt (PNR, Name, Gewicht, Farbe) Filiale (FNR, Name, Ort) Angestellter (PersNr, Name, Gehalt, FNR) Verkauf (PNR, PersNr, Datum, VKPreis) Geben Sie für die folgende verbal formulierten Anfrage einen äquivalenten Ausdruck in Relationaler Algebra und wahlweise in relationalem Tupel- oder Bereichskalkül an. Sie können an passender Stelle auch den Join- Operator benutzen. Bestimmen Sie Name und Verkaufspreis aller Produkte, die der Angestellte Peter Müller am 04.02.2011 verkauft hat. Rel. Algebra: Tupelkalkül: π Produkt.Name,VKPreis (Produkt Produkt.PNR=Verkauf.PNR (σ Name= Peter Müller (Angestellter) (σ Datum= 04.02.2011 (Verkauf)))) Schema(t) = (Name: String, VKPreis: Number) {t ( v V erkauf, a Angestellter, p P rodukt)(t.name = p.name t.v KP reis = v.v KP reis v.datum = 04.02.2011 v.p NR = p.p NR v.p ersnr = a.p ersnr a.name = P etermüller } oder: Bereichskalkül: {pname, vkpreis pnr, persnr, gewicht, farbe, gehalt, fnr : Angestellter(persnr, P eterm üller, gehalt, f nr) V erkauf(pnr, persnr, 04.02.2011, vkpreis) P rodukt(pnr, pname, gewicht, f arbe)} 4

Aufgabe 12-4 SQL Gegeben sei das folgende Relationenschema zur vergangenen Fußball-Weltmeisterschaft in Südafrika. Mannschaft (Land, Trainer) Spieler (SpielerNr, Name, Mannschaft, Geburtsdatum, Position) Austragungsort (Stadion, Plätze) Schiedsrichter (SID, Name, Nationalität) Spiel (SpielID, Tag, MannschaftA, MannschaftB, Austragungsort, Zuschauer) Tor (Spieler, Mannschaft, Spiel, Minute) leitet (Spiel, Schiedsrichter) Formulieren Sie die folgenden Anfragen in SQL. (a) Bestimmen Sie für jeden Austragungsort die Anzahl der Spiele, die dort stattgefunden haben. Hinweis: Austragungsorte in denen kein Spiel stattgefunden hat, werden so nicht ermittelt. SELECT Austragungsort, count(spielid) FROM Spiel GROUP BY Austragungsort; oder SELECT a.stadion, count(s.spielid) FROM Spiel s, Austragungsort a WHERE s.austragungsort = a.stadion GROUP BY a.stadion; Richtig ist: SELECT Austragungsort, count(spielid) FROM Spiel GROUP BY Austragungsort UNION SELECT Stadion, 0 FROM Austragungsort WHERE Stadion NOT IN (SELECT Austragungsort FROM Spiel); oder SELECT a.stadion, count(s.spielid) FROM Spiel s RIGHT JOIN Austragungsort a ON s.austragungsort = A.Stadion GROUP BY a.stadion; 5

(b) Bestimmen Sie die Anzahl der Spiele, die Spanien im Laufe der WM gespielt hat, in denen mindestens ein Tor fiel. SELECT count(*) FROM (SELECT s.spielid FROM Spiel s, Tor t WHERE s.spielid = t.spiel AND (s.mannschafta = Spanien OR s.mannschaftb = Spanien ) GROUP BY s.spielid HAVING count(t.minute) >= 1); Die SELECT-Anfrage ist zusätzlich notwendig, da eine Aggregation auf ein gruppiertes Attribut in der inneren SELECT-Klausel nicht sinngemäß ist: SELECT count(s.spielid) FROM Spiel s, Tor t WHERE s.spielid = t.spiel AND (s.mannschafta = Spanien OR s.mannschaftb = Spanien ) GROUP BY s.spielid HAVING count(t.minute) >= 1; gibt für jedes Spiel mit spanischer Beteiligung lediglich die Anzahl der gefallenen Tore aus. In der WHERE-Klausel wegen den Operatorbindungen auf die Klammerung achten! Die HAVING-Klausel ist hier für einen Wert von 1 optional, da ein einmaliges Auftreten bereits durch den Join der Relationen Spiel und Tor gewährleistet ist. Alternative: SELECT COUNT(*) FROM Spiel WHERE (MannschaftA = GER OR MannschaftB = GER ) AND EXISTS (SELECT * FROM Tor WHERE Tor.Spiel = Spiel.SpielID); 6

Aufgabe 12-5 Funktionale Abhängigkeiten Gegeben sei das Relationenschema R 1 (A, B, C, D, E, F ), sowie die Menge der zugehörigen nicht-trivialen funktionalen Abhängigkeiten: {A, B D B, C E B F } (a) Bestimmen Sie die Menge der Schlüsselkandidaten von R 1. Geben Sie dazu alle Schlüsselkandidaten an und erläutern Sie warum es keine weiteren Schlüsselkandidaten gibt. Lösungsvorschlag: A, B, C ist Schlüsselkandidat, weil eindeutig (ABC ABCDEF ) und minimal (weil AB C, AC B und BC A fehlen). Keine weiteren SKs, weil sich ABC nicht anders ableiten lassen. Bewertung: 1 Punkt für Schlüsselkandidat, 1 Punkt für die Begründung, 1 Punkt warum kein weiterer SKs Gegeben sei nun das Relationenschema R 2 (A, B, C, D, E, F ), sowie die Menge F der zugehörigen nicht-trivialen funktionalen Abhängigkeiten: {A, B, C D D E B, C D, E, F E F } (b) Bestimmen Sie die kanonische Überdeckung F C zu F. Linksreduktion Lösungsvorschlag: BC D wegen BC DEF alternativ: weil D AttrHuelle(F, {B, C}) = {B, C, D, E, F } D E B, C D, E, F E F Bewertung: 1 Punkt Rechtsreduktion BC D D E B, C D wegen BC D E F alternativ: weil {E, F } AttrHuelle(F (B, C D, E, F ) (B, C D), {B, C}) = {B, C, D, E, F } E F Entfernung von rechtsleeren Abhängigkeiten Nichts zu tun Zusammenfassen von Abhängigkeiten mit gleichen linken Seiten: BC D D E E F 7