информация, язык, интеллект № 3 (77) 2011
информация, язык, интеллект № 3 (77) 2011
информация, язык, интеллект № 3 (77) 2011
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ОТОБрАЖЕНИЕ эЛЕМЕНТОВ рЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫх В эЛЕМЕНТЫ ДЕДуКТИВНОЙ МОДЕЛИ<br />
множество фактов экстенсионала M D . Пространство<br />
допустимых состояний, выразимых в M R и<br />
M D , обозначим, соответственно BR и BD . Тогда<br />
ρ – отображение вида (10), ω : BR → BD<br />
– отображение<br />
пространства состояний M R в пространство<br />
состояний M D , а µ Def – семантическая функция<br />
модели <strong>язык</strong>а определения данных.<br />
Рис. 3. Диаграмма отображения<br />
компонент M R в M D<br />
3.2. Отображение манипуляционной части<br />
Как было сказано выше, в основе дедуктивной<br />
модели лежит доказательно-теоретический подход<br />
к базам данных, расширяющих классическое<br />
понимание базы данных за счет применения логического<br />
программирования.<br />
Наиболее распространенным <strong>язык</strong>ом, применяемым<br />
в ДБД, является Datalog.<br />
Семантика Datalog определена на алфавитах<br />
Var, Const 8Pred , обозначающих переменные, константы<br />
и предикаты.<br />
Переменные обозначают строками буквенноцифровых<br />
символов конечной длины, начинающихся<br />
с прописной буквы. Следует отметить, что<br />
существует специальная переменная «_», называемая<br />
анонимной. Ею обозначают любую неименованную<br />
переменную. Анонимные переменные<br />
используют для отсечения, некоторых аргументов<br />
предиката, что аналогично операции проекции в<br />
реляционной алгебре.<br />
Константой является текстовая строка или число.<br />
Например: “строковая константа” или “12”.<br />
Предикаты обозначают строками алфавитноцифровых<br />
символов конечной длины, которые<br />
начинаются со строчной буквы. Как говорилось<br />
выше, предикаты являются булевыми функциями<br />
над множествами данных.<br />
К функциям Datalog, помимо формулирования<br />
дедуктивных правил вывода, относят описание запросов.<br />
Для выражения запросов, называемых в<br />
логическом программировании целями, на <strong>язык</strong>е<br />
Datalog используют дизъюнкты вида (15). Голова<br />
цели состоит из символа “?”, а тело – из предиката,<br />
над которым выполняют запрос и условий отбора:<br />
( )<br />
? ←p A1, A2, …, Ak, …,<br />
An , AkΩ C,<br />
(15)<br />
где, p – предикат, определенный на множестве<br />
фактов EDB M D ; Ai – переменные, связанные с<br />
значениями аргументов предиката; AkΩ C условие<br />
выборки; Ω – множество логических функций<br />
сравнения (>, C.<br />
1 2 k n 1 2 k n k<br />
Проекция πXY , ,.., Z ( R)<br />
q( X1, X2, …, Xk) ←r( X1, X2, …, Xk,<br />
_, …,_).<br />
139