18.07.2013 Views

информация, язык, интеллект № 3 (77) 2011

информация, язык, интеллект № 3 (77) 2011

информация, язык, интеллект № 3 (77) 2011

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!