Пересечение отношений
Вычитание отношений
Объединение отношений
Определение
Объединением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 È r2, для которого
a) схема отношения совпадает с R1 или R2,
b) реализация отношения представляет множество кортежей, принадлежащих реализации r1 и/или r2.
Формальная запись:
Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1 º R, R2 º R.
s = r1 È r2 = s(R), s = {ti | ti Î r1 и/или ti Î r2}
Пример:
r1 | (A | B | C) | r2 | (A | B | C) | s = r1 È r2 | (A | B | C) | ||
a1 | b1 | c1 | a1 | b2 | c1 | a1 | b1 | c1 | |||||
a1 | b2 | c1 | a2 | b2 | c1 | a1 | b2 | c1 | |||||
a2 | b1 | c2 | a2 | b2 | c2 | a2 | b1 | c2 | |||||
a2 | b2 | c1 | |||||||||||
a2 | b2 | c2 |
Свойства операции:
- коммутативна – r1 È r2 º r2 È r1
- ассоциативна – r1 È (r2 È r3) = (r1 È r2) È r3 = r1 È r2 È r3
Определение
Вычитанием двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 – r2, для которого
|
|
a) схема отношения совпадает с R1 или R2,
b) реализация отношения представляет множество кортежей, принадлежащих реализации r1, за исключением тех, которые имеются в r2.
Формальная запись:
Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1 º R, R2 º R.
s = r1 – r2 = s(R), s = {ti | ti Î r1 и ti Ï r2}
Пример:
r1 | (A | B | C) | r2 | (A | B | C) | s = r1 – r2 | (A | B | C) | ||
a1 | b1 | c1 | a1 | b2 | c1 | a1 | b1 | c1 | |||||
a1 | b2 | c1 | a2 | b2 | c1 | a2 | b1 | c2 | |||||
a2 | b1 | c2 | a2 | b2 | c2 |
Свойства операции:
- не коммутативна
- не ассоциативна
Определение
Пересечением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 Ç r2, для которого
a) схема отношения совпадает с R1 или R2,
b) реализация отношения представляет множество кортежей, содержащихся и в r1, и в r2.
Формальная запись:
Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1 º R, R2 º R.
s = r1 Ç r2 = s(R), s = {ti | ti Î r1 и ti Î r2}
Пример:
r1 | (A | B | C) | r2 | (A | B | C) | s = r1 Ç r2 | (A | B | C) | ||
a1 | b1 | c1 | a1 | b2 | c1 | a1 | b1 | c1 | |||||
a1 | b2 | c1 | a2 | b2 | c1 | ||||||||
a2 | b1 | c2 | a2 | b2 | c2 |
Свойства операции:
- коммутативна – r1 Ç r2 º r2 Ç r1
- ассоциативна – r1 Ç (r2 Ç r3) = (r1 Ç r2) Ç r3 = r1 Ç r2 Ç r3
Операцию пересечения можно выразить через операцию вычитания:
r1 Ç r2 = r1 – (r1 – r2)
Здесь отношения r1(R1) и r2(R2) могут иметь разные схемы, не обязательно совместимые по объединению. Перед выполнением операции декартова произведения необходимо переименовать схемы отношений R1 или R2 так, чтобы они не имели одноименных атрибутов.
|
|
Определение
Декартовым произведением двух отношений r1(R1) и r2(R2), у которых R1 Ç R2 = 0, называется отношение s = r1 ´ r2, для которого
a) схема отношения определяется сцеплением (объединением) схем R1 и R2,
b) реализация отношения представляет множество кортежей, которое получается путем сцепления каждого кортежа из r1 с каждым кортежем из r2.
Формальная запись:
Даны r1(R1), R1(A1, A2, …, Am), r2(R2), R2(B1, B2, …, Bn), r1 = {t1i}, r2 = {t2i}, R1 Ç R2 = 0
s = r1 ´ r2 = s(R), R(A1, A2, …, Am, B1, B2, …, Bn), s = {ui vj | ui Î r1, vj Î r2}
Пример:
r1 | (A | B) | r2 | (X | Y | Z) | s = r1 ´ r2 | (A | B | X | Y | Z) | ||
a1 | b1 | x1 | y1 | z2 | a1 | b1 | x1 | y1 | z2 | |||||
a2 | b1 | x2 | y1 | z1 | a1 | b1 | x2 | y1 | z1 | |||||
x3 | y1 | z1 | a1 | b1 | x3 | y1 | z1 | |||||||
a2 | b1 | x1 | y1 | z2 | ||||||||||
a2 | b1 | x2 | y1 | z1 | ||||||||||
a2 | b1 | x3 | y1 | z1 |
Свойства операции:
- коммутативна – r1 ´ r2 º r2 ´ r1
- ассоциативна – r1 ´ (r2 ´ r3) = (r1 ´ r2) ´ r3 = r1 ´ r2 ´ r3
В теории множеств данная операция и не коммутативна, и не ассоциативна, так как в множествах определен порядок перечисления элементов в кортеже. Так как одно из свойств реляционной модели данных – отсутствие упорядоченности атрибутов, данная операция приобретает указанные свойства.