Übungsblatt 10 zur Vorlesung Datenbanksysteme I

Werbung
SS 2008
Übungsblatt 10
Christian-Albrechts-Universität Kiel
Institut für Informatik
Lehrstuhl Technologie der Informationssysteme
Prof. Dr. B. Thalheim
Dipl.-Inf. P. Schmidt, Dipl.-Inf. K. Jannaschk
Übungen zur Vorlesung Datenbanksysteme I
Übungsblatt 10
Aufgabe 1
Gegeben sei die Relation Direktf lug(Start, Ziel, Entf ernung).
a. Verwenden Sie die rekursiven Möglichkeiten von SQL:99 zur Formulierung einer Anfrage, die
alle Paare <Stadt1,Stadt2> findet. Beachten Sie, dass es zwischen 2 Städten keine Direktverbindung geben muss.
b. Formulieren Sie eine Anfrage, die den kürzesten Weg zwischen 2 Städten angibt.
Aufgabe 2
Gegeben seien die folgenden Schedules:
a. S1 = b1 , b2 , b3 , r1 (x), r2 (x), r1 (z), w1 (x), r2 (x), r3 (z), c1 , w3 (y), c2 , c3
b. S2 = b1 , r1 (x), b2 , w2 (y), r2 (x), b3 , r3 (y), w1 (x), w3 (x), c1 , c2 , c3
Prüfen Sie, ob die Schedules konflikt-serialisierbar sind. Falls ein Schedule konflikt-serialisierbar ist,
geben Sie zusätzlich einen konflikt-äquivalenten seriellen Schedule an.
Aufgabe 3 Simulieren Sie die Arbeit eines Schedulers für Transaktionen, der nach dem strikten
2-Phasen-Sperrprotokoll arbeitet. Als Eingabe erhalten Sie einen Strom von Operationen der Form
bi (Beginn der Transaktion i), ri (x) (Lesen des Objekts x durch die Transaktion i), wi (x) (Schreiben
des Objekts x durch Transaktion i), ci (Commit der Transaktion i) und ri (Rollback der Transaktion
i). Die Operation bi überführt die Transaktion i in den Zustand running. Die Operationen ci und
ri geben alle Sperren einer Transaktion frei und setzen den Zustand der Transaktion auf committed
bzw. aborted. Die Operation ri (x) setzt eine Lesesperre für Transaktion i auf x und liest den Wert
von x. Falls ri (x) keine Lesesperre setzen kann, wird die Transaktion i deaktiviert (Setzen des
Zustandes von Transaktion i auf delayed und Zurückstellen der Operationen der Transaktion), bis
das Setzen der Sperre möglich ist. Analog setzt wi (x) eine Schreibsperre für Transaktion i auf x
und schreibt den neuen Wert von x. Falls das Setzen der Schreibsperre nicht möglich ist, wird
Transaktion i deaktiviert. Die Arbeit des Schedulers ist getan, wenn alle Transaktionen in einem
der Zustände committed oder aborted sind.
Geben Sie tabellarisch den Zustand des Schedulers (vorhandene Sperren, Zustand der Transaktionen) nach jeder der folgenden Operationen an:
Zeitpunkt
Operation
1
b1
2
r1 (x)
3
b2
4
r2 (y)
5
b3
6
r3 (z)
7
w1 (z)
8
b4
9
w4 (y)
10
w3 (x)
11
c2
12
c4
Welche Operation muss der Scheduler zum Zeitpunkt 13 ausführen?
Wie könnte der Scheduler eine solche Situation vermeiden?
Bitte geben Sie bei Ihrer Abgabe Ihre Übungsgruppe an!
Abgabe bis Donnerstag, den 3.7.2008 12 Uhr im Schrein Eingang Herrmann-Rodewald-Str. 3.
Viel Erfolg!
Herunterladen