128
6.4.2. Управление транзакциями
Для формирования транзакций СУБД обычно поддерживает
несколько режимов. Простейшим из
них является автоматиче-
ский режим, в котором каждая SQL-команда рассматривается как
отдельная транзакция. Если команда выполнена успешно, СУБД
выполняет действия,
соответствующие команде COMMIT, в
противном случае – команде ROLLBACK. При
этом сами
команды COMMIT и ROLLBACK не пишутся.
В случае, когда в транзакцию требуется объединить не-
сколько SQL-команд, используется явный или неявный режим
указания транзакций.
В неявном режиме запуск приложения, работающего с базой
данных, открывает первую транзакцию, а последующие команды
COMMIT или ROLLBACK завершают
текущую транзакцию и
открывают следующую. Успешное завершение приложения вы-
зывает действия, соответствующие команде COMMIT, а аварий-
ное – команде ROLLBACK.
В явном режиме транзакция открывается командой BEGIN
TRANSACTION, а завершается теми же командами COMMIT или
ROLLBACK, после чего система
обычно переходит в автома-
тический режим.
Возвращаясь к свойствам транзакции, можно сказать, что
команда ROLLBACK обеспечивает
атомарность транзакции, а
команда COMMIT – ее устойчивость, поскольку по этой команде
освобождаются используемые транзакцией ресурсы, а буфера
данных сбрасываются на диск и тем самым происходит фиксация
результатов транзакции.
Do'stlaringiz bilan baham: