П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


Download 1.32 Mb.
Pdf ko'rish
bet78/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   74   75   76   77   78   79   80   81   ...   94
Bog'liq
Базы данных

6.4. Реализация транзакций в СУБД 
6.4.1. Журнал транзакций 
Основным средством, обеспечивающим атомарность транзак-
ций, является ведение журнала транзакций. СУБД записывает в 
журнал все SQL-команды, выполняемые в ходе транзакции, а 
также состояние данных до и после выполнения команды. В этом 
случае для отката на начало транзакции следует «выполнить» эти 
команды в обратном порядке, последовательно восстанавливая 
предыдущие состояния данных. Очевидно, что ведение журнала 
требует значительных накладных расходов и поэтому в реальных 
СУБД имеются средства для управления журналом транзакций, 
позволяющие выбрать наиболее эффективный вариант, вплоть до 
полного отключения журнала. 


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

Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   74   75   76   77   78   79   80   81   ...   94




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling