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

       

Свойства модели "объект-качество" и реализующей ее системы.


Повторим, что ортогональность означает, что каждая из компонент системы типов обладает определенным и присушим только ей набором свойств. Неоднократно показано, что эти свойства являются несовместимыми, однако эта несовместимость является следствием попыток совместить их путем создания некоего универсальный тип. Задачу же следует ставить по-другому - надо описать данные одновременно и как объекты и как отношения, а эта задача решена изначально. Наше знание о любой вещи является совокупностью знаний о качествах этой вещи, а качества, как мы уже показали, являются реляционным понятием. Таким образом информации, возникающей в процессе познания окружающего мира уже обладает требуемой структурой, являющейся и объектной и реляционной одновременно. Следовательно мы можем говорить о том, что модель "объект-качество" обладает и объектными и реляционными свойствами.

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

Не следует путать свойства определяемые моделью данных и механизмы присущие системам хранения информации. Например, несмотря на то, что триггеры присущи обычно именно реляционным БД, их существование никак не обуславливается реляционной моделью. В системах, реализующих модель "объект-качество", возможно определять и переопределять триггер для атрибута объекта. В этом случае триггеры можно рассматривать уже как механизм реализующий объектные принципы инкапсуляции и полиморфизма.


Последний пример является хорошей иллюстрацией слияния механизмов, присущих объектным и реляционным системам, которое возможно в системе, реализующей модель "объект-качество". Тот же триггер для качественного атрибута объекта может быть описан как метод класса. Также в виде метода класса может быть оформлено выражение, возвращающее переменную отношения, причем эта переменная может быть и собственно качественным атрибутом, и временной переменной, возникшей в результате выполнения реляционных операция над качественными атрибутами - в этом случае мы говорим о виде (механизм реляционных систем) оформленном в виде метода (объектное понятие).
С другой стороны, тот факт, что система, реализующая модель "объект-качество", основана на реляционных принципах, позволяет использовать механизмы поиска и групповой обработки данных, присущих реляционным БД, применительно к объектам (традиционные объектные системы предполагают, что для этой цели должны использоваться итераторы, последовательно перебирающие объекты). На уровне хранения каждому качеству Q соответствует одно единственное отношение R, в котором хранятся все существующие в системе и описывающие разные объекты значения этого качества. Такая организация данных позволяет, например, обратиться к значениям атрибута Attr у множества объектов класса C (а также всех классов C',C''... - наследников С), имеющего качественный тип Q. Для этого на уровне представления может быть использовано следующее выражение
UPDATE C.Attr SET C.Attr.i =.... WHERE C.Attr.j >...//условие отбора
которое при переходе на уровень хранения преобразуется системой к виду
UPDATE R SET R.i.... WHERE R.S = "Attr" AND R.J> ..// условие отбора
где R - отношение соответствующее качеству Q
Более того. Реляционная природа описываемой системы позволяет реализовывать свойства, принципиально невозможные в традиционных объектных системах. В последних ссылка считается единственным способом доступа к объекту. Следовательно, обязательно должны существовать ссылка на любой созданный объект, то есть объекты должны быть обязательно включены в иерархию объектов.


Если ссылки на объект не существует, то он считается потерянным и без пользы занимает память или уничтожается специальным сборщиком. Но в системе, реализующей модель "объект-качество", объект может существовать сам по себе, даже если ссылки на него отсутствует. Доступ к его данным может быть осуществлен с помощью групповых операций и, в конце концов, с помощью этих же групповых операций мы имеем возможность вновь получить ссылку на этот объект. Для того, что бы получить набор ссылок на объекты удовлетворяющие определенному условию на уровне представления можно использовать выражения вида
SELECT * FROM C WHERE C.Attr.i =...//условие отбора
которое на уровне хранения преобразуется системой например к следующему виду
SELECT R.OID FROM R WHERE R.S = "Attr" AND R.i =...//условие отбора
Модель "объект-качество" позволяет разрешить некоторые теоретические вопросы, обычно возникающие при противопоставлении объектных и реляционных систем. Одним из таких вопросов является вопрос об истинности утверждения, что постоянство хранения ортогонально типу (POTT). Сторонники объектных систем хранения информации утверждает, что объекты должны быть хранимыми и это свойство (которое может быть названо "хранимость" или "постоянство") должно быть прозрачным для программиста - другими словами "хранимость" ортогональна типу. Сторонники же реляционных систем утверждают обратное - все данные должны явно сохраняться в виде отношений, т.е. хранимость должна явным образом выражаться через тип отношения.
Если рассматривать этот вопрос с позиций модели "объект-качество", то никакого противоречия в этих утверждениях нет. Действительно, для классов "хранимость" является ортогональным свойством, поскольку оно определяется через ортогональную систему качественных типов, являющихся отношениями. Объект, являющийся множеством кортежей обладающих свойством "хранимость", сам, таким образом, является хранимым.
К сожалению ограничения по объему статьи не позволяют рассмотреть систему, основанную на модели "объект-качество" более подробно.Однако и то, что уже сказано, позволяет рассматривать эту модель как интересный объект для исследования и реализации.

Содержание раздела