Datenbankanwendung WS 2014/15 Prof. Dr.-Ing. Sebastian Michel MSc. Johannes Schildgen TU Kaiserslautern, FB Informatik – Lehrgebiet Informationssysteme http://wwwlgis.informatik.uni-kl.de Übungsblatt 6: Ausgabe 02.12.2014, Präsentation 11.12.2014 Aufgabe 1: Fensteranfragen (1 P.) Beantworten Sie unten stehende Anfragen mit SQL auf der folgenden Tabelle land 1 : CREATE TABLE land ( lnr varchar(4) not null primary key, name varchar(50), einwohner decimal(20,2), -- in Millionen flaeche INT, hauptstadt varchar(30), kontinent varchar(15)); 1. Geben Sie die Namen aller Länder zusammen mit deren Einwohnerzahlen aus. 2. Geben Sie die Namen aller Kontinente zusammen mit deren Gesamt-Einwohnerzahlen aus. 3. Geben Sie die Namen aller Länder zusammen mit deren Einwohnerzahlen aus sowie dem Namen des Kontinents, in dem das Land liegt, und wie viele Einwohner insgesamt in diesem Kontinent liegen. 4. Geben Sie die Namen aller Länder zusammen mit deren Einwohnerzahl aus sowie dem Namen des Kontinents, in dem das Land liegt, und den weltweiten Rang gemessen an der Einwohnerzahl. Sortieren Sie die Ausgabe nach dem Rang, sodass z.B. China mit Rang 1 ganz oben steht, weil es das Land mit weltweit den meisten Einwohnern ist. 5. Wie bei der vorherigen Aufgabe, bloß dass der Rang innerhalb des Kontinents angegeben wird. Nun stehen also Australien, Brasilien, Deutschland, die vereinigten Staaten, China und Nigeria jeweils mit Rang 1 ganz oben, weil sie die einwohnerstärksten Länder in ihrem Kontinent sind. 6. Was bedeuten die Werte in der vierten Spalte der folgenden Fensteranfrage? SELECT name, einwohner, flaeche, SUM(flaeche) OVER (ORDER BY einwohner) FROM land ORDER BY einwohner Aufgabe 2: Rekursion mit SQL (1 P.) Beantworten Sie unten stehende Anfrage mit einer rekursiven SQL-Anfrage auf der folgenden Tabelle fernbus 1 : CREATE TABLE fernbus ( busnr INT PRIMARY KEY, von VARCHAR(31), nach VARCHAR(31), dauer INT, -- in Minuten preis INT); -- in Euro Was ist der günstigste Weg, mit Fernbussen von Kaiserslautern nach Hamburg zu kommen? Die Fahrt soll insgesamt nicht länger als 1200 Minuten (20h) dauern. Wie oft und wo muss umgestiegen werden? 1 Auf der Vorlesungswebseite finden Sie das Tabellenschema samt Beispieldaten zum Download. 1 Datenbankanwendung WS 2014/15 Prof. Dr.-Ing. Sebastian Michel MSc. Johannes Schildgen TU Kaiserslautern, FB Informatik – Lehrgebiet Informationssysteme http://wwwlgis.informatik.uni-kl.de Übungsblatt 6: Ausgabe 02.12.2014, Präsentation 11.12.2014 Aufgabe 3: Relationenkalkül (1 P.) Die im folgenden dargestellten Relationen stellen die Liste der Folgen der Fernsehreihe Tatort sowie der Schauspieler dar. Folge Sender Ermittler Thiel und Boerne Ballauf und Schenk Odenthal und Kopper Stark Sender WDR WDR SWR RBB Folge 831 834 900 907 921 922 Titel Hinkebein Kinderland Zirkuskind Der Hammer Blackout Vielleicht spielt mit PID 101 102 103 104 104 103 Folge 900 900 907 907 831 831 Rolle Lena Odenthal Mario Kopper Frank Thiel Karl-Friedrich Boerne Karl-Friedrich Boerne Frank Thiel PID 101 102 103 104 105 Ermittler Thiel und Boerne Ballauf und Schenk Odenthal und Kopper Thiel und Boerne Odenthal und Kopper Stark Schauspieler Name Ulrike Folkerts Andreas Hoppe Axel Prahl Jan Josef Liefers Boris Aljinovic Fall 21 53 59 25 60 37 Geboren 1961-05-14 1960-06-01 1960-03-26 1964-08-08 1967-06-23 a) Formulieren Sie folgende Anfrage mit Hilfe von SQL: Welche Schauspieler haben in allen Tatort-Folgen mit den Ermittlern Thiel und Boerne mitgespielt? b) Formulieren Sie folgende Anfrage mit Hilfe der relationalen Algebra: Welche Schauspieler, die im Jahr 1960 oder früher geboren sind, spielten in einem Tatort des Senders SWR mit? c) Formulieren Sie folgende Anfrage mit Hilfe des relationalen Tupelkalküls: Welche Fernsehsender produzierten für jedes ihrer Ermittlerteams mindestens 25 Fälle? d) Formulieren Sie folgende Anfrage mit Hilfe der relationalen Domänenkalküls: In welcher Tatort-Folge hat mindestens ein Schauspieler mitgespielt, der älter als Jan Josef Liefers ist? Aufgabe 4: Relationenkalkül (0 P.) Formulieren Sie die Anfragen aus Aufgabe 3 jeweils auch in SQL, relationaler Algebra, dem relationalen Tupelkalkül sowie Domänenkalkül. 2