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

       

Исходя из этого можно сказать,


Исходя из этого можно сказать, что локальной переменной 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.


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