• Keine Ergebnisse gefunden

q Relational Databases 1 Aufgabenblatt 9: SQL 2

N/A
N/A
Protected

Academic year: 2021

Aktie "q Relational Databases 1 Aufgabenblatt 9: SQL 2"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

q Relational Databases 1 Aufgabenblatt 9: SQL 2

(Abgabe bis Donnerstag, 21.01.2021, 15:00 Uhr)

Um die Studienleistung für die Vorlesung zu bestehen, benötigen Sie mindestens 50% der über das Semester erreichbaren Punkte in den Übungsaufgaben. Um das Modul RDB1 zu bestehen, müssen Sie die Studienleistung erbringen und die Klausur bestehen. Die Übungsaufgaben müssen in Gruppen zu je zwei Studierenden gelöst und wöchentlich bis Donnerstag vor Beginn der Vorlesung als PDF-Datei an die Mail-Adresse des für Ihre Gruppe zuständigen Hiwi ge- schickt werden. Die Mail-Adresse finden Sie auf der Webseite der Vorlesung. Vergessen Sie nicht, Ihren Namen, sowie Ihre Matrikel- und Übungsgruppennummer auf die Lösung zu schreiben.

Wird eine der beiden Informationen vergessen, wird die Lösung automatisch mit 0 Punkten bewer- tet. Lösungen werden in deutscher und englischer Sprache akzeptiert. Verwenden Sie stets Ihre eigenen Worte!

Bitte denken Sie unbedingt daran alle wichtigen Informationen (Name, Gruppennum- mer UND Matrikelnummer) direkt auf die Abgabe zu schreiben. Sonst müssen wir die Abgabe leider mit 0 Punkten bewerten.

Aufgabe 9.1 DDL (6 Punkte)

Gegeben ist das folgende relationale Model:

Film(id, titel, jahr)

Person(id, name, geschlecht, geburtstag) Genre(name, beschreibung)

Spielt_In(person → Person, film → Film, rolle) Führt_Regie(person → Person, film → Film) Review(person → Person, film → Film, sterne) Hat_Genre(film → Film, genre → Genre)

Formulieren Sie alle notwendigen DDL-Ausdrücke um ein Datenbankschema für dieses Modell zu er- stellen.

Beachten Sie dabei die folgenden Anmerkungen:

Datumsangaben werden im Format JJJJMMTT abgespeichert

In einem Review können zwischen 1 und 5 Sterne vergeben werden

(2)

Aufgabe 9.2 Anfragen Übersetzen (8 Punkte)

Übersetzen Sie die folgenden Anfragen an das Schema aus Aufgabe 9.1, die in relationaler Algebra (a), TRC (b) und DRC (c) formuliert sind, in SQL Anfragen.

a) RF = ρRF(pid,fid,jahr) πPerson.id,Film.id,jahr ((Film ⋈id=film Führt_Regie) ⋈person=Person.id Person)

SF = ρSF(pid,fid,jahr) πPerson.id,Film.id,jahr (((σsterne=𝔉min(sterne)(Film ⋈id=film Review))id=Spielt_In.film

Spielt_In) ⋈person=Person.id Person)

πRF.pidRF.jahr=SF.jahr (RF ⋈RF.pid=SF.pid SF))

b) {r.id, f.jahr | Person(r) ⋀ Film(f) ⋀

∃fr(Führt_Regie(fr) ⋀ fr.person = r.id ⋀ fr.film = f.id ⋀

∀f‘, fr‘((Film(f‘) ⋀ f‘.jahr = f.jahr ⋀ Führt_Regie(fr‘) ⋀ fr‘.person = r.id ⋀ fr‘.film = f‘.id) →

¬∃r(Review(r) ⋀ r.film = f‘.id ⋀ r.sterne < 3)))}

c) {sid, rid, sterne | ∃sname, sges, sgeb, rname, rges, rgeb, fid, ft, fj, pid, pges, pgeb, r(

Person(sid, sname, sges, sgeb) ⋀ Person(rid, rname, rges, rgeb) ⋀ Film(fid, ft, fj) ⋀ Spielt_In(sid, fid, r) ⋀ Führt_Regie(rid, fid) ⋀ Person(pid, ‘John Doe’, pges, pgeb) ⋀ Review(pid, fid, sterne) ⋀

∀fid‘, ft‘, fj‘, r‘((Film(fid‘, ft‘, fj‘) ⋀ Spielt_In(sid, fid‘, r‘) ⋀ Führt_Regie(rid, fid‘)) → Review(pid, fid‘, sterne)))}

