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

       

R-переменные.


R*O-система позволяет организовать основанный на реляционной модели данных групповой ассоциативный доступ к объектам и к данным этих объектов. Возможность такого доступа основывается на том, что объявление типа можно рассматривать также как объявление набора переменных отношений, содержащих данные обо всех существующих в системе объектах данного типа. Будем называть их R-переменными. Рассмотрим эти переменные подробнее.

1) R-переменные компонентов типа. Как мы уже сказали, состояние объекта описывается набором значений отношений, определённых на множестве скалярных типов. Каждому объекту соответствует уникальный объектный идентификатор, который также представляет собой значение скалярного типа. Исходя их этого, объявление объектный типа t, содержащего компонент a со схемой (x1:D1, …, xn:Dn) можно рассматривать также как объявление переменной t.a отношения со схемой (OID: DOID , x1:D1, …, xn:Dn) ( отметим, что это отношение определено на том же множестве скалярных типов). Как видно, имя этой переменной определяется как комбинация имени типа и имени компонента этого типа (мы используем точечную нотацию). Уместно заметить, что реляционная модель не накладывает каких-либо ограничений на имена переменных отношений и атрибутов отношений, за исключением требования их уникальности.

Переменная t.a содержит совокупность значений компонента a всех существующих в системе объектов объектного типа t.так, что каждому кортежу компонента a объекта типа t поставлен в соответствие объектный идентификатор этого объекта. Этот идентификатор содержится в атрибуте OID, который, тем самым, является ссылкой на этот объект.

Отметим, что, охарактеризовав содержимое переменой t.a как "совокупность значений" мы ни в коем случае не имели в виде, что оно есть результат простого объединения этих значений. Например, кортежи компонента-множества а объектов класса t, будучи уникальными внутри каждого объекта, могут повторяться среди разных объектов этого класса. Таким образом, простое объединение v1 UNION v2 UNION … где v- значение компонента-множества a одного из объектов, может повлечь потерю данных, которая выразится в потере таких повторяющихся кортежей.

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