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

       

что такой потери данных не


Имеющийся в переменной t.a атрибут OID, уникально идентифицирующий каждый объект,

(OID1 х v1) UNION (OID2 х v2) UNION … (где х - символ декартова произведения)

гарантирует, что такой потери данных не произойдет.

Следствием такого представления данных является следующее. Привычный способ доступа к данным в традиционных ОО-системах начинается с так или иначе хранящегося OID (т.е. с ссылки на объект), используя который можно получить доступ к атрибутам и методам объектов (если OID не сохранен, объект считается потерянным). Переменная же t.a позволяет выполнить обратное действие - получить OID (т.е. ссылку на объект) на основании данных компонента a объектов типа t. Из этого, в частности, следует, что для того, что бы получить доступ к тому или иному объекту, нет нужды хранить его OID. Таким образом, переменная t.a представляет данные, говоря образно, в однородном виде.

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

Замечание. Важно понимать, что значения, хранящиеся в R-переменных, всегда являются значениями отношений. Выражение "R-переменная … типа t" означает лишь то, что указанная R-переменная ассоциирована с типом t.

Заметим, что значение имеющегося в R-переменных атрибута OID является системным. В связи с этим для доступа к атрибуту OID вместо выражения Rvar.OID далее будет использоваться функциональное выражение Object(Rvar). Здесь Rvar имя R-переменной, которая содержит атрибут OID. Выражение Object(expr), где expr - выражение, вычисляющее значение отношения с атрибутом OID, будет использоваться вместо операции проекции expr[OID]. В обеих случаях выражение Object(…) возвращает групповую ссылку.

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