Организация транзакций



 

SQL Server 2000 управляет согласованностью и целостностью каждой базы данных при появлении ошибок. Любое приложение, обновляющее информацию в базе данных SQL Server, делает это с помощью транзакций. Транзакция — логическая единица работы, состоящая из последовательности операторов (выборки, добавления, обновления или удаления). Если во время транзакции не возникли ошибки, все изменения базы данных, сделанные в результате выполнения транзакции, становятся постоянными. Если ошибки есть, то в базу данных не вносится никаких изменений.

Транзакция имеет несколько фаз.

1. Перед началом транзакции база данных находится в согласованном состоянии.

2. Приложение объявляет о начале транзакции. Этот процесс может быть инициированявно с помощью оператора BEGIN TRANSACTION. В качестве альтернативы приложение может установить параметры для работы в неявном режиме транзакций. Первый же оператор Transact-SQL, исполняемый после завершения предыдущей транзакции, автоматически запускает новую транзакцию. В начале транзакции в журнал не заносится никаких записей; первая запись в журнале появляется при модификации данных.

3. Приложение начинает модификацию данных. Модификации в таблицах производятся по очереди. Если выполняется серия модификаций, то в результате база данных может какое-то время оставаться в несогласованном промежуточном состоянии.

4. Когда приложение достигает этапа, на котором все модификации успешно завершены, и база данных снова находится в согласованном состоянии, приложение фиксирует транзакцию. На этом этапе все сделанные модификации базы данных становятся постоянными.

5. Если приложение обнаруживает ошибки, которые предотвращают завершение транзакции, оно выполняет отмену (откат) всех модификаций данных. Этот процесс возвращает базу данных к той точке согласованности, в которой она находилась до начала транзакции.

Приложения SQL Server также могут работать в режиме автоматической фиксации. В этом режиме исполнение каждого оператора Transact-SQL фиксируется, если оно успешно, или автоматически откатывается, если возникает ошибка. Приложению, работающему в режиме автофиксации, нет необходимости использовать специальные операторы для начала и завершения транзакции.

Все операторы Transact-SQL выполняются в составе транзакций: явных, неявных или с автоматической фиксацией. Все транзакции SQL Server, включающие в себя операции по модификации данных, достигают новой точки согласованности и фиксируются или откатываются к исходной точке согласованности. Транзакции не остаются в промежуточном состоянии, в котором база данных не согласована.

 


Дата добавления: 2015-12-17; просмотров: 18; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!