Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3 Реляционная алгебра.doc
Скачиваний:
4
Добавлен:
16.09.2019
Размер:
438.27 Кб
Скачать

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

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

Используемые обозначения :

Сотрудник(S) – областью значений переменной S служит отношение “Сотрудник”

{S | F(S)} – множество всех кортежей S, для которых F(S) является истинным. Здесь предикат F называется формулой.

Любое выражение имеет общую форму:

{S1.a1, S2.a2, …, Sn.an | F(S1, S2,…,Sm)}; m ≥ n

здесь S1, S2,…,Sn,…,Sm – переменные кортежа, ai – атрибуты, F – формула.

Вводятся кванторы существования ( - «существует») и квантор общности ( - «для всех»). Смысл и использование кванторов аналогичны их применению в исчислении предикатов математической логики. Переменные кортежа называются связанными переменными, если они квалифицируются кванторами или , в противном случае переменные называются свободными.

Правильно построенная формула F имеет вид

Элементарное выражение в формуле может иметь одну из следующих форм:

  • R(Si), где R – отношение, Si – переменная кортежа

  • Si.a1 ¤ Sj.a2, где Si,, Sj-переменные кортежа; a1,a2-атрибуты отношения переменных Si и Sj соответственно; ¤ - одна из операций сравнения: <, ≤, >, ≥, =, ≠

  • Si.a1 ¤ C, где Si – переменная кортежа; a1 – атрибут отношения переменной Si; С – константа из области определения атрибута ai; ¤ - одна из операций сравнения

Формулы рекурсивно строятся из элементарных выражений по следующим правилам:

  • любое элементарное выражение – формула

  • если выражения F1 и F2 являются формулами, то выражения, полученные в результате их конъюнкции (F1 F2), дизъюнкции (F1 F2), отрицания (ØF1) – формулы

  • если выражение F является формулой, со свободной переменной X, то выражения ( X)(F) и ( X)(F) - формулы

В отношении логических операций с кванторами могут применяться следующие правила эквивалентности:

( X) (F(X))   ( X) ((F(X)))

( X) (F(X))   ( X) ((F(X)))

( X) (F1(X)  F2(X))   ( X) ((F1(X)) (F2(X)))

( X)(F1(X)  F2(X))   ( X) ((F1(X)) (F2(X)))

Примеры формул реляционного исчисления кортежей.

{S | Сотрудники(S) (S.Зарплата > 10000)} – выбрать все атрибуты отношения «Сотрудники» для сотрудников, получающих зарплату больше 10000 руб.

{S.Зарплата | Сотрудники(S) (S.Зарплата > 10000)} – выбрать один атрибут «Зарплата» отношения «Сотрудники» для сотрудников, получающих зарплату больше 10000 руб.

{S.ФИО | Сотрудники(S) ( В) (Офис(В) (В.Таб№=S.Таб№) (В.Город=’Екатеринбург’))} – выбрать атрибут «ФИО» отношения «Сотрудники», если в отношении «Офис» существует кортеж, который имеет такое же значение атрибута «Таб№», что и значение атрибута «Таб№» в текущем кортеже S и атрибут «Город» из кортежа В имеет значение ‘Екатеринбург’, проще говоря - выбрать «ФИО» из отношения «Сотрудники», которые работают в офисе, расположенном в городе Екатеринбург.

{S.ФИО | Сотрудники(S) (Ø P)(ОбъектыНедвижимости) (S.Таб№=P.Таб№)))} - создать список всех сотрудников, которые в данный момент не работают с объектами недвижимости. Используя правила эквивалентности логических операций, это выражение можно переписать так:

{S.ФИО | Сотрудники(S) (( P)( ØОбъектыНедвижимости(P) Ø(S.Таб№=P.Таб№)))}