Базовыми понятиями этой модели являются следующие: объекты, классы, методы, инкапсуляция, наследование, полиморфизм.
Понятие объекта взято из объектно-ориентированного программирования. В этой среде все состоит из объектов. Объект обладает следующими свойствами: идентифицируется уникальным неизменным образом, принадлежит к определенному классу, может посылать сообщения другим объектам, имеет внутреннее состояние.
Объектно-ориентированная база данных состоит из объектов, каждый из которых должен принадлежать к определенному классу, т.е. каждый объект – экземпляр класса. Объектно-ориентированная база данных состоит из коллекции классов. Структура и поведение объектов в объектной среде полностью определяется его классом. Класс, в свою очередь, является коллекцией объектов, при этом структура и поведение объектов одного класса одинаковы.
Класс объекта состоит из его интерфейса и закрытой области. Интерфейс класса – это то, что видно другим объектам. Он, в свою очередь, состоит из двух частей: свойства класса и методов класса. Аналогом свойств являются атрибуты отношений. Например, клиент может иметь следующие свойства: номер, Ф.И.О., адрес, телефон. К свойствам относятся также связи с другими объектами. Свойства сами могут быть объектами, что позволяет создавать составные объекты, например, свойство Ф. И. О. может состоять из свойств: фамилия, имя, отчество.
Доступ к значениям свойств и манипулирование ими можно осуществлять только посредством методов класса. Поведение объекта задается с помощью методов его класса. Обычно они имеют форму операций и функций, которые могут содержать параметры. На уровне интерфейса видимым является только имя каждого метода и требуемые параметры. Методы служат для передачи объектам сообщений. Другими словами, метод представляет то, что, по мнению пользователя, должен делать объект. Например, клиент может сделать заказ, оплатить счет и т. п. Для каждого из этих видов деятельности должен быть соответствующий метод.
Закрытая область – это та часть определения класса, которая не видна другим объектам. Пользователю объекта предоставляется информация только о том, как работать с объектом при помощи его методов. Сама же работа объекта скрыта от пользователя. Например, могут существовать дополнительные свойства с закрытыми значениями, а также скрытые связи и сообщения другим объектам.
Свойства объектов описываются либо одним из стандартных типов, заложенных в системе, например, строковым типом String, либо типом, который конструирует сам пользователь. Этот тип определяется словом Class. Значением свойства типа Class является объект, являющийся экземпляром соответствующего класса. Каждый объект – экземпляр класса – считается потомком объекта, в котором он определен как свойства. Объект – экземпляр класса, принадлежит своему классу и имеет одного родителя. Родовые отношения в базе образуют связанную иерархию объектов.
Важным достоинством объектно-ориентированной базы является то, что пользователю не нужно знать о взаимодействии объектов: он просто обращается к конкретному объекту и использует конкретный метод. То, что при этом осуществляется воздействие на другие объекты базы, скрыто от пользователя.
Различные правила, руководящие использованием объектов, также могут быть скрыты от пользователя. Например, выбранный метод может, в свою очередь, обращаться к другим методам, например, методу проверки кредитоспособности выбранного клиента.
Понятие «класс объекта» во многом аналогично понятию «тип». Поэтому при проектировании объектно-ориентированной базы данных нужно прежде всего осуществить процесс классификации, т.е. выявить объекты с аналогичными свойствами и поведением и объединить их в классы.