Классика баз данных - статьи

       

модифицируя кортеж t. Имеются два


Предположим, наконец, что мы нарушаем инвариант (iv), модифицируя кортеж t. Имеются два случая, когда может иметь место такое нарушение. Первый случай возникает, когда после модификации t имеет некоторое значение, например, R', в каком-либо домене образов, скажем, в домене d, и t еще не имеет никакого образа потомка в R'. В этом случае корректирующее действие зависит от того, изменялся ли d при выполнении данной операции модификации. Если d не изменялся, то должен быть модифицирован старый образ-потомок t в R' так, чтобы сделать его новым образом потомка. Вся требуемая для этого информация уже имеется в t. Если же d изменялся, то в R' должен быть вставлен образ потомка. Ключ этого образа потомка содержится в t, однако, в каждый домен, значение которого не содержится в t, должно быть помещено значение "пусто".

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

Анализируя , можно обнаружить, что существует два метода коррекции нарушений инвариантов (i) и (iv), возникающих вследствие операции удаления. Каждый из этих методов семантически соответствует определенным ситуациям. Рассмотрим сначала инвариант (i). Допустим, что имеется абстрактный объект x, агрегатным компонентом которого является некоторый объект y. Возникает вопрос, должен ли удаляться x, если удаляется y. Представляется, что ответ зависит от контекста.

Предположим, например, что у некоторого автомобиля имеются "радиоприемник" и "кузов", представляющие собой два его агрегатных компонента. Если повреждается радиоприемник, то обычно считается, что автомобиль по-прежнему существует.

Содержание  Назад  Вперед