Квантифицированный Дейталог как язык запросов реляционных систем баз данных
Дмитрий Летучий,
Харьковский национальный университет радиоэлектроники, кафедра искусственного интеллекта, НИЛ системных технологий, рабочая группа Datalab,
letuchy@datalab.kharkov.ua
В практике программирования реляционных баз данных часто приходится сталкиваться с задачами, связанными с реализацией сложных запросов, не представимых в рамках одного оператора SQL. Здесь под запросом мы подразумеваем, в первую очередь, получение информации о некотором объекте предметной области, а не о состоянии отношений реляционной базы данных. Таким образом, как только речь заходит о манипулировании объектами предметной области, сохраняемыми в реляционной базе данных, возникает проблема несогласованности модели предметной области и реляционной модели данных. Характерно то, что из-за этой проблемы SQL теряет свои декларативные свойства и превращается в процедурный язык программирования данных.
Одним из путей решения затронутой проблемы является использование логических языков запросов, позволяющих в терминах предметной области описывать и решать сложные задачи извлечения данных. Из существующих логических языков мы выделяем язык Дейталог как наиболее удачное воплощение идеи использовать логику предикатов в контексте реляционных баз данных. Запрос в Дейталоге – это непустое множество правил (логическая программа), каждое из которых определяет некоторое отношение – предикат, соответствующий объекту предметной области [1]. Правило Дейталога имеет форму обратной импликации, в которой определяемый предикат (голова правила) располагается слева от знака “:-”, а конъюнкция определяющих предикатов (тело предиката) записывается через запятую справа от указанного знака. Правила без тела называются фактами. Правила без головы задают ограничения на вывод фактов предикатов. В общем случае программа может содержать определения многих концептов (предикатов) предметной области, поэтому для вычисления одного предиката используется сокращенная запись – цель [2].
Логическую программу можно отождествить с дедуктивной базой данных , где EDB – экстенсиональная (заранее заданная, фиксированная) база данных, IDB – интенсиональная (вычисляемая) база данных, IC – множество ограничений [3].
Основное достоинство Дейталога – поддержка рекурсивных запросов. Так как на Дейталоге реализуемы все базовые операции реляционной алгебры, его выразительные возможности “покрывают” возможности языка реляционной алгебры. Вместе с тем, они слишком бедны по сравнению с современными версиями SQL, поддерживающими ряд расширений реляционной алгебры, в том числе таких фундаментальных, как замена “отношения” на “мультимножество кортежей” [4]. Кроме того, различные версии Дейталога также полностью не покрывают класс выразимых запросов SQL [5]. Попытка объединить алгебраическую природу запросов SQL с логическим способом описания привела нас к созданию новой версии Дейталога – квантифицированного Дейталога (Datalog Quantified, сокр., DLQ) [6, 7, 8].
В основе квантифицированного Дейталога лежит понятие кванторного выражения (атрибутив), имеющего смысл придаточного предложения в правиле программы или подзапроса в SQL. Содержательно атрибутив интерпретируется словом “существует” и позволяет непосредственно выражать логические конструкции существования в программе.
При разработке квантифицированного Дейталога нами были учтены все наиболее весомые расширения чистого Дейталога в части логики предикатов первого порядка, такие, например, как встроенные предикаты, типизация переменных, функциональные термы, включая агрегатные функции и др.
Общность DLQ с SQL позволила авторам разработать схему трансляции программы DLQ в предложения SQL, что в свою очередь существенно облегчило процесс создания интерпретатора языка. Разработанная полнофункциональная система дедуктивных баз данных (СДБД) “DLQ” использует реляционную СУБД в качестве вычислительного и оптимизационного ресурса. Связь между СДБД и РСУБД осуществляется посредством интерфейса ODBC, что позволяет использовать в качестве исходной (экстенсиональной) базы данных практически любую РСУБД, поставляющую ODBC драйвер [9, 10].
Доклад состоит из трех частей. В первой части даются основы логических языков запросов, определяется понятие модели логической программы. Во второй части приводится краткий перечень расширений Дейталога, некоторые из которых легли в основу квантифицированного Дейталога, а также характеризуется новая версия Дейталога с привлечением ряда примеров, запускаемых под управлением СДБД “DLQ”. Заключительная часть доклада посвящена архитектуре СДБД “DLQ”.
Текущую версию СДБД “DLQ” можно найти на авторском сайте http://www.datalab.kharkov.ua в разделе download. Здесь же содержится ряд документов, посвященных квантифицированному Дейталогу. СДБД “DLQ” свободно распространяется в ограниченном варианте (ограничение накладывается только на число выводимых фактов). Вместе с СДБД поставляются примеры с подробным описанием, что позволяет быстро освоить процесс написания логических программ (запросов к РБД) на квантифицированном Дейталоге.
Литература:
- Дж. Д. Ульман, Дж. Уидом. Введение в системы баз данных. - М.: Изд. “Лори”, 2000. – 374 c.
- Чери и др. Логическое программирование и базы данных.–М.: Мир,1992. – 352 c.
- Фернандес A., Минкер Дж. Теория и алгоритмы дизъюнктивных дедуктивных баз данных
// Программирование. – 1993. – № 3. – с. 7-37.
- Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. – М.: "Вильямс", 2003. – 1088 c.
- Liu M. Deductive database languages: problems and solutions. //ACM Computing Surveys. – 1999. – № 1. – P. 27-62.
- Буслик Н.Н., Летучий Д.А. Отрицательные литералы и вычислительная парадигма Дейталога //Проблемы бионики: Всеукр. межвед. научн.-техн. сб. – 2001. – № 55. – С. 3-8.
- Буслик Н. Н., Летучий Д. А. Об одном расширении вычислительной парадигмы Дейталога //Сб. научных трудов ХТУРЭ. – 2001. – C. 432-433.
- Летучий Д. А. Расширенная модель отрицаний в дедуктивных базах данных //Сборник тезисов конф. “Компьютеры. Программы. Интернет. 2003”. – Киев. – 2003. – с. 44.
- Летучий Д. А., Кузьменок А. Е. Архитектура дедуктивных систем управления базами данных // Сб. научных трудов ХТУРЭ. – 2002. – C. 444-445.
- Буслик Н.Н., Летучий Д.А. Технология дедуктивных баз данных в системах поддержки принятия решений //Восточно-Европейский журнал передовых технологий. Харьков. – 2003. – № 6. – С 21-24.
|