И аналогично результатом правого внешнего соединенияпо тому же, что и раньше, условию P = (b1 = b2) исходных отношений-операндов r 1( S 1) и r 2( S 2) является следующая таблица:
r 1( S 1) ←× P r 2( S 2):
Действительно, в этом случае пополнять результат операции внутреннего соединения следует несоединимыми кортежами правого, в нашем случае второго исходного отношения-операнда. Такой кортеж, как не трудно видеть, во втором отношении r 2( S 2) один, а именно {2, y}. Далее действуем по определению операции правого внешнего соединения, дополняем кортеж первого (левого) операнда на схеме первого операнда Null-значениями.
И, наконец, рассмотрим третий вариант приведенных ранее операций соединения.
Операция полного внешнего соединения. Эту операцию вполне можно рассматривать не только как операцию, производную от операций внутреннего соединения, но и как объединение операций левого и правого внешнего соединения.
Операция полного внешнего соединенияопределяется как результат пополнения того же самого внутреннего соединения (как и в случае определения левого и правого внешних соединений) несоединимыми кортежами одновременно и левого, и правого исходных отношений-операндов. Исходя из этого определения дадим формулярный вид этого определения:
r 1( S 1) ↔× P r 2( S 2) = ( r 1→× P r 2) ∪ ( r 1←× P r 2) ;
У операции полного внешнего соединения также имеется свойство, сходное с аналогичным свойством операций левого и правого внешних соединений. Только за счет изначальной взаимно-обратной природы операции полного внешнего соединения (ведь она была определена как объединение операций левого и правого внешних соединений) для нее выполняется свойство коммутативности:
r 1( S 1) ↔× P r 2( S 2) = r 2( S 2) ↔ × P r 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) ↔× P r 2( S 2):
Итак, мы видим, что операция полного внешнего соединения наглядно оправдала свое определение как объединения результатов операций левого и правого внешних соединений. Результирующее отношение операции внутреннего соединения дополнено одновременно несоединимыми кортежами как левого (первого, r 1( S 1)), так и правого (второго, r 2( S 2)) исходного отношения-операнда.
Итак, мы рассмотрели различные варианты операций соединения, а именно операции внутреннего соединения, левого, правого и полного внешнего соединения, которые являются производными восьми исходных операций реляционной алгебры: унарных операций выборки, проекции, переименования и бинарных операций объединения, пересечения, разности, декартова произведения и естественного соединения. Но и среди этих исходных операций есть свои примеры производных операций.
1. Например, операция пересечениядвух отношений является производной от операции разности этих же двух отношений. Покажем это.
Операцию пересечения можно выразить следующей формулой:
r 1( S ) ∩ r 2( S ) = r 1\ r 1\ r 2
или, что дает тот же результат:
r 1( S ) ∩ r 2( S ) = r 2\ r 2\ r 1;
2. Еще одним примером, производной базовой операции от восьми исходных операций является операция естественного соединения. В самом общем виде эта операция является производной от бинарной операции декартового произведения и унарных операций выборки, проекции и переименования атрибутов. Однако, в свою очередь, операция внутреннего соединения является производной операцией от той же операции декартового произведения отношений. Поэтому, чтобы показать, что операция естественного соединения – производная операция, рассмотрим следующий пример.
Читать дальше
Конец ознакомительного отрывка
Купить книгу