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

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

Приводиться визначення транзакції і її властивостей; представлені явні, неявні, автоматичні і вкладені транзакції. Описуються засоби обробки і управління транзакціями. Розглядається механізм збереження і відкоту транзакцій. Вводиться поняття паралелі в роботі бази даних і методи управління паралеллю з використанням блокувань. Приводиться опис рівнів блокувань і рівнів ізоляції серверу. Виділяються основні і спеціальні типи блокувань.

План

1 Введення в транзакції

2 ACID-властивості транзакцій

3 Блокування

4 Управління транзакціями

5 Управління транзакціями в середовищі MS SQL Server

5.1 Визначення транзакцій

5.2 Явні транзакції

5.3 Вкладені транзакції

6 Управління блокуваннями

7 "Мертві" блокування

8 Рівні ізоляції SQL Server

1 Введення в транзакції

Концепція транзакцій – невід'ємна частина будь-якої клієнт-серверної бази даних.

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

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

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

При виконанні транзакції система управління базами даних повинна дотримуватися певних правил обробки набору команд, що входять в транзакцію. Зокрема, розроблено чотири правила, відомі як вимоги ACID, вони гарантують правильність і надійність роботи системи.

2 Acid-властивості транзакцій

Характеристики транзакцій описуються в термінах ACID (Atomicity, Consistency, Isolation, Durability – неподільність, узгодженість, ізольованість, стійкість ).

Транзакція неподільна в тому значенні, що є єдиним цілим. Всі її компоненти або мають місце, або ні. Не буває часткової транзакції. Якщо може бути виконана лише частина транзакції, вона відхиляється.

Транзакція є злагодженою, тому що не порушує бізнес-логіку і відносини між елементами даних. Ця властивість дуже важлива при розробці клієнт-серверних систем, оскільки в сховищі даних поступає велика кількість транзакцій від різних систем і об'єктів. Якщо хоча б одна з них порушить цілісність даних, то всі інші можуть видати невірні результати.

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

Транзакція стійка. Після свого завершення вона зберігається в системі, яку ніщо не може повернути в початковий (до початку транзакції ) стан, тобто відбувається фіксація транзакції, що означає, що її дія постійна навіть при збої системи. При цьому мається на увазі якась форма зберігання інформації в постійній пам'яті як частина транзакції .

Вказані вище правила виконує сервер. Програміст лише вибирає потрібний рівень ізоляції, піклується про дотримання логічної цілісності даних і бізнес-правил. На нього покладаються обов'язки по створенню ефективних і логічно вірних алгоритмів обробки даних. Він вирішує, які команди повинні виконуватися як одна транзакція, а які можуть бути розбиті на декілька послідовно виконуваних транзакцій. Слід по можливості використовувати невеликі транзакції, тобто включаючі якомога менше команд і змінюючі мінімум даних. Дотримання цієї вимоги дозволить найефективнішим чином забезпечити одночасну роботу з даними безлічі користувачів.

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