Aufgabe 9.3 DDL/DML (11 Punkte)

Gegeben ist das folgende relationale Modell:

Tierpfleger(id, name, geschlecht, schulung) Tier(tid, name, art, alter, pflegehinweis) Pflegt(tp → Tierpfleger, t → Tier) Anmerkungen

Die Schulung eines Tierpflegers ist entweder Grundausbildung, Raubtierpflege oder Taucher

Das Alter eines Tieres ist eine positive natürliche Zahl

Ein Tier mit dem Pflegehinweis Raubtier darf nur von Tierpflegern gepflegt werden, die eine Schulung zur Raubtierpflege absolviert haben

1. Überführen Sie das obige Schema in DDL. Begründen Sie falls einzelne Punkte nicht mit den bis- her aus der Vorlesung bekannten Mitteln umgesetzt werden können.

2. Wir wollen die leeren Tabellen mit ein paar Daten füllen. Fügen Sie alle Personen aus der Daten- bank aus Aufgabe 9.1 mit ihrer ID, sowie ihrem Namen und Geschlecht als Tierpfleger hinzu. Als Schulung soll Grundausbildung angegeben werden.

3. Fügen Sie eine neue Spalte zur Relation Tierpfleger hinzu, in der das Datum (im Format JJJJMMTT) der Anstellung des jeweiligen Pflegers gespeichert wird.

(3)

Nehmen Sie jetzt an, dass die Datenbank um die folgenden Relationen ergänzt wurde:

Gehege(gehegenr, flaeche, typ)

Unterbringung(tid → Tier, gnr → Gehege)

Dabei ist der Typ eines Geheges entweder Freigehege, Tropenhaus, Vogelhaus oder Aquarium.

4. Ändern Sie die Schulung aller Tierpfleger, die ein Tier pflegen, welches in einem Aquarium unter- gebracht ist, zu Taucher.

5. Fügen Sie der Datenbank die beiden Löwen Simba (mit der ID 148) und Nala (mit der ID 149) hinzu. Simba ist 4 Jahre alt und Nala ist 3 Jahre alt. Beide Löwen sollen natürlich außerdem den Pflegehinweis Raubtier erhalten.

6. Ergänzen Sie folgende Informationen zur Datenbank:

Jeder Tierpfleger, der nach 2019 eingestellt wurde, soll für die Pflege aller im Gehege mit der Ge- hegenummer 84 untergebrachten Tiere verantwortlich sein.

7. Entfernen Sie den Tierpfleger mit dem Namen ‚Max Mustermann‘.

Referenzen

ÄHNLICHE DOKUMENTE

Um die Studienleistung für die Vorlesung zu bestehen, benötigen Sie mindestens 50% der über das Semester erreichbaren Punkte in den Übungsaufgaben.. Um das Modul RDB1 zu bestehen,

(1 Punkt) Nur Mitarbeiter (id, name, bezahlung, rang) vom Rang 3 oder höher ent- hält, die eine Bezahlung von 100.000€ oder mehr bekommen (hier soll die View aus der

i) Geben Sie für jedes Modul den Vornamen, Nachnamen und die Fachrichtung des Pro- fessors aus, welcher die meisten Kurse in diesem Modul gegeben hat. j) Wir suchen für jedes Jahr

• A transaction T2 creates a new account (Kto-Nr: 180; Balance: 750) and updates the Sum of the corresponding office in the investment table?. Show a schedule where

o Beim Löschen eines Projekts sollen auch alle entsprechenden „Angestellter arbeitet an Projekt“ Tupel, sowie alle Tickets zum Projekt gelöscht werden. o Beim Löschen eines

Zuletzt soll nun eine Sicht (View) erstellt werden, in welcher für jeden Mitarbeiter die Anzahl der Aufgaben welche ihm zugewiesen wurden angezeigt werden sollen. Aufgabe: Geben

a) Explain the differences between an entity and an entity type with an example (2 Points) b) Explain what a derived attribute is and provide an example..

Consider the following schema of a network of authors of scientific research papers Author (id, name, numberOfPublications).. Collaborator (id1 → Author, id2 → Author) Cites (id1