Составители:
Рубрика:
5) Полученное отношение R5 должно быть вычтено из R1[Ã],
т.е. {d1,d2,d3} \ {d1,d3} = d2.
Заканчивая рассмотрение операции деления, укажем на следующее свойство
данной операции:
(R1 (A) × R2 (O)) [O ÷ O] R2 (O) = R1 (A),
т.е. операция деления обратна операции умножения, что проливает свет на название
операции.
И еще один семантический пример операции деления. Пусть, в базе данных
поддерживаются два отношения: СОТРУДНИКИ (Имя, Номер отдела) и ИМЕНА (Имя),
причем унарное отношение ИМЕНА содержит все фамилии, которыми обладают
сотрудники организации.
Тогда после выполнения операции реляционного деления отношения
СОТРУДНИКИ на отношение ИМЕНА будет получено унарное отношение, содержащее
номера отделов, сотрудники
которых обладают всеми возможными в этой организации
именами (фамилиями).
Рассмотрим использование алгебры отношений при составлении запросов к базе
данных. Пусть БД содержит отношения R1(ШД, ШМ, НР) и R2(ШМ", НМ).
Запрос. Перечислить шифры материалов и их наименования (НМ), которые идут
на изготовление одной детали в количестве большем чем 25 кг.
На языке реляционной алгебры запрос будет реализован на основе следующих
операций:
Rrez (ШМ, НМ) = ((R1[НР > 25]) [ШМ]) [ШМ=ШМ"] R2[ШМ, НМ]
Круглые скобки определяют последовательность действий:
1) Ограничение отношения R1,
2) Проектирование промежуточного отношения,
3) Соединение с R2,
4) Проектирование полученного результата.
Нетрудно видеть, что при таком подходе закладывается "процедурность" запроса,
поэтому для языков манипулирования данными (
ЯМД), построенных на алгебре
отношений принято говорить как о процедурных языках.
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »
