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

       

или для группы, определяемой, например,


EXECUTE g.somemethod();

или для группы, определяемой, например, ссылкой xref из выборки объектов типа t по значению

EXECUTE t<cond1,...>.xref.somemethod(); .

Замечание (о триггерах). Отметим, что определённый на уровне представления для компонента ai объектов типа t триггер можно рассматривать как последовательность операторов вида

o.ak := f(… , o.ai, …)

выполняемых в ответ на изменение компонента ai объекта, заданного ссылкой o. Из этого следует, что к триггерам также можно применять утверждения о транслируемости. В самом деле, предыдущий оператор может быть R-транслирован в оператор

t.ak := (f'(… , t.ai, …) JOIN g) UNION (t.ak JOIN (objects(t) MINUS g))


где g определяет существования явно заданной группы объектов (возможно, содержащей один единственный объект). Выполнение R-транслированной последовательности таких операторов изменит состояние системы таким образом, как будто исходный триггер был выполнен для каждого объекта из группы g.


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