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

Модель вложенных транзакций

Модель вложенных транзакций была предложена Моссом (Moss) в 1981 г. В этой модели транзакция рассматривается как набор связанных подзадач, называемых субтранзакциями, каждая из которых также может состоять из произвольного коли­чества субтранзакций. В данном представлении полная транзакция представляет со­бой древовидную структуру или некоторую иерархию субтранзакций. В модели вло­женных транзакций присутствует транзакция верхнего уровня, содержащая некото­рое количество дочерних транзакций, каждая из которых, в свою очередь, может включать вложенные транзакции, и т.д. В исходном варианте, предложенном Моссом, только транзакциям листового уровня (субтранзакциям самого нижнего уровня вложения) разрешается выполнять операции в базе данных.

Для модели вложенных транзакций Моссом был предложен и протокол управле­ния параллельностью, построенный по принципу жесткой двухфазной блокировки. Субтранзакции родительской транзакции выполняются так, как если бы они были независимыми транзакциями. Субтранзакциям разрешается устанавливать блоки­ровку элемента, если некоторая другая транзакция, уже установившая блокировку, с которой конфликтует данная субтранзакция, является ее родительской. Когда суб­транзакция завершает работу, установленные ею блокировки наследуются родитель­ской транзакцией. При наследовании блокировки родитель получает более эксклю­зивный режим блокировки, если и дочерняя, и родительская транзакции устанавли­вали блокировку одного и того же элемента данных.

Ниже перечислены основные преимущества модели вложенных транзакций.

  • Модульность. Транзакция может быть разложена на произвольное количе­ство субтранзакций, что способствует повышению уровня параллельности обработки и расширяет возможности восстановления.

  • Создание дополнительного уровня детализации в механизмах управления параллельностью и восстановлением. Введение нового уровня субтранзак­ций, помимо уровня основных транзакций.

  • Достижение параллельности обработки в пределах транзакции. Субтран­закции могут выполняться в параллельном режиме.

  • Возможность управления восстановлением в пределах транзакции. Отме­ненные субтранзакции могут быть отброшены или проигнорированы без каких-либо побочных эффектов для других субтранзакций.

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

Точкой сохранения называется определенная точка в плоской транзакции, пред­ставляющая некоторое частично согласованное состояние, которая может быть ис­пользована как точка промежуточного рестарта транзакции в случае возникновения каких-либо проблем. Фактически, это одна из задач модели вложенных транзакций, состоящая в предоставлении некоторой единицы восстановления работы, более мел­кой, чем вся транзакция в целом. В процессе выполнения транзакции пользователь может организовать точку сохранения - например, с помощью оператора SAVE WORK. При его выполнении генерируется некоторый идентификатор, который пользователь впоследствии сможет применить для отката транзакции до данного, зафиксированно­го состояния - например, с помощью оператора ROLLBACK WORK идентификатор точки сохранений. Однако, в отличие от модели вложенных транзакций, при использовании точек сохранения не обеспечивается какая-либо из форм параллельности обработки в пределах транзакции.

Этот оператор не является стандартным оператором языка SQL и представляет собой лишь некоторую иллюстрацию.