Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
51
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

2.5.3. Варианты операции соединения

Введем операцию внутреннего соединения по заданному условию соединения P (обозначение операции P ) как производную от операций декартова произведения и выборки:

r1(S1) P r2(S2) = hP i(r1 r2); S1 \ S2 = ;; P P hS1 [ S2i

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

соединения несоединимыми кортежами левого и правого операндов соответственно. При пополнении несоединимый кортеж операнда дополняется на схеме другого операнда null-значениями. Введенные таким образом операции являются производными. Например, для левого внешнего соединения имеем по шагам

(1)r1(S1)

(2)r2(S2)

(3)r3(S1 [ S2) := r1(S1) P r2(S2)

(4)r4(S1) := r3(S1 [ S2)[S1]

(5)r5(S1) := r1(S1) n r4(S1)

(6)r6(S2) := f;(S2)g

(7)r7(S1 [ S2) := r5(S1) r6(S2)

(8)r8(S1 [ S2) := r3(S1 [ S2) [ r7(S1 [ S2)

Здесь (1) – левый операнд, (2) – правый операнд, (3) – их внутреннее соединение, (4) – соединимые кортежи левого операнда, (5) – несоединимые кортежи левого операнда, (6) – отношение со схемой S2, содержащее один кортеж, состоящий из null-значений, (7) – несоединимые кортежи

левого операнда, дополненные null-значениями на схеме правого операнда, (8) – левое внешнее соединение.

Таким образом, операции левого и правого внешних соединений по заданному условию соединения P (обозначения операций L P и R P соответственно, мнемоника от Left и Right) определяются следующим образом:

r1(S1)L P r2(S2) = (r1 P r2) [ [(r1 n (r1 P r2)[S1]) f;(S2)g] = r2(S2)R P r1(S1)

r1(S1)R P r2(S2) = (r1 P r2) [ [(r2 n (r1 P r2)[S2]) f;(S1)g] = r2(S2)L P r1(S1)

Основным свойством этих операций является возможность восстановления операнда по результату соединения:

r1(S1) = (r1 L P r2)[S1]; r2(S2) = (r1 R P r2)[S2]

Операция полного внешнего соединения по заданному условию соединения P (обозначение операции F P , мнемоника от Full) определяется как результат пополнения внутреннего соединения кортежами и левого, и правого операндов:

r1(S1) F P r2(S2) = (r1 L P r2) [ (r1 R P r2) = r2(S2) F P r1(S1)

Примеры для операций внутреннего и внешних соединений с условием соединения P = (B1 = B2) для исходных отношений (табл. 2.11) приведены в табл. 2.12, 2.13. Из примеров видно, что по результату полного внешнего соединения операнды могут быть восстановлены, но с точностью до возможного появления нигде не определенного кортежа.

2.5.4. Производные операции

Введенные варианты операций соединения являлись производными операциями от 8-ми исходных операций реляционной алгебры. Но и среди исходных операций имеются производные.

Таблица 2.11.: Операнды операций соединения (табл. 2.12, 2.13)

r1(S1)

A1

B1

a

1

b

1

c

3

d

4

r2(S2)

B2

C2

1

x

2

y

3

z

Таблица 2.12.: Внутреннее и левое соединения (табл. 2.11, P = (B1 = B2))

r1(S1) P r2(S2)

A1

B1

B2

C2

a

1

1

x

b

1

1

x

c

3

3

z

r1(S1)L P r2(S2)

A1

B1

B2

C2

a

1

1

x

b

1

1

x

c

3

3

z

d

4

null

null

Таблица 2.13.: Правое и полное соединения (табл. 2.11, P = (B1 = B2))

r1(S1)R P r2(S2)

A1

B1

B2

C2

a

1

1

x

b

1

1

x

c

3

3

z

null

null

2

y

r1(S1)F P r2(S2)

A1

B1

B2

C2

a

1

1

x

b

1

1

x

c

3

3

z

d

4

null

null

null

null

2

y

Утверждение 1. Операция пересечения является производной от операции разности. Доказательство то же, что и в теории множеств (рис. 2.1).

Утверждение 2. Операция естественного соединения является производной операцией от операции декартова произведения и унарных операций выборки, проекции и переименования атрибутов. Действительно, сравним приведенные ранее примеры для операций естественного соединения и внутреннего соединения с условием соединения P = (B1 = B2) (см. табл. 2.9, 2.11, 2.12).

Из примеров ясно, что операция естественного соединения выражается через операции переименования атрибутов, проекции и внутреннего соединения с условием соединения специального вида:

r1(S1) ./ r2(S2) = f%h'1ir1 E %h'2ir2g[S1 [ S2]

Здесь одна из функций переименования является тождественной, а другая переименовывает атрибуты пересечения схем. Условие соединения E задает условие равенства кортежей с использованием исходных и переименованных имен атрибутов на пересечении схем операндов. Остается подставить

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]