Естественное соединение отношений (JOIN)

Математическая запись: REZ = R wv S.

Операция выполняется как эквисоединение отношений по общим атрибутам. Атрибуты задаются только именами. Операция выполняется за три шага.

Шаг 1. Вычисляем декартово произведение отношений-операндов R x S. Например:

Шаг 3. Перенесем отмеченные кортежи в результирующее отношение REZ, исключая повторяющиеся кортежи и используя общие атрибуты один раз. Тогда

REZ = R wv S = A B C D

BC a b c d

a b c e

d b c d

d b c e

Перед выполнением операции естественного соединения обычно осуществляется сортировка отношений-операндов по общим атрибутам.

Указанная выше последовательность шагов позволяет понять, что операцию естественного соединения можно выразить через основные операции реляционной алгебры следующим образом:

REZ = R wv S = p L1,..., Lm, N1,..., Nk(s (R. N1= S. N1)Ù... Ù (R . Nk= S . Nk)(R x S)),

где L1,..., Lm, N1,..., Nk – атрибуты декартова произведения, из которых N1,..., Nk являются общими атрибутами для отношений R и S.

Пример 6. Пусть R = PN, PIM, ST, GOR и S = PN, DN, KOL

p1 Иванов 80 Москва p1 d1 100

p2 Петров 40 Самара p1 d2 150

p3 Кротов 80 Москва p2 d1 50

p2 d2 100

p3 d2 200

Ответ на многотабличный запрос: «Найти номера поставщиков из Москвы, поставляющих деталь “d2” в количестве больше 100 штук»

(PN? ® GOR = “Москва” and DN = “d2” and KOL > 100)

можно получить, используя операцию естественного соединения отношений R и S по общему атрибуту PN. Выполнив последовательность из трех шагов, указанных выше, получим естественное соединение в виде:

R wv S = PN, PIM, ST, GOR, DN, KOL

PN p1 Иванов 80 Москва d1 100

p1 Иванов 80 Москва d2 150

p2 Петров 40 Самара d1 50

p2 Петров 40 Самара d2 100

p3 Кротов 80 Москва d2 200

Далее, выполняя сначала селекцию естественного соединения, а затем проекцию, получим следующую процедуру получения ответа на запрос:

REZ = p PN (s (GOR = “Москва”) Ù (DN = “d2”) Ù (KOL > 100) (R wv S)) = PN

PN p1

p3


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: