Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.62 Mб
Скачать

Реляционное исчисление кортежей

В реляционном исчислении кортежей задача состоит в нахождении таких кортежей, для которых предикат является истинным.

Это исчисление основано на переменных кортежа.

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

Для указания отношения R в качестве области определения переменной кортежа S используется следующая форма записи: R (S).

Кроме того, запрос "найти множество всех кортежей «S», для которых P(S) является истинным" можно записать следующим образом:

{S | P (S)}.

Здесь предикат P называется формулой (правильно построенной формулой).

Запрос "выбрать атрибуты Код предмета, Название предмета, Фамилия преподавателя для предметов, количествао лекционных часов которых >22" можно записать следующим образом: { S | Р(S) ^ S.количество> 22}.

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

Квантор существования ( ) используется в формуле, которая должна быть истинной хотя бы для одного экземпляра.

Например, студент (S) ^ {Зв} (Год рождения(B) ^ (В.имя=S.имя) ^ В.группа=

'ТИ-31'). Это выражение означает, что в отношении Год рождения существует кортеж, который имеет такое же значение атрибута имя, что и значение атрибута имя в текущем кортеже S из отношения Студент, а атрибут группа из кортежа В имеет значение

'ТИ-31'.

Квантор общности ( ) используется в выражениях, которые относятся ко всем экземплярам.

Пример. ( B) (В.группа * 'ТИ-31').

Это выражение означает, что ни в одном кортеже отношения Год рождения значение атрибута группа не равно 'ТМ-31'.

Свободные переменные переменные кортежа, которые не квалифицируются кванторами или ; в противном случае они называются связанными переменными.

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

Допустимыми формулами могут быть только недвусмысленные и небессмысленные последовательности.

Формула (или правильно построенная формула) в исчислении предикатов определяется следующими правилами:

  • Если Р является n-арной формулой (предикатом с n аргументами), а t1, t2,…, tn это константы или переменные, то выражение Р (t1, t2,…, tn) является правильно построенной формулой.

  • Если t и t2; являются константами или переменными из одного домена, а  представляет собой один из операторов сравнения (<, <=, >, >", в или -=), то выражение t1 t2 является правильно построенной формулой.

  • Если выражения F1, F2 являются формулами, то их конъюнкция обозначается как F1 F2;, дизъюнкция как F1 F2, а отрицание как .

  • Если выражение F1 является формулой со свободной переменной X, то выражения F(Х) и F(Х) также являются формулами.

Выражение реляционного исчисления может генерировать бесконечную последовательность кортежей. Избежать этого возможно благодаря использованию переменных области определения, которые задаются с помощью оператора RАNGЕ.

Вместо использования этого оператора можно явно указывать область определения внутри формулы, в таком случае задается бесконечное множество кортежей следующим образом: {S|~(S Staff)}. Это выражение означает набор кортежей, которые не входят в отношение Staff. Выражения подобного типа называются опасными. Чтобы избежать их возникновения, следует добавить ограничение, требующее, чтобы все результирующие значения входили в область определения формулы. Например, областью определения приведенной выше формулы является множество всех значений, которые представлены в отношении Staff.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]