Ю. И. ЖУКОВ
Научный руководитель – И. В. ПРОХОРОВ1
, Москва,
1Московский инженерно-физический институт (государственный университет)
Подсистема управления схемами баз данных
в объектно-ориентированной СУБД
Существуют распространенные классы задач, требующие хранения и обработки данных в виде иерархических и сетевых структур, а также в виде настраиваемых типов и классов. Для этого целесообразно использовать объектно-ориентированную СУБД. Одной из ключевых подсистем такой СУБД является подсистема управления схемами баз данных.
Существуют конкретные задачи, когда в целях повышения надежности в системе для хранения и обработки данных должна использоваться СУБД собственной разработки, т. е. с исходными текстами. В то же время, специфика предметных областей определяет потребность в хранении и обработке данных, имеющих большую иерархию и взаимосвязи объектов. Для данных целей подходит применение объектно-ориентированных (ОО) СУБД. С их помощью можно хранить и манипулировать объектами, имеющими сколь угодно сложную структуру и взаимосвязи, не прибегая постоянно к композиции/декомпозиции объектов, как в случае традиционных реляционных СУБД. Также на СУБД накладываются определенные дополнительные требования: функционирование в отечественной защищенной UNIX-системе, разграничение доступа к данным, функционирование в режиме «клиент-сервер» на разных аппаратных платформах, а также поддержка стандарта ODMG для ОО СУБД.
Для создания, хранения и управления данными, описывающими структуру хранимых в БД объектов (т. е. классы, атрибуты, связи и методы объектов), используется подсистема управления схемами баз данных. Она является одной из основных в ядре ОО СУБД. Данную подсистему управления схемами БД можно разбить на следующие подразделы:
- доступ и модификация метаобъектов;
- хранение метаобъектов в базе данных;
- сохранение и восстановление схемы из файла;
- проверка целостности метаобъектов;
- генерация исходного текста библиотеки схемы и заголовочных файлов программного интерфейса схемы;
- компиляция библиотеки схемы;
- синхронизация версии схемы между сервером и клиентами;
- графическое средство (клиентское приложение) для редактирования схем, проверки их корректности, генерации и компиляции библиотеки схемы, а также принятия схемы в качестве текущей на сервере.
Доступ к метаобъектам производится как со стороны ядра СУБД, так может производиться и со стороны приложений. К ним могут относиться приложения, код которых не зависит от конкретной схемы, т. е. работающие с любой схемой БД. Метаобъекты схемы должны храниться в БД, для того чтобы к ним могли обращаться как ядро СУБД, так и приложения. Кроме того, должна быть реализована возможность их модификации. Для эффективной работы схему нужно сохранять в файл и восстанавливать из файла. Это нужно для сохранения разных версий схемы, в том числе и незавершенных, для того чтобы потом их можно было восстановить и завершить редактирование. Схема должна образовывать систему взаимосвязанных метаобъектов и правил. Таким образом, нужен механизм проверки целостности связей метаобъектов и правил, обусловленных СУБД, а также правилами C++. Причем, должны быть реализованы средства информирования о местоположении и виде ошибки целостности схемы. Должны быть реализованы средства, осуществляющие генерацию заголовочных файлов C++ по редактируемой схеме. Они предназначены для подключения в исходный код приложений и содержат программный интерфейс классов, операций, определений схемы, которые используются в приложении. Помимо заголовочных файлов, должна генерироваться C++-реализация данного интерфейса, чтобы после компиляции получить библиотеку схемы, которая должна подключаться приложениями (на уровне связывания объектного кода). Для того чтобы версия текущей схемы (в составе метаобъектов, заголовочных файлов и библиотеки схемы) на сервере совпадала с текущими схемами на клиентах, необходим механизм, осуществляющий синхронизацию версий между сервером и клиентскими машинами, работающими с данным сервером. Необходимо разработать удобное графическое средство, позволяющее администратору редактировать схемы БД, сохранять их в файлы, восстанавливать из файлов, проверять корректность (целостность) метаобъектов схемы, восстанавливать текущую схему, сохранять как текущую схему: сохранять метаобъекты, генерировать заголовочные файлы и библиотеку схемы и сохранять их на сервере.
Доклад посвящен проектированию и реализации программного комплекса, обеспечивающего выполнение изложенных требований.


