Übung zu Transaktionen

Werbung
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
Herunterladen