Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3 Реляционная алгебра.doc
Скачиваний:
4
Добавлен:
16.09.2019
Размер:
438.27 Кб
Скачать

3.7.8. Операции соединения

Как правило, пользователей интересует лишь часть всех кортежей декартова произведения, которая удовлетворяет заданному условию. Поэтому обычно вместо декартова произведения используется операция соединения. Операция соединения (join) эквивалентна операции выборки из декартова произведения двух операндов-отношений тех кортежей, которые удовлетворяют условию, указанному в предикате. С точки зрения эффективной реализации эта операция является одной из самых сложных. Существует несколько типов операции соединения:

  • тета-соединение

  • соединение по эквивалентности

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

  • внешнее соединение

  • полусоединение

а) Тета-соединение R F S

Операция тета-соединения определяет отношение, которое содержит кортежи из декартова произведения отношений R и S, удовлетворяющее предикату F. Предикат F имеет вид: R.ai ¤ S.bj, где символ ¤ может быть заменен на одну из операций сравнения: <, <=, >, >=, = или ~=.

Операция тета-соединения выражается через базовые операции следующим образом:

R F S = F(R x S)

б) Соединение по эквивалентности

Если предикат F тета-соединения содержит только операцию сравнения по равенству “=”, то соединение называется соединением по эквивалентности.

Например,

Создать список всех арендаторов, которые осматривали объекты недвижимости, с указанием сделанных ими комментариев.

клиент№,ФИО(Клиент)) Клиент.Клиент№=Осмотры.Клиент№клиент№,Коммент(Осмотры))

или

Result  Промеж.Клиент ПромежКлиент.Клиент№=ПромежОсмотры.Клиент№ Промеж.Осмотр

в) Естественное соединение R S

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

Степенью естественного соединения называется сумма степеней операндов-отношений R и S за вычетом количества атрибутов x.

Например,

Создать список всех арендаторов, которые осматривали объекты недвижимости, с указанием их имен и сделанных ими комментариев.

клиент№,ФИО(Клиент)) клиент№,Коммент(Осмотры))

или

Результат  Промеж.Клиент Промеж.Осмотр

г) Внешнее соединение

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

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

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

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

Для обозначения несовпадающих значений кортежей используются значения NULL.

Например,

Создайте отчет о ходе проведения осмотра объектов недвижимости

В данном случае необходимо создать отношение, состоящее из перечня как уже осмотренных так и еще не осмотренных объектов недвижимости.

ПОбъект№,Адрес(ОбъектНедвижимости)) Осмотры

д) Полусоединение R F S

Определяет отношение, содержащее те кортежи отношения R, которые входят в соединение отношений R и S.

П олусоединение позволяет сократить количество кортежей, которые нужно обработать для получениЯ соединения. Операцию полусоединения можно определить через операции проекции и соединения:

R F S = ПА (R F S),

здесь А – набор всех атрибутов в отношении R.

В действительности – это тета-полусоединение. Поэтому существуют также полусоединения по эквивалентности и естественные полусоединения.

Например,

Создать отчет, содержащий полную информацию обо всех сотрудниках, работающих в отделении компании, расположенном в городе Екатеринбург.

Сотрудник = Сотрудник.Таб.№=Офис.Таб.№ and Офис.Город=’Екатеринбург’ Офис