Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / Лекція 15.ppt
Скачиваний:
32
Добавлен:
30.05.2020
Размер:
311.81 Кб
Скачать

Лекція 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 блокуються, тому що дані захоплені конкуруючою транзакцією

Соседние файлы в папке лекции