Определение
Определение
Пересечением двух отношений 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 | b2 | 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
В теории множеств данная операция и не коммутативна, и не ассоциативна, так как в множествах определен порядок перечисления элементов в кортеже. Так как одно из свойств реляционной модели данных – отсутствие упорядоченности атрибутов, данная операция приобретает указанные свойства.
Специальные операции
К специальным операциям реляционной алгебры относятся:
• проекция
• выбор (или селекция)
|
|
• соединение
• деление
Специальные операции определены только для нормализованных отношений. В этих операциях, наряду с самими отношениями, участвуют и их атрибуты. В отношениях реляционной модели данных к атрибутам можно обращаться или по имени, или по их позиции в схеме отношений. Мы будем использовать обращение к атрибутам по имени.
Проекция
Данная операция является унарной операцией на отношениях, т.е. в этой операции участвует только одно отношение.
Проекцией отношения r(R), R = {Ai}, на некоторый список имен атрибутов (подмножество атрибутов) L из R, L ⊆ R, называется отношение s = πL(r), для которого:
• схема отношения определяется списком L,
• реализация отношения есть множество кортежей, полученных из кортежей отношения r путем вычеркивания элементов, соответствующих атрибутам R – L, и исключением дубликатов.
Формальная запись:
Дано r(R), R(A1, A2, …, Am), r = {<t1 : A1, t2 : A2…, tm : Am >}
s(L) = πL(r), L(B1, B2, …, Bk), Bi ⊆ R, s = {<u1: B1, u2: B2, …, uk: Bk> | таких, что ui = tj, если Bi ≡ Aj}
Пример:
r | (A | B | C | D) | L = (A,B) | πL(r) | (A | B) | |
a1 | b1 | c2 | d1 | a1 | b1 | ||||
a1 | b1 | c1 | d2 | a2 | b1 | ||||
a2 | b1 | c3 | d2 |
Проекция дает вертикальное подмножество отношения.
Свойство проекции:
Если Y ⊆ X ⊆ R, то πY(πX(r)) ≡ πY(r)
Выбор
Данную операцию называют еще ограничением и селекцией.
Также является унарной операцией над отношением.