Скачиваний:
50
Добавлен:
10.05.2015
Размер:
116.22 Кб
Скачать

2.4. Внешние соединения.

Обратимся к общей формуле для соединения отношений R[A Ѳ B]S, где

R и S- отношения;

A – Атрибут отношения A;

B – Атрибут отношения B;

Ѳ - оператор сравнения;

Кортеж отношения R находит соответствие кортежу отношения S, через атрибуты A, B и оператор Ѳ.

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

Три типа внешнего соединения рассмотрим на примере двух таблиц: Таблица 1 – Persons и Таблица 2 - Cards

Почтовые карточки - Cards ID получают различные люди - Person ID по различным поводам.

Особенности таблиц:

1.Запись 4 в таблице1 – этот человек никогда не посылал почтовые карточки и он не зарегистрирован в таблице 2.

2.Запись 4 в таблице 2 – Получена карточка, от лица не зарегистрированного в таблице 1.

Левое внесение соединения.

(Left Outer Join)

В этом случае в результирующем отношении содержаться все кортежи левого отношения, а несовпадающие значения отношения Cards специально заполняться с использование определителя “NULL” .

Определитель “NULL” следует воспринимать как логическую величину “НЕИЗВЕСТНО” .Ключевое слово “NULL” призвано обозначать отсутствие какого либо значения. Его не нужно понимать как нулевое численное значение или заполненную пробелами строку. Ключевое слово “NULL” представляет собой способ обработки неполных или необычных данных.

Итак, имеем итоговую таблицу:

Правое внесение соединения.

(Right Outer Join)

В этом случае результирующем отношении содержатся все кортежи правого отношения Cards. Несовпадающие значения с использованием определителя “NULL” т.е. нулевые значения или пробелы.

Итоговая таблица:

Полное внесение соединения.

(Full Outer Join)

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

Итоговая таблица:

Соседние файлы в папке Дополнительные лекции