Informatik für Ökonomen II Transaktionsverwaltung Prof. Dr. Carl-Christian Kanne Thursday, November 20, 2008 1 Transaktionsverwaltung 1. Lese den Kontostand von A in die Variable a: read(A,a); 2. Reduziere den Kontostand um 50.- Euro: a:= a – 50; 3. Schreibe den neuen Kontostand in die Datenbasis: write(A,a); 4. Lese den Kontostand von B in die Variable b: read(B,b); 5. Erhöhe den Kontostand um 50,- Euro: b := b + 50; 6. Schreibe den neuen Kontostand in die Datenbasis: write(B, b); Thursday, November 20, 2008 2 Transaktionen • Gruppierung von zusammengehörigen Datenbankoperationen • Transaktionsgrenzen durch Anwendung festgelegt • Operationen • • • begin commit: Transaktion festschreiben abort: Transaktion rückgängig machen Thursday, November 20, 2008 3 Transaktionseigenschaften • Atomicity • Änderungen einer TA erfolgen “ganz oder gar nicht” • Consistency • ACID TA ist Transition zwischen konsistenten Zuständen • Isolation • Jede Transaktion hat DB “für sich allein” • Durability • Erfolgreiche Transaktionen gehen nie verloren Thursday, November 20, 2008 4 Sicherungspunkte • Weitere Operationen auf Transaktionsebene • • define savepoint: Abschnitt markieren backup transaction: Bis zum markierten Abschnitt rückgängig machen • Transaktion wird nicht beendet! Thursday, November 20, 2008 5 Systemfehler Absturz T1 T2 t1 t2 t3 Zeitachse Transaktionsbeginn und –ende relativ zu einem Systemabsturz Thursday, November 20, 2008 6 Transaktionen in SQL • commit [work] • Kann auch scheitern (ergibt Fehlercode + abort) • rollback [work] • durch Anwendung veranlasster Abort • immer möglich Thursday, November 20, 2008 7 Beispiel insert into Vorlesungen values (5275, `Kernphysik`, 3, 2141); insert into Professoren values (2141, `Meitner`, `C4`, 205); commit work Thursday, November 20, 2008 8