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

       

реализация типов" принадлежит модели данных


Говоря образно, понятие " реализация типов" принадлежит модели данных и, следовательно, относится только к уровню представления данных. Реализация же системы определяет взаимосвязи между уровнем представления и уровнем хранения.

Таким образом, важнейшей частью R*O системы является транслятор, выполняющий преобразование команд R*O системы в команды используемой РСУБД.

Замечание. Демонстрируя возможность трансляции команд уровня представления в команды РСУБД, мы, так или иначе, подразумеваем возможность записи результатов трансляции, используя SQL. Однако, с практической точки зрения, это не является обязательным. Подразумевается, что транслятор может генерировать некое внутреннее, используемое в конкретной РСУБД представление команд или последовательностей команд, минуя, таким образом, создание SQL-скрипта.

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


  1. в системе необходимо хранить описание структуры объектных типов на всем протяжении их существования (возможная схема используемых для этого таблиц каталога будет предложена далее).
  2. необходимо, что бы для любого объекта существовала возможность определить тип этого объекта. Реализация выполняющих это требование операций o IS t и o OF t будет рассмотрена далее.


Повторим, что основная идея, на которой основывается предлагаемая реализация R*O-системы, заключается в том, что R-переменные (уровень представления данных) являются переменными отношений. Важно, однако, понимать, что R-переменные уровня представления и переменные отношений уровня хранения не эквивалентны. Детальная организация данных на уровне хранения скрыта от пользователя. В частности, значение R-переменной компонента типа t.a (уровень представления) в общем случае реализуется системой как объединение нескольких значений, из которых только одно является значением базовой переменной stt.a' (эта переменная используется для хранения значений тех компонентов объектов, которые на уровне представления реализованы как хранимые).

Замечание. Схема базовой переменной уровня хранения stt.a' абсолютно совпадает со схемой R-переменной уровня представления, и представляет собой схему соответствующего компонента, к которой добавлен атрибут OID.

Остальные значения можно рассматривать как промежуточный результат выражения f'(BASE_VALUE), соответствующего тем компонентам объектов, которые на уровне представления реализованы как вычисляемые

t.a = stt.a' UNION stf'(BASE_VALUE) UNION stf'2 (BASE_VALUE) UNION …

здесь stf'(BASE_VALUE) - выражение, вычисляющее некое значение, используя как параметр (в общем случае) текущее состояние(значение) БД на уровне хранения . Как мы уже сказали, эти вычисления должны выполняться системой неявно для пользователя на основании информации о наследовании типов и о реализации компонентов этих типов.


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