Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к зачету.doc
Скачиваний:
36
Добавлен:
16.04.2019
Размер:
906.75 Кб
Скачать

29. Понятие о преднамеренных блокировках. Is-, IX- и six-блокировки. Протокол доступа к данным с использованием преднамеренных блокировок

С помощью преднамеренных блокировок можно блокировать:

1)базу данных целиком, 2)отдельные файлы БД, 3)таблицы БД, 4)строки БД, 5)отдельные строки таблиц

6)отдельные поля таблиц

1)Преднамеренные блокировки с возможностью взаимного доступа IS-lock (Internt Sharud Lock)

2)Преднамеренные блокировки без взаимного доступа IX-lock (Internt Exkusive Lock)

3)Преднамеренные блокировки как с возможностью взаимного доступа, так и без неё SIX-lock

Протокол преднамеренных блокировок

1)Если сложный объект заблокирован Х-lock, то она неявным образом задается для всех дочерних объектов

2)При задание S,SIX для сложного объекта неявным образом задают S-lock для все дочерних объектов

3)Прежде чем транзакция наложит S или IS-lock на заданный объект, она должна задать IS или более сильную блокировку по крайней мере для одного родительского объекта

4)Прежде чем транзакция наложит X,IX,SIX на заданный объект, она должна задать как минимум IX-lock или более сильную блокировку для всех родительских объектов.

5)Прежде чем для для данной транзакции будет отменена блокировка данного объекта должны быть отменены все блокировки дочерних объектов данного объекта.

30. Решение проблемы фиктивных элементов (фантомов) с использованием протокола преднамеренных блокировок для доступа к данным.

Транзакция А

Время

Транзакция В

S-lock таблицы успешна

t1

х

S-lock по условию альфа,n строк

t2

х

-

t3

IX-lock таблицы отвергнута

-

t4

ожидание

S-lock таблицы успешна, n строк

t5

ожидание

фиксация

t6

ожидание

х

t7

IX-lock таблицы успешна. Вставка новой строки

х

t8

фиксация

31. Метод временных меток для сериализации транзакций.

Каждому объекту приписывается метка, каждая транзакция тоже помечается временной меткой

1)Каждой транзакции Т приписывается временная метка, соответствующая началу этой транзакции.

2)Перед началом выполнения операций над объектом r БД, транзакция Т помечает его своей временной меткой и типом операции (чтение/запись)

3)Перед выполнением операций над r Тр В выполняет следующие действия:

- проверяет не закончилась ли Тр А, пометившая этот объект

- если Тр А закончилась, Тр В помечает объект своей временной меткой и выполняет операцию

- если Тр А не завершилась, то Тр В проверяет конфликтность

А) если операция не конфликтна при объекте r остается или проставляется временная метка с меньшим значением, Тр В выполняет свою операцию.

Б) если транзакции А иВ конфликтуют, то

- временная метка Тр А > Тр В, Тр А отклоняется и получив свою временную метку начинается заново;Тр В продолжает работу

-если А<В ,В откатывается.