BMHTTT
1
NN
NN
CHƯƠNG
CHƯƠNG
Đại số quan hệ
(Relational Algebra)
(Relational Algebra)
BMHTTT 2
NN
NN
N
N
ộ
ộ
i dung
i dung
Đại số quan hệ
5 phép toán cơ bản
3 phép toán suy dẫn
Phép giao
Phép kết: kết θ, kết bằng, kết tự nhiên, nửa
kết, kết ngoài
Phép chia
2
BMHTTT 3
NN
NN
Đại số quan hệ
(Relational Algebra)
Đại số quan hệ là ngôn ngữ tập hợp (set
language) bao gồm các toán tử (operator)
thao tác trên 1 hay nhiều quan hệ để tạo
ra 1 quan hệ khác mà không làm thay đổi
các quan hệ ban đầu.
ÎCác toán hạng và kết quả đều là quan hệ
ÎKết quả của 1 phép toán có thể trở thành
toán hạng cho 1 phép toán khác Æ tính
bao đóng (closure)
3
BMHTTT 4
NN
NN
Đ
Đ
ạ
ạ
i s
i s
ố
ố
quan h
quan h
ệ
ệ
v
v
à
à
SQL
SQL
Query thực chất là 1 biểu thức chứa các
toán tử của đại số quan hệ. Kết quả của
query cũng là 1 quan hệ.
Mối liên hệ giữa SQL và đại số quan hệ??
SQL là 1 ngôn ngữ phi thủ tục ( không xác
định các thủ tục được dùng để xử lý truy
vấn), còn đại số quan hệ theo hướng thủ
tục.
4
BMHTTT 5
NN
NN
5
SQL query
SQL query
Relational algebra Expression
Relational algebra Expression
Query Execution Plain
Query Execution Plain
Executable Code
Executable Code
Parser
Query Optimizer
Query Optimizer
Code generator
BMHTTT 6
NN
NN
5 ph
5 ph
é
é
p to
p to
á
á
n cơ b
n cơ b
ả
ả
n
n
Phép chọn (selection)
Phép chiếu (projection)
Phép tích Descartes (Cartesian product)
Phép hợp (union)
Phép hiệu (difference)
6
BMHTTT 7
NN
NN
Ph
Ph
é
é
p ch
p ch
ọ
ọ
n (selection)
n (selection)
Các phép toán được thực hiện cho quan hệ r
trên lược đồ quan hệ R và điều kiện F.
Điều kiện F là 1 biểu thức luận lý có giá trị
true/false, nó bao gồm:
Các toán hạng là hằng hoặc tên thuộc
tính
Các phép toán so sánh =, ≠, <, ≤,>, ≥
Các phép toán luận lý not (¬), and (∧), or
(∨)
7
BMHTTT 8
NN
NN
Ph
Ph
é
é
p ch
p ch
ọ
ọ
n
n
Phép chọn trên r theo điều kiện F, ký hiệu
là σ
F
(r), cho kết quả là 1 quan hệ bao
gồm các bộ của r thỏa mãn điều kiện F
σ
F
(r) = {t|t ∈r và F(t) = true}
Nếu quan hệ r có bậc là n và có k bộ thì
σ
F
(r) có bao nhiêu bậc và bộ?
Î Bậc là n và có tối đa là k bộ
8
BMHTTT 9
NN
NN
V
V
í
í
d
d
ụ
ụ
9
BMHTTT 10
NN
NN
Select Operation
Select Operation
–
–
Example
Example
■ Relation r
A B C D
α
α
β
β
α
β
β
β
1
5
12
23
7
7
3
10
σ
A=B ^ D > 5
(r)
A B C D
α
β
α
β
1
23
7
10
BMHTTT 11
NN
NN
Selection
Selection
11
σ
σ
PRICE<$2.0
PRICE<$2.0
(Product
(Product
)
)
σ
σ
PCODE =311452
PCODE =311452
(Product)
(Product)
BMHTTT 12
NN
NN
Ph
Ph
é
é
p chi
p chi
ế
ế
u (Projection operation)
u (Projection operation)
Cho quan hệ r trên R(A1, A2, ,Am) và tập
con các thuộc tính X={Aj1, Aj2, …, Ajn}
với j1, j2, , jn là các số nguyên phân biệt
nằm trong khoảng từ 1 đến m
Phép chiếu của r trên tập thuộc tính X cho
kết quả là 1 quan hệ
Π
X
(r) = {t | ∃ u∈ r sao cho t = u[X]}
Nếu quan hệ r có bậc là n và có k bộ thì
Π
X
(r) có bao nhiêu bậc và bộ?
Î Bậc là |X| và luôn có k bộ
12
BMHTTT 13
NN
NN
Project Operation
Project Operation
–
–
Example
Example
Relation
r
:
A B C
α
α
β
β
10
20
30
40
1
1
1
2
A C
α
α
β
β
1
1
1
2
=
A C
α
β
β
1
1
2
∏
A,C
(r)
BMHTTT 14
NN
NN
Projection
Projection
14
Π
P_DESCRIPT,PRICE
(PROJECT)
Π
PRICE
(PROJECT)
Π
P_CODE,PRICE
(PROJECT)
BMHTTT 15
NN
NN
Ph
Ph
é
é
p t
p t
í
í
ch Descartes
ch Descartes
Cho quan hệ r trên lược đồ R(A1,
A2, ,Am) và s trên lược đồ S(B1,B2,…,Bn)
Phép tích Descartes của r và s là 1 quan
hệ trên lược đồ T(A1, A2, , Am, B1, B2,
….,Bn)
r x s = {(t1,t2, ,tm,tm+1,…Tm+n) |(t1,
t2, , tm) ∈ r và (tm+1, …, tm+n) ∈ s}
Nếu quan hệ r có bậc là m, và k bộ
Và quan hệ s có bậc là n và l bộ thì r x s có
bao nhiêu bậc và bộ?
Î Bậc là m + n và có k x l bộ
15
BMHTTT 16
NN
NN
Cartesian
Cartesian
-
-
Product Operation
Product Operation
–
–
Example
Example
■ Relations r, s:
■ r x s:
A B
α
β
1
2
A B
α
α
α
α
β
β
β
β
1
1
1
1
2
2
2
2
C D
α
β
β
γ
α
β
β
γ
10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
C D
α
β
β
γ
10
10
20
10
E
a
a
b
b
r
s
BMHTTT 17
NN
NN
V
V
í
í
d
d
ụ
ụ
17
PRODUCT x STORE
BMHTTT 18
NN
NN
Ph
Ph
é
é
p h
p h
ợ
ợ
p (union), ph
p (union), ph
é
é
p hi
p hi
ệ
ệ
u
u
(intersection)
(intersection)
Phép hợp của 2 quan hệ r và s
r ∪ s = {t | t ∈ r hay t ∈ s}
Phép hiệu của 2 quan hệ r và s
r - s = {t | t ∈ r và t ∉ s}
Điều kiện: các quan hệ r và s phải có tính
khả hợp (union-compatible)
18
BMHTTT 19
NN
NN
Union
Union
19
BMHTTT 20
NN
NN
Intersect
Intersect
20
BMHTTT 21
NN
NN
Bi
Bi
ể
ể
u th
u th
ứ
ứ
c ph
c ph
ứ
ứ
c
c
Tính σ
A=C
(
r x s
)
r x s
A B
α
α
α
α
β
β
β
β
1
1
1
1
2
2
2
2
C D
α
β
β
γ
α
β
β
γ
10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
A B C D E
α
β
β
1
2
2
α
β
β
10
10
20
a
a
b
σ
A=C
(r x s)
BMHTTT 22
NN
NN
Ba ph
Ba ph
é
é
p to
p to
á
á
n suy d
n suy d
ẫ
ẫ
n
n
Phép giao của 2 quan hệ r và s (suy dẫn)
r ∩ s = {t | t ∈ r và t ∈ s}
Điều kiện: các quan hệ r và s phải có tính
khả hợp (union-compatible)
22
BMHTTT 23
NN
NN
Ph
Ph
é
é
p k
p k
ế
ế
t
t
θ
θ
θ
θ
-
-
join
join
Cho quan hệ r trên R, quan hệ s trên S.
Gọi T = R ∪ S, các thuộc tính của R khác
với các thuộc tính của S, θ là 1 phép so
sánh. A ∈ R và B ∈ S là 2 thuộc tính có
thể so sánh với nhau bởi phép toán θ
Phép kết θ của r và s trên 2 thuộc tính A
và B, cho kết quả là 1 quan hệ q trên lược
đồ quan hệ T bao gồm các bộ t
Q(T) = {t | ∃ t
r
∈ r và t
s
∈ s với t[R] = t
r
và t[S] = t
s
và t[A] θ t[B] }
23
BMHTTT 24
NN
NN
Ph
Ph
é
é
p k
p k
ế
ế
t
t
θ
θ
θ
θ
-
-
join
join
Phép kết của 2 quan hệ r và s
r
A θ B
s = σ
A θ B
(r x s)
Phép kết có tính giao hoán
24
BMHTTT 25
NN
NN
V
V
í
í
d
d
ụ
ụ
25