Определение
Определение
Определение
Простые домены считаются совместимыми по объединению, если они состоят из элементов одного типа.
Для приведенных выше примеров домены D1 и D2 не совместимы по объединению, а D1 и D3 – совместимы по объединению.
Два отношения считаются совместимыми по объединению, если
• оба отношения имеют одно и то же множество атрибутов,
• одноименные атрибуты двух отношений определены на совместимых по объединению доменах.
Так, в приведенных выше примерах отношения R1 и R3 совместимы по объединению, так как их одноименные атрибуты определены на совместимых по объединению доменах.
Если нужно проверить совместимость по объединению отношений, использующих в своих схемах разные имена атрибутов, тогда в соответствии с семантикой атрибутов можно переименовать их, используя операцию переименования. После этого полученные отношения проверяются на совместимость по объединению. Например, пусть дано еще одно отношение R4(B1:D1, B2:D3), и надо проверить, совместимо ли по объединению данное отношение с отношением R1. Сначала, используя операцию переименования, получаем новое отношение R4(A1:D1, A2:D3):
|
|
R4: переименовать B1 в A1, B2 в A2
После этого можно проверить отношения R1 и R4 на совместимость по объединению. С таким же успехом можно использовать операцию переименования
R1: переименовать A1 в B1, A2 в B2.
Рассмотрим теперь все операции реляционной алгебры. В определении операций и примерах строчными буквами обозначены реализации отношений, прописными – схемы отношений; запись вида r(R) означает: реализация отношения r, удовлетворяющая схеме R.
Объединение отношений
Объединением двух отношений 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 |
Свойства операции:
• не коммутативна
• не ассоциативна
Пересечение отношений