Als Transaktion werden eine Gruppe von logisch zusammenhängenden Datenbankoperationen wie beispielsweise SQL-Anweisungen bezeichnet. Bei der Ausführung einer Transaktion wird die Einhaltung der vier grundlegenden Eigenschaften Atomarität (Atomicity), Konsistenz (Consistency), Isolation (Isolation) und Dauerhaftigkeit (Durability) garantiert, die auch als ACID-Paradigmen bezeichnet werden. Um die Konsistenz von Daten in Datenbanken zu gewährleisten, verwenden die meisten Systeme eine Transaktionsverwaltung, die auch aus mehreren Transaktionen eine Historie zusammenstellt.
Transaktionen werden meist in Zusammenhang mit Datenbanken verwendet und definieren eine Folge von Operationen (Instruktionen), die eine logische Einheit darstellen. Sollte auf Grund eines Fehlers - Kommunikationsfehler, Zugriffsverletzung oder ähnliches - eine der Operationen nicht ausgeführt werden können, so wird die Transaktion zunächst abgebrochen, keine der Operationen ausgeführt und der Datenbestand in den Ausgangszustand zurückversetzt, was mit Rollback bezeichnet wird.
Bei der Ausführung einer Transaktion - die aus einer oder mehreren Operationen bestehen kann - garantiert ein Datenbanksystem die Beachtung der vier grundlegenden ACID-Eigenschaften:
Die Parallelität von Transaktionen werden in sogenannten "Grade" differenziert, und durch den Transaction Isolation Level gesteuert. Dabei können umso weniger Probleme hinsichtlich der Konsistenz von Daten auftreten, je höher der Level gewählt wird. Daneben ist aber auch zu beachten, dass je höher die Ebene der Isolation gewählt wird, desto geringer der Durchsatz bei einer großen Zahl gleichzeitiger Zugriffe ist. Das resultiert aus dem zeitweiligen Sperren des Datensatzes. Als Beispiel sei hier nachfolgend der SQL2-Standard genannt, der vier Transaction Isolation Levels definiert:
Beispiel SQL-Transaktion:
SET TRANSACTION READ WRITE WAIT;UPDATE lager_1 SET preis = preis * 0.65 WHERE stueck < 125;
UPDATE lager_2 SET preis = preis * 1.2;
COMMIT;
Dabei werden aber nicht von jedem Datenbanksystem alle Transaktions-Level gleichermaßen unterstützt. Die Reihenfolge der Operationen innerhalb einer Transaktion darf nicht geändert werden, da diese geordnet sind und Nebenläufigkeit von Operationen unterstützen.
Werden Transaktionen in unterschiedliche Teile aufgespalten und in verteilten Systemen ausgeführt, spricht man von verteilten Transaktionen. Dazu werden entsprechende COMMIT-Protokolle verwendet, um die Atomarität verteilter Transaktionen zu garantieren. Werden die Auswirkungen einer Transaktion wieder zurückgenommen, so wird diese Funktion als Rollback bezeichnet. Sofern eine Transaktion aufgrund einer anderen Transaktion nicht durchführbar ist, nennt man dies eine Blockierung. Und sofern sich die Transaktionen gegenseitig eliminieren, kommt es gar zu einer Verklemmung ( Deadlock). Transaktionen werden als wirkungslos gekennzeichnet, wenn sie keinen Einfluss auf den Datenbestand haben.