Khoá chính primary key, Khoá dựtuyển candidate key.12/12/1985Lê Phương Bắc200510033/3/1985Lê Phương Bắc200510022/2/1986Trần Mai Ly200510011/1/1985Nguyễn Hải Nam2005100012/12/1985Lê Ngọc
Trang 1Chương 2
CƠ SỞ DỮ LIỆU QUAN HỆ
Relational Theory
Data Model Algebra
Relational Theory
Data Model Algebra
SQL
NỘI DUNG
Mô hình d ữ li ệ u quan h ệ
Khái niệm
Khoá của quan hệ
Ràng buộc quan hệ
Đạ i s ố quan h ệ
Ngôn ng ữ v ấ n tin SQL
Relational Database [Codd, 1970]
D ữ li ệ u l ư u tr ữ trong b ả ng hai chi ề u
M ỗ i b ả ng có tên duy nh ấ t
M ỗ i c ộ t có tên duy nh ấ t trong m ộ t b ả ng
M ỗ i giá tr ị trên m ộ t c ộ t thu ộ c cùng m ộ t mi ề n
Th ứ t ự các hàng trong b ả ng không quan tr ọ ng
Th ứ t ự các c ộ t trong b ả ng không quan tr ọ ng
M ỗ i giá tr ị trên c ộ t là nguyên t ố
Ví d ụ : Quan h ệ SV
3/3/1985
Lê Ph ươ ng B ắ c 20051002
2/2/1986
Tr ầ n Mai Ly 20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MSV
Trang 2MÔ HÌNH DỮ LIỆU QUAN HỆ
Thu ậ t ng ữ
Người dùng Lý thuyết
C ấ p
S ố c ộ t trong b ả ng
L ự c l ượ ng
S ố hàng trong b ả ng
Mi ề n
T ậ p giá tr ị h ợ p l ệ
Thu ộ c tính
C ộ t hay Tr ườ ng
B ộ Hàng ho ặ c B ả n ghi
Quan h ệ
B ả ng
Mi ề n (Domain): T ậ p các giá tr ị nguyên t ố
Thu ộ c tính (Attribute): M ộ t thu ộ c tính A g ồ m:
tên thu ộ c tính
mi ề n tr ị , dom(A), h ữ u h ạ n ho ặ c vô h ạ n, ||dom(A)|| ≥2
Tích Đề -các:
D1××××D2 ××××…××××Dn = {(v1, v2,…,vn)| vi ∈Di}
Ví d ụ : D1 = {0,1}; D2 = {a,b,c}
D1 ××××D2 = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}
D1 = {‘Lan’, ‘Mai’, ‘Cúc’}; D2 = {‘nam’, ‘nu’}; D3 = {19, 20}
D1 ××××D2 ××××D3 = {(‘Lan’,’nam’,19), (‘Lan’, ‘nam’, 20),
(‘Lan’,’nu’, 19),…….
Quan h ệ :
U = {A1, A2, …, An } - t ậ p h ữ u h ạ n các thu ộ c tính,
Quan h ệ R trên t ậ p thu ộ c tính U là:
R ⊆dom(A1) ××××dom(A2) ××××…××××dom(An)
Kí hi ệ u: R(U) hay R(A1, A2, …, An) hay R trong tr ườ ng h ợ p
ng ầ m đị nh.
Ví d ụ : Quan h ệ SV(MSV, HOTEN, NS)
- Tên quan h ệ : SV
- T ậ p thu ộ ctính: {MSV, HOTEN, NS}
- Mi ề n tr ị : dom(MSV): char(7)
dom(HOTEN): char(30) dom(NS): date
Th ể hi ệ n (tr ạ ng thái) c ủ a Quan h ệ
M ộ t b ộ c ủ a quan h ệ :
t =<’20051000’,’Nguyễn Hải Nam’, ’1/1/1985’>, và t ∈SV
C ơ s ở d ữ li ệ u quan h ệ là t ậ p các quan h ệ đượ c bi ế n thiên theo thời gian.
2/2/1986
Tr ầ n Mai Ly 20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
3/3/1986
Lê Ph ươ ng B ắ c 20051002
NS HOTEN
MSV
c ác bộ của quan hệ SV
Trang 3MÔ HÌNH DỮ LIỆU QUAN HỆ
Quy ướ c
Tên quan h ệ là các ch ữ cái in hoa, ở cu ố i b ả ng, nh ư R, S, T,
Các b ộ đượ c kí hi ệ u b ở i ch ữ th ườ ng, ở cu ố i b ả ng, nh ư u, v, t
Các thu ộ c tính đượ c kí hi ệ u b ở i ch ữ in hoa, ở đầ u b ả ng, nh ư
A, B, C, và vi ế t ABC thay cho {A, B, C}
T ậ p các thu ộ c tính đượ c kí hi ệ u b ở i ch ữ in hoa, ở cu ố i b ả ng,
nh ư U, V, X, Y, Z, và vi ế t XY thay cho X∪Y
Kí hi ệ u t.X là h ạ n ch ế c ủ a b ộ t trên t ậ p thu ộ c tính X
t =<’200510000’,’Nguy ễ n H ả i Nam’, ’1/1/1985’>, và t ∈SV
X = {MSV, HOTEN}
t.X = <’200510000’,’Nguy ễ n H ả i Nam’>
KHOÁ CỦA QUAN HỆ
Khoá (key)
Cho quan h ệ R(U), K ⊆U, K là khoá c ủ a quan h ệ R n ế u: (i) v ớ i∀t,s∈R, t ≠ s: t.K ≠ s.K
(ii) !∃∃∃∃K’⊂K mà K’ tho ả (i).
N ế u K ch ỉ tho ả (i), K đượ c g ọ i là siêu khoá (super key).
M ộ t quan h ệ có th ể có m ộ t hay nhi ề u khoá
Khoá chính (primary key), Khoá d ự tuy ể n (candidate key).
12/12/1985
Lê Phương Bắc 20051003
3/3/1985
Lê Phương Bắc 20051002
2/2/1986
Trần Mai Ly 20051001
1/1/1985 Nguyễn Hải Nam
20051000
12/12/1985
Lê Ngọc Lam 20051002
NS HOTEN
MASV Quan hệ SV
Khoá của SV??
Có thể bổ sung
bộ này vào SV
???
Ví d ụ , cho quan h ệ SVHT:
Có th ể b ổ sung vào SVHT b ộ t = <“20051000”,….,”m1”,…, 2> ?
Xác đị nh khoá c ủ a quan h ệ SVHT
Nếu giảthiết, các môn khác nhau phải có tên khác nhau ?
Nếu giảthiết có thểcó hai môn giống tên nhau ?
KHOÁ CỦA QUAN HỆ
4 3 1 Giải tích 1 m2
2-2-85 Trần Mai Ly
20051001
8 4 1
Đại số
m1 2-2-85 Trần Mai Ly
20051001
5 4 2 Giải tích 2 m3
1-1-85 Nguyễn Hải Nam
20051000
7 3 1 Giải tích 1 m2
1-1-85 Nguyễn Hải Nam
20051000
5 4 1
Đại số
m1 1-1-85 Nguyễn Hải Nam
20051000
DIEM SOTC HK TENHP MAHP
NS HOTEN
MASV
RÀNG BUỘC QUAN HỆ
Ràng bu ộ c mi ề n Ràng bu ộ c NULL Ràng bu ộ c khoá
Ràng bu ộ c khoá chính Ràng bu ộ c duy nh ấ t
Ràng bu ộ c toàn v ẹ n tham chi ế u
d ự a trên khoá ngo ạ i lai (foreign key)
Trang 4Ví dụ cơ sở dữ liệu quan hệ
3/3/1985
Lê Ph ươ ng B ắ c 20051002
2/2/1986
Tr ầ n Mai Ly 20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
4
C ơ s ở d ữ li ệ u M3
3 Toán r ờ i r ạ c M2
4 Anh v ă n
M1
SOTC TENHP
MAHP
7 M2
20051001
4 M1
20051000
6 M2
20051000
5 M1
20051001
DIEM MAHP
MASV
Quan h ệ HP
Ràng bu ộ c d ữ li ệ u
Tình hu ố ng 1 Ràng bu ộ c mi ề n
Tình hu ố ng 2 Ràng bu ộ c NULL
4
C ơ s ở d ữ li ệ u M3
3 Toán r ờ i r ạ c
M2
aa Anh v ă n
M1
SOTC TENHP
MAHP
3/3/1985
Lê Ph ươ ng B ắ c 20051002
2/2/1986 20051001
Nguy ễ n H ả i Nam 20051000
NS HOTEN
MASV
Ràng bu ộ c d ữ li ệ u
Tình hu ố ng 3
Ràng bu ộ c khoá chính
Tình hu ố ng 2
Ràng bu ộ c khoá duy nh ấ t
4
C ơ s ở d ữ li ệ u
3 Toán r ờ i r ạ c M1
4 Anh v ă n
M1
SOTC TENHP
MAHP
4
C ơ s ở d ữ li ệ u M3
3 Anh v ă n
M2
4 Anh v ă n
M1
SOTC TENHP
MAHP
Không chấp nhận
• Tình hu ố ng 4 Ràng bu ộ c toàn v ẹ n tham chi ế u
Ràng bu ộ c d ữ li ệ u
3/3/1985
Lê Ph ươ ng B ắ c 20051002
2/2/1986
Tr ầ n Mai Ly 20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
4
C ơ s ở d ữ li ệ u M3
3 Toán r ờ i r ạ c M2
4 Anh v ă n
M1
SOTC TENHP
MAHP
6 M1
20051001
7 M2
20051001
4 M1
20051000
6 M2
20051000
5 M4
20051004
DIEM MAHP
MASV
Khoá ngo ạ i lai
? ? ?
SV
HP
KQHT
Trang 5ĐẠI SỐ QUAN HỆ
Th ế nào là “ Đạ i s ố ” ?
Hệtoán học, bao gồm:
Toán t ử /Phép toán ( Operators) - kí pháp mô tảthủtụcđểcho ra
kết quảtừcác giá trịvào cho trước
Toán h ạ ng (Operands) - biến/giá trịmà toán tửthao tác và cho ra
kết quả
Đạ i s ố quan h ệ
Hệ đại số, toán hạng là các quan hệ
Toán tử được thiết kế đểthực hiện những thao tác thường gặp
nhấtđối với quan hệtrong CSDL
Kết quảlà một hệ đại sốmà có thể được sửdụng nhưmột ngôn ngữ
vấn tin trên các quan hệ
Các phép toán quan h ệ c ơ b
Phép hợp Phép giao Phép hiệu Tíchđềcác Phép chọn Phép chiếu Phép kết nối Phép chia
***Phépđổi tên quan hệ/tên thuộc tính
Các phép tính quan h ệ : H ợ p, Giao, Hi ệ u, Tích Đề các,
Ch ọ n, Chi ế u, K ế t n ố i, Chia
Các toán h ạ ng: Các quan h ệ
Bi ể u th ứ c quan h ệ
Toán tử: là các phép toán quan hệ
Toán hạng: là các quan hệ
Kết quả: là một quan hệ
Phép h ợ p (Union)
Cho hai quan h ệ R(U), S(U) (R và S t ươ ng thích) Phép h ợ p hai quan h ệ R và S là m ộ t quan h ệ trên U:
Phép giao (Intersection)
Cho hai quan h ệ R(U), S(U) (R và S t ươ ng thích) Phép giao hai quan h ệ R và S là m ộ t quan h ệ trên U:
S
R ∪ = | ∈ ∨ ∈
S
Trang 6ĐẠI SỐ QUAN HỆ
Phép tr ừ (Set difference)
Cho hai quan h ệ R(U), S(U) (R và S t ươ ng thích)
Phép tr ừ quan h ệ R cho quan h ệ S là m ộ t quan h ệ U:
Tích đề các (Catersian Product)
Cho U = {A1,A2,…An}, V = {B1,B2,…Bm}; Quan h ệ R(U), S(V)
Tích đề các hai quan h ệ R và S là:
S
{ t a a a b b b a a a R b b b S }
S
R × = = ( 1, 2, , n, 1, 2, ,n) | ( 1, 2, , n) ∈ , ( 1, 2, ,n) ∈
Phép ch ọ n (Selection)
Cho quan hệ R(U), E là biểu thức chọn trên U Phép chọn quan hệ R theo điều kiện E cho một quan hệ trên U:
t(E):b ộ t tho ả E Phép chi ế u (Projection)
Cho quan h ệ R(U), X ⊆ U Phép chi ế u quan h ệ R trên t ậ p thuộc tính X là một quan hệ trên X:
CÁC PHÉP TOÁN QUAN HỆ
)
σ
{ t X t R }
R
CÁC PHÉP TOÁN QUAN HỆ
3/3/1985
Lê Ph ươ ng B ắ c
20051002
2/2/1986
Tr ầ n Mai Ly
20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
Lê Ph ươ ng B ắ c 20051002
Tr ầ n Mai Ly 20051001
Nguy ễ n H ả i Nam 20051000
HOTEN MASV
Quan hệ R2
Quan hệ R1
Quan hệ SV
) (
'
R 1 = σ MASV = 20051000
) (
R 2 = ∏ MASV HOTEN
CÁC PHÉP TOÁN QUAN HỆ
3/3/1985
Lê Ph ươ ng B ắ c 20051002
2/2/1986
Tr ầ n Mai Ly 20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
Nguy ễ n H ả i Nam 20051000
HOTEN MASV
Quan hệ SV
Quan hệ R3
)) (
R 3 = ∏ MASV HOTEN σ MASV = 20051000
Trang 7CÁC PHÉP TOÁN QUAN HỆ
PHÉP K Ế T N Ố I
R4 = SV ⋈ KQHT
3/3/1985
Lê Ph ươ ng B ắ c
20051002
2/2/1986
Tr ầ n Mai Ly
20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
7
M2 20051001
4
M1 20051000
6
M2 20051000
DIEM MAHP
MASV
7 M2
2/2/1986
Tr ầ n Mai Ly
20051001
6 M2
1/1/1985 Nguy ễ n H ả i Nam
20051000
4 M1
1/1/1985 Nguy ễ n H ả i Nam
20051000
DIEM MAHP
NS HOTEN
MASV
Quan hệ R4
CÁC PHÉP TOÁN QUAN HỆ
Phép k ế t n ố i (Join) Phép k ế t n ố iθθθθ(Theta−Joins)
Cho R(U), S(V) A ∈U, B ∈V, dom(A) và dom (B) có cùng ki ể u so sánh đượ c
θθθθ - phép tính so sánh.
Phép k ế t n ố iθθθθhai quan h ệ R và S:
R ⋈A θθθθBS = {<u,v>| u ∈ R, v ∈ S, u.A θθθθ v.B}
Kí hiệu <u, v>: một bộ được tạo ra nhờsựxếp bộv cạnh bộu
K ế t n ố i t ự nhiên 2 quan h ệ R và S, kí hi ệ u R⋈S, là k ế t n ố i b ằ ng trên hai thu ộ c tính cùng tên, sau đ ó lo ạ i b ớ t đ i nh ữ ng thu ộ c tính cùng tên, ch ỉ gi ữ l ạ i m ộ t đạ i di ệ n.
R⋈S l à quan h ệ trên t ậ p thu ộ c tính U ∪V
M ộ t b ộ thu ộ c R⋈S t ạ o nên b ở i b ộ u ∈R, v ∈S, đượ c g ọ i là “b ộ n ố i đượ c” (joined tuple)
CÁC PHÉP TOÁN QUAN HỆ
3/3/1985
Lê Ph ươ ng B ắ c
20051002
2/2/1986
Tr ầ n Mai Ly
20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
7
M2 20051001
4
M1 20051000
6
M2 20051000
DIEM MAHP
MASV
7 M2
2/2/1986
Tr ầ n Mai Ly
20051001
6 M2
1/1/1985 Nguy ễ n H ả i Nam
20051000
DIEM MAHP
NS HOTEN
MASV
Quan hệ R5
KQHT)
( ' ' SV
CÁC PHÉP TOÁN QUAN HỆ
3/3/1985
Lê Ph ươ ng B ắ c
20051002
2/2/1986
Tr ầ n Mai Ly
20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
7
M2 20051001
4
M1 20051000
6
M2 20051000
DIEM MAHP
MASV
7
Tr ầ n Mai Ly 20051001
6 Nguy ễ n H ả i Nam
20051000
DIEM HOTEN
MASV
Quan hệ R6
KQHT))
(
,
R 6 = ∏ MASV HOTEN DIEM σ MAHP = M 2 ⋈
Trang 8CÁC PHÉP TOÁN QUAN HỆ
R8 = SV ⋈NS >NS R7
3/3/1985
Lê Ph ươ ng B ắ c
20051002
2/2/1986
Tr ầ n Mai Ly
20051001
1/1/1985 Nguy ễ n H ả i Nam
20051000
NS HOTEN
MASV
3/3/1985 NS
3/3/1985
R7.NS 2/2/1986
Tr ầ n Mai Ly
20051001
SV.NS HOTEN
MASV
Quan hệ R8
Quan hệ R7
)) (
R 7 = ∏ NS σ MASV = 20051002
CÁC PHÉP TOÁN QUAN HỆ
Phép chia (Quotient)
Cho R(U) và S(V), θ ≠ V ⊂ U, X = U - V.
Phép chia quan hệ R cho S, kí hiệu R ÷ S, là một quan hệ trên X:
R ÷÷÷÷ S = {t.X | t ∈ R: ∀ v ∈ S, <t.X,v> ∈ R}
Th ự c hi ệ n phép toán:
Tính
Với mỗi t ∈ , nếu∀v ∈S đều thỏa mãn <t,v> ∈R thì t ∈R ÷S
∏X(R )
∏X(R )
CÁC PHÉP TOÁN QUAN HỆ
T = R ÷÷÷÷ S
R ( HOTEN, NGOAINGU) S (NGOAINGU)
Lan Pháp Anh
Mai Anh Pháp
Lan Anh Nga
Lan Nga
Hue Nga
Lan
HOTEN
Quan hệ T
Mai
Lan
Hu ệ
HOTEN
Quan hệ R[HOTEN]
Phép đổ i tên quan h ệ
Đổi tên quan hệR thành quan hệS(A1, A2, …, An)
) (
) , ,
,
n
A A
A
ρ
Quan hệkết quảcó các bộgiống các bộcủa R, nhưng tên quan hệlà S
Có thể đổi tên thuộc tính
Nếu chỉ đổi tên quan hệ:
)
( R S
ρ
Trang 9Tìm kiếm bằng đại số quan hệ
Bi ể u th ứ c quan h ệ
Toán hạng là các quan hệ
Toán tửlà các phép toán quan hệ
Kết quảlà một quan hệ
Th ứ t ự ư u tiên
Phép toán trong ( ) có thứtự ưu tiên cao hơn
Đối với phép toán cùng ngôi, thứtự ưu tiên là từtrái sang phải
Phép toán một ngôi có thứtự ưu tiên cao hơn phép toán hai ngôi
Tìm ki ế m b ằ ng đạ i s ố quan h ệ
Ví d ụ
Cho CSDL g ồ m 3 quan h ệ ch ứ a d ữ li ệ u v ề sinh viên c ủ a
m ộ t khoa
SV (MASV, HOTEN, NS, GT, QUE, LOP)
HP (MAHP, TENHP, SOTC) KQHT (MASV, MAHP, DIEM)
Quan h ệ SV
Quan h ệ KQHT Quan h ệ HP
Ví d ụ m ộ t tr ạ ng thái c ủ a CSDL
3/3/1985 2/2/1986 1/1/1985 NS
Nam
N ữ
Nam GT
Nam Hà
Hà T ây
Hà N ộ i QUE
Toán 2
Lê Ph ươ ng B ắ c 20051002
Toán 1
Tr ầ n Mai Ly 20051001
Toán 1 Nguy ễ n H ả i Nam
20051000
LOP HOTEN
MASV
4
M ạ ng MT M3
3 Toán r ờ i r ạ c M2
4
C ơ s ở d ữ li ệ u M1
SOTC TENHP
MAHP
7 M2
20051001
4 M1
20051000
6 M1
20051001
5 M3
20051001
DIEM MAHP
MASV
Cho bi ế t mã s ố và h ọ tên nh ữ ng sinh viên l ớ p ‘Toán 1’
)) (
, HOTEN LOP Toan SV
Cho bi ế t mã s ố và h ọ tên nh ữ ng sinh viên l ớ p ‘Toán 1’, quê ở Hà N ộ i
Trang 10Cho bi ế t mã s ố và h ọ tên nh ữ ng sinh viên l ớ p ‘Toán 1’
đ ã có đ i ể m h ọ c ph ầ n ‘M1’
Cho bi ế t mã s ố và h ọ tên nh ữ ng sinh viên l ớ p ‘Toán 1’
không có đ i ể m h ọ c ph ầ n ‘M1’
ho ặ c vi ế t:
KQHT))
(
R = ∏ MASV HOTEN σ MAHP = M 1 ∧ LOP = Toan 1 ⋈
R SV
Toan LOP
HOTEN
∏ , ( σ ' 1 ' ( ))
2 1
2
1
1
1 1
R R
ANSWER
SV R
KQHT SV
R
Toan LOP HOTEN
MASV
M MAHP MASV
Toan LOP MASV
><
=
=
−
=
∏
=
=
=
)) ( (
)) (
( ))
( (
' ' ,
' ' '
'
σ
QUAN HỆ
Cho bi ế t mã s ố và h ọ tên nh ữ ng sinh viên l ớ p ‘Toán 1’
có đ i ể m h ọ c ph ầ n ‘M1’ l ớ n h ơ n ho ặ c b ằ ng 4.
2 1
2
1
4 1
1
R R
ANSWER R
SV R
DIEM M
MAHP MASV
Toan LOP
HOTEN MASV
><
=
=
=
≥
∧
=
=
)) ( (
' '
' ' ,
σ
σ
Các cách biểu diễn khác?
TÌM KI Ế M B Ằ NG ĐẠ I S Ố QUAN H Ệ
Cho bi ế t mã s ố và h ọ tên nh ữ ng sinh viên l ớ p ‘Toán 1’
có đ i ể m h ọ c ph ầ n ‘C ơ s ở d ữ li ệ u’ l ớ n h ơ n ho ặ c b ằ ng 4.
)) (
1
4
ANSWER
HP KQHT
SV R
DIEM lieu
du so Co TENHP Toan
LOP HOTEN
∏
=
=
σ
><
><
Thay đổi thứ tự phép kết nối?
Các cách biểu diễn khác?
Cho bi ế t mã s ố sinh viên có đ i ể m < 4 ở c ả hai h ọ c ph ầ n mã
s ố M1 và M2
? Cách biểu diễn sau đúng hay sai?
ANSWER MA σ DIEM 4 MAHP M 1 MAHP M 2
R2 R1
SWER
)) (
(
)) (
(
' ' SV
' ' SV
><
=
=
=
∏
∏
=
∧
<
=
∧
<
AN
KQHT R
KQHT R
M MAHP DIEM
MA
M MAHP DIEM
MA
2 4
1 4
2
1
σ σ
Hoặc: ANSWER = R1 ∩∩∩ R2R2
Trang 11TÌM KI Ế M B Ằ NG ĐẠ I S Ố QUAN H Ệ
Cho bi ế t danh sách mã s ố và h ọ tên nh ữ ng sinh viên l ớ p
Toán 1 và Toán 2 có đ i ể m h ọ c ph ầ n CSDL < 4
Cách bi ể u di ễ n khác:
)) ( ( ( ' ' ' ') ' '
1
4 2
ANS
HP KQHT
SV
R
CSDL TENHP DIEM
Toan LOP Toan LOP HOTEN
MASV
∏ = ∨ = ∧ < ∧ =
=
=
σ
><
><
R2 R1
ANSWER
)) (
(
)) ( (
' ' SV
' '
' ' HOTEN
SV,
><
><
=
=
=
=
∨
=
KQHT HP
R
SV R
CSDL TENHP
DIEM MA
Toan LOP
Toan LOP
MA
4
2 1
2
1
σ
σ
Cách bi ể u di ễ n khác? ………
TỐI ƯU HOÁ BIỂU THỨC QUAN HỆ
T ố i ư u hóa là ph ươ ng pháp thay m ộ t bi ể u th ứ c quan h ệ
b ằ ng m ộ t bi ể u th ứ c t ươ ng đươ ng đơ n gi ả n h ơ n, th ờ i gian th ự c hi ệ n nhanh h ơ n mà k ế t qu ả không đổ i.
Nh ậ n xét
Đối với quan hệnhỏ, việc tính toán nhanh hơn, sửdụng ít
bộnhớhơn Phép toán làm quan hệnhỏ đi: chọn, trừ, giao, chiếu, chia Phép toán làm quan hệlớn hơn: kết nối, hợp, tíchĐềcác
TỐI ƯU HOÁ BIỂU THỨC QUAN HỆ
Chi ế n l ượ c t ố i ư u hoá
Thực hiện các phép toán làm quan hệnhỏ đi càng sớm càng
tốt
Thực hiện các phép toán làm quan hệlớn hơn càng vềsau
càng tốt
Ví d ụ
Cho biết danh sách mã sốvà họtên những sinh viên lớp Toán
1 và Toán 2 thi khôngđạt (điểm < 4) học phần CSDL
TỐI ƯU HOÁ BIỂU THỨC QUAN HỆ
Bi ể u th ứ c quan h ệ bi ể u di ễ n câu h ỏ i trên là:
E = ( (LOP = ‘Toán 1’∨LOP = ‘Toán 2’) ∧DIEM < 4
∧TENHP = ‘CSDL’)
= E1 ∧E2 ∧E3 Trongđó:
E1 = (LOP = ‘Toán 1’∨LOP = ‘Toán 2’) E2 = (DIEM < 4)
E3 = (TENHP = ‘CSDL’)
∏ MASV , HOTEN ( σ E ( SV >< KQHT >< HP ))
Trang 12TỐI ƯU HOÁ BIỂU THỨC QUAN HỆ
Cây bi ể u th ứ c quan h ệ
Các nút trong là các toán tử
Các nút lá là các quan hệ
Cây con là một biểu thức con
∏ MASV , HOTEN ( σ E ( SV >< KQHT >< HP ))
∏MASV , HOTEN
E
σ
⋈
HP
⋈
Bi ể u th ứ c quan h ệ t ố i ư u?
Phép toán t ổ ng g ộ p (Aggregation Operators)
SUM
AVG
MIN và MAX
COUNT
Phép nhóm (Grouping Operator)
Phép s ắ p x ế p (Sorting Operator)
Phép k ế t n ố i ngoài (Outer Join)
Phép nhóm (Grouping Operator)
Phân hoạch các bộcủa R thành các nhóm
Tất cảcác bộtrong một nhóm có giá trịgiống nhau trên danh sách các thuộc tính L= { A1, A2, …, Ak}(các thuộc tính này gọi là “thuộc tính nhóm” − grouping attribute)
Đối với mỗi nhóm, tạo ra một bộbởi:
Giá trịtrên thuộc tính nhóm của các bộtrong nhóm Hàm tổng gộp, đựơc tính toán trên các thuộc tính tổng gộp − aggregated attribute (thuộc danh sách L) của tất cảcác bộthuộc nhómđó
) (
, ,
k
A A
A 1 2
γ