Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
94
Добавлен:
23.09.2019
Размер:
2 Мб
Скачать
☆

Свойства соединения

Свойство 1. Имитация выбора.

С помощью оператора соединения найдём A=a(r) для отношения r(R). Для этого определим отношение s(A) с одним единственным кортежем t таким, что t(A) = a. Тогда r s = A=a(r).

Доказательство

r s = {t | tr r, ts s, tr = t(R), ts = t(A)} =

= {t | tr r, tr = t(R), t(A) = a} =

= {t | t(A) = a } = A=a(r).

Свойство 2. Обобщённая операция выбора.

Введём новое отношение s(A) с k кортежами t1, t2,…, tk, где ti(A) = ai и aidom(A), i =1, 2,…, k. Тогда r s = A=a1(r) A=a2(r) … A=ak(r).

Свойство 3. Коммутативность оператора соединения.

Из определения следует, что r s = s r.

Свойство 4. Ассоциативность оператора соединения.

Для отношений q, r, s (q r)  s = q  (r s). Следовательно, последовательность соединений можно записывать без скобок.

Свойство 5. Многократные соединения.

Пусть r1(S1), r2(S2),…, rn(Sn) – отношения, R = S1S2…Sn. Обозначим S – последовательность схем S1, S2,…, Sn. Пусть t1, t2,…, tn – последовательность кортежей, ti ri, i = 1, 2,…, n.

Определение. Кортежи t1, t2,…, tn соединимы на S, если существует кортеж t на R, что ti = t(Si) для каждого i = 1, 2,…, n. Кортеж t называется результатом соединения кортежей t1, t2,…, tn на S.

Пример

r3 (A C)

a1

c2

a2

c2

r1 (A B)

a1

b1

a1

b2

a2

b1

r2 (B C)

b1

c2

b2

c1

Кортежи <a1 b1>, <b1 c2>, <a1 c2> соединимы с результатом <a1 b1 c2>, а кортежи <a2 b1>, <b1 c2>, <a2 c2> – c результатом <a2 b1 c2>:

r1 r2 r3 = (A B C)

a1

b1

c2

a2

b1

c2

Конец примера

Если в определении принять n=2 и если кортежи t1 и t2 соединимы на S=S1, S2 с результатом t, то t1=t(S1), t2=t(S2), следовательно, tr(S1)r(S2). Обратно, если tr(S1)r(S2), то должны существовать t1 и t2 в r(S) такие, что t1=t(S1), t2=t(S2), то есть они соединимы на S с результатом t. Следовательно, r(S1)r(S2) состоит из результатов соединений соединимых на S кортежей t1 и t2 .

Лемма. Отношение r1 r2 … rn состоит из всех кортежей t, которые являются результатом соединения соединимых на S кортежей ti ri, i = 1, 2,…, n.

Не каждый кортеж каждого отношения может войти в соединение.

Определение. Отношения r1, r2,…, rn полностью соединимы, если каждый кортеж в каждом отношении является членом списка соединимых на S кортежей.

Пример

Из предыдущего примера <a1 b2> r1, <b2 c1> r2 не соединимы. При добавлении к r3 кортежа <a1 c1> отношения становятся полностью соединимыми с результатом

r1 r2 r3 = (A B C)

a1

b1

c2

a1

b2

c1

a2

b1

c2

Конец примера

Свойство 6. Проекция соединения.

Свойство показывает связь проекции и соединения. Похоже, что они взаимообратны, но это не так.

Пусть r(R) и s(S) – отношения, q = r s, RS – схема q. Пусть r = R(q), тогда r r (для любого кортежа t из отношения q верно t(R) r, а r =t(R) t q).

В

r (A B)

a1

b1

a1

b2

ключение может быть собственным:

s (B C)

b1

c1

rs (A B C)

a1

b1

c1

М

r (A B)

a1

b1

a1

b2

s (B C)

b1

c1

b2

c2

rs (A B C)

a1

b1

c1

a1

b2

c2

ожет быть равенство (r = r):

Ясно, что равенство может быть при соединении полностью соединимых отношений, но может быть и без этого.

Если s = S(q), то r = r и s = s тогда и только тогда, когда r и s – состоят из полностью соединимых кортежей, то есть полностью соединимы.

Свойство 7. Соединение проекций.

Поменяем местами проекции и соединения. Пусть q – отношение со схемой RS, r = R(q), s = S(q). Пусть q′= r s. Если t q, то t(R) r, t(S) s tq′, т.е. q′ q. При q′ = q отношение разложимо без потерь на схемы R и S.

Свойство 8. Соотношение операций объединения и соединения.

Пусть r и r – отношения со схемой R и s – отношение со схемой S. Покажем, что (rr)  s = (r s)(r s). Обозначим левую часть равенства как q  (rr)  s, а правую буквой q  (r s)(r s). Для кортежа tq найдутся кортежи tr и ts такие, что t = trts, причем trr или trr и tss. Если trr, то tr s, если же trr, то t r s, то есть qq. Чтобы установить включение qq, выберем tq. Тогда trs или trs, следовательно, t (rr)  s. Включения qq и qq выполняются одновременно только в том случае, когда q = q.