PostgreSQL 2. Dezember 2010 E3A Übungsblatt Transaktionen 1. Warum kann eine Transaktion eine Datenbank in einem konsistenten Zustand halten. 2. Was bedeutet bei PostgreSQL autocommit ? 3. Überlege, welche Isolationsstufen eine Bank für den Geldtransfer verwendet und welche Stufe für ein Forum eingesetzt werden könnte. 4. Wo könnte eine Sperre auf Seitenebene eingesetzt werden? 5. Was könnte ein savepoint bedeuten? 6. Welche Punkte treffen zu, welche nicht? • In einer Transaktion kann jeder x-beliebige SQL-Befehl eingebaut werden. • Wenn eine Transaktion mehrere Queries beinhaltet, so muss mindestens einer davon erfolgreich durchlaufen, damit die Transaktion erfolgreich ist. • In der Praxis kommen sich nie zwei Transaktionen in die Quere. • Eine Transaktion kann entweder mit abort bzw. rollback abgebrochen und mit end bzw. commit bestätigt werden. 7. Was ist das Ergebnis folgender Transaktion? test=# select * from person; pid | name | titel | aid -----+------+-------+----1 | hans | Herr | 1 2 | sepp | | 1 3 | susi | Frau | 2 (3 Zeilen) test=# begin; BEGIN test=# savepoint s1; SAVEPOINT test=# update person set name = 'hansi' where name = 'hans'; UPDATE 1 test=# savepoint s2; SAVEPOINT test=# update person set name = 'susanne' where name = 'susi'; UPDATE 1 test=# rollback to s2; ROLLBACK test=# commit; COMMIT test=# 1