Название: Базы данных: конспект лекций
Автор: Коллектив авторов
Жанр: Базы данных
isbn: 978-5-699-23778-4
isbn:
Таким образом, с помощью унарной операции проекции, мы выделили все соединимые кортежи левого исходного отношения-операнда 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) СКАЧАТЬ