Tài liệu môn Hệ quản Trị CSDL
Trang 1CHƯƠNG
Đại số quan hệ
(Relational Algebra)
Trang 2 Phép chia
2
Trang 3Đạ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
Trang 4Đại số quan hệ và 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
Trang 55
SQL query
Relational algebra Expression
Query Execution Plain
Executable Code
Parser
Query Optimizer
Code generator
Trang 7Phép chọn (selection)
trên lược đồ quan hệ R và điều kiện F.
Trang 8Phép chọ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
Trang 9Ví dụ
9
Trang 10Select Operation – Example
I 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
Trang 12Phép chiế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
Trang 13Project Operation – 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)
Trang 14ΠP_DESCRIPT,PRICE (PROJECT)
ΠPRICE (PROJECT)
ΠP_CODE,PRICE (PROJECT)
Trang 15Phép tí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,
Î Bậc là m + n và có k x l bộ
15
Trang 16Cartesian-Product Operation – Example
I Relations r, s:
I 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
Trang 17Ví dụ
17
PRODUCT x STORE
Trang 18Phép hợp (union), phép hiệu (intersection)
Trang 19NN Union
19
Trang 20Intersect
Trang 211 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)
Trang 23Phép kết θ
θ-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 | ∃ tr ∈ r và ts ∈ s với t[R] = tr
và t[S] = ts và t[A] θ t[B] }
23
Trang 25Ví dụ
25
Trang 26Ví dụ
26
Trang 27sinh viên nhỏ hơn Id của giáo sư
ΠId,Name(STUDENT) Id<Id ΠId,Name(PROFESSOR)
[stuid, studname, profid, profname]
27
Trang 28Ví dụ
Hãy liệt kê tên các giáo sư dạy môn học
mùa thu 2007 (semester =‘F2007’)
σSemester=‘F2007’(TEACHING))
28
Trang 29Ví dụ
Tìm tên môn và tên giáo sư của các môn
học được dạy trong mùa thu 2007
ΠCrsName,Name((PROFESSOR Id=ProfId
σSemester=‘F2007’ (TEACHING))
CrsCode=CrsCodeCOURSE)
29
Trang 30Phép kết bằng (Equijoin)
S và dom(Ai) = dom(Bi), i = 1… k Gọi T = R ∪
S (k là số thuộc tính dùng để so sánh bằng ở 2
quan hệ)
A2,…, Ak và B1, B2,… Bk cho kết quả là 1 quan
hệ trên T bao gồm các bộ:
Q(T) = {t | ∃ tr ∈ r và ts ∈ s với t[R] = tr
và t[S] = ts và t[Ai] = t[Bi],
Trang 32Phép kết tự nhiên (Natural join)
Phép kết tự nhiên của 2 quan hệ r và s
cho kết quả là 1 quan hệ q trên lược đồ
quan hệ T (có tập thuộc tính là hợp của
các tập thuộc tính của R và S) bao gồm
các bộ t như sau:
r s = {t| ∃ tr ∈ r và ts ∈ s với t[R] = tr và t[S] = ts }
R và S có thể có thuộc tính trùng nhau
Quan hệ kết quả q không lặp lại các thuộc
Trang 33α β γ α δ
1 2 4 1 2
1 2 4 1 2
C D
α γ β γ β
α γ β γ β
a a b a b
a a b a b
B
1 3 1 2 3
1 3 1 2 3
D
a a a b b
a a a b b
E
α β γ δ
∈
α β γ δ
∈
r
A B
α α α α δ
1 1 1 1 2
C D
α α γ γ β
a a a a b
E
α γ α γ δ
s
I r s
Trang 34Phép kết tự nhiên (Natural join)
34
Trang 36kiện ngầm định của kết tự nhiên
Trang 37…So sánh phép kết tự nhiên và kết bằng
Thuộc tính kết quả của kết tự nhiên:
StudId, CrsCode, Semester, Grade, ProfId
Thuộc tính kết quả của kết bằng:
StudId, TRANSCRIPT.CrsCode, TEACHING
CrsCode, TRANSCRIPT.Semester,
TEACHING.Semester, Grade, ProfId
Trang 39 Cho quan hệ r trên R, s trên S R ∩S ≠ ∅.Gọi T = R ∪ S (khác với r ∪ s)
39
Trang 40Phép kết ngoài (Outer join)
Phép kết ngoài của r và s cho kết quả là 1 quan hệ q trên T bao gồm:
Các thuộc tính bị thiếu của các bộ được
tạo thêm sẽ lấy giá trị null
40
Trang 42Outer Join – Example
Relation loan
I Relation borrower
customer_name loan_number
Jones Smith Hayes
Jones Smith Hayes
L-170 L-230 L-155
L-170 L-230 L-155
3000 4000 1700
L-170 L-230 L-260
branch_name
Downtown Redwood Perryridge
Trang 43Downtown Redwood
Jones Smith
null
Jones Smith
null
loan_number amount
L-170 L-230 L-260
L-170 L-230 L-260
3000 4000 1700
3000 4000 1700
customer_name
branch_name
Downtown Redwood Perryridge
Downtown Redwood Perryridge
I Left Outer Join
loan borrower
Trang 44Outer Join – Example
loan_number amount
L-170 L-230 L-155
L-170 L-230 L-155
3000 4000
null
3000 4000
null
customer_name
Jones Smith Hayes
Jones Smith Hayes
branch_name
Downtown Redwood
null
Downtown Redwood
null
L-170 L-230 L-260 L-155
3000 4000 1700
null
customer_name
Jones Smith
null
Hayes
branch_name
Downtown Redwood Perryridge
Trang 45Phép nửa kết θ
(θ-semijoin)
Phép nửa kết của r và s trên 2 thuộc tính
A ∈ R và B ∈ S cho kết quả là 1 quan hệ
bao gồm các bộ của r mà chúng kết với s theo điều kiện A θ B
Trang 47Phép chia (Division)
Xét các query sau:
của khoa CS (computer Science) đều dạy?
Trang 48Phép chia
(Division)
Cho quan hệ r trên R(A1,…, An,B1, , Bn)
và s trên S(B1,…,Bm)
Phép chia quan hệ r cho s, ký hiệu r/s với
s ≠ ∅ cho kết quả là 1 quan hệ q trên T
(A1, …, An) bao gồm các bộ <a> sao cho đối với mỗi bộ <b> của s , thì bộ <a,b>
thuộc r
<a> ∈ r/s if and only if {<a>} x s ⊆ r
48
Trang 491 2
A B
α α α β γ δ δ δ
∈
∈ β
1 2 3 1 1 1 3 4 6 1 2 r
s
Trang 50Ví dụ phép chia
101 555
CrsCode CS305
PROFCOURSE
783 009 121 555 101 900
M123 M123 EE101 CS305 CS315 MA23
Kết quả của PROFCOURSES/PROFCS
Môn học mà tất cả giáo sư CS đều dạy