Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспектЛекций.doc
Скачиваний:
71
Добавлен:
14.05.2015
Размер:
1.26 Mб
Скачать

7. Объектно-ориентированные базы данных.

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

Направление объектно-ориентированных баз данных (ООБД) возникло сравнительно давно. Публикации появлялись уже в середине 1980-х гг. Среди языков и систем программирования наибольшее первичное влияние на ООБД оказал Smalltalk. Этот язык сам по себе не является полностью пионерским, хотя в нем была введена новая терминология, являющаяся теперь наиболее распространенной в объектно-ориентированном программировании.

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

  • Инкапсуляция

  • Наследование

  • Полиморфизм

Целостность данных:

  • автоматическое поддержание отношений наследования

  • возможность объявить некоторые поля данных и методы объекта как "скрытые", не видимые для других объектов; такие поля и методы используются только методами самого объекта

  • создание процедур контроля целостности внутри объекта

Средства манипулирования данными:

  • Работа с данными ведется с помощью одного из объектно-ориентированных языков программирования общего назначения, обычно это SmallTalk, C++ или Java.

Недостатки ОО модели баз данных:

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

  • вместо чисто декларативных ограничений целостности (типа явного объявления первичных и внешних ключей реляционных таблиц с помощью ключевых слов PRIMARY KEY и REFERENCES) или полудекларативных триггеров для обеспечения внутренней целостности приходится писать процедурный код.

Стандарт ODMG (Object Data Management Group)

ODMG добавляет возможности взаимодействия с базами данных в объектно-ориентированные языки программирования: определяются средства долговременного хранения объектов и расширяется семантика языка, вносятся операторы управления данными. Стандарт состоит из нескольких частей:

Ключевые концепции объектной модели ODMG:

  • наделение объектов такими свойствами как атрибуты и связи

  • методы объектов (поведение)

  • множественное наследование

  • идентификаторы объектов (ключи)

  • определение таких совокупностей объектов как списки, наборы, массивы и т.д.

  • блокировка объектов и изоляция доступа

  • операции над базой данных

Язык описания объектов (ODL - Object Defifnition Language) – средство определения схемы базы данных (по аналогии с DDL в реляционных СУБД). ODL создает слой абстрактных описаний так, что схема базы данных становится независима как от языка программирования, так и от СУБД.

Язык объектных запросов (OQL - Object Query Language) – SQL-подобный декларативный язык, который предоставляет эффективные средства для извлечения объектов из базы данных, включая высокоуровневые примитивы для наборов объектов и объектных структур.

Object Manipulation Language (OML) - язык манипулирования объектами, который расширяет базовые ОО-языки средствами манипулирования и хранения объектов. Также включаются OQL, средства навигации и поддержка транзакций. Каждый ОО-язык имеет свой собственный OML, поэтому разработчик остается в одной языковой среде, ему нет необходимости разделять средства программмирования и доступа к данным.

1 Проекция – это копия отношения, в которую не включены один или несколько атрибутов исходного отношения.

2 Пример:

Пусть нам необходимо создать базу данных земельных участков. Каждый участок задается координатами узлов ломаной линии, ограничивающей его по периметру. В этом случае спроектировать реляционную таблицу невозможно, т.к. заранее не известно количество узлов для всех участков. Также невозможно написать общие процедуры (вычисление площади, нахождение пересечения и т.д.) для всех случаев.

3 Основной тезис темпоральных систем состоит в том, что для любого объекта данных, созданного в момент времени t1 и уничтоженного в момент времени t2, в БД сохраняются (и доступны пользователям) все его состояния во временном интервале [t1,t2).

81