- •Тема 4. Модели данных
- •4.1. Общие сведения о моделях данных.
- •4.2. Древовидные структуры.
- •Сбалансированные, несбалансированные и двоичные деревья.
- •4.3. Сетевые модели.
- •Приведение сетевых структур к более простому виду.
- •Постреляционная модель.
- •4.4. Реляционные модели данных.
- •4.5. Реляционная алгебра.
- •X 101 5 ay 105 3 az 500 9 aw 50 1 bw 10 2 b w 300 4 b 5 a10 b15 c2 d6 a1 b
- •5. Селекция (выборка).
- •2.2. Естественное соединение (эквисоединение).
- •2.3. Композиция.
- •2.4. Внешние соединения.
- •3. Деление
- •4.6. Примеры использования операций реляционной алгебры.
- •4.7. Реляционное исчисление.
- •4.7.1.Реляционное исчисление кортежей.
- •2. Операция разности.
- •4.7.2. Реляционное исчисление доменов.
- •4.8. Оптимизация запросов
- •4.9. Динамика развития моделей данных.
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:
Обозначим t1 – первый кортеж частного R1 ÷ S1.
Найдем в отношении R1 кортежи t1cd и t1ef.
Кортежи №1 и №2 отношения R1 удовлетворяют условию. То есть t1=ab.
Ведем просмотр кортежей отношения R1 дальше. Ищем и t2cd и t2ef.
Кортежи №4 и №5 отношения R1 удовлетворяют условию. То есть t2=ed.
Просмотр отношения R1 окончен.
a
b
e
d
Значение 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
Получим селекцию 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
