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

Восстанавливаемость

Упорядоченными называются такие графики, которые позволяют сохранить согласованность базы данных в предположении, что ни одна из транзакций этого графика не будет отменена. Противоположный подход анализирует восстанавливаемость транзакций, входящих в данный график. В случае, если выполнение транзакции было отменено, свойство атомарности требует, чтобы были отменены все имеющиеся результаты ее выполнения.

Кроме того, свойство продолжительности требует, чтобы после фиксации результатов транзакции выполненные ею изменения нельзя было отменить (без запуска другой, компенсирующей транзакции). Еще раз обратимся к двум транзакциям, уже рассмотренным выше:

Но на этот раз предположим, что вместо операции commit в конце транзакции Т9 был выполнен откат всех результатов ее выполнения. Транзакция Т10 уже считала измененное значение счета balx, записанное транзакцией Т9 , выполнила его обновление и зафиксировала результаты в базе данных. Строго говоря, следовало бы отменить результаты выполнения транзакции Т10, поскольку она использовала значение на счету balx, которое должно быть отменено. Однако свойство продолжительности транзакций не позволяет сделать этого. Другими словами, данный график не обладает свойством восстанавливаемости и поэтому является некорректным.

Восстанавливаемый график

График, в котором для каждой пары транзакций Тi и Tj выполняется следующее правило: если транзакция Тj считывает элемент данных, предварительно записанный транзакцией Тi, то фиксация результатов транзакции Ti

должна выполняться до фиксации результатов транзакции Tj .

27. Упорядочивание по просмотру

Существует и несколько других типов упорядочивания, которые выдвигают менее строгое определение эквивалентности графиков, чем то, которое дается в случае конфликтной упорядоченности. Одно из этих определений называют упорядочиванием по просмотру.

Два графика S1 и S2 состоящих из одних и тех же операций, входящих

в состав n транзакций Т 1 , Т 2 •... , Тn , являются эквивалентными по просмотру, если выполняются следующих три условия:

• Для каждого элемента данных х: если транзакция Тi прочла исходное значение х в графике S1 эта же транзакция Тi должна прочесть исходное значение х и в графике S2.

• Для каждой операции чтения элемента данных х транзакцией Ti

в графике S1: если считанное значение элемента х было записано транзакцией Тj то и в графике S2 транзакция Тj должна считывать значение элемента х, записанное транзакцией Тj.

• Для каждого элемента данных х: если в графике S1 последняя операция записи значения х была выполнена транзакцией Тi, эта же самая транзакция должна выполнять последнюю запись значения элемента данных х и в графике S2.

График является упорядоченным по просмотру, если он эквивалентен по просмотру некоторому последовательному графику. Каждый конфликтно упорядоченный график в то же время является упорядоченным по просмотру, однако обратное утверждение неверно.

Например, график, представленный в таблице, является упорядоченным по просмотру, но не является конфликтно упорядоченным. В этом примере для транзакций Т 12 и Т 13 не соблюдается правило вынужденной записи другими словами, в них выполняется слепая запись. Может быть математически доказано, что любой упорядоченный по просмотру график, который не является конфликтно упорядоченным, содержит одну или больше операций слепой записи.

Таблица Пример упорядоченного по просмотру графика, который не

является конфликтно упорядоченным

В общем случае проверка того, является ли график упорядоченным по просмотру, представляет собой весьма сложную задачу. На практике СУБД не проверяют графики на упорядоченность. Это было бы нецелесообразно,

поскольку чередование операций параллельно выполняющихся транзакций

определяется операционной системой. Вместо этого в СУБД используются

специальные протоколы, позволяющие создавать упорядоченные графики.