Реляционная алгебра - Деление
ОГЛАВЛЕНИЕ
Деление
Определение 11 . Пусть даны отношения
и
, причем атрибуты
- общие для двух отношений. Делением отношений
на
называется отношение с заголовком
и телом, содержащим множество кортежей
, таких, что для всех кортежей
в отношении
найдется кортеж
.
Отношение
выступает в роли делимого , отношение
выступает в роли делителя . Деление отношений аналогично делению чисел с остатком.
Синтаксис операции деления:

Замечание. Типичные запросы, реализуемые с помощью операции деления, обычно в своей формулировке имеют слово "все" - "какие поставщики поставляют все детали?".
Пример 11. В примере с поставщиками, деталями и поставками ответим на вопрос, "какие поставщики поставляют все детали?".
В качестве делимого возьмем проекцию
, содержащую номера поставщиков и номера поставляемых ими деталей:
| Номер поставщика | Номер детали |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 3 | 1 |
Таблица 21. Проекция X=PD[PNUM,DNUM]
В качестве делителя возьмем проекцию
, содержащую список номеров всех деталей (не обязательно поставляемых кем-либо):
| Номер детали |
|---|
| 1 |
| 2 |
| 3 |
Таблица 22. Проекция Y=D[DNUM]
Деление
дает список номеров поставщиков, поставляющих все детали:
| Номер поставщика |
|---|
| 1 |
Таблица 23. Отношение X DEVIDEBY Y
Оказалось, что только поставщик с номером 1 поставляет все детали.
