Корпоративные базы данных - статьи

       

Дедуктивные базы данных



По определению, дедуктивная БД состоит из двух частей: экстенсиональной, содержащей факты, и
интенсиональной, содержащей правила для логического вывода новых фактов на основе
экстенсиональной части и запроса пользователя.

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

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

Мы не будем здесь более подробно рассматривать конкретные проблемы, применяемые
ограничения и используемые методы в дедуктивных системах. Отметим лишь, что обычно языки


запросов и определения интенсиональной части БД являются логическими (поэтому дедуктивные
БД часто называют логическими). Имеется прямая связь дедуктивных БД с базами знаний
(интенсиональную часть БД можно рассматривать как БЗ). Более того, трудно провести грань
между этими двумя сущностями; по крайней мере, общего мнения по этому поводу не
существует.

Какова же связь дедуктивных БД с реляционными СУБД, кроме того, что реляционная БД
является вырожденным частным случаем дедуктивной? Основным является то, что для реализации
дедуктивной СУБД обычно применяется реляционная система. Такая система выступает в роли
хранителя фактов и исполнителя запросов, поступающих с уровня дедуктивной СУБД. Между
прочим, такое использование реляционных СУБД резко актуализирует задачу глобальной
оптимизации запросов.

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

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

Содержание раздела