Декартово произведение отношений

Пересечение отношений

Вычитание отношений

Объединение отношений

Определение

Объединением двух отношений 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

В теории множеств данная операция и не коммутативна, и не ассоциативна, так как в множествах определен порядок перечисления элементов в кортеже. Так как одно из свойств реляционной модели данных – отсутствие упорядоченности атрибутов, данная операция приобретает указанные свойства.