Исходя из этого можно сказать,
Исходя из этого можно сказать, что локальной переменной
localvar со схемой
(…, xk:Dk, …) на уровне хранения должна соответствовать одна-единственная переменная отношения
stlocalvat' со схемой
(OID: DOID , …, xk:Dk,…). Таким образом, реализация локальных переменных на уровне хранения не отличается от таковой для хранимых компонентов. Единственное различие между ними заключается в том, что соответствующая локальной переменной переменная уровня хранения
stlocalvar', является временной переменной, время жизни которой ограничено временем выполнения R-транслированной процедуры
stmethod'(). Это позволяет утверждать, что последующие следствия верны как для компонентов, так и для локальных переменных методов.
Следствие 1 (о R-транслируемости операции присваивания). Предположим, что значение компонента
ak объекта типа
t заданного ссылкой
o представляет результат операции
f над другими компонентами
ai этого объекта. Другим словами речь идет об операторе присваивания, изменяющем состояние компонента
ak
o.ak := f(o.a1,… , o.an, …). (1)
Тогда, следуя из утверждения о R-транслируемости операций, такому оператору соответствует оператор
t.ak := f'(… , t.ai, …) (1')
изменяющий значение соответствующей компоненту
ak R-переменной
t.ak так, как будто оператор (1) был выполнен для каждого существующего в системе объекта типа
t. Как мы сказали ранее, в существующих РСУБД такой оператор может быть реализован связкой
DELETE …, INSERT …
Следствие 2 (о R-транслируемости последовательности операций присваивания).
Предположим, что для объекта типа
t заданного ссылкой
o определена простая последовательность операторов вида (1)
o.aj := f1 (… , o.ai, …); o.ak := f2 (… , o.aj, …);. o.al := f3 (… , o.ak, …);
В R- представлении такой последовательности операторов будет соответствовать абсолютно идентичная последовательность R-транслированных операторов вида (1')
t.aj := f1 (… , t.ai, …);. t.ak := f2 (… , t.aj, …);. t.al := f3 (… , t.ak, …);
изменяющая состояние системы таким образом, как будто последовательность (2) была выполнена для каждого существующего в системе объекта типа
t.
Содержание Назад Вперед