Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздаточный материал по информатике / 05 - Не реляционные модели (базы данных).doc
Скачиваний:
75
Добавлен:
23.05.2015
Размер:
144.9 Кб
Скачать

5.1. Общие понятия объектно-ориентированного подхода

Объектно-ориентированные базы данных (ООБД) по сравнению с традиционными реляционными БД обеспечивают следующие преимущества:

  • (1) во-первых, в таких БД хранятся не только данные, но и методы их обработки, инкапсулированные в одном объекте;

  • (2) во-вторых, ООБД позволяют обрабатывать мультимедийные данные;

  • (3) в-третьих, ООБД допускают работу на высоком уровне абстракции;

  • (4) ООБД позволяют создавать структуры данных любой сложности.

При всех достоинствах современной объектной технологии разработки баз данных имеется несколько препятствий, которые удерживают разработчиков от принятия решения о переходе с реляционной технологии на объектную. Основным препятствием является значительный объем разработок, опирающихся на реляционные СУБД. Ведь при переходе на объектную технологию необходимо многое начинать "с нуля", и поэтому возникает вопрос целесообразности такого перехода. Кроме того, объектная технология, поддерживаемая в ряде постреляционных СУБД, не имеет развитого и стандартизированного языка генерации отчетов и анализа данных, каким является структурированный язык запросов SQL.

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

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

(1) объект и идентификатора объекта

Любая сущность реального мира в объектно-ориентированных языках и системах моделируется в виде объекта.

В реляционной модели сущности реального мира представляются в виде набора двух мерных таблиц – в данном случае описания может быть гораздо сложнее.

Любой объект при своем создании получает генерируемый системой уникальный идентификатор, который связан с объектом во все время его существования и не меняется при изменении состояния объекта

(2) атрибуты и методы

Каждый объект имеет состояние и поведение.

  • 1) Состояние объекта - набор значений его атрибутов.

Значение атрибута объекта - это тоже может быть некоторый объект или даже множество объектов.

Если в реляционной модели любой атрибут является атомарным, то в данной случае поддерживается иерархия вложенности.

  • 2) Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта.

Данный элемент отсутствует в реляционной модели.

Состояние и поведение объекта инкапсулированы в объекте; взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов.

Инкапсуляция — это принцип, согласно которому любой объект должен рассматриваться как «чёрный ящик»:

  • пользователь должен видеть и использовать только интерфейсную часть (т.е. список декларируемых свойств и методов) и не вникать в его внутреннюю реализацию.

  • доступ к данным по чтению или записи осуществлялся не напрямую, а с помощью методов.

  • Сокрытие данных — часть объектно-ориентированного подхода, управляющая областями видимости. Является логическим продолжением инкапсуляции.

  • целью сокрытия - невозможность для пользователя испортить внутреннее состояние объекта.

(3) классы

  • Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Объект должен принадлежать только одному классу.

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

  • Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута

(4) иерархия и наследование классов

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

Наследование - процесс порождение нового класса на основе уже существующего класс.

    • В этом случае новый класс, называемый подклассом существующего класса (суперкласса), наследует все атрибуты и методы суперкласса.

    • В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы.

Различаются случаи простого и множественного наследования.

  • В первом случае подкласс может определяться только на основе одного суперкласса. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию.

  • Во втором случае суперклассов может быть несколько. Объект подкласса считается принадлежащим любому суперклассу этого класса.

Классы типов данных подразделяется на два подкласса типов:

  • Атомарные

  • Структурированные.

Атомарными классами типов обычно являются традиционные скалярные типы данных (строки, даты, числа, деньги и др.). Структурированные классы типов данных - списки, массивы…

Классы объектов делятся на:

  • зарегистрированные;

  • незарегистрированные.

Зарегистрированные классы обладают предопределенным поведением, т.е. фиксированным набором методов. Незарегистрированные классы не обладают предопределенным поведением, разработка функций (методов) класса целиком и полностью возлагается на разработчика.

Зарегистрированные классы могут быть двух типов:

  • встраиваемые;

  • хранимые.

Основной особенностью хранения встраиваемого класса является то, что объекты встраиваемых классов существуют в памяти как независимые экземпляры, однако могут быть сохранены в базе данных, только будучи встроены в другой класс.

Соотношения между понятиями объектного и реляционного подходов:

Объектное понятие

Реляционное понятие

Класс

Таблица

Экземпляр

Строка

Идентификатор объекта (OID)

ID-столбец в виде первичного ключа

Свойство-константа

Столбец

Ссылка на хранимый объект

Внешний ключ

Встраиваемый объект

Индивидуальные столбцы

Индекс

Индекс