Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
70
Добавлен:
10.05.2015
Размер:
327.68 Кб
Скачать

3. Деление

Эту операцию рассмотрим на примере 2-х отношений.

R1 (A, B, C, D) S1 (C, D)

Кортеж № 1 a b c d c d

Кортеж № 2 a b e f e f

Кортеж № 3 b c e f

Кортеж № 4 e d c d

Кортеж № 5 e d e f

Кортеж № 6 a b d e

Пусть R1 и S1 являются отношениями арности r и s соответственно, где r>s и S≠Ø.

Тогда R1 ÷ S1 есть множество кортежей t длины (r-s), таких, что для всех кортежей U длины s, принадлежащих отношению S1 кортеж t принадлежит отношению R1.

Последовательность нахождения частного R1 ÷ S1:

  1. Обозначим t1 – первый кортеж частного R1 ÷ S1.

  2. Найдем в отношении R1 кортежи t1cd и t1ef.

  3. Кортежи №1 и №2 отношения R1 удовлетворяют условию. То есть t1=ab.

  4. Ведем просмотр кортежей отношения R1 дальше. Ищем и t2cd и t2ef.

  5. Кортежи №4 и №5 отношения R1 удовлетворяют условию. То есть t2=ed.

  6. Просмотр отношения R1 окончен.

a b

e d

  1. Значение R1 ÷ S1 =

4.6. Примеры использования операций реляционной алгебры.

Пример 1.

Даны 2 отношения.

R – список арендаторов.

S - список объектов аренды.

R – арендаторы

Ф.И.О.

Мобильный телефон

Ф1

Т1

Ф2

Т2

S – объекты аренды

Наименование объекта

Адрес

О1

А1

О2

А2

Задача: Создать список всех арендаторов, которые осматривали объекты аренды, при условии, что каждый арендатор осматривал каждый объект, т.е. в итоговом отношении R должны появиться следующие кортежи:

Решение: Для решения задачи нужно получить декартово произведение.

Ф.И.О.

Мобильный телефон

Наименование объекта

Адрес

Ф1

Т1

О1

А1

Ф1

Т1

О2

А2

Ф2

Т2

О1

А1

Ф2

Т2

О2

А2

Пример 2.

Имеется 2 отношения:

Пригодность (Рейс, тип_самолета)

83 727

83 747

109  707

Право (Пилот, Тип_самолета)

C 707

C 727

B 747

X 727

Задача: Создать список рейсов с указанием типа самолета на каждом из рейсов и имени пилота, имеющего право летать на самолете этого типа. Записать этот список в отношении Варианты (Рейс, Тип_самолета, Пилот).

Для решения задачи нужно получить естественное соединение отношений Пригодность и Право по атрибуту Тип_самолета.

Варианты = Пригодность[Тип_самолета=Тип_самолета]Право

Результат:

Варианты (Рейс, Тип_самолета, Пилот)

1. 83 727 C

2. 83 727 X

3. 83 747 B

4. 109 707 C

Пример 3.

Даны отношения:

R1 (товар) R2 (продавец, товар)

1035

2241

2249

2518

10

2241

23

2518

23

1035

39

2518

10

2249

23

2249

23

2241


Запрос 1.

Какие продавцы продали товар 2518. Записать этот список в отношение R3

  1. Получим селекцию R2 по условию товар=2518

Продавец

Товар

39

2518

23

2518


R3= σтовар=2518 (R2)=

  1. Получим проекцию R3 по атрибуту продавец

39

23

R3[продавец]

Запрос 2.

Перечислить продавцов, которые продали каждый товар. Записать этот список в отношение R4.

Мы должны найти в таблице R2 таких продавцов, которые реализуют следующее сочетание с товаром таблицы R1

Продавец

Товар

Х

1035

Х

2241

Х

2249

Х

2518

Пусть Продавец есть Х, тогда искомое сочетание.

Т.е. продавец Х реализовал каждый товар. Ответ на этот запрос дает операция деления

R4 = R2: R1

Ответ: R4 (продавец)

23

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