В объектно-ориентированной модели имеется возможность идентифицировать отдельные записи базы. Структура ООБД графически представима в виде дерева, узлами которого являются объекты. Свойства объектов описываются некоторым стандартным типом (например, string) или типом конструируемым пользователем (определяется как class).
Значением свойства типа string является строка символов. Значение свойства типа class есть объект, являющийся экземпляром соответствующего класса. Каждый объект-экземпляр класса считается потомком объекта, в котором он определен как свойство. Объект-экземпляр класса принадлежит своему классу и имеет одного родителя. Родовые отношения в БД образуют связную иерархию объектов.
Пример логической структуры ООБД библиотечного дела.
Здесь объект типа БИБЛИОТЕКА является родительским для объектов экземпляров классов АБОНЕНТ, КАТАЛОГ и ВЫДАЧА. Различные объекты типа КНИГА могут меть одного или разных родителей. Объекты типа КНИГА, имеющие одного и того же родителя, должны различаться по крайней мере инвентарным номером, но имеют одинаковые значения свойств isbn, удк, название и автор.
Логическая структура ООБД внешне похожа на структуру иерархической БД. Основное отличие между ними состоит в методах манипулирования данными.
Для выполнения действий над данными в рассматриваемой модели БД применяются логические операции, усиленные объектно-ориентированными механизмами инкапсуляции, наследования и полиморфизма.
Инкапсуляция ограничивает область видимости имени свойства пределами того объекта, в котором оно определено. Так если в объект КАТАЛОГ добавить свойство, задающее телефон автора книги имеющее название телефон, то мы получим одноименные свойства у объектов АБОНЕНТ и КАТАЛОГ. Смысл такого свойства будет определятся тем объектом, в который оно инкапсулировано.
Наследование, наоборот распространяет область видимости свойства на всех потомков объекта. Так, всем объектам типа КНИГА, являющимся потомками объекта типа КАТАЛОГ, можно приписать свойства объекта родителя: isbn, удк, название и автор. Если необходимо расширить действие механизма наследования на объекты, не являющиеся непосредственными родственниками, то в их общем предке определяется абстрактное свойство типа abs. Так, определение абстрактных свойств билет и номер в объекте БИБЛИОТЕКА приводит к наследованию этих свойств дочерними объектами АБОНЕНТ, КНИГА, ВЫДАЧА. Не случайно поэтому значения свойств билет классов АБОНЕНТ и ВЫДАЧА, будут одинаковыми - 00015.
Полиморфизм в ООП означает способность одного и того же программного кода работать с разнотипными данными. Другими словами, он означает допустимость в объектах разных типов иметь методы (процедуры и функции) с одинаковыми именами. Во время выполнения программы одни и те же методы оперируют с разными объектами в зависимости от типа аргумента. Применительно в ООБД полиморфизм означает, что объекты класса КНИГА, имеющие разных родителей из класса КАТАЛОГ могут иметь разный набор свойств.
Основным достоинством ОО модели данных в сравнении с реляционной является возможность отображения информации о сложных взаимосвязанных объектов. ОО модель позволяет идентифицировать отдельную запись базы данных и определять функции их обработки.
Недостатком являются высокая понятийная сложность неудобство обработки данных и низкая скорость выполнения запросов.