Объектно-ориентированная модель данных

Создание объектно-ориентированных СУБД считается одним из наиболее перспективных направлений в области разработки новых типов баз данных.

Объектно-ориентированные СУБД базируются на идеях, сформулированных в объектно-ориентированных языках программирования (наследования, инкапсуляции и полиморфизма). Предметная область представляется в виде множества классов объектов. Структура и поведение объектов одного класса (например, товаров базы данных торгового предприятия) являются одинаковыми.

Объект обладает следующими характеристиками :

1. Имеет уникальный идентификатор, однозначно определяющий объект.

2. Принадлежит к некоторому классу, обладающему определенными поведением и свойствами.

3. Может обмениваться сообщениями с другими объектами.

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

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

В объектно-ориентированной модели возможно создание нового класса объектов на основе уже существующего класса. Этот процесс называется наследованием. Новый класс, называемый подклассом существующего класса (суперкласса), наследует все свойства и методы суперкласса . Кроме того, для него могут быть определены дополнительные свойства и методы.

Объектно-ориентированная СУБД позволяет хранить объекты и обеспечивает их совместное использование различными приложениями. Для этого она должна обладать следующими компонентами :

1. Языком баз данных, который позволяет декларировать классы объектов, а затем создавать, сохранять, извлекать и удалять объекты.

2. Хранилищем объектов, к которому могут получить доступ разные приложения. Для ссылок на объекты используются их идентификаторы.

Для практической реализации объектно-ориентированных баз данных применяются два подхода :

1. Используется язык объектно-ориентированного программирования (например, С++), дополненный средствами, позволяющими при необходимости сохранять объекты после завершения программы, с помощью которой они были созданы.

2. Основой является реляционная система, к которой добавляются объектно-ориентированные компоненты.

Недостатки объектно-ориентированных баз данных :

1) отсутствуют необходимое унифицированное теоретическое обоснование и стандартизованная терминология;

2) не существует формально сформулированной методологии проектирования баз данных;

3) отсутствуют средства создания нерегламентированных запросов;

4) нет общих правил поддержания согласованности данных.

В заключение можно отметить, что объектно-ориентированные базы данных в настоящее время очень сложны в проектировании и эксплуатации, что ограничивает их практическое применение. Поэтому, несмотря на продолжающиеся интенсивные исследования, объектно-ориентированная модель данных пока поддерживается лишь немногими СУБД (POET, Jasmine, Versant, Iris) .