Транзакции
Транзакция (transaction) – набор логически связанных действий, выполняемых как единая операция Транзакция – это логическая единица работы
Будем проще: мультик про транзакции Списание Счёт в банке A Счёт в банке B ЗачислениеOOPS!!! ГДЕ ДЕНЬГИ??? OOPS!!! OOPS!!! OOPS!!! Перевод денег из А в B
Типы транзакций 1. Плоские (классические) 2. Цепочечные 3.Вложенные
ACID: свойства транзакций Atomic (атомарность) – транзакция атомарная (всё или ничего) Consistent (согласованность) – по завершению транзакции все данные находятся в согласованном состоянии Isolated (изоляция) – транзакции не имеют дела с данными в промежуточном состоянии (которые могли появиться в результате действий других транзакций) Durable (устойчивость) – результат зафиксированной транзакции необратим (даже при отказе системы)
SQL-выражения для управления транзакциями SET TRANSACTION COMMIT ROLLBACK
SET TRANSACTION [Access mode] [Lock Resolution] [Isolation Level] [Table Reservation]
SET TRANSACTION READ WRITE WAIT ISOLATION LEVEL SNAPSHOT Значения по умолчанию
Варианты завершения транзакций COMMIT ROLLBACK
Журнал транзакций Первый запрос данных из базы данных
Запрос данных, которые уже находятся в памяти
«грязные страницы» (dirty pages)
Транзакции в ADO.NET Инициация транзакции – метод BeginTransaction объекта Connection Transaction.Commit завершает транзакцию Transaction.Rollback откатывает транзакцию
CREATE PROCEDURE Proc1 …AS -- Начинаем транзакцию BEGIN TRANSACTION -- Выполняем операции транзакции … -- Проверяем наличие ошибок If ROLLBACK TRANSACTION …-- Фиксируем транзакцию COMMIT TRANSACTION