Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы и банки данных / Базы и банки данных (5 сем).doc
Скачиваний:
76
Добавлен:
01.05.2014
Размер:
705.54 Кб
Скачать

Задание. Привести схему применения двухфазной блокировки для решения проблемы незафиксированной зависимости и проблемы несовместимого анализа.

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

Наконец, отметим, что если некоторая транзакция А не является двухфазной, то можно построить некоторую другую транзакцию В, которая при чередующемся выполнении вместе с транзакцией А может привести к графику запуска, не подлежащему упорядочению и неверному. В настоящее время с целью понижения требований к ресурсам и повышения производительности в реальных системах обычно предусматривается использование не двухфазных транзакций, а транзакций с «ранним снятием блокировки» (еще до выполнения операции прекращения транзакций) и наложением нескольких блокировок. Однако следует понимать, что использование таких транзакций сопряжено с большим риском.

Итак, подытожим основные свойства транзакций:

  1. Атомарность. Требуется, чтобы были выполнены все транзакции или не была выполнена ни одна из них. Например, изъятие денег из банкомата и внесение соответствующего дебета в счет клиента должны быть единой атомарной транзакцией. Отдельное выполнение одной из этих операций не допускается.

  2. Непротиворечивость. Обычно БД характеризуется таким понятием, как непротиворечивое состояние, при котором данные соответствуют всем возможным ожиданиям. Например, условие непротиворечивости для БД авиационных линий состоит в том, что ни одно из мест в самолете не бронируется для двух клиентов. Хотя это условие может ненадолго нарушаться в процессе транзакции, когда люди размещаются по местам, диспетчер транзакций должен гарантировать, что после завершения транзакции БД будет удовлетворять всем предполагаемым требованиям непротиворечивости.

  3. Изоляция. При параллельном выполнении двух или более транзакций их результаты должны быть изолированы друг от друга. То есть, одновременное выполнение двух транзакций одновременно не должно привести к результату, которого не было бы, если бы они выполнялись последовательно. Например, когда в двух разных кассах продают билеты на один и тот же рейс и остается единственное свободное место, один запрос должен быть удовлетворен, а другой отвергнут. Недопустимо, чтобы по причине параллельных операций одно место было продано дважды.

  4. Долговременность. Если транзакция завершена, ее результат не должен быть утрачен в результате сбоя системы, даже если этот сбой происходит немедленно после завершения транзакции.