Home » Tutorials » Datenbanken » ZEOS Library – Einsatz mit Delphi und Firebird

ZEOS Library – Einsatz mit Delphi und Firebird

Basiswissen: Transaktionen

Bevor es richtig los geht noch ein wenig Basiswissen zum Thema „Transaktionen“. Dieses Wissen ist notwendig, um zu verstehen, wie die TZConnection-Komponente intern arbeitet und wie man mit ihr arbeitet.
Generell gilt: Auf SQL Datenbanken kann in der Regel nur im Kontext einer laufenden Transaktion zugegriffen werden. Eine Transaktion muss dabei folgende vier Eigenschaften aufweisen. Man spricht hier auch von der ACID-Eigenschaft einer Transaktion.

Atomicity (Unteilbarkeit)

Alle Aktionen auf der Datenbank müssen erfolgreich durchgeführt werden. Tritt nur ein Fehler auf, dann muss der ursprüngliche Zustand der Datenbank wieder hergestellt werden. Es gilt das Prinzip „Ganz oder gar nicht“.

Consitency (Konsistenzerhaltung)

Eine Transaktion überführt die Datenbank von einem konsistenten Zustand in einen anderen konsistenten Zustand. Wird ein Fehler festgestellt, wird die Datenbank wieder in den Ausgangszustand versetzt.

Isolation (Abschottung)

Eine Transaktion muss vom Server so behandelt werden, als wäre sie die Einzige. Das bedeutet, sie muss unabhängig von den anderen Transaktionen laufen. Ein Benutzer darf nichts von Änderungen anderer Benutzer mitbekommen.

Durability (Dauerhaftigkeit)

Änderungen im Datenbestand einer Datenbank, die durch SQL-Statements bewirkt werden, welche zwischen dem Start einer Transaktion und einem COMMIT liegen, müssen im Datenbestand unwiederruflich festgeschrieben werden.
Transaktionen kapseln aufeinanderfolgende Zugriffe auf eine Datenbank. Diese Zugriffe können lesender (SELECT) oder schreibender (INSERT, UPDATE, DELTE) Natur sein oder die Datenbankstruktur verändern. Transaktionen werden durch COMMIT oder ROLLBACK beendet. Dabei bestätigt COMMIT alle durchgeführten Änderungen an den Datenbankdaten seit Start der Transaktion. ROLLBACK macht die Änderungen an den Datenbanken seit Start der Transaktion rückgängig.
Transaktionen, die auf einem Server laufen, müssen voneinander abgeschottet werden, so dass sie unabhängig voneinander laufen. Eine Transaktion muss so vom Server behandelt werden, als sei sie die Einzige auf dem System. Für den Benutzer bedeutet das, dass er während einer laufenden Transaktion niemals die Änderungen von anderen Benutzern sehen darf, weil diese Änderungen nichts mit seiner Transaktion zu tun haben. Man spricht hier von der sog. Isolation einer Transaktion („Transaction Isolation“). Durch unterschiedliche Isolationsgrade („Transaction Isolation Levels“, kurz: TIL) können Daten einer SQL- Ergebnismenge vor dem Zugriff anderer Transaktionen geschützt werden. Das eben beschriebene Verhalten stellt den SQL Standard-Isolationlevel dar, der als SERIALIZABLE bezeichnet wird. Der Standard Isolationlevel von Firebird, SNAPSHOT, kommt dem am nächsten.

Ein Gedanke zu „ZEOS Library – Einsatz mit Delphi und Firebird“

  1. Lieben Dank für dieses tolle Tutorial. Es ist sehr klar und übersichtlich, und eine tolle Hilfe für den Einstieg.

     

Kommentare sind geschlossen.