Скачиваний:
52
Добавлен:
10.05.2015
Размер:
327.68 Кб
Скачать

2. Операция разности.

Реляционная алгебраR=R1-R2

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

R1- R2={ t|tϵR1(t)Λ tϵ R2(t)}

Необходимо получить множество

всех кортежей t, которые принадлежат отношениюR1и не принадлежат отношениюR2.

Операция разности не является коммутативной операцией, т.е. R1–R2≠R2–R1. Аргументы в операции разностиR1иR2 нельзя переставлять местами.

3. Операция декартово произведение.

Пусть r- кортежи отношенияR1,т.е.R1(r)

q- кортежи отношенияR2,т.е.R2(q)

(rq)- кортеж, полученный добавлением значений второго отношенияR2в конец первого отношенияR1. Он называется конкатенацией кортежей и обозначается (rq)

Реляционная алгебра R1×R2 ={(rq)|r ϵ R1(r)Λ q ϵ R2(q)}

Т.е. необходимо получить множество всех кортежей (rq), в которыхr принадлежащийR1(r) иq принадлежащий кортежамR2(q).

4. Операция селекции.

Реляционная алгебра R=Ϭ F(R1)

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

R ={ t|t ϵ R1(t) Λ F = “истина”}

Т.е. необходимо получить множество кортежей t, принадлежащих отношениюR1, для которых истинно условие селекцииF (или условие выборки или фильтрации)

5.Операция пересечения.

Реляционная алгебраR1∩R2

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

R1∩ R2 = { t|tϵR1(t)Λ tϵ R2(t)}

Т.е. необходимо получить множество всех кортежей

t, которые принадлежат отношениюR1ИR2

Запросы с помощью редяционного исчисления кортежей.

Используем таблицу:

Stuff(Sno, Fname, Lname, Adress, Tel_no, Position, Sex, Dat, Salary, NiN, Bno)

Sno– Личный номер сотредника

Fname- Имя

Lname – Фамилия

Adress - Адрес

Tel_no – Номер телефона

Position- Должность

Sex- Пол

Dat– Дата рождения

Salary- Зарплата

NiN– Личный номер социального страхования

Bno– Номер отделения, в котором сотрудник работает

Область определения кортежей являются отношения, указанные в формулах. Мы работаем с отношением Stuff. Область определения кортежейt запием таким образом:

Range of t is stuff, далее сформулируем запросы.

Запрос 1.

Выбрать все атрибуты отношения stuff для сотрудников, которые получают зарплату больше 10 тысяч.

{t|t.salary>10000}

Запрос 2.

Создайте список всех менеджеров, зарплата которых превышает 25000.

{t|t.position = “manager”.AND t.salary>25000}

4.7.2. Реляционное исчисление доменов.

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

Обозначим переменную домен как d, а предикат какP(d).

Множество всех значений домена d, для которых предикат истина обозначим как {d|P(d)}

Если мы разработаем с отношением Stuff(Sno, Fname, Lname, Adress, Tel_no, Position, Sex, Dat, Salary, NiN, Bno) то к примеру stuff.salary – обозначает домен salary из отношения stuff.

Запрос 1.

Найдите имена всех сотрудников зарплата которых больше 25000. Список домен содержит атрибут Fname. Используется отношениеstuff. Обозначим переменную

домен –d, значит 1.Range of d is stuff. Предикат для запроса можно записатьP(d)=staff.salary>25000, а множество всех значений для которых предикат истина {F Fname|staff.salary>25000}.

Запрос 2.

Найдите имена всех менеджеров, зарплата которых больше 25000. Список должен содержать атрибуты Lname иFname.

  1. Range of d is stuff.

  2. {name, Fname | staff.position = “manager” AND stuff.salary>25000}.

Соседние файлы в папке Лекции по Базам данных - версия 9.01.10