Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_ответы.doc
Скачиваний:
27
Добавлен:
27.08.2019
Размер:
3.25 Mб
Скачать

13.Паралельна обробка даних у базі даних; транзакції і їхні властивості; управління транзакціями, двохфазове блокування, метод тимчасових міток.

Робота з багатокористувацькими СУБД вимагає на відміну від 1 користувача виконання принаймі 2-х додаткових функцій:організація паралельної роботи користувачів,забеспечення захисту фнформації.

Робота з багатокористувацькими СУБД вимагає 2 додаткові ф-ції: організація паралельної роботи користувачів і забезпечення цілісності інф-ї. Для цього застос. механізм транзакцій - послідовних операцій над БД з боку одного застосування, повне виконання яких зберігає цілісність БД. В інтервалі виконання трансакції БД може бути нецілісна.

Транзакція - неподільна з точки зору впливу на БД послідовність операторів маніпулювання даними, яка розглядається СУБД як єдине ціле. Або транзакція успішно виконується, і СУБД фіксує зміни БД, які були зроблені цією транзакцією, у зовнішній пам'яті, або, у разі невдачі, жодна зміна не відображається на стані БД. Транзакція розглядається як логічна одиниця роботи з БД.

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

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

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

Розрізняють блокування: блокування всієї БД; блокування на рівні таблиці; блокування на рвіні рядків і стовпців; блокування на рівні полів. Для підвищення ступеня паралельності доступу декількох користувачів до однієї БД використовуються такі блокування:

1. жорстке блокування або монопольне блокуванняе (Х блокування). Цей блок передбачає, що транзакція забороняє будь-який доступ до даних під час виконання.

2. нежорстке блокування або розподільне блокування (S блокування).Цей блок передбачає, що над даними і тими ж даними одночасно можуть виконуватися декілька трансакцій, але тільки одна може виконувати операції write I read.

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

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

Метод тимчасових міток:цей підхід передбачає,що кожній транзакції надається тимчасова мітка,яка відповідає моменту часу початку роботи транцакції.Перед виконанням операцій над об»єктом транзакція встановлює тип операції над об»єктом (читати-писати).Цей підхід застосовується коли інтенсивність роботи з сервером невелика.Переваги:немає тупиків.

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

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

До операторів керування транзакціями відносяться наступні:

  • SET TRANSACTION (почати транзакцію);

  • COMMIT (завершення дії транзакції з фіксацією результатів змін у БД)

  • ROLLBACK (завершення дії транзакції з відміною зроблених змін)

Приклад:

Встановити транзакцію, яка забезпечить зміну назви кафедри і назви факультету, де завідуючим кафедрою працює Бойко О.О., на назву ІТ і АІТ

SET TRANSACTION;

UPDATE Chair

SET C_Title=”IT”, F_Title=”AIT”

WHERE C_Chief=”Бойко О.О.”;

COMMIT;