Cтраница 1
Механизм Пролога и SQL / DS выполнены в виде двух независимых виртуальных машин на одной физической машине. Запросы, передаваемые в SQL / DS, обрабатываются подсистемой обработки динамически определяемых запросов, которая обычно используется для случайных запросов. [1]
Механизм Пролога активизируется, как только первый кортеж извлечен из базы данных, интерфейс базы данных и интерфейс Пролога продолжают загружать данные асинхронно. Это позволяет механизму Пролога производить другие запросы до того, как ответ на текущий запрос будет получен полностью. [2]
Механизм Пролога представляет собой некоторую Пролог-систему, способную выполнять цели языка Пролог. Хотя мы и не намерены при связывании изменять базовое поведение механизма Пролога ( поиск по стратегии сначала вглубь, унификация, бэктрекинг), однако в этом механизме могли быть расширены некоторые средства с целью их адаптации к среде конкретной системы баз данных. [3]
Такие механизмы Пролога, как вопросы и сопоставление, можно гибко использовать для получения информации из базы данных. Кроне этого можно использовать вспомогательные процедуры-утилиты, еще больше облегчающие взаимодействие с конкретной базой данных. [4]
Выполним эту цель с помощью механизма Пролога. [5]
В ТСРЯ-системах управление взаимодействием осуществляется механизмом Пролога, который управляет выполнением правил. Схема вычислений, реализованная в классических Пролог-системах, является последовательной, хотя и существует несколько версий Пролога, использующих параллелизм. [6]
Наконец, еще одна модификация ряда механизмов Пролога касается возможности получения множества всех ответов на запросы ( цели) над предикатами базы данных. При этом организуются повторные выполнения цели до тех пор, пока очередной шаг вычислений не приведет к неудаче. После этого система предоставляет нам множество всех полученных к данному моменту ответов. [7]
Следует, однако, отметить, что используемая механизмом Пролога процедура доказательства не является минимальной. Любой из рассмотренных выше ответов может генерироваться много раз, используя различные пути в пространстве поиска, определяемом исходной целью. Это означает, в частности, что одни и те же запросы к базе данных могут выполняться несколько раз, что приводит к увеличению стоимости вычислений. Для решения этой проблемы были разработаны методы, которые обсуждаются ниже. [8]
Напишите на Прологе интерпретатор программ на Дейталоге, который использует резолюционный механизм Пролога и для данной цели строит все линейные деревья опровержения до указанной глубины. Можно допустить, что все дизъюнкты программы на Дейталоге и экстенсиональной базы данных загружены, подобно регулярным дизъюнктам Пролога, в базу данных прологовских дизъюнктов. [9]
Отметим также, что проверка отношения обобщения между единичными литералами сводится к простому сопоставлению, которое реализуется механизмом Пролога. Здесь оказывается полезным следующее свойство: если L и М - литералы, то L обобщает М тогда и только тогда, когда L сопоставим с Ml, где Ml получается из М подстановкой вместо каждой переменной некоторой новой константы. [10]
Очевидно, что в ЬСРЯ-системах параллельное выполнение запросов возможно, поскольку каждую базовую конъюнкцию можно выполнить независимо от остальных перед активизацией механизма Пролога. [11]
![]() |
Архитектура ЬСРЯ-системы. Цифра 1 над стрелкой обозначает связывание во время загрузки. [12] |
Отметим, что действия по связыванию ( 1) происходят во время загрузки, когда файл, содержащий Пролог-программу, считывается механизмом Пролога. После того как релевантные базовые факты загружены в память Пролога, выполнение Пролог-программы происходит независимо от базы данных. [13]
Его действие состоит в том, что переменные, появляющиеся в текущем правиле слева от cut, после означивания становятся неизменяемыми: означивания, выполненные механизмом Пролога по достижении cut больше не могут быть изменены. [14]
Если при помощи некоторого интерфейса базы данных извлекается первый факт ( что позволяет произвести унификацию с ним текущей базовой конъюнкции), интерфейс Пролога может возобновить работу механизма Пролога. В то же время интерфейс базы данных продолжает загружать остальные факты в основную память. [15]