Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: [email protected] Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181–2517 Email: [email protected] Transaktionssysteme Sommersemester 2005 5. Übungsblatt 18. Mai 2005 Aufgabe 1 Schreiben Sie ein Programm, das überprüft, ob eine Historie folgende Eigenschaften erfüllt: • rücksetzbar (RC). • vermeidet kaskadierendes Rücksetzen (ACA). • strikt. Testen Sie Ihr Programm. Lösung siehe Code. Aufgabe 2 Aufgabe 2 a) Warum hilft Serialisierbarkeit, die Anomalien von Blatt 2 zu vermeiden? Welche Anomalien können bei serialisierbaren Historien nicht auftreten? Lösung SR • Non-repeatable read und lost update können nicht in serialisierbaren Historien auftreten. • Dirty Reads in abgeschlossener Projektion unproblematisch. Aborts und Dirty Reads unproblematisch, wenn Historie rücksetzbar ist. Aufgabe 2 b) 1 Erläutern Sie, welche Auswirkungen die Einhaltung der Eigenschaften RC, ACA und ST aus der Vorlesung auf die Recovery haben. Begründen Sie Ihre Meinung. Lösung RC gewährleistet Korrektheit von Recovery • w1 [x]r2 [x]w2 [y]c2 ?: Problem bei a1 , Glück bei c1 • w1 [x]r2 [x]w2 [y]c2 ?: OK, bei serialisierbarer Historie. ACA kein Lesen von geänderten Daten • klar, nach Definition • bessere Effizienz durch Vermeidung von kaskadierenden Aborts ST ermöglicht physisches Logging (Before/After-Images) • Die Bedingungen von Striktheit stellen sicher, daß Änderungsoperationen nur auf Daten arbeiten, die comittet sind. Daher kann das Before-Image als Zustand vor Ausführung der Änderungsoperation verwendet werden. • Beispiel für strikte Historie und sei x = 1: w1 [x = 2]c1 w2 [x = 3]a2 mit before-images x = 1 und x = 2. • Beispiel für nicht strikte Historie und sei x = 1: w1 [x = 2]w2 [x = 3]c1 a2 mit before-images x = 1 und x = 1. • Im ersten Fall würde das korrekte Before-Image (x = 2) beim Undo verwendet. Im zweiten Fall würde das falsche Before-Image (x = 1 statt x = 2) beim Undo verwendet. 2