Деление отношений
Операция деления выполняется над двумя отношениями А и В, где А - отношение-делимое, а B - отношение-делитель. При этом атрибуты B должны являться подмножеством атрибутов A. Результатом выполнения операции деления является отношение С, которое включает в себя атрибуты отношения А, отличные от атрибутов отношения В, и только те кортежи, декартовы произведения которых с отношением В дают отношение А:
Представление частного отношений через другие алгебраические операции может быть получено следующим образом. Предположим, что
. Пусть n и m - арности отношений Qa и Qb, n > m. Тогда разность исходных отношений есть множество кортежей t степени n - m, таких, что для всех кортежей s степени m из Qb, кортеж ts принадлежит Qa. Пусть . Тогда есть множество кортежей степени n, не принадлежащих Qa. Каждый из них формируется из n - m первых компонентов кортежа из Qa, за которым следуют компоненты кортежа Qb. Пусть далее есть множество кортежей t степени n - m, состоящих из первых n - m компонентов Qa, причем для каждого из них в Qb существует некоторый кортеж s степени m, такой, что ts не принадлежит Qa. Таким образом, разность отношений T - V есть, по определению, частное отношений .Пример. Деление отношений. Выполним операцию деления отношения РЕЗУЛЬТАТЫ_МЕДОСМОТРА на отношение МЕДОСМОТР.
Исходные отношения:
РЕЗУЛЬТАТЫ_МЕДОСМОТРА (#, Фамилия, Пол, Процедура, Дата)
МЕДОСМОТР (Процедура, Дата )
1 | Иванов | М | ЭКГ | 17.08 |
1 | Иванов | М | Анализ крови | 20.08 |
1 | Иванов | М | Терапевт | 23.08 |
5 | Антонова | Ж | ЭКГ | 17.08 |
5 | Антонова | Ж | Анализ крови | 20.08 |
5 | Антонова | Ж | Терапевт | 23.08 |
Результирующее отношение:
ЭКГ | 17.08 |
Анализ крови | 20.08 |
Терапевт | 23.08 |
СЛУЖАЩИЙ (#, Фамилия, Пол) = РЕЗУЛЬТАТЫ_МЕДОСМОТРА / МЕДОСМОТР
1 | Иванов | М |
5 | Антонова | Ж |