Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ Ч.1 _2016.docx
Скачиваний:
2
Добавлен:
31.01.2024
Размер:
2.97 Mб
Скачать

2.8 Объектно-ориентированные субд и стандарт odmg

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

В качестве примера рассмотрим ОО СУБД ObjectStore, которая обеспечивает долговременное хранение в БД объектов, созданных программами на языках C++ и Java. Вся работа с объектами ведется обычными средствами включающего ОО-языка. При этом СУБД как бы расширяет виртуальную память операционной системы. Происходит это следующим образом. Когда прикладная программа обращается к объекту, то ищет его по адресу в оперативной памяти. Нужная страница оперативной памяти может быть вытеснена в виртуальную память (область хранения неиспользуемых страниц оперативной памяти на диске). Если объекта с таким адресом в виртуальной памяти не существует, то операционная система генерирует ошибку. СУБД эту ошибку перехватывает и извлекает объект из БД.

ObjectStore поддерживает транзакции (в один момент времени может существовать только одна транзакция), допускает следующие методы доступа: хеш-таблица для несортированных данных и B-дерево для сортированных, также возможно использование SQL.

ODMG (Object Data Management Group) – консорциум поставщиков ОО БД и других заинтересованных организаций, созданный в 1991 г. Его задачей является разработка стандарта на хранение объектов в БД. Рассмотрим кратко основные положения этого документа.

Стандарт на хранение объектов ODMG разработан на основе трех существующих стандартов: языка управления БД (SQL), языка управления объектами (стандарты OMG – Object Management Group) и стандарты на ОО языки программирования (C++, Smalltalk, Java).

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

  1. Объектная модель – унифицированная основа всего стандарта. Она расширяет объектную модель консорциума OMG за счет введения таких свойств как связи и транзакции для обеспечения функциональности, требуемой при взаимодействии с БД. Ключевые концепции объектной модели ODMG:

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

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

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

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

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

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

  1. Язык описания объектов (ODL - Object Definition Language) – средство определения схемы БД (по аналогии с DDL в реляционных СУБД). ODL является расширением IDL (Interface Definition Language - язык описания интерфейсов) модели OMG и предоставляет средства для определения объектных типов, их атрибутов, связей и методов. ODL создает слой абстрактных описаний так, что схема БД становится независима как от языка программирования, так и от СУБД. ODL рассматривает только описание объектных типов данных, не вдаваясь в детали реализации их методов. Это позволяет переносить схему БД между различными ODMG-совместимыми СУБД и языками программирования, а также транслировать ее в другие DDL.

  2. Язык объектных запросов (OQL - Object Query Language) – это SQL-подобный декларативный язык, который предоставляет эффективные средства для извлечения объектов из БД, включая высокоуровневые примитивы для наборов объектов и объектных структур. OQL-запросы могут вызываться из ОО языка, точно также из OQL-запросов могут делаться обращения к процедурам, написанным на OO языке. OQL предоставляет средства обеспечения целостности объектов (вызов объектных методов и использование собственных операторов изменения данных).

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

Соседние файлы в предмете Информационное обеспечение систем управления