double arrow

Естественное соединение


Экви-соединение.

Наиболее важные частный случай Q-соединения – это когда Q есть простое равенство. Синтаксис экви-соединения: : R1[R11 = R21] R2.

Пример 8. Пусть имеются отношения R1, R2 и R3, хранящие информацию о студентах, дисциплинах и оценках соответственно.

Таблица 16. Отношение R1(Студенты)

Личный номер Фамилия студента
Котова
Серова
Леонидов

Таблица 17. R2(Дисциплины)

Код дисциплины Название дисциплины
Высшая математика
Иностранный язык
Философия

Таблица 18. R3(Оценки)

Личный номер Код дисциплины Оценка

Если необходимо получить из данных отношений информацию, касающуюся всех оценок, полученных студентами, то нужно использовать экви-соединение: R1[личный-номер = личный-номер] R3.

Так как в отношениях имеются одинаковые атрибуты, то сначала необходимо переименовать атрибуты, а потом выполнить экви-соединение:

(R1 rename личный-номер as личный-номер_1) [личный_номер_1 = личный_номер_2]

(R3 rename личный_номер as личный_номер_2)

Но, как правило, такой сложной формой записи не пользуются. Итак, результатом такого экви-соединения является отношение

Таблица 19. Отношение («Какие оценки получены студентами»)

Личный номер (1) Фамилия студента Личный номер (2) Код Дисциплины Оценка
Котова
Котова
Котова
Серов
Серов
Леонидов

Замечание: Недостатком экви-соединения является то, что при соединении отношений с одинаковыми атрибутами в результирующем отношении появляются два атрибута с одинаковыми значениями. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.

Пусть даны отношения R1(R11, R12,…,R1n, Z1, Z2,…,Zp) и R2(Z1, Z2,…,Zp R21, R22,…,R2m), имеющие, однако атрибуты Z1, Z2,…,Zp (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединением отношений R1 и R2 называется отношение с заголовком (R11, R12,…,R1n, Z1, Z2,…,Zp, R21, R22,…,R2m) и телом, содержащим множество кортежей (r11, r12,…,r1n, z1, z2,…,zp, r21, r22,…,r2m) таких, что (r11, r12,…,r1n, z1, z2,…,zp,)Î R1 и (z1, z2,…,zp, r21, r22,…,r2m)Î R2.

Для обозначения естественного соединения используется следующий синтаксис: R1 join R2

Замечание: Естественное соединение эквивалентно следующей последовательности реляционных операций:

· переименовать одинаковые атрибуты в отношениях;

· выполнить декартово произведение отношений;

· выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена;

· выполнить проекцию, удалив повторяющиеся атрибуты;

· переименовать атрибуты, вернув им первоначальные имена.

Можно выполнять последовательное естественное соединение нескольких отношений. Легко заметить, что естественное соединение обладает свойством ассоциативности: (R1 join R2) join R3 = R1(R2 join R3), в силу чего такие соединения можно записывать в виде: R1 join R2 join R3

Пример 10.Для предыдущего примера ответ на вопрос «Какими студентами получены какие оценки?» можно записать в виде естественного соединения трех отношений R1 join R2 join R3

Таблица 20. Отношение R1 join R2 join R3

Личный номер (1) Фамилия студента Код Дисциплины Название дисциплины Оценка
Котова Высшая математика
Котова Иностранный язык
Котова Философия
Серов Высшая математика
Серов Философия
Леонидов Иностранный язык

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