Реализация объектно-дедуктивных СУБД в реляционной среде
В последние годы системы управления объектными базами данных (СУОБД)активно
развиваются как на академическом уровне, так и в индустрии. К факторам,
сдерживающим развитие этих систем, часто относят недостаточную разработанность
их теоретического основания.
Одним из перспективных классов СУБД являются объектно-дедуктивные системы,
сочетающие объектную модель данных с методами логического программирования.
Необходимо отметить, что в настоящий момент активно исследуется теория
дедуктивных СУБД при недостатке практических реализаций таких систем, в
то время как ситуация с СУОБД прямо противоположна. В этом отношении объектно-дедуктивные
СУБД вызывают дополнительный интерес как возможный способ использования
хорошо исследованых дедуктивных технологий для реализации популярных объектных
систем.
Исследование возможности построения таких систем на основе стадартной
коммерческой реляционной СУБД и объектного языка программирования общего
назначения (в прототипе использовались DB2 и Visual- Age Smalltalk) явилось
целью разработки объектно-дедуктивной открытой системы (ОДОС).
Главной проблемой при построении объектно-дедуктивных СУБД является
несоответствие импеданса между объектными языками определения данных и
манипулирования данными и дедуктивным языком запросов.
Среди большого разнообразия исследуемых методов преодоления этого явления
можно выделить концепцию конвергентных языков, для которых существует формальное
описание их соответственных (но различных) интерпретаций, использующих
один и тот же набор сущностей в качестве области определения. Известный
логический язык запросов Дейталог может рассматриваться как конвергентный
относительно реляционных языков, а реляционная модель данных имеет простое
и хорошо известное выражение в терминах логики предикатов первого порядка.
Это упрощает реализацию дедуктивно-реляционных систем на основе Дейталога,
но модель данных определяется при этом базовой реляционной СУБД.
С другой стороны, в работах S.Abiteboul предложен объектно-дедуктивный
язык Datalog^meth, поддерживающий иерархию наследования и полиморфизм,
и показана возможность эквивалентного преобразования его программ в программы
языка Дейталог. В то же время подобный подход сложен для реализации полного
языка данных, пригодного для построения объектно-дедуктивной СУБД. В значительной
степени это связано с проблемой несоответствия импеданса, возникающей вследствие
противоречия между декларативным характером языка запросов и императивным
- языка манипулирования объектами.
Сочетание перечисленных выше подходов составляет концептуальную основу
ОДОС. Язык данных строится здесь как конвергентный язык, объединяющий объектно-дедуктивный
язык Дейталог/О и объектный язык программирования Smalltalk, расширеный
средствами определения объектов базы данных и манипулирования ими. Построение
на их основе конвергентного языка упрощается благодаря единой объектной
модели данных и позволяет в значительной степени решить проблему несоответствия
импеданса.
Язык Дейталог/О является развитием языка Datalog^meth и также допускает
эквивалентное преобразование его программ в программы языка Дейталог, что
позволяет реализовать объектно-дедуктивную систему в виде надстройки над
реляционной СУБД, так как технологии связывания дедуктивных систем с реляционными
базами данных хорошо изучены.
Возможность применения промышленной РСУБД для построения объектно-дедуктивной
системы управления базами данных качественно упрощает ее реализацию и,
учитывая современное состояние технологии серверов баз данных, существенно
расширяет область ее применения по сравнению с системами построенными,
на основе объектно-ориентированных СУБД.
|