Транзакции

Оценить
(0 голоса)

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

♦ Неявная. Определяет любой одиночный оператор insert, update или delete как единицу транзакции.

♦ Явная. Обычно это группа операторов Transact-SQL, где начало и конец такой группы отмечается операторами begin   transaction, commit и rollback.

Понятие транзакции лучше всего объяснить на примере. В базе данных sample служащей Ann Jones должен быть назначен новый номер служащего. Этот номер служащего должен быть изменен в двух различных таблицах одновременно. Строка в таблице employee и все соответствующие строки в таблице workson должны быть изменены в одно и то же время. (Если будут выполнены изменения только в одной из этих таблиц, то данные в базе данных sample станут несогласованными, потому что значения первичного ключа в таблице employee и соответствующие значения внешнего ключа в таблице works_on для миссис Jones не будут соответствовать друг другу.)

В примере 13.1 показано, как вы можете разрешить только что рассмотренную задачу с использованием операторов Transact-SQL.

Транзакции

Транзакции

 

Согласованное состояние данных, используемых в примере 13.1, может быть достигнуто, только если либо будут выполнены оба оператора update, либо ни один из них выполнен не будет. Глобальная переменная @@error служит для проверки результатов выполнения каждого оператора Transact-SQL. Если возникает ошибка, то @@error устанавливается в отрицательное значение, а выполнение всех операторов отменяется. (Операторы Transact-SQL begin transaction, commit и rollback определяются в разд. «Операторы Transact-SQL и транзакции» далее В этом разделе.)

В следующем разделе рассматриваются свойства транзакции ACID. Эти свойства гарантируют, что данные, используемые программами приложения, будут согласованными.


Свойства транзакций
Операторы Transact-SQL и транзакции
Протокол транзакций
Блокировка данных в базе данных
Режимы блокировки

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.