- •Реляционная алгебра
- •Модель:
- •3.1. Основные понятия реляционной модели
- •3.2. Свойства отношений
- •3.3. Реляционные ключи
- •3.4. Представление схем
- •3.5. Реляционная целостность
- •3.6. Внешние представления
- •Реляционная алгебра и реляционное исчисление
- •3.7. Реляционная алгебра
- •3.7.3. Объединение - r s
- •3.7.4. Разность - r - s
- •3.7.5. Пересечение - r s
- •3.7.6. Декартово произведение - r X s
- •3.7.7. Декомпозиция сложных операций
- •3.7.8. Операции соединения
- •3.7.9. Деление r s
- •3.8. Реляционное исчисление
- •3.8.1. Реляционное исчисление кортежей
- •3.8.2. Реляционное исчисление доменов
- •3.9. Другие языки
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.Таб№)))}