Базы данных: конспект лекций - страница 16



>1(S>1) и r>2(S>2) с различными схемами отношения:

r>1(S>1):


r>2(S>2):


Несоединимый кортеж левого отношения-операнда r>2(S>2) – это кортеж {d, 4}. Следуя определению, именно им следует дополнить результат внутреннего соединения двух исходных отношений-операндов.

Условие внутреннего соединения отношений r>1(S>1) и r>2(S>2) также оставим прежнее: P = (b1 = b2). Тогда результатом операции левого внешнего соединения будет следующая таблица:

r>1(S>1) →× >Pr>2(S>2):


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

И аналогично результатом правого внешнего соединения по тому же, что и раньше, условию P = (b1 = b2) исходных отношений-операндов r>1(S>1) и r>2(S>2) является следующая таблица:

r>1(S>1) ←× >Pr>2(S>2):


Действительно, в этом случае пополнять результат операции внутреннего соединения следует несоединимыми кортежами правого, в нашем случае второго исходного отношения-операнда. Такой кортеж, как не трудно видеть, во втором отношении r>2(S>2) один, а именно {2, y}. Далее действуем по определению операции правого внешнего соединения, дополняем кортеж первого (левого) операнда на схеме первого операнда Null-значениями.

И, наконец, рассмотрим третий вариант приведенных ранее операций соединения.

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

Операция полного внешнего соединения определяется как результат пополнения того же самого внутреннего соединения (как и в случае определения левого и правого внешних соединений) несоединимыми кортежами одновременно и левого, и правого исходных отношений-операндов. Исходя из этого определения дадим формулярный вид этого определения:

r>1(S>1) ↔× >Pr>2(S>2) = (r>1 →× >Pr>2) ∪ ( r>1 ←× >Pr>2);

У операции полного внешнего соединения также имеется свойство, сходное с аналогичным свойством операций левого и правого внешних соединений. Только за счет изначальной взаимно-обратной природы операции полного внешнего соединения (ведь она была определена как объединение операций левого и правого внешних соединений) для нее выполняется свойство коммутативности:

r>1(S>1) ↔× >Pr>2(S>2)= r>2(S>2) ↔ × >Pr>1(S>1);

И для завершения рассмотрения вариантов операций соединения, рассмотрим пример, иллюстрирующий работу операции полного внешнего соединения. Введем два отношения r>1(S>1) и r>2(S>2) и условие соединения.

Пусть

r>1(S>1)


r>2(S>2):


И пусть условием соединения отношений r>1(S>1) и r>2(S>2) будет: P = (b1 = b2), как и в предыдущих примерах.

Тогда результатом операции полного внешнего соединения отношений r>1(S>1) и r>2(S>2) по условию P = (b1 = b2) будет следующая таблица:

r>1(S>1) ↔× >Pr>2(S>2):


Итак, мы видим, что операция полного внешнего соединения наглядно оправдала свое определение как объединения результатов операций левого и правого внешних соединений. Результирующее отношение операции внутреннего соединения дополнено одновременно несоединимыми кортежами как левого (первого, r>1(S>1)), так и правого (второго, r>2(S>2)) исходного отношения-операнда.