Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Объединение

R S - объединение отношений R и S с кортежами I и J соответственно можно получить в результате их конкатенации с образованием одного отношения с максимальным количеством кортежей (I+J), если кортежи-дубликаты исключены. При этом отношения R и S должны быть совместимы по объединению.

Отметим, что здесь конкатенация не строк, а конкатенация отношений, т.е., если можно так сказать, «вертикальное» сцепление.

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

Пример 3.4. Создайте список всех районов, в которых имеется отделение компании или объ­ект недвижимости.

Пarea(Branch) U Пarea(Property_for_Rent)

Таблица 3.13. Результат объединения двух отношений

Area

Sidcup

Dyce

Partick

Leigh

Dee

Kilburn

Hyndland

Разность

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

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

В данном случае аналогично предыдущему примеру следует создать совместные по объединению отношения Branch и Property_for_Rent, выполнив их проекцию по атрибуту City. Затем для комбинирования полученных новых отношений следует использовать операцию разности. Результат выполнения этих операций показан в табл. 3.14.

Таблица 3.14. Разность двух отношений

City

Bristol

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

Как правило, пользователей интересует лишь некоторая часть всех комбинаций кортежей декартового произведения, которая удовлетворяет заданному условию. Поэтому вместо декартового произведения обычно используется одна из самых важных операций реляционной алгебры — операция соединения. В результате ее выполнения на базе двух исходных отношений создается некоторое новое отношение. Операция соединения является производной от операции декартового произведения, так как она эквивалентна операции выборки из декартового произведения двух операндов-отношений тех кортежей, которые удовлетворяют условию, указанному в предикате соединения в качестве формулы выборки. С точки зрения эффективной реализации в реляционных СУБД, эта операция является одной из самых трудных и часто оказывается одной из основных причин, вызывающих проблемы с производительностью, свойственные всем реляционным системам.

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

• Тета-соединение (θ-join).

• Соединение по эквивалентности (equi-join), которое является частным ви­дом тета-соединения.

• Естественное соединение (natural join).

• Внешнее соединение (outer join).

• Полусоединение (semi-join).