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!