поэтому мы и начинаем наши построения с нее;

2) r4(S1) ? r 3(S2 ?S1) [S1] ;

Таким образом, с помощью унарной операции проекции, мы выделили все соединимые кортежи левого исходного отношения-операнда r1 (S1). Результат обозначили r4(S1) для удобства применения;

3) r5 (S1) ? r1(S1) r4(S1) ;

Здесь r1(S1) все кортежи левого исходного отношения-операнда, а r4(S1) – его же кортежи, только соединимые. Таким образом, при помощи бинарной операции разности, в отношении r5(S1) у нас получились все несоединимые кортежи левого отношения-операнда;

4) r6(S2)? {? (S2)};

{?(S2)} это новое отношение со схемой (S2), содержащее всего один кортеж, причем составленный из Null-значений. Для удобства мы обозначили это отношение r6(S2);

5) r7 (S2 ? S1) ? r5 (S1) ? r6 (S2);

Здесь мы взяли полученные в пункте три, несоединимые кортежи левого отношения-операнда (r5(S1)) и дополнили их на схеме второго отношения-операнда S2 Null-значениями, т. е. декартово умножили отношение, состоящее из этих самых несоединимых кортежей на отношение r6(S2), определенное в пункте четыре;

6) r1(S1) >? P r2(S2) ? (r1 ? P r2) ? r7 (S2 ? S1);

Это и есть левое внешнее соединение, полученное, как можно видеть, объединением декартового произведения исходных отношений-операндов r1 и r2 и отношения r7 (S2 ? S1), определенного в пункте пятом.

Теперь у нас имеются все необходимые выкладки для определения не только операции левого внешнего соединения, но по аналогии и для определения операции правого внешнего соединения. Итак:

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

r1 (S1) >? P r2 (S2) ? (r1 ? P r2) ? [(r1 (r1 ? P r2) [S1]) ? {?(S2)}];

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

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

1

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

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