Bài 4: Ngôn ng đ i s quan h
ữ ạ ố
ệ
1
N i dung
ộ
ớ ể
i thi u ệ ứ ạ ố
ệ
ứ ạ ố
ể
ệ
1. Gi 2. Bi u th c đ i s quan h 3. Các phép toán 4. Bi u th c đ i s quan h 5. Ví dụ
2
1. Gi
ớ
i thi u ệ
ề ả ọ
ợ
ệ
Cho phép mô t
các quan
ữ ệ ừ
i u quá trình rút trích b ng các phép toán có
ằ
các phép toán rút trích d li u t ả h trong c s d li u quan h . ệ ơ ở ữ ệ ệ Cho phép t ố ư s n c a lý thuy t t p h p. ẵ ủ
ế ậ
ợ
3
Đ i s quan h (ĐSQH) có n n t ng toán h c (c ụ ạ ố ệ th là lý thuy t t p h p) đ mô hình hóa CSDL quan ể ế ậ ể ng x lý là các quan h trong c s d h . Đ i t ơ ở ữ ử ệ ố ượ li u quan h . ệ ệ Ch c năng : ứ
2. Bi u th c ĐSQH ứ
ể
Bi u th c ĐSQH là m t bi u th c g m các phép ộ ứ ồ ứ ể ể
toán ĐSQH.
Bi u th c ĐSQH đ ứ ể ượ c xem nh m t quan h ệ ư ộ
Có th đ t tên cho quan h đ m t c t o t ệ ượ ạ ừ ộ
ể
Có th đ i tên các thu c tính c a quan h đ c ệ ượ ủ ộ
4
(không có tên). ể ặ bi u th c ĐSQH. ứ ể ổ t o t m t bi u th c ĐSQH. ạ ừ ộ ứ ể
3. Các phép toán
ậ
5
i thi u 3.1 Gi ệ ớ 3.2 Phép ch nọ 3.3 Phép chi uế 3.4 Phép gán 3.5 Các phép toán trên t p h p ợ 3.6 Phép k tế 3.7 Phép chia 3.8 Hàm tính toán và gom nhóm
3.1 Gi
ớ
i thi u (1) ệ
ặ ặ
·
-
6
Có năm phép toán c b n: ơ ả s Ch n ọ ( ) ho c ( : ) p Chi uế ( ) ho c ( [] ) Tích ( ) Hi uệ ( ) H iộ ( )
3.1 Gi
ớ
i thi u (2) ệ
Các phép toán khác không c b n nh ng h u ích: ơ ả ữ ư
ế
˙
‚
ổ
Giao ( ) K t ( ) Chia ( ) Phép bù ( ) r Đ i tên ( ) Phép gán ( ‹ ) ế
(cid:216)
ả ệ ữ
ể ạ ớ
7
K t qu sau khi th c hi n các phép toán là các ệ ự quan h , do đó có th k t h p gi a các phép toán ể ế ợ đ t o nên phép toán m i.
3.2 Phép ch n (Selection) ọ
Trích ch n các b (dòng) t c ệ ộ ượ
tpRtt
)}(,
trích ch n ph i th a mãn đi u ki n ch n p. ộ ỏ quan h R. Các b đ ừ ọ ề ệ
˛= /{)( Rp
ọ ọ s Ký hi uệ : Đ nh nghĩa ả )(Rp s : p(t):th a đi u ki n ị ề ệ ỏ
p
ế ệ
s =
s =
s
R )(
))
))
R
R
ộ ệ ế ả ộ
s ọ ( p 1
p
p 1(
)2
p
8
(cid:217) K t qu tr v là m t quan h , có cùng danh sách thu c tính v i quan h R. Không có k t qu trùng. s ( 2 ả ả ề ớ Phép ch n có tính giao hoán ( ( p p 2 1
L
c đ CSDL qu n lý giáo
ượ ồ
ả
vụ
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)
LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
DIEUKIEN (MAMH, MAMH_TRUOC)
GIAOVIEN(MAGV,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,NGVL,
HESO, MUCLUONG, MAKHOA)
GIANGDAY(MALOP,MAMH,MAGV,HOCKY, NAM,TUNGAY,DENNGAY)
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
9
3.2 Ví d phép ch n ọ
ụ
Tìm nh ng h c viên “Nam’ có n i sinh ọ ơ ở
s
ữ ‘TpHCM’
(Gioitinh=‘Nam’)(cid:217) (Noisinh=‘TpHCM’)(HOCVIEN) HOCVIEN
Mahv
HoTen
Gioitinh
Noisinh Malop
K1103 Ha Duy Lap
Nam
Nghe An
K11
K1102 Tran Ngoc Han Nu
Kien Giang K11
K1104 Tran Ngoc Linh Nu
Tay Ninh
K11
K1105 Tran Minh Long Nam
TpHCM
K11
K1106 Le Nhat Minh
Nam
TpHCM
K11
10
3.3 Phép chi u (Project) ế
S d ng đ trích ch n giá tr m t vài thu c tính ị ộ ộ ọ
,...,
AA , 1
2
A k
ể ử ụ c a quan h ệ ủ p Ký hi uệ : R )(
ế ộ
c chi u. trong đó Ai là tên các thu c tính đ ượ K t qu tr v m t quan h có k thu c tính theo ộ ệ
t kê. Các dòng trùng nhau ch l y ả ả ề ộ nh li ỉ ấ
ế th t ứ ự ư ệ m t.ộ
11
Phép chi u không có tính giao hoán ế
3.3 Ví dụ
Tìm mã s , h tên nh ng h c viên “Nam’ có n i sinh
ố ọ
ữ
ọ
ơ
ở
‘TpHCM’
p
(Gioitinh=‘Nam’)(cid:217) (Noisinh=‘TpHCM’)(HOCVIEN)
s Mahv,Hoten
HOCVIEN
Mahv
HoTen
Gioitinh
Noisinh Malop
K1103 Ha Duy Lap
Nam
Nghe An
K11
K1102 Tran Ngoc Han Nu
Kien Giang K11
K1104 Tran Ngoc Linh Nu
Tay Ninh
K11
K1105 Tran Minh Long Nam
TpHCM
K11
K1106 Le Nhat Minh
Nam
TpHCM
K11 12
3.4 Phép gán (Assignment)
câu truy v n ph c t p. ấ
ứ ạ
ể ễ ả B
Dùng đ di n t Ký hi uệ : A ‹ Ví dụ:
R(HO,TEN,LUONG)‹
p
HONV,TENNV,LUONG(NHANVIEN)
c gán
ế
ượ
K t qu bên ph i c a phép gán đ cho bi n quan h n m bên trái.
ả ủ ệ ằ
ả ế
13
3.5 Các phép toán t p h p ợ
ậ
ớ
i thi u 3.5.1 Gi ệ 3.5.2 Phép h iộ 3.5.3 Phép trừ 3.5.4 Phép giao 3.5.5 Phép tích
14
3.5.1 Gi
i thi u
ớ
ệ
ệ ừ
ự ợ ủ ế ậ ọ ộ
ấ ệ lý thuy t t p h p c a toán h c: phép h i (R phép giao (R˙ S), phép tr (R-S), phép tích (R
Các phép toán th c hi n trên 2 quan h xu t phát t ¨ S), · S). ừ Đ i v i các phép h i, giao, tr , các quan h R và S ố ớ ừ ệ ộ
ả ằ
ủ
ả ợ ng thu c tính c a R và S ph i b ng nhau:
Mi n giá tr c a thu c tính ph i t
ng thích
ề
ộ
ả ươ
ị ủ dom(Ai)=dom(Bi)
ph i ả kh h p: S l ố ượ ộ R(A1,A2,…An) và S(B1,B2,…Bn)
Quan h k t qu c a phép h i, giao, tr có cùng tên ệ ế ả ủ ừ ộ
15
ộ ệ ầ ớ thu c tính v i quan h đ u tiên.
3.5.2 Phép h i (Union)
ộ
˛= |{ StRtt }
˛ (cid:218) ¨ : trong đó R,S là ị
SR ả ợ Ví dụ: H c viên đ
c khen th ng đ t 1 ho c Ký hi uệ : R¨ S Đ nh nghĩa hai quan h kh h p. ệ ượ ọ ưở ặ ợ
đ t 2ợ
DOT1
DOT2
Mahv
Hoten
Mahv
Hoten
Mahv
Hoten
K1101 Le Kieu My
K1103 Le Van Tam
K1101 Le Kieu My
K1103 Le Van Tam
K1114 Tran Ngoc Han
K1114 Tran Ngoc Han
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1203 Le Thanh Hau
K1308 Nguyen Gia
K1308 Nguyen Gia
DOT1¨ DOT2
16
3.5.3 Phép tr (Set Difference)
ừ
˛= |{ StRtt }
ˇ (cid:217) - : trong đó R,S là ị
SR ả ợ Ví dụ: H c viên đ
ng đ t 1 nh ng ưở ư ợ
c khen th không đ Ký hi uệ : R-S Đ nh nghĩa hai quan h kh h p. ệ ượ ọ ượ c khen th ng đ t 2 ợ ườ
DOT1
DOT2
Mahv
Hoten
Mahv
Hoten
Mahv
Hoten
K1103 Le Van Tam
K1103 Le Van Tam
K1101 Le Kieu My
K1203 Le Thanh Hau
K1114 Tran Ngoc Han
K1114 Tran Ngoc Han
DOT1- DOT2
K1203 Le Thanh Hau
K1308 Nguyen Gia
17
3.5.4 Phép giao (Set-Intersection)
˛= |{ StRtt }
˛ (cid:217) ˙ : trong đó R,S là ị
hai quan h kh h p. Ho c
SR ả ợ Ví dụ: H c viên đ
ng c hai đ t 1 và c khen th Ký hi uệ : R˙ S Đ nh nghĩa ệ ọ ặ R˙ S = R – (R – S) ợ ưở ả ượ
2
KT_D1
Mahv
Hoten
KT_D2
Mahv
Hoten
K1114 Tran Ngoc Han
Mahv
Hoten
K1103 Le Van Tam
K1101 Le Kieu My
K1114 Tran Ngoc Han
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
DOT1˙
DOT2
K1308 Nguyen Gia
18
3.5.5 Phép tích (1)
SR
˛ (cid:217) ˛ :
=· SstRrtstrt { } ả
/ ộ
KQ(A1,A2,…Am,B1,B2,…Bn) ‹
Ký hi uệ : R· S Đ nh nghĩa N u R có n b và S có m b thì k t qu là n*m b ộ ị ế ế ộ
R(A1,A2,…Am) · ế ợ
S(B1,B2,…Bn) ọ
ườ
đ k t h p các b có liên quan t ng dùng k t h p v i các phép ch n ớ hai quan h . ệ ừ ộ
hai quan h HOCVIEN và MONHOC,
19
ợ ọ
ệ h c viên đăng ký ng h p nào “ ườ s không có b t kỳ đi u ki n ề ấ ả ử t c nh ng tr ọ ”, gi ệ
Phép tích th ể ế ợ Ví dụ: t ừ có t ấ ả ữ h c môn h c ọ nào
3.5.5 Phép tích (2)
MONHOC
HOCVIEN
Mahv
Hoten
Mamh
Mamh
Mahv
Hoten
K1103 Le Van Tam
CTRR
CTRR
K1103 Le Van Tam
K1114 Tran Ngoc Han CTRR
THDC
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
CTRR
CTDL
K1203 Le Thanh Hau
K1103 Le Van Tam
THDC
K1114 Tran Ngoc Han THDC
K1203 Le Thanh Hau
THDC
K1103 Le Van Tam
CTDL
K1114 Tran Ngoc Han CTDL
K1203 Le Thanh Hau
CTDL
HOCVIEN· MONHOC
20
3.6 Phép k tế
nhiên
ế ự
3.6.1 Phép k tế 3.6.2 Phép k t b ng, phép k t t ế ằ 3.6.3 Phép k t ngoài ế
21
3.6.1 Phép k t (Theta-Join) (1)
ế
ươ phép ch n. Đi u ki n ch n g i là nh phép tích k t h p v i ự ư ề ọ ớ ế ợ ệ ế . đi u ki n k t ng t ệ ọ
R
Theta-join (q ): T ề ọ p Ký hi uệ : S
ệ Các b có giá tr NULL t
trong đó R,S là các quan h , p là đi u ki n k t ệ ế
ề ộ
i thu c tính k t n i không ộ ị ế ố
ấ ạ ả ủ
xu t hi n trong k t qu c a phép k t. ế Phép k t v i đi u ki n t ng quát g i là là ệ ế ớ ệ ổ
22
„ ề m t trong nh ng phép so sánh ( ế ọ ,= ,>,‡ ế ớ q q -k t v i ,< ,£ ) ữ ộ
3.6.1 Phép k t (2)
ế
R
> BA 1 2 S B2 B1
A1
A2
B3
R
S
1
2
4
0
8
A1
A2
B1
B3
B2
1
2
7
0
1
2
1
0
8
2
1
8
4
0
8
8
1
7
7
8
1
8
7
0
1
0
0
8
4
0
8
4
8
2
0
4
8
1
7
0
8
4
4
0
8
3
0
2
5
1
8
4
7
0
1
8
4
5
1
2
23
3.6.2 Phép k t b ng, k t t
nhiên
ế ằ
ế ự
N u ế q ế ọ
Mahv=
Trglop
LOP
ằ phép k t b ng (equi-join). là phép so sánh b ng (=), phép k t g i là ế ằ
Ký hi uệ : N u đi u ki n c a equi-join là các thu c tính ề ế ố
ạ ỏ ớ
KETQUATHI
HOCVIEN
HOCVIEN ộ ệ ủ nhiên (natural- gi ng nhau thì g i là phép k t t ế ự ọ join). Khi đó k t qu c a phép k t lo i b b t 1 ả ủ ế ế c t (b 1 trong 2 c t gi ng nhau) ố ộ ộ Ký hi uệ : ho cặ
Mahv Mahv *
KETQUATHI
HOCVIEN
24
ỏ
3.6.3 Phép k t ngoài (outer join)
ế
ấ
ở ộ ự ệ
ế
M r ng phép k t đ tránh m t thông tin ế ể Th c hi n phép k t và sau đó thêm vào k t qu ế ả ế c a phép k t các b c a quan h mà không phù ệ ộ ủ ủ h p v i các b trong quan h kia. ợ ệ ớ ộ
Có 3 lo i: ạ
Left outer join R S Right outer join R S Full outer join R S t c các h c viên và đi m ấ ả ọ
Ví dụ: In ra danh sách t ọ
25
ể s c a các môn h c mà h c viên đó thi (n u có) ố ủ ế ọ
3.6.3 Phép k t ngoài (2) ế
HOCVIEN
mahv HOCVIEN KETQUATHI
Mahv
Hoten
Mahv
Hoten
Mahv Mamh Diem
HV01 Nguyen Van Lan
HV01 Nguyen Van Lan HV01 CSDL
7.0
HV02 Tran Hong Son
HV01 Nguyen Van Lan HV01 CTRR 8.5
HV03 Nguyen Le
HV02 Tran Hong Son
HV02 CSDL
8.5
HV04 Le Minh
HV03 Nguyen Le
HV03 CTRR 9.0
KETQUATHI
HV04 Le Minh
Null
Null
Null
Mahv
Mamh Diem
HV01
CSDL
7.0
HV02
CSDL
8.5
HV01
CTRR 8.5
HV03
CTRR 9.0
26
3.7 Phép chia (Division)
=
s
S
,
st ),(
R }
˛ ˛ " ị
‚= Đ nh nghĩa SRQ t /{ : R và S là hai quan h , Rệ ủ
˘ ộ
t là t p + và S+ l n l ậ ầ ượ +„ là t p ậ ệ ề +. Q là k t qu phép chia ả ế
ữ
Có th di n đ t b ng phép toán đ i s nh sau: ạ ố ư
+
+
R
S
p
‹ thu c tính c a R và S. Đi u ki n S con không b ngằ c a Rủ gi a R và S, Q + = R+ - S+ ạ ằ ể ễ p T R ( ) 1 -
+
+
((
)
R
)
TS 1
T 2
- · ‹ -
T
R S TT 2 1
27
- ‹
3.7 Phép chia (2)
KETQUATHI
MONHOC
Mahv
Mahv Mamh Diem
Mamh
Tenmh
HV01
HV01 CSDL
7.0
CSDL Co so du lieu
HV03
HV02 CSDL
8.5
CTRR Cau truc roi rac
KETQUA‚ MONHOC
HV01 CTRR 8.5
THDC Tin hoc dai cuong
HV03 CTRR 9.0
MONHOC
HV01 THDC 7.0
HV02 THDC 5.0
HV03 THDC 7.5
KETQUA
KETQUATHI
[
Mahv
,
Mamh
]
HV03 CSDL
6.0
‹
MONHOC
MONHOC [
Mamh
]
KETQUA
28
‹
3.8 Hàm tính toán và gom nhóm (1)
Hàm tính toán g m các hàm: avg(giatri), ồ
min(giatri), max(giatri), sum(giatri), count(giatri).
Phép toán gom nhóm:
`
E
)
,...,
G
(
(
),...,
()
GG , 1
2
n
AFAF ), 1 2
1
2
AF ( n n
ể
ứ ạ ố
ệ ỗ
ế
ộ
E là bi u th c đ i s quan h Gi là thu c tính gom nhóm (r ng, n u không gom nhóm) ộ Fi là hàm tính toán Ai là tên thu c tính
29
3.8 Hàm tính toán và gom nhóm (2)
Đi m thi cao nh t, th p nh t, trung bình
ấ
ấ
ể
ấ c a môn CSDL ? ủ
s
(
KETQUATHI
)
=
max(
Diem
),
min(
Diem
),
agv
(
Diem
)
Mamh
'
CSDL'
Đi m thi cao nh t, th p nh t, trung bình
ấ
ấ
ấ
ể c a t ng môn ? ủ ừ
`
KETQUATHI
)
Mamh
max(
Diem
),
min(
Diem
),
avg
(
Diem
()
30
`
Bài t pậ
L
c đ CSDL qu n lý bán hàng g m có các quan h sau:
ượ ồ
ồ
ệ
ả
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
31
Mô t
ả
ấ
các câu truy v n sau b ng ĐSQH
ằ
1.
ả
ố
ừ
ẩ 30.000 đ n 40.000 ế
2.
3.
c bán ra trong ngày 1/1/2007.
ẩ ẩ
ả ả
ặ
ấ
In ra danh sách các s n ph m (MASP,TENSP) do “Trung Qu c” s n xu t có giá t ấ ả In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. In ra danh sách các s n ph m (MASP,TENSP) do “Trung Quoc” s n xu t ho c các s n ph m đ ượ ả 4. Tìm các s hóa đ n mua cùng lúc 2 s n ph m có mã s “BB01” và
ẩ
ả
ố
ơ
ố
5.
ẩ
t c các s n ph m do Singapore s n
“BB02”. In ra danh sách các s n ph m (MASP,TENSP) do “Trung Quoc” ả s n xu t không bán đ c trong năm 2006. ượ ả 6. Tìm s hóa đ n đã mua t ẩ ấ ả
ấ ố
ả
ả
ơ
xu tấ
32
Câu 1
In ra danh sách các s n ph m (MASP,
ẩ
ả
ấ
ố
ả TENSP) do “Trung Qu c” s n xu t có giá t ừ
30.000 đ n 40.000. ế
=
SANPHAM
((:
nuocsx
'
TrungQuoc
)'
.30(
000
gia
.40
000
))[
masp
,
tensp
]
p
SANPHAM
=
£ £ (cid:217)
s tensp
masp
,
(
nuocsx
' TrungQuoc
)'
000.30(
gia
000.40
)
33
£ £ (cid:217)
Câu 2
In ra danh sách các khách hàng (MAKH,
HOTEN) đã mua hàng trong ngày 1/1/2007.
=
(cid:246) (cid:230)
MAKH
KHACHHANG
HOADON
(:
nghd
/1/1#
2007
[)#
makh ,
hoten
]
(cid:247) (cid:231)
p
MAKH
HOADON
KHACHHANG
)
=
s hoten
masp
,
(
nghd
/1/1#
2007
()#
34
ł Ł
Câu 3
In ra danh sách các s n ph m do “Trung Quoc” c bán ra trong ả ả ẩ ẩ ượ
=
s n xu t ho c các s n ph m đ ặ ấ ả ngày 1/1/2007.
SANPHAM
(:
nuocsx
'
TrungQuoc
)['
masp
,
tensp
]
A
=
‹
MASP
SOHD
(
SANPHAM
CTHD
HOADON
(:
nghd
/1/1#
2007
))[#
masp
,
tensp
]
B
‹
C
BA
p
¨ ‹
(
SANPHAM
)
A
=
s tensp
masp
,
nuocsx
' TrungQuoc
'
Ho cặ
p
‹
SOHD
MASP
s ((
(
HOADON
)
CTHD
)
SANPHAM
)
B
=
nghd
/1/1#
2007
#
tensp
‹
, masp BA
C
35
¨ ‹
Câu 4
Tìm các s hóa đ n đã mua cùng lúc các s n
ả
ố
ơ ph m có mã s “BB01” và “BB02”.
ẩ
ố =
'
CTHD
(:
masp
BB
)['01
sohd
]
A
=
‹
'
(:
masp
BB
)['02
sohd
]
‹
B C
CTHD BA
p
s
˙ ‹
A
( CTHD
)
=
sohd
masp
'
BB
'01
Ho cặ
p
s
‹
B
( CTHD
)
=
masp
'
BB
'02
‹
C
sohd BA
36
˙ ‹
Câu 5
In ra danh sách các s n ph m do “TrungQuoc” s n ả ẩ
p
xu t không bán đ ả c trong năm 2006. ấ ượ
A
(
SANPHAM
)
=
s tensp
masp
,
nuocsx
TrungQuoc '
'
‹
MASP
SOHD
CTHD
)
)
(( p
‹
B C
HOADON B )
(
=
=
nuocsx
TrungQuoc '
)'
(
year
(
nghd
2006
)
)
(
‹ (cid:217)
D
SANPHAM s tensp )
masp , CA
(
37
- ‹
Câu 6
Tìm s hóa đ n đã mua t
ố
ả
t c các s n ơ ấ ả ph m do Singapore s n xu t ấ
ẩ
ả
p
(
SANPHAM
)
A
=
s masp
nuocsx
'
Singapore
'
s
p
‹
MASP
(
SANPHAM
CTHD
)
B
=
sohd
nuocsx
'
Singapore
'
‹
C
, masp AB
38
‚ ‹