Организация транзакций
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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!