Академический Документы
Профессиональный Документы
Культура Документы
Реляционная алгебра
q A B C
a1 b1 c1
a2 b1 c2
a1 b1 c2
a2 b2 c2
a1 b2 c2
Рис. 3.2.1.1 - Отношения r, s, q=rs
q=rs={t|tr ts}
dom(Ar)= dom(As)
dom(Br)= dom(Bs)
dom(Cr)= dom(Cs)
sch(q)=sch(rs)=sch(r)=sch(s)=Q=ABC
|sch(q)|=|sch(rs)|=| sch(r)|=| sch(s)|=3 (арность результирующего
отношения)
r A B C
a1 b1 c1
a2 b1 c2
a1 b1 c2
s A B C
a1 b1 c1
a2 b2 c2
a1 b2 c2
q A B C
a1 b1 c1
Рис. 3.2.2.1 - Отношения r, s, q=rs
s A B C
a1 b1 c1
a2 b2 c2
a1 b2 c2
r A B C
a1 b1 c1
a2 b1 c2
a1 b1 c2
q A B C t A B C
a2 b1 c2 a2 b2 c2
a1 b1 c2 a1 b2 c2
sch(r\s) = R = S
|sch(r\s)| = |R| = |S| - арность результирующего отношения
|Q| = |R| = |S|
0 |q|=| r\s | |r| - мощность отношения
3.2.4. Декартово произведение
|tup(R)|=|dom(A)|*|dom(B)|*|dom(C)|
sch(-r)=Q=R=S
|-r|=|tup(R)| - |r|
При r = , -r=tup(R)
3.2.7. Активное дополнение
adom(A)={a1, a2}
adom(B) ={b1}
adom(C) ={c1, c2}
r A B C
r A B C
~
a1 b1 c1 a2 b1 c1
a2 b1 c2
a1 b1 c2
atup(R) A B C
a1 b1 c1
a2 b1 c2
a1 b1 c2
a2 b1 c1
Рис. 3.2.6.1 - Отношения r, ~r, atup(R)
3.3. Специальные реляционные операции
3.3.1. Проекция
Операция проекции (вертикальной выборки) является унарной
операцией.
ОПРЕДЕЛЕНИЕ 3.3.1.1. Пусть r – отношение на схеме R и X
R- множество атрибутов из R.
Проекцией схемы R на множество атрибутов X, обозначенной
X r {t[x] | t r}, является отношение со схемой Х, состоящее их
всех Х-значений кортежей отношения r.
r A B C AB(r) A B
a1 b1 c1 a1 b1
a1 b1 c2 a1 b2
a1 b2 c3 a2 b1
a2 b1 c4
a2 b1 c5
AC(r) A C
a1 c1
a1 c2
a2 c4
a2 c5
a1 c3
Рис. 3.3.1.1 - Отношения r, AB(r), AC(r)
sch(X(r))=X
1 |sch(X(r)| |R| - арность результирующего отношения
0 | X(r)| |r| - мощность отношения
Свойства:
1. r = X(r) =
2. X=R X(r) = R(X)=r
3. X= X(r) – не определенa
4. RX X(r) – не определенa
5. XY X(Y(r)) = X(r)
Y(X(r)) – не определенa
6. X=Y X(Y(r)) = X(r) = Y(r)
7. X(Y(r)) Y(X(r))
3.3.2. Селекция
(A=a2C3)(r) A B C
a1 b1 1
a1 b2 2
a2 b1 8
a2 b1 0
r A B C
a 1 b1 1
a 1 b1 3
a 1 b2 2
a 2 b1 8
a 2 b1 0
Рис. 3.3.2.1 - Отношения r, (A=a2C3)(r)
sch(F(r)) = |Q| = |R|
0 |q(R)|=| F(r)| |r|
Свойства:
1. если F(t) – нулевая формула, тогда F(r)=r r
2. если r=, тогда F(r)=, F(t)
3. H(G(r))= H&G(r)
4. коммутативность: H(G(r))= G(H(r))
5. дистрибутивность: F(rs)= F(r) F(s), {, , \},
дополнение
6. селекция не коммутативна относительно дополнения:
F( r) ( (r))
7. коммутативна для операции проекции: F(X(r))=X(F(r))
r A B C s D E
a1 b1 4 3 e1
a1 b2 2 4 e2
a2 b1 6 1 e2
r C>D s=q r C=D s=q1
q A B C D E q1 A B C D E
a1 b1 4 3 e1 a1 b1 4 4 e2
a1 b1 4 1 e2
a1 b2 2 1 e2
a2 b1 6 3 e1
a2 b1 6 4 e2
a2 b1 6 1 e2
Рис. 3.3.3.1 - Отношения r, q, q1, s
Случай equi-join используется часто с операцией проекции,
чтобы избежать повторения значений атрибутов.
Операция соединения может быть выражена через операции
селекции и декартовым произведением:
r ABs=AB(r x s)
Данная операция обладает свойством коммутативности:
r ABs= s A B r
Свойства:
1. RS= r s= r x s
2. R=S r s=rs
3. RS(F(r x s))= R(F(r x s))= S((rs)x(rs))=rs
4. r s=s r
5. (r s) q=r (s q)= (r, s, q)
6. Рассмотрим связь между соединением и объединением:
r(R), r1(R), s(S) => (r1r) s=(r s) (r1 s)
r A B C
a1 b1 c1
a1 b1 c2
a2 b2 c2
AC(r) A C
AB(r) A B a1 c1
a1 b1
a2 b2 a1 c2
a2 c2
AB(r) AC(r)=q5
q5 A B C
a1 b1 c1
a1 b1 c2
a2 b2 c2
q6 A B C
a1 b1 c1
a1 b1 c2
a1 b2 c2
a2 b1 c2
a2 b2 c2
Рис. 3.3.4.2.b) - Отношения r, AC(r), q6, AB(r)
s=ВС(r) В С r s A B C
b1 с1 a1 b1 c1
b1 c2 a1 b1 c2
a2 b1 c1
a2 b1 c2
Рис. 3.3.4.3 - Отношения r, r=AB(r), s=ВС(r), r s
Видно, что исходное отношение не равно отношению,
полученному после соединения (r1 r s). Это явление носит название
декомпозиции с потерями. Декомпозиция важна при проектировании
БД.
s=АС(r) А С r s A B C
а1 с1 a1 b1 c1
а2 c2 a2 b1 c2
r=AB(r) A B s В С
a1 b1 b1 с1
a1 b2
r∘ s A B C
a1 b1 c1
a1 b2 NULL
Рис. 3.3.5.1 - Операция внешнего соединения
Операция не применяется, если значение NULL
устанавливается в ключевых атрибутах.
В зависимости от того, в какой части операции присутствуют
несоединяемые кортежи, различают следующие виды внешнего
соединения:
1. левое (left outer join) - r ∘ s (несоединяемые кортежи в
отношении r);
2. правое (right outer join) - r ∘ s (несоединяемые кортежи в
отношении s);
3. полное (full outer join) r ∘ s (несоединяемые кортежи с
обеих сторон).
r A B С s B С D
a1 b1 с1 b1 с1 d1
a1 b1 с2 b1 с1 d2
a1 b2 c1 b2 с1 d3
r∘s A B C D
a1 b1 с1 d1
a1 b1 с2 d2
a1 b2 с1 -
- b2 с2 d3
q A B C
a1 b1 c1
a1 b1 c3
q1=rs1 A B
a1 b1
a2 b1
a1 b2
q2= rs2 A B
a1 b2
q3=rs3 A B
a1 b1
a2 b1
a1 b2
пилоты Пилот
Иванов
Петров
r Персона Наследник
Анна Мария
Анна Иван
Иван Василий
Иван Ольга
Мария Елена
Ольга Михаил
(r) Персона Наследник
Анна Мария
Анна Иван
Иван Василий
Иван Ольга
Мария Елена
Ольга Михаил
Анна Елена
Анна Ольга
Анна Василий
Иван Михаил
Анна Михаил