Основы проектирования реляционных баз данных

Деление отношений


Операция деления выполняется над двумя отношениями А и В, где А - отношение-делимое, а 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АнтоноваЖ



Содержание раздела