2) операция правого внешнего соединения определяется подобным образом операции левого внешнего соединения и имеет следующий вид:

r1(S1) →× P r2(S2) ≔ (r1 × P r2) ∪ [(r2 \ (r1 × P r2) [S2]) × {∅(S1)}];

Эти две производные операции имеют всего два свойства, достойные упоминания.

1. Свойство коммутативности:

1) для операции левого внешнего соединения:

r1(S1) →× P r2(S2) ≠ r2(S2) →× P r1(S1);

2) для операции правого внешнего соединения:

r1(S1) ←× P r2(S2) ≠ r2(S2) ←× P r1(S1)

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

1) для операции левого внешнего соединения:

r1(S1) →× P r2(S2) = r2(S2) →× P r1(S1);

2) для операции правого внешнего соединения:

r1(S1) ←× P r2(S2) = r2(S2) ←× Pr1(S1).

2. Основным свойством операций левого и правого внешнего соединения является то, что они позволяют восстановить исходное отношение-операнд по конечному результату той или иной операции соединения, т. е. выполняются:

1) для операции левого внешнего соединения:

r1(S1) = (r1 →× P r2) [S1];

2) для операции правого внешнего соединения:

r2(S2) = (r1 ←× P r2) [S2].

Таким образом, мы видим, что первое исходное отношение-операнд можно восстановить из результата операции левого правого соединения, а если конкретнее, то применением к результату этого соединения (r1 × r2) унарной операции проекции на схему S1, [S1].

И аналогично второе исходное отношение-операнд можно восстановить применением к результату операции правого внешнего соединения (r1 × r2) унарной операции проекции на схему отношения S2.

Приведем пример для более подробного рассмотрения работы операций левого и правого внешних соединений. Введем уже знакомые нам отношения r1(S1) и r2(S2) с различными схемами отношения:

r1(S1):

Базы данных: конспект лекций - i_043.png

r2(S2):

Базы данных: конспект лекций - i_044.png

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

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

r1(S1) →× P r2(S2):

Базы данных: конспект лекций - i_045.png

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

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

r1(S1) ←× P r2(S2):

Базы данных: конспект лекций - i_046.png

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

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

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

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

r1(S1) ↔× P r2(S2) = (r1 →× P r2) ∪ ( r1 ←× P r2);

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

r1(S1) ↔× P r2(S2)= r2(S2) ↔ × P r1(S1);

И для завершения рассмотрения вариантов операций соединения, рассмотрим пример, иллюстрирующий работу операции полного внешнего соединения. Введем два отношения r1(S1) и r2(S2) и условие соединения.

Пусть

r1(S1)

Базы данных: конспект лекций - i_047.png

r2(S2):

Базы данных: конспект лекций - i_048.png