Обработка транзакций при изменении данных в СУБД устроена так, что операции, требующие изменения информации в несколько шагов, проводятся как единое целое. 3 Если любая из них вызывает ошибку, то все сделанные в рамках транзакции изменения отклоняются. 3
Транзакция начинается с первого SQL-оператора, инициируемого пользователем или содержащегося в программе. 1 Все последующие SQL-операторы составляют тело транзакции. 1
Транзакция завершается одним из четырёх возможных путей: 1
Откат и фиксация транзакций становятся возможными благодаря журналу транзакций. 1 При выполнении любого оператора SQL, который вносит изменения в базу данных, СУБД автоматически заносит очередную запись в журнал транзакций. 12 Запись состоит из двух компонентов: состояние строки до внесения изменений и её же состояние после внесения изменений. 12
Если после оператора SQL был выполнен оператор COMMIT, то в журнале транзакций делается отметка о завершении текущей транзакции. 12 Если же после оператора SQL следовал оператор ROLLBACK, то СУБД просматривает журнал транзакций и отыскивает записи, отражающие состояние изменённых строк до внесения изменений. 12 Используя их, СУБД восстанавливает те строки в таблицах базы данных, которые были изменены текущей транзакцией, — таким образом аннулируются все изменения в базе данных. 12