Общие определения. Реляционное исчисление

Реляционное исчисление

Реляционное исчисление лежит в основе декларативного подхода к формулировке запроса к БД, суть которого заключается в следующем:

Запросу к БД соответствует формула некоторой формально-логической теории, которая описывает свойства желаемого результата.

Ответом на запрос служит множество объектов из области интерпретации (которой является БД), на котором истинна формула, соответствующая запросу.

В качестве такой формально-логической теории используется теория исчисления предикатов первого порядка, в которой формула задается в виде предиката.

Понятие предиката

Даны некоторые попарно не пересекающиеся произвольные множества D1, D2, …, Dn, Di Ç Dj = 0 для любых i ¹ j, и переменные x1, x2, …, xn, принимающие значения из соответствующих множеств: xi Î Di для любых i.

Тогда предикатом (или предикатной функцией) называется функция P(x1, x2, …, xn), принимающая одно из двух значений – 1 или 0 (истина или ложь).

Переменные x1, x2, …, xn называются предикатными переменными. Множества D1, D2, …, Dn образуют область интерпретации предиката.

В записи предиката, наряду с логическими операциями Ù, Ú, Ø, смысл и использование которых традиционны, используются специальные операции – кванторы: всеобщности " и существования $. Смысл использования кванторов следующий:

" x (f(x)) означает, что для всех значений x из области интерпретации формула f(x) имеет значение "истина";

$ x (f(x)) означает, что существует по крайней мере одно значение x из области интерпретации, для которого формула f(x) имеет значение "истина".

Примеры

Пусть переменная x определена на множестве "учебная группа"; f(t) – утверждение
" t получает стипендию"; тогда предикат $ x (f(x)) имеет значение "истина", если хотя бы один член группы (не важно, кто именно) получает стипендию, и ложь, если никто в группе не получает стипендию.

Пусть переменная x определена на множестве "учебная группа"; f(t) – утверждение
" t не имеет задолженностей в сессию"; тогда предикат " x (f(x)) имеет значение "истина", если все члены группы не имеют задолженностей в сессию, и ложь, если хотя бы один член группы имеет задолженность.

Использование кванторов определяет понятие свободного и связанного вхождения переменных в предикатной формуле.

Вхождение переменной t в формулу y связано, если переменная t находится в формуле y в подформуле, начинающейся кванторами " или $, за которыми непосредственно следует переменная t; тогда о кванторе говорят, что он связывает переменную t. В остальных случаях t входит в y свободно.

Рассмотрим следующий пример:

В примере пронумеровано использование переменных, в соответствии с их появлением в кванторах и в формуле. В соответствии с этим, в первой подформуле все вхождения x (помеченные цифрой 1) связаны, первое вхождение y (помеченное цифрой 2) свободно, следующие вхождения y (помеченные цифрой 3) связаны, вхождение переменной z (помеченное цифрой 4) свободно. Во второй подформуле все вхождения переменной x (помеченные цифрами 5 и 8) связаны, вхождение y (помеченное цифрой 7) свободно и, наконец, вхождение переменной r (помеченное цифрой 6) связано.

Кванторы в реляционном исчислении определяют области значений и видимости переменных. Это означает следующее:

Все переменные, входящие в формулу, при построении которой не использовались кванторы, являются свободными. Это означает, что если для какого-то определенного набора свободных переменных при вычислении предикатной формулы получено значение "истина", значит, этот набор значений свободных переменных войдет в результат, определяемый предикатом.

Если же вхождение переменной в формулу связано квантором, тогда такая переменная не видна за пределами формулы, связавшей эту переменную. При вычислении значения такой формулы используется не одно значение переменной, что имеет место для свободных переменных, а все значения из области определения данной переменной.

Рассмотрим пример. Пусть дано множество десятичных цифр D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; тогда подмножество, состоящее из четных цифр, можно определить следующим образом: множество всех значений y, таких, для которых выполняется условие: $ x (x ¸ 2 = 0 Ù y = x).

Приведенный предикат интерпретируется следующим образом: существует хотя бы одно значение x Î D, которое четно и совпадает со значением некоторой свободной переменной y. Следовательно, если свободная переменная y имеет конкретное значение, например, 6, приведенный предикат будет иметь значение "истина", и значение переменной y входит в результат. Если же переменная y будет иметь значение 7 или 12, тогда предикат будет иметь значение "ложь", и данное значение y не войдет в результат.

В реляционном исчислении областью интерпретации предиката является база данных – т.е. множество всех значений всех доменов, на которых определены все схемы отношений, определяющие схему базы данных. Соответствие между предикатом P и отношением r(A1, A2,..., An) заключается в следующем:

Если P(a1, a2,..., an) = 1, то < a1, a2,..., an > есть выборка отношения r(A1, A2,..., An), т.е.

<a1, a2, …, an> Î r;

Если P(b1, b2,..., bn) = 0, то <b1, b2, …, bn> Ï r.

Таким образом, базисными понятиями исчисления являются понятие переменной и понятие правильно построенной формулы.

В зависимости от того, как определяется область значений используемых переменных, различают два вида реляционного исчисления:

Реляционное исчисление с переменными-кортежами, для которого областями определения переменных являются отношения БД, т.е. допустимым значением каждой переменной является кортеж некоторого отношения;

Реляционное исчисление с переменными на доменах, для которого областями определения переменных являются домены, определяющие множество допустимых значений атрибутов.

Правильно построенные формулы служат для выражения условий, накладываемых на переменные (кортежи или на доменах).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: