http://www.postgresql-support.de

Transaction Management

Die Verwaltung von Transaktionen gehört zu den Hauptaufgaben einer relationalen Datenbank. So mancher Hersteller verkauft die Fähigkeit, Transaktion mehr schlecht als recht verwalten zu können als Feature - dem ist aber nicht so. In aller Regel sind Transaktionen der Hauptgrund, eine relationale Datenbank überhaupt einzusetzen. Wenn Sie nur mal schnell einige Datensätze verwalten wollen, reicht in vielen Fällen auch eine Textdatei aus. Wenn Sie allerdings sicherstellen wollen, dass geschäftskritische Anwendungen funktionieren, werden Sie sehr schnell erkennen, dass Transaktionen ein absolutes Muss sind.

Um es noch einmal auf den Punkt zu bringen: Die Unterstützung für Transaktionen sind ein Muss und kein optionales Feature, das man marketingtechnisch ausschlachten sollte.

In aller Regel versteht man unter einer Transaktion sogenannten ACID Transaktionen. ACID steht für:

Unter 'Atomic' ('atomos' ist das griechische Wort für 'unteilbar') versteht man, dass eine Transaktion immer wie eine einzige Operation auszusehen hat. Auf SQL übersetzt bedeutet dass, dass mehrere INSERT Statements, die zu einer Transaktion zusammengefasst sind, immer entweder komplett oder gar nicht ausgeführt werden - es gibt also keine halben Transaktionen. Eine Transaktion funktioniert entweder komplett oder gar nicht.

Unter 'Consistency' versteht man, dass die Datenbank immer konsistent zu sein hat. Es darf also nicht passieren, dass der Benutzer einen Zustand vorfindet, der in sich nicht schlüssig ist (ein Datensatz 'könnte' existieren ist nicht zulässig).

'Isolation' bedeutet, dass Transaktionen voneinander abzugrenzen sind. Es muss also sichergestellt werden, dass es zu keinen Race Conditions kommen kann.

'Durable' besagt, dass abgeschlossene Transaktionen auch einen Crash überleben müssen. Ist eine Transaktion erst einmal abgeschlossen, so können die entsprechenden Daten nicht mehr verloren gehen. Auch diese Eigenschaft ist von essentieller Bedeutung, da es sonst unmöglich wäre, businesskritische Operationen durchzuführen.



Subsections
http://www.postgresql.at