Datenbanksysteme I - Informatik

Werbung
Universität Augsburg, Institut für Informatik
Prof. Dr. W. Kießling
Dr. A. Huhn, M. Endres, T. Preisinger
WS 2007/2008
14. Dez. 2007
Übungsblatt 9
Datenbanksysteme I
Aufgabe 1: Geschwister
Betrachten Sie die folgende Relation, die einen Ausschnitt des Stammbaums der griechischen Götter und Helden zeigt.
KindEltern
Vater
Zeus
Zeus
Kronos
Zeus
Koios
Atlas
Kronos
Kronos
Mutter
Leto
Leto
Rheia
Maia
Phoebe
Pleone
Rheia
Rheia
Kind
Apollon
Artemis
Hades
Hermes
Leto
Maia
Poseidon
Zeus
Formulieren Sie nachstehende Anfragen in SQL:
a) Erstellen Sie obigen Relation auf der Oracledatenbank.
b) Bestimmen Sie alle Geschwisterpaare.
c) Finden Sie die Nachfahren von Kronos bis zur 2. Generation, d.h. die Enkel.
d) Bestimmen Sie alle Nachfahren von Kronos.
Aufgabe 2: Algebraische Queryoptimierung
An das Informationssystem der Universitätsverwaltung wird folgende Anfrage gestellt:
SELECT s.MatrNr, s.Name
FROM Vorlesungen v, prüfen p, Studenten s, hören h
WHERE v.VorlNr = p.VorlNr
AND p.MatrNr = s.MatrNr
AND s.MatrNr = h.MatrNr
AND h.VorlNr = p.VorlNr
AND v.Titel = ’Ethik’
AND p.Note < 3.0;
a) Beschreiben Sie in natürlicher Sprache das Ergebnis der Anfrage.
b) Geben Sie die kanonische Übersetzung dieser Anfrage in Relationaler Algebra an. Verwenden Sie zur Darstellung
des relationalen Ausdrucks die Baumdarstellung.
c) Optimieren Sie Ihren relationalen Algebraausdruck. Dokumentieren Sie Ihre Schritte bei der Optimierung.
1
Aufgabe 3: SQL (Klausuraufgabe WS 05/06)
Gegeben sei eine Basketball-Datenbank mit der Relation Dallas:
Dallas
NAME
Christie
Terry
Armstrong
Dampier
Daniels
Diop
Harris
Nowitzki
..
.
POSITION
Forward
Guard
Guard
Center
Guard
Center
Guard
Forward
..
.
GEWICHT
195
171
182
266
202
282
186
246
..
.
LEBENSALTER
35
28
37
30
24
23
22
28
..
.
SPIELE
815
485
649
558
118
195
78
524
..
.
GEHALT
4500000
7500000
3000000
7700000
5000000
2000000
3000000
12000000
..
.
Formulieren Sie folgende Aufgaben in SQL:
a) Ermitteln Sie die Namen aller Spieler, deren Lebensalter 30 nicht übersteigt und die mehr als 2 Millionen verdienen.
b) Das Gewicht der Spieler ist in amerikanischen Pfund angegeben. Ändern Sie die Werte in der Datenbank so, dass
sie als Kilogramm gespeichert sind. Hinweis: 1 Pfund entspricht 0,45 Kilogramm.
c) Journalisten sollen keinen Zugriff auf das Gehalt der Spieler haben. Realisieren Sie diese Aufgabe geeignet. Stellen
Sie auch sicher, dass die Journalisten keine Änderungen durchführen können.
d) Stellen Sie auf geeignete Art und Weise sicher, dass keine Spieler hinzugefügt werden dürfen, wenn dadurch die
Summe aller Gehälter 55 Millionen überschreiten würde.
e) Gesucht ist für jede der drei Positionen ”Forward”, ”Guard” und ”Center” jeweils der Spieler mit den meisten
Spielen (Ausgabe: Name, Spiele).
f) Geben Sie eine geordnete Liste aller Spieler aus. Der Spieler mit dem höchsten Gehalt bekommt den Rang 1, der
mit dem zweithöchsten Rang 2, usw. Die Ausgabe sollte wie folgt aussehen:
Name
Nowitzki
Dampier
..
.
Gehalt
12000000
7700000
..
.
Rang
1
2
..
.
Stellen Sie sicher, dass auch der Rang ausgegeben wird.
g) Es gibt eine identisch aufgebaute Relation für die Spieler von Houston. Dallas möchte einen Spieler kaufen. Gesucht sind die Spieler (Name) von Houston, die jünger als 30 Jahre sind. Außerdem sollen die gesuchten Spieler
mehr Spiele haben als die durchschnittliche Spielanzahl aller Spieler von Dallas. Das Gehalt des gesuchten Spielers
soll zusammen mit dem Gesamtgehalt aller Spieler von Dallas nicht das Budget von 55 Millionen überschreiten.
2
Herunterladen