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):

r2 (S2):

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

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

r1(S1) >? P r2 (S2):

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

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

r1(S1) P r2 (S2):

Действительно, в этом случае пополнять результат операции внутреннего соединения следует несоединимыми кортежами правого, в нашем случае второго исходного отношения-операнда. Такой кортеж, как не трудно видеть, во втором отношении 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)

r2 (S2):

И пусть условием соединения отношений r1(S1) и r2(S2) будет: P = (b1 = b2), как и в предыдущих примерах.

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

r1(S1) -?

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

1

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату