
БД_Лекции.tar / Лекции по Базам данных (Управление данными) / Дополнительные лекции / Реляционная алгебра
.docПримеры использования операция реляционной алгебры
Пример 1.
Даны 2 отношения
R – список арендаторов
S – список объектов аренды
R S
|
ФИО |
Мобильный телефон |
||||
---|---|---|---|---|---|---|
|
Ф1 |
Т1 |
||||
|
Ф2 |
Т2 |
||||
|
|
|
||||
|
|
|
||||
|
|
|
Наименование объекта |
Адрес |
О1 |
А1 |
О2 |
А2 |
Задача:
Создать список всех арендаторов, которые осматривали объекты аренды, при условии, что каждый арендатор осматривал каждый объект: т.е. в итоговом отношении R1 должны появиться следующие кортежи: Ф1, Т1, О1, А1 и т.д.
Решение:
Для решения задачи нужно получить декартово произведение R1=R(х)S =
ФИО |
Мобильный телефон |
Наименование объекта |
Адрес |
Ф1 |
Т1 |
О1 |
А1 |
Ф1 |
Т1 |
О2 |
А2 |
Ф2 |
Т2 |
О1 |
А1 |
Ф2 |
Т2 |
О2 |
А2 |
Пример 2.
Имеются 2 отношения:
Пригодность (рейс, тип_самолета) Право (пилот, тип_самолета)
|
83 |
727 |
||||
---|---|---|---|---|---|---|
|
83 |
747 |
||||
|
109 |
707 |
||||
|
|
|
||||
|
|
|
||||
|
|
|
||||
|
|
|
С |
707 |
С |
727 |
В |
747 |
Х |
727 |
Задача:
Создать список рейсов с указанием типа самолета на каждом из рейсов и имени пилота, имеющего право летать на самолете этого типа. Записать этот список в отношение Варианты (рейс, тип_самолета, пилот)
Решение:
Для решения задачи нужно получить естественное соединение отношений Пригодность и Право по атрибуту тип_самолета.
Варианты = Пригодность [тип_самолета=тип_самолета] Право
Результат: Варианты (рейс, тип_самолета, пилот)
-
1
83
727
С
2
83
727
Х
3
83
747
В
4
109
707
С
Пример 3.
Даны отношения:
R1 (товар) R2 (продавец, товар)
|
1035 |
|
||
---|---|---|---|---|
|
2241 |
|
||
|
2249 |
|
||
|
2518 |
|
||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
10 |
2241 |
23 |
2518 |
23 |
1035 |
39 |
2518 |
10 |
2249 |
23 |
2249 |
23 |
2241 |
Запрос 1.
Какие продавцы продали товар 2518. Записать этот список в отношение R3
-
Получим селекцию R2 по условию товар=2518
Продавец |
Товар |
39 |
2518 |
23 |
2518 |
R3= σтовар=2518 (R2)=
-
Получим проекцию R3 по атрибуту продавец
39 |
23 |
Запрос 2.
Перечислить продавцов, которые продали каждый товар. Записать этот список в отношение R4.
Мы должны найти в таблице R2 таких продавцов, которые реализуют следующее сочетание с товаром таблицы R1
Продавец |
Товар |
Х |
1035 |
Х |
2241 |
Х |
2249 |
Х |
2518 |
Т.е. продавец Х реализовал каждый товар. Ответ на этот запрос дает операция деления
R4 = R2: R1
Ответ: R4 (продавец)
-
23