[ Russian ] [ English ]

Реализация объектно-дедуктивных СУБД в реляционной среде

К.Лисовский,
Курс,
kl@kurs.msk.su

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

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

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

Исследование возможности построения таких систем на основе стадартной коммерческой реляционной СУБД и объектного языка программирования общего назначения (в прототипе использовались DB2 и Visual- Age Smalltalk) явилось целью разработки объектно-дедуктивной открытой системы (ОДОС).

Главной проблемой при построении объектно-дедуктивных СУБД является несоответствие импеданса между объектными языками определения данных и манипулирования данными и дедуктивным языком запросов.

Среди большого разнообразия исследуемых методов преодоления этого явления можно выделить концепцию конвергентных языков, для которых существует формальное описание их соответственных (но различных) интерпретаций, использующих один и тот же набор сущностей в качестве области определения. Известный логический язык запросов Дейталог может рассматриваться как конвергентный относительно реляционных языков, а реляционная модель данных имеет простое и хорошо известное выражение в терминах логики предикатов первого порядка. Это упрощает реализацию дедуктивно-реляционных систем на основе Дейталога, но модель данных определяется при этом базовой реляционной СУБД.

С другой стороны, в работах S.Abiteboul предложен объектно-дедуктивный язык Datalog^meth, поддерживающий иерархию наследования и полиморфизм, и показана возможность эквивалентного преобразования его программ в программы языка Дейталог. В то же время подобный подход сложен для реализации полного языка данных, пригодного для построения объектно-дедуктивной СУБД. В значительной степени это связано с проблемой несоответствия импеданса, возникающей вследствие противоречия между декларативным характером языка запросов и императивным - языка манипулирования объектами.

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

Язык Дейталог/О является развитием языка Datalog^meth и также допускает эквивалентное преобразование его программ в программы языка Дейталог, что позволяет реализовать объектно-дедуктивную систему в виде надстройки над реляционной СУБД, так как технологии связывания дедуктивных систем с реляционными базами данных хорошо изучены.

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

Supported by Synthesis Group