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

       

Таким образом, возможен групповой вызов


DO … t.ak := ( f'2 (… , p.aj, …) JOINOID (stt.b' WHERE b = TRUE )) UNION ( t.ak JOINOID (t.b WHERE b = FALSE)); … stt.b' := f'1 (… , t.ai, …); WHILE EXIST stt.b' WHERE b = TRUE;

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

EXECUTE t.somemethod();

Подразумевается, что такое выражение должно быть транслировано в единственный вызов R-транслированной последовательности somemethod'.

Следствие 3 (о R-транслируемости последовательности операций присваивания для явно определенной группы объектов).

Можно показать, что все утверждения о транслируемости реляционных операций и последовательности таких операций могут быть применены и к явно заданной группе объектов. Предполагается, что группа объектов задается групповой ссылкой g. В самом деле, любую R-транслированную операцию

t.aj := f'(… , t.ai, …)

можно рассматривать как такой частный случай операции

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

когда g содержит ссылки на все существующие в системе объекты типа t, т.е. g = objects('t'). Отметим, что если g определяет несобственное подмножество существующих в системе объектов типа t, то однократное выполнение последней операции изменит значение R-переменной t.aj так, как будто исходная операция f(… , o.ai, …) была выполнена для всех объектов, которые входят в это подмножество.

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

Таким образом, возможен групповой вызов операций, представляющих собой последовательность действий над компонентами объекта типа t, для множества объектов, заданного групповой ссылкой g, например


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