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

       

на которых определены атрибуты объектов


R1 = Ea( R2, … , Rn),

где Ri – отношения, являющиеся реляционными доменами (rdom), на которых определены атрибуты объектов класса С. Применим оператор E к объекту oi класса С и рассмотрим выражение

oi. oa1 = oi.E(oa2, … , oan),

которое, исходя из значений атрибутов oa2, … , oan, вычисляет значение атрибута a1.

Применяя уже использованные преобразования, можно показать, что при переходе на уровень хранения это выражение может быть представлено как

o. oa1 = oi.E(oa2, … , oan) OєR' s(raOID= OIDi)( E'a (A2, … , An)) ґ {a1}              <24>

, где {a1} - 1-арное отношение, единственный кортеж которого содержит имя вычисляемого атрибута { a1 }. Рассмотрим класс C и значение C.a1 = {o1. oa1 И … И ok.a1}. Можно показать, что

С. oa1 OєR' A1 , A1 = E'a (A2, … , An) ґ {a1}                    <25>

Выражение Ea , вычисляющее значение атрибута, должно входить в метаданные, описывающие структуру объекта. Таким образом, схема S содержащего вычисляемые атрибуты объекта класса С (S = Schema(C) ), будет выглядеть следующим образом:

S = {oa1:R1:Ea (oa2, … , oan), oa2:R2,…, oan:Rn}              <26>

Интересно то, что, благодаря замкнутости реляционной алгебры (результатом любого алгебраического выражения над множеством отношений является отношение), вычисляемые атрибуты могут являться атрибутами в реляционных операциях над объектами наравне с хранимыми. Корректность выражения

calcri =С.E(oa1, … , oan) OєR' E' (A1 , … , An)               <27>

зависит исключительно от типов (rdom) использующихся в ней атрибутов ai, и не зависит от того, является эти атрибуты хранимыми или вычисляемыми. Оператор Е может быть определен на основании схемы publicS = {oa1:R1, oa2:R2,…, oan:Rn}, которую можно рассматривать как спецификацию схемы объектов класса С.

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