Основные понятия
Объектно-ориентированная модель представления данных дает возможность идентификации отдельных записей базы.
Записи базы данных и функции их обработки связаны механизмами, подобными соответствующим средствам, которые реализуются в объектно-ориентированных языках программирования.
Графическим представлением структуры объектно-ориентированной базы данных является дерево, узлы которого представляют объекты.
Стандартный тип (например, строковый – string) или тип, созданный пользователем (class), описывает свойства объектов.
На рисунке 1 объект БИБЛИОТЕКА является родителем для объектов-экземпляров классов КАТАЛОГ, АБОНЕНТ и ВЫДАЧА. У разных объектов типа КНИГА может быть один или разные родители. У объектов типа КНИГА, которые имеют одного и того же родителя, должны быть по крайней мере разные инвентарные номера (уникальные для каждого экземпляра книги), но одинаковые значения свойств автор, название, удк и isbn.
Логические структуры объектно-ориентированной и иерархической базы данных внешне похожи. Отличаются они в основном методами манипулирования данными.
При выполнении действий над данными в объектно-ориентированной модели используются логические операции, которые усилены инкапсуляцией, наследованием и полиморфизмом. С некоторым ограничением можно применять операции, которые подобны командам SQL (например, при создании БД).
При создании и модификации БД выполняется автоматическое формирование и последующая корректировка индексов (индексных таблиц), которые содержат информацию для осуществления быстрого поиска данных.
Цель инкапсуляции – ограничение области видимости имени свойства границами того объекта, в котором оно определено.
Например, если в объект КАТАЛОГ добавлено свойство, которое задает телефон автора и имеет название телефон, то одноименные свойства получатся у объектов КАТАЛОГ и АБОНЕНТ. Смысл свойства определяется тем объектом, в который оно инкапсулировано.
Наследование, обратно инкапсуляции, отвечает за распространение области видимости свойства относительно всех потомков объекта.
Например, всем объектам КНИГА, которые являются потомками объекта КАТАЛОГ, могут быть приписаны свойства объекта-родителя: автор, название, удк и isbn.
При необходимости расширения действия механизма наследования на объекты, которые не являются непосредственными родственниками (например, на два потомка одного родителя) в их общем предке определяют абстрактное свойство типа abs.
Таким образом, свойства номер и билет в объекте БИБЛИОТЕКА наследуются всеми дочерними объектами ВЫДАЧА, КНИГА и АБОНЕНТ. Именно поэтому значения этого свойства классов АБОНЕНТ и ВЫДАЧА одинаковые – 00015 (рисунок 1).
Полиморфизм позволяет одному и тому же программному коду работать с разнотипными данными.
Иначе говоря, он допускает в объектах разных типов иметь методы (функции или процедуры) с одинаковыми именами.
Поиск в объектно-ориентированной базе данных заключается в определении сходства между объектом, который задает пользователь, и объектами, которые хранятся в БД.
Преимущества и недостатки объектно-ориентированной модели
Основное преимущество объектно-ориентированной модели данных в отличие от реляционной модели состоит в возможности отображения информации о сложных взаимосвязях объектов. Рассматриваемая модель данных позволяет определять отдельную запись БД и функции ее обработки.
К недостаткам объектно-ориентированной модели относят высокую понятийную сложность, неудобную обработку данных и низкую скорость выполнения запросов.
На сегодняшний день такие системы достаточно широко распространены. К ним относятся СУБД:
- Postgres,
- Orion,
- Iris,
- ODBJupiter,
- Versant,
- Objectivity /DB,
- ObjectStore,
- Statice,
- GemStone
- G-Base.