
- •Лекція 16
- •План
- •Під транзакцією розуміється неподільна з погляду БД послідовність операторів маніпулювання даними, що приводить
- •ACID-властивості транзакцій
- •Блокування
- •Види блокування:
- •Блокування серверу
- •Умови не захоплення одних і тих же даних
- •Рівні ізольованості
- •Рівень ізоляції конкуруючої транзакції прийнятий за умовчанням (READ COMMITTED). В прикладі кроки 4,
- •Рівень ізоляції конкуруючої транзакції прийнятий за умовчанням (READ COMMITTED). В прикладі кроки 4,
- •Рівень ізоляції конкуруючої транзакції прийнятий за умовчанням (READ COMMITTED). На кроці 2 транзакція
- •Рівень ізоляції конкуруючої транзакції прийнятий за умовчанням (READ COMMITTED). Приклад демонструє, що поточна

Лекція 16
Тема: Транзакції і блокування

План
1 Введення в транзакції
2 ACID-властивості транзакцій
3 Блокування
4 Управління транзакціями
5 Управління транзакціями в середовищі MS SQL Server
5.1Визначення транзакцій
5.2Явні транзакції
5.3Вкладені транзакції
6 Управління блокуваннями
7 "Мертві" блокування
8 Рівні ізоляції SQL Server

Під транзакцією розуміється неподільна з погляду БД послідовність операторів маніпулювання даними, що приводить до одного з двох можливих результатів:
або послідовність виконується, якщо всі оператори правильні,
або вся транзакція відкатується, якщо хоча б один оператор не може бути успішно виконаний.

ACID-властивості транзакцій
(Atomicity, Consistency,
Isolation, Durability)
Транзакція неподільна
Транзакція є злагодженою
Транзакція ізольована
Транзакція стійка

Блокування
Тимчасове обмеження на виконання деяких операцій обробки даних.
Блокування може бути накладено як на окремий рядок таблиці, так і на всю базу даних.
Управлінням блокуваннями на сервері займається менеджер блокувань, контролюючий їх вживання і дозвіл конфліктів.

Види блокування:
блокування запису – транзакція блокує рядки в таблицях таким чином, що запит іншої транзакції до цих рядків буде відмінний ;
блокування читання – транзакція блокує рядки так, що запит з боку іншої транзакції на блокування запису цих рядків буде знехтуваний, а на блокування читання – прийнятий.

Блокування серверу
Колективні блокування.
Блокування оновлення.
Монопольне блокування.
Блокування масивного оновлення.

Умови не захоплення одних і тих же даних
уникання взаємодії з користувачем в тілі транзакції ;
мінімізація тривалості транзакції і виконання її по можливості в одному пакеті;
застосування якомога більш низького рівня ізоляції.

Рівні ізольованості
READ UNCOMMITED – незавершене читання, або допустиме чорнове читання.
READ COMMITTED – завершене читання, при якому відсутнє чорнове, "брудне" читання.
REPEATABLE READ – читання, що повторюється.
SERIALIZABLE – ізольованість. Читання заборонено до завершення транзакції.

Рівень ізоляції конкуруючої транзакції прийнятий за умовчанням (READ COMMITTED). В прикладі кроки 4, 6 і 8 демонструють чорнове читання. Кроки 9 і 10 блокуються, тому що дані захоплені конкуруючою транзакцією