5.1. Общие понятия объектно-ориентированного подхода
|
|
|
Объектно-ориентированные базы данных (ООБД) по сравнению с традиционными реляционными БД обеспечивают следующие преимущества:
(1) во-первых, в таких БД хранятся не только данные, но и методы их обработки, инкапсулированные в одном объекте;
(2) во-вторых, ООБД позволяют обрабатывать мультимедийные данные;
(3) в-третьих, ООБД допускают работу на высоком уровне абстракции;
(4) ООБД позволяют создавать структуры данных любой сложности.
При всех достоинствах современной объектной технологии разработки баз данных имеется несколько препятствий, которые удерживают разработчиков от принятия решения о переходе с реляционной технологии на объектную. Основным препятствием является значительный объем разработок, опирающихся на реляционные СУБД. Ведь при переходе на объектную технологию необходимо многое начинать "с нуля", и поэтому возникает вопрос целесообразности такого перехода. Кроме того, объектная технология, поддерживаемая в ряде постреляционных СУБД, не имеет развитого и стандартизированного языка генерации отчетов и анализа данных, каким является структурированный язык запросов SQL.
Одной из наиболее известных СУБД объектно-ориентированного типа является Cache компании InterSystems.
В наиболее общей и классической постановке объектно-ориентированный подход базируется на концепциях:
(1) объект и идентификатора объекта
Любая сущность реального мира в объектно-ориентированных языках и системах моделируется в виде объекта.
В реляционной модели сущности реального мира представляются в виде набора двух мерных таблиц – в данном случае описания может быть гораздо сложнее.
Любой объект при своем создании получает генерируемый системой уникальный идентификатор, который связан с объектом во все время его существования и не меняется при изменении состояния объекта
(2) атрибуты и методы
Каждый объект имеет состояние и поведение.
1) Состояние объекта - набор значений его атрибутов.
Значение атрибута объекта - это тоже может быть некоторый объект или даже множество объектов.
Если в реляционной модели любой атрибут является атомарным, то в данной случае поддерживается иерархия вложенности.
2) Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта.
Данный элемент отсутствует в реляционной модели.
Состояние и поведение объекта инкапсулированы в объекте; взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов.
Инкапсуляция — это принцип, согласно которому любой объект должен рассматриваться как «чёрный ящик»:
пользователь должен видеть и использовать только интерфейсную часть (т.е. список декларируемых свойств и методов) и не вникать в его внутреннюю реализацию.
доступ к данным по чтению или записи осуществлялся не напрямую, а с помощью методов.
Сокрытие данных — часть объектно-ориентированного подхода, управляющая областями видимости. Является логическим продолжением инкапсуляции.
целью сокрытия - невозможность для пользователя испортить внутреннее состояние объекта.
(3) классы
Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Объект должен принадлежать только одному классу.
Допускается наличие примитивных предопределенных классов, объекты-экземпляры которых не имеют атрибутов: целые, строки и т.д.
Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута
(4) иерархия и наследование классов
|
|
Принцип наследования - одна из наиболее важных черт объектно-ориентированной модели. Наследование - процесс порождение нового класса на основе уже существующего класс.
|
Различаются случаи простого и множественного наследования.
В первом случае подкласс может определяться только на основе одного суперкласса. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию.
Во втором случае суперклассов может быть несколько. Объект подкласса считается принадлежащим любому суперклассу этого класса.
|
|
Классы типов данных подразделяется на два подкласса типов:
Атомарными классами типов обычно являются традиционные скалярные типы данных (строки, даты, числа, деньги и др.). Структурированные классы типов данных - списки, массивы… Классы объектов делятся на:
Зарегистрированные классы обладают предопределенным поведением, т.е. фиксированным набором методов. Незарегистрированные классы не обладают предопределенным поведением, разработка функций (методов) класса целиком и полностью возлагается на разработчика. Зарегистрированные классы могут быть двух типов:
|
|
Основной особенностью хранения встраиваемого класса является то, что объекты встраиваемых классов существуют в памяти как независимые экземпляры, однако могут быть сохранены в базе данных, только будучи встроены в другой класс. | |
Соотношения между понятиями объектного и реляционного подходов:
|
Объектное понятие |
Реляционное понятие |
|
Класс |
Таблица |
|
Экземпляр |
Строка |
|
Идентификатор объекта (OID) |
ID-столбец в виде первичного ключа |
|
Свойство-константа |
Столбец |
|
Ссылка на хранимый объект |
Внешний ключ |
|
Встраиваемый объект |
Индивидуальные столбцы |
|
Индекс |
Индекс |




