Сегодня проводится много работ в области объектно-ориентированных СУБД (ООСУБД). Среди них системы французского консорциума Altair – O2, американской компании MCC – ORION, американской фирмы Servio Logic – GemStone и Hewlett-Packard – Iris.
Многие ООСУБД построены над некоторой существующей реляционной СУБД. Кроме того развитые в реляционных СУБД методы применяют и в новых разработках объектно-ориентированных систем.
Системы, которые поддерживают организацию сложных объектов, являются непосредственными предшественниками ООСУБД. Такие постреляционные системы по большей части появились из-за несоответствия возможностей реляционных СУБД потребностям нетрадиционных приложений (автоматизации проектирования, инженерии и т.д.). Многие ООСУБД (например, ORION) были разработаны на основе предшествующих работ со сложными объектами.
Другая основа ООСУБД – расширяемые системы, основной идеей которых является поддержание набора модулей с четко оговоренным интерфейсом, на основе которого можно выполнить быстрое построение СУБД, которая предназначена для конкретной области применения или опирается на конкретную модель данных.
Рассмотрим особенности организации ООСУБД на примере систем ORION и O2.
ООСУБД ORION
Проект ORION разрабатывался в 1985–1989 гг. фирмой MCC. ORION на самом деле включает семейство из трех СУБД: однопользовательской системы ORION-1, системы ORION-1SX, которая предназначена для применения в качестве сервера в локальной сети, полностью распределенной ООСУБД ORION-2.
К основным функциональным компонентам системы относится подсистема управления памятью, управления объектами и транзакциями. Все компоненты ORION-1 расположены на одной рабочей станции, а в ORION-1SX – распределены между различными рабочими станциями. Для взаимодействия механизма клиент-сервер для удаленного вызова процедур в ORION-1SX применяются практически без доработок многие модули ORION-1. Сетевые взаимодействия основываются на стандартных средствах операционной системы.
К функциям подсистемы управления памятью относится размещение и поиск объектов в буфере оперативной памяти, перемещение страниц из оперативной памяти во внешнюю и наоборот, распределение внешней памяти. Также подсистема отвечает за поддержку вспомогательных индексных структур, которые предназначены для повышения скорости выполнения запросов.
Подсистема управления объектами состоит из подкомпонентов управления версиями и схемой объектов, обработки запросов. Управление версиями поддерживается только для тех объектов, при создании которых такая необходимость была указана явно. Для схемы базы данных версии не поддерживаются; при ее изменении отслеживается влияние такого изменения на существующие объекты и на другие компоненты схемы. В процессе обработки запросов применяется техника оптимизации, которая аналогична применяемой в реляционных системах.
Подсистемой управления транзакциями обеспечивается традиционная сериализуемость транзакций, поддерживаются средства журнализации восстановления базы данных после сбоев и ее изменений. Журналом изменений обеспечиваются откаты индивидуальных транзакций и восстановление базы данных после небольших сбоев.
ООСУБД О2
Проект O2 разработан в 1986 г. французской компанией Altair, которая занимается проектированием и реализацией ООСУБД.
Система (кроме набора интерфейсных средств) состоит из подсистемы управления дисками, объектами и схемой и интерпретатора запросов.
Подсистема управления дисками занимается поддержанием базовой среды постоянного хранения.
Функциями подсистемы управления объектами, которая несет наибольшую функциональную нагрузку, является управление:
- сложными объектами (создание и удаление объектов, выборка объектов по именам, поддержка предопределенных методов, поддержка объектов с кортежем, списком и внутренней структурой-множеством;
- передачей сообщений между объектами;
- транзакциями;
- коммуникационной средой (на основе транспортных протоколов TCP/IP в сети Ethernet);
- отслеживание объектов, которые долго хранятся;
- буферами оперативной памяти;
- кластеризацией объектов во внешней памяти;
- индексами.