Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированные базы данных.doc
Скачиваний:
54
Добавлен:
02.05.2014
Размер:
201.73 Кб
Скачать

7. Особенности управления транзакциями в системах ообд

Дела с управлением транзакциями в системах ООБД обстоят примерно аналогично ситуации с оптимизацией запросов: как правило, используются слегка модифицированные традиционные методы сериализации транзакций, журнализации изменений объектов, индивидуальных откатов транзакций и восстановления состояния БД после сбоев. Фактически, как и в случае оптимизации запросов, такое управление транзакциями предполагает частичное нарушение инкапсуляции объектов: синхронизация основывается на знании внутренней структуры объектов, журнализация и восстановление - на знании природы методов, изменяющих состояние объекта и т.д.

Какой-либо подход, в котором предлагался бы полный набор средств управления транзакциями, полностью согласующийся с парадигмой объектной ориентированностью, нам неизвестен. Одна из наиболее продвинутых работ, проводимых в этом направлении в рамках германского проекта VODAK, описывается в [93].

В основе управления транзакциями в системе VODAK находится разработанный ранее в контексте инженерных СУБД механизм транзакций со вложенными подтранзакциями [109]: вызов любого действия в объекте равносилен образованию новой подстранзакции. В отличие от традиционного механизма вложенных подтранзакций в данном случае заранее не определена максимальная вложенность транзакций. При синхронизации транзакций используется знание о семантике объектов, в том числе информация о коммутативности операций. (Аналогичный подход описан в [110].)

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

8. Связь ообд с дедуктивными и активными базами данных

Связь направления ООБД с направлением дедуктивных БД носит двоякий характер. Во-первых, для структуризации дедуктивных (и вообще логических) БД в последнее время стремятся использовать парадигму объектной ориентированности [83-84]. Это отдельная тема, для ее рассмотрения было бы необходимо предварительное введение в концепции дедуктивных БД, что находится за пределами данного обзора.

Во-вторых, некоторые механизмы дедуктивных БД пытаются использовать в контексте обычных (может быть, несколько расширенных семантически) ООБД. Это прежде всего относится к языкам запросов [82] (как мы отмечали в разд. 4, одно из направлений развития декларативных языков запросов к ООБД - дедуктивные языки). На логическом выводе основываются в ряде проектов доказательство корректности схемы ООБД и динамический контроль целостности [85-86]. Видимо, в будущих системах ООБД логика будет играть еще большую роль.

Работы по интеграции объектно-ориентированных и активных БД находятся в начальной стадии. Известно, что основной проблемой систем активных БД является построение эффективного механизма вычисления на основе поступающих событий условий и вызова при необходимости соответствующих действий. В [42] описывается экспериментальная работа, выполненная на базе объектно-ориентированной СУБД PROBE, в которой активность ООБД обеспечивается с помощью определения двух специальных классов объектов "active-object" и "activelist-object". При возникновении одного из предопределенных в системе событий вызывается один из методов соответствующего объекта класса "active-object", в котором в зависимости от состояния и предписанного набора правил принимается решение о дальнейших действиях. Основной вывод, который можно сделать на основании изложенного в [42] материала, - это пригодность основных средств типовой ООБД и для обеспечения ее активности.