Technische Universität Braunschweig Institut für Informationssysteme http://www.ifis.cs.tu-bs.de Christoph Lofi, Jan-Christoph Kalo SQL-Lab – Aufgabenblatt 2 – Relationales Schema (Abgabe bis zum 08.12.2014, 18:00 Uhr im Briefkasten am Institut) Aufgabe 1 Integration: Im Zuge der Razzien bei xkino.to wurden auch einige Copyright-Verletzungen bei NETTUBE gefunden. NETTUBE musste deshalb vor kurzem sein Angebot vom Markt nehmen. Um die Kaution für seine Gefängnisstrafe zu bezahlen, hat der ehemalige Eigentümer und Geschäftsführer von NETTUBE das Unternehmen so schnell wie möglich an die Konkurrenz verkauft. Der neue Besitzer möchte jetzt gerne sein eigenes Filmangebot für die verbliebenen NETTUBE Kunden zur Verfügung stellen. Um dies zu ermöglichen soll ein Teil seiner Datenbank (siehe unten) in das vorhandene NETTUBE Modell integriert werden, damit die vorhandenen Filmdaten ohne große Probleme bei NETTUBE eingepflegt werden können. Aufgaben: Um eine sinnvolle Integration durchführen zu können, sollten sie ein korrektes und vollständiges konzeptionelles Schema von Aufgabenblatt 1 erstellen. Dafür korrigieren Sie zuerst das von Ihnen erstellte Schema mit Hilfe des Feedbacks aus der Übung. In diesem korrigierten Schema sollen weiterhin alle Anforderungen von Aufgabenblatt 1 erfüllt bleiben. Bitte legen Sie das korrigierte Schema dieser Abgabe bei. Vergleichen Sie das von Ihnen korrigierte Diagramm mit dem Diagramm im Anhang. Listen Sie alle Konflikte auf, die zwischen ihrem Diagramm und dem Diagramm im Anhang existieren. Schlagen Sie außerdem zu jedem Konflikt eine Lösung vor, um den Konflikt zu beheben. Integrieren Sie das von Ihnen korrigierte Diagramm mit dem Diagramm im Anhang. Das Datenmodell im Anhang darf nicht verändert werden – Attribute dürfen nicht umbenannt oder entfernt werden. Erweiterungen sind zulässig. Integration wurde ausführlich in der Vorlesung Relationale Datenbanken 1 behandelt (http://www.ifis.cs.tu-bs.de/webfm_send/1641). Dokumentieren Sie auch hier alle nicht-trivialen Designentscheidungen. Das integrierte Diagramm soll wie in der vorherigen Aufgabe in Chen ER Notation erstellt werden. Bezüglich Lesbarkeit, Übersichtlichkeit, Verständlichkeit, etc. gelten dieselben Vorgaben wie in der vorherigen Aufgabe. Aufgabe 2 Relationales Modell: Das von Ihnen integrierte Diagramm aus Aufgabe 1 soll in ein Relationales Modell übersetzt werden. Für diese Aufgabe kann unterstützend eine Webapplikation benutzt werden, mit der Relationen erstellt werden können und anschließend Anfragen in Relationaler Algebra auf diese Relationen ausgeführt werden können. Die Applikation ist unter der Adresse http://is64.idb.cs.tu-bs.de:9002 erreichbar. Die Aufgaben sind allerdings auch ohne diese Applikation lösbar. Für einen Login wenden Sie sich bitte an Ihren Tutorienleiter. Die Applikation wurde mit Firefox und Chrome getestet. Im Internet Explorer funktioniert sie nicht. Für die Benutzung solltet ihr außerdem JavaScript SQL Lab – WiSe 14/15 Institut für Informationssysteme – TU Braunschweig – http://www.ifis.cs.tu-bs.de Technische Universität Braunschweig Institut für Informationssysteme http://www.ifis.cs.tu-bs.de Christoph Lofi, Jan-Christoph Kalo aktiviert haben. Eine kurze Einweisung in das Programm ist auf der Webseite dieses Praktikums zu finden. Aufgaben: Übersetzen Sie nun Ihr integriertes Diagramm in ein Relationales Datenbankschema. Als Notation reicht eine einfache Liste von Relationsschemata gemäß der Vorlesung (siehe http://www.ifis.cs.tu-bs.de/webfm_send/1631)aus. Primärschlüssel und Fremdschlüsselbeziehungen sollen dabei annotiert werden. Domänen müssen nicht zwingend annotiert werden. Definieren Sie eine Extension des in Aufgabe 2a erstellten Relationalen Datenbankschemas. o o o o o 10 Filme 10 Serien 10 Schauspieler 2 Regisseure 2 Autoren Aufgabe 3 Relationale Algebra: Erstellen Sie außerdem Ausdrücke in Relationaler Algebra für das Schema im Anhang. Hierbei kann es hilfreich sein den Relationale Algebra Parser zu verwenden. (Relationale Algebra wird am 27.11.2014 in der Relationale Datenbanken 1 Vorlesung behandelt.) 1. Die Namen und Produktionsjahre der Filme, die vor 2004 produziert wurden. 2. Die Namen der SchauspielerInnen, die im 3. Mai 1969 geboren wurden und die Serienepisoden in de3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. nen sie mitgespielt haben. Die Namen der Filme in denen Matt Damon und Leonardo DiCaprio zusammen gespielt haben. Die Namen der Personen, die an Departed beteiligt waren. Eine Liste aller Schauspieler mit der Anzahl der Filme in denen sie als Schauspieler beteiligt waren. Die Anzahl der Parodien des Films Der Pate. Die Namen der SchauspielerInnen, die in dem Film Gangs of New York mitgespielt haben. Die Anzahl der Filme, in denen Martin Scorsese Regie geführt hat. Die Namen aller Schauspieler, die nie mit Kevin Bacon in einem Film gespielt haben. Welche Personen spielen in keinem Film mit? Die Namen der SchauspielerInnen die in weniger als 3 Filmen mitgespielt haben Welche SchauspielerInnen haben in den meisten Filmen mitgespielt? Wie viele Filme waren das? Die Titel aller Videos in denen überdurchschnittlich viele Schauspieler beteiligt waren. Die Namen aller Personen, die in mindestens zwei Filmen sowohl RegisseurIn als auch SchauspielerIn waren. Die durchschnittliche Anzahl von SchauspielerInnen, die zusammen mit Robert De Niro in einem Film gespielt haben? Die Videos, die selbst Nachfolger mindestens eines Videos sind, jedoch selbst keine Nachfolger haben. Die Titel von Filmen, die der Nachfolger einer Parodie sind. Die Namen aller SchauspielerInnen, die in mindestens 10 Filmen (nicht Serien) seit 2004 mitgespielt haben und die Anzahl der Serien in denen sie mitgespielt haben. Die Drehbuchautoren, die für einen Film des Genres Action gearbeitet haben, der nach 2004 erschienen ist und an dem überdurchschnittlich viele Schauspieler beteiligt waren. SQL Lab – WiSe 14/15 Institut für Informationssysteme – TU Braunschweig – http://www.ifis.cs.tu-bs.de Technische Universität Braunschweig Institut für Informationssysteme http://www.ifis.cs.tu-bs.de Christoph Lofi, Jan-Christoph Kalo Anhang: Ein Video kann z.B. eine Parodie oder ein Nachhfolger anderer Videos sein. Art Bezieht sich auf Genre Name (0,*) Zum Beispiel Serienepisode, Film, Musikvideo. Kein Livestream (0,*) hat id (0,3) Video (0,*) (1,1) Produktionsjahr id hat (0,*) Typ Name (0,*) Name id Arbeitet in id (0,*) (0,*) Person Name Zum Beispiel Schauspieler, Regisseur oder Autor Aufgabe Geburtsdatum Name Ein Video wird eindeutig durch seine ID identifiziert. Jedes Video hat außerdem einen Namen und ein Produktionsjahr. Außerdem kann jedes Video sich auf beliebig viele andere Videos beziehen und beliebig viele andere Videos können sich auf ein Video beziehen. Die Art der Bezieht sich auf Relation ist zum Beispiel Parodie oder Nachfolger. So kann ein Video zum Beispiel Nachfolger von anderen Videos sein oder selbst Nachfolger haben. Jedes Video kann bis zu drei Genres haben. Außerdem wird zu jedem Video genau ein Typ gespeichert. Dieser Typ kann zum Beispiel Film oder Serienepisode sein. Allerdings auch ein beliebiger anderer Typ, wie zum Beispiel Musikvideo. Livestreams werden hier allerdings nicht gespeichert. Die Mitwirkenden der Videos werden als Personen mit ihren Namen und Geburtsdaten gespeichert. Der Entitätstyp Aufgabe speichert die Rolle, die Mitwirkende in Videos haben können. In der Relation Arbeitet in wird gespeichert welche Personen mit welcher Aufgabe/welchen Aufgaben in einem Film mitgewirkt haben. SQL Lab – WiSe 14/15 Institut für Informationssysteme – TU Braunschweig – http://www.ifis.cs.tu-bs.de