Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
17-06-2015_23-01-11 / Учебное пособие ИОБД_2013.doc
Скачиваний:
138
Добавлен:
15.02.2016
Размер:
2.9 Mб
Скачать

6.3. Элементы реляционного исчисления

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

Алфавит языка логики предикатов составляют следующие символы:

  1. p, q, r, s, …- пропозициональные переменные (символы для предложений, выражающих суждения);

  2. a, b, c, d, … - индивидные константы (символы для элементарных имен объектов);

  3. x, y, z, … - индивидные переменные;

  4. Pk, Qk, Rk, Sk, … - k-местные предикаторные символы (этими символами заменяются общие имена отношений);

  5. , , , , - логические термины «не», «и», «или», «если…, то…», «если и только если…, то…», соответствующие операциям отрицания, конъюнкции, дизъюнкции, импликации и эквивалентности;

  6. , - кванторы общности и существования.

Выражения языка логики предикатов называются формулами. Среди формул выделяют правильно построенные формулы (ППФ).

Определение ППФ:

  1. пропозициональная переменная является ППФ;

  2. если t1, t2, …, tk – термы, а Аk k-местный предикатор, то Ak(t1, t2, …, tk) – ППФ. При этом термом является либо индивидная константа, либо индивидная переменная;

  3. если A, B, CППФ, а x индивидная переменная, то A, (BC), (BC), (AB), (AB), xA, xAППФ;

  4. ничто иное не является ППФ.

В общем случае ППФ языка логики предикатов соответствуют предложениям естественного языка, выражающим суждения, или же соответствуют словосочетаниям естественного языка, выражающим предикаты. Например, предложение «Некоторые науки являются гуманитарными» можно перевести на язык логики предикатов следующим образом: xP1(x), т.е. существует x такой, что x есть P1. В эту формулу входит индивидная переменная x. С переменной связывается область, из которой она принимает значения (область значений переменной). В данном случае областью значений переменной является множество наук. Если изменить область значений переменной, например, считать этой областью множество любых объектов, то указанное предложение может быть выражено другой формулой: x(S1(x)P1(x)), т.е. существует x такой, что x есть S1 и x есть P1, где S1 – символ общего имени. Смысл последней формулы заключается в том, что существует такой объект, который является наукой и который является гуманитарным.

Распространяя отмеченное на самый общий случай, можно получить формулу: xyR2(x, y), которая читается: «существует x такой, что для каждого y верно, что x находится в отношении R2 к y.

Предположим, что имеется база данных, обладающая схемой СТУДЕНТ (Номер зачетной книжки, Номер группы, Фамилия, Имя, Отчество, Дата рождения, Коммерческий) и ГРУППА (Номер группы, Номер факультета, Номер специальности, Курс), и требуется узнать имена, номера факультетов и зачетных книжек студентов, обучающихся в группах с номером больше 1000.

Если бы для формулировки такого запроса использовалась реляционная алгебра, то было бы получено бы алгебраическое выражение, которое читалось бы, например, следующим образом:

  • выполнить соединение отношений СТУДЕНТ и ГРУППА по условию СТУДЕНТ.Номер группы = ГРУППА.Номер группы;

  • ограничить полученное отношение по условию Номер группы > 1000;

  • спроецировать результат предыдущей операции на атрибуты Имя, Номер зачетной книжки, Номер факультета.

В данном случае четко сформулирована последовательность шагов выполнения запроса, каждый из которых соответствует одной реляционной операции. Если же сформулировать тот же запрос с использованием реляционного исчисления, то будет получена формула, которую можно было бы прочитать, например, следующим образом: Выдать Имя, Номер зачетной книжки, Номер факультета для студентов из тех групп, номера которых существуют и имеют значение больше 1000.

В этой формулировке указаны лишь характеристики результирующего отношения, но ничего не сказано о способе его формирования. В этом случае система должна сама решить, какие операции, и в каком порядке нужно выполнить над отношениями СТУДЕНТ и ГРУППА. Обычно говорят, что алгебраическая формулировка является процедурной, т.е. задающей правила выполнения запроса, а логическая - описательной (или декларативной), поскольку она всего лишь описывает свойства желаемого результата. На самом деле эти два механизма эквивалентны и существуют не очень сложные правила преобразования одного формализма в другой.

Соседние файлы в папке 17-06-2015_23-01-11