Chương 4
Đại số quan hệ
(Relational Algebra)
1
Giới thiệu
Đạisốquanhệ(vàphéptínhquanhệ)đượcđịnhnghĩabởi
Codd 1971, được xem như là nền tảng của các ngôn ngữ
quanhệkhácnhưSQL.
Làngônngữthủtụcbậccao,đượcdùngđểchỉracáchxây
dựngmộtquanhệmớitừmộthaynhiềuquanhệtrongcơsở
dữliệu.
Baogồmtậpcácphéptoánthaotáctrêncácquanhệ.
2
Giới thiệu
• XétmộtsốxửlýtrênquanhệNHANVIEN
– Thêmmớimộtnhânviên.
– Chuyểnnhânviêncótênlà“Tùng”sangphòngsố1.
– Chobiếthọtênvàngàysinhcácnhânviêncólươngtrên
20000.
TENNV
HONV
NGSINH
DCHI
PHAI
LUONG
PHONG
Tung
Nguyen
12/08/1955
638 NVC Q5
Nam
40000
5
1
Hang
Bui
07/19/1968
332 NTH Q1
Nu
25000
4
Nhu
Le
06/20/1951
291 HVH QPN
Nu
43000
4
Hung
Nguyen
09/15/1962
Ba Ria VT
Nam
38000
5
Quang
Pham
11/10/1937
450 TV HN
Nam
55000
1
3
Các phép toán đại số quan hệ
a.Phépchọn(Selection)
b.Phépchiếu(Projection)
c.Phépgán
d.Phéphợp(Union)
e.Phépgiao(Intersection)
f.Phéptrừ-(Difference)
g.PhéptíchCartesianX(CartesianProduct)
h.Phépchia÷(Division)
i.Phépkết(Join)
4
Phép chọn (Selection)
ĐượcdùngđểlấyracácbộcủaquanhệR.
CácbộđượcchọnphảithỏamãnđiềukiệnchọnP.
Kýhiệu:
P (R)
5
Phép chọn (Selection)
Plàbiểuthứcgồmcácmệnhđềcódạng:
<tên thuộc tính>
<hằng số>
Ví dụ: MSSV = 01224
<tên thuộc tính> <tên thuộc tính>
Ví dụ: MSNV = MTH
Cácphépsosánhđượcsửdụng:gồm,,,,,
Cácmệnhđềđượcnốilạinhờcácphép:∧(and),∨(or),¬(not)
6
Phép chọn (Selection)
Kếtquảtrảvềlàmộtquanhệ
– CócùngdanhsáchthuộctínhvớiR.
– CósốbộluôníthơnhoặcbằngsốbộcủaR.
Vídụ:
(R)
(A=B) (R)
(A=B)(D>5) (R)
7
Phép chọn (Selection)
Câuhỏi1:Chobiếtcácnhânviênnam?
Biểudiễncách1:
(Quan hệ)
Cú pháp :
(Điều kiện 1 điều kiện 2 ….)
Câu hỏi 1:
Biểudiễncách2:
(NhanVien)
Phai=‘Nam’
Cú pháp : (Quan hệ: điều kiện chọn)
Câu hỏi 1: (NhanVien: Phai=‘Nam’)
Kết quả phép chọn
NHANVIEN
NHANVIEN
MANV
HOTEN
NTNS
PHAI
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
MANV
NV002
Trần Đông Anh
01/08/1981
Nữ
NV003
Lý Phước Mẫn
02/04/1969
Nam
HOTEN
NTNS
PHAI
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NV003
Lý Phước Mẫn
02/04/1969
Nam
8
Phép chọn (Selection)
Câuhỏi2:Chobiếtcácnhânviênnamsinhsaunăm1975?
Biểudiễncách1:
(NhanVien)
(Phai=‘Nam’ Year(NTNS)>1975)
Biểudiễncách2:
(NhanVien: Phai=‘Nam’ Year(NTNS)>1975)
Kết quả phép chọn
NHANVIEN
MANV
HOTEN
NTNS
PHAI
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NV002
Trần Đông Anh
01/08/1981
Nữ
NV003
Lý Phước Mẫn
02/04/1969
Nam
NHANVIEN
MANV
HOTEN
NTNS
PHAI
(không có bộ nào thỏa)
9
Phép chọn (Selection)
10
Phép chọn (Selection)
11
Phép chọn (Selection)
12
Phép chiếu (Projection)
ĐượcdùngđểlấyramộtvàicộtcủaquanhệR
Kýhiệu:
A1, A2, …, Ak(R)
Kếtquảtrảvềlàmộtquanhệ:
– Cókthuộctính.
– CósốbộluôníthơnhoặcbằngsốbộcủaR.
– Phépchiếuloạibỏnhữngbộtrùngnhau.
Vídụ:
A,C (R)
A,C (R)
13
Phép chiếu (Projection)
Câuhỏi1:Cho biết họ tên nhân viên và giới tính ?
Biểudiễncách1:
Cúpháp:
Câuhỏi1:
(Quan hệ)
Cột1, cột2, cột 3, ….
(NHANVIEN)
HOTEN,PHAI
Biểudiễncách2:
Cúpháp:
Quan hệ [cột1,cột2,cột3,…]
Câuhỏi1:
NHANVIEN [ HOTEN, PHAI ]
NHANVIEN
NHANVIEN
MANV
HOTEN
NTNS
PHAI
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NV002
Trần Đông Anh
01/08/1981
Nữ
NV003
Lý Phước Mẫn
02/04/1969
Nam
Kết quả
phép chiếu
HOTEN
PHAI
Nguyễn Tấn Đạt
Nam
Trần Đông Anh
Nữ
Lý Phước Mẫn
Nam
14
Phép chiếu (Projection)
Câuhỏi2:Chobiếthọtênvàngàythángnămsinhcủacácnhânviênnam?
Biểudiễncách1:
Bước1:
Q
(NhanVien)
(Phai=‘Nam’)
Bước2:
(Q)
Kết quả phép chọn
(còn gọi là biểu thức
ĐSQH) được đổi tên
thành quan hệ Q
HOTEN, NTNS
Biểudiễncách2:
NHANVIEN
NHANVIEN
PHAI
Kết quả
10/12/1970
Nam
phép chiếu
Trần Đông Anh
01/08/1981
Nữ
Lý Phước Mẫn
02/04/1969
Nam
MANV
HOTEN
NTNS
NV001
Nguyễn Tấn Đạt
NV002
NV003
HOTEN
NTNS
Nguyễn Tấn Đạt
10/12/1970
Lý Phước Mẫn
02/04/1969
15
Phép chiếu (Projection)
16
Phép chiếu (Projection)
• Chobiếthọtênvàlươngcủacácnhânviên
– Quanhệ:NHANVIEN
– Thuộctính:HONV,TENNV,LUONG
17
Phép chiếu mở rộng
• Mởrộngphépchiếubằngcáchchophépsửdụngcácphéptoán
sốhọctrongdanhsáchthuộctính.
• Kýhiệu
– ElàbiểuthứcĐSQH
– F1,F2,…,Fnlàcácbiểuthứcsốhọcliênquanđến
• Hằngsố
• ThuộctínhtrongE
18
Phép chiếu mở rộng
Vídụ:
– Chobiếthọtêncủacácnhânviênvàlươngcủahọsaukhi
tăng10%.
19
Phép gán
Đượcsửdụngđểnhậnlấykếtquảtrảvềcủamộtphéptoán.
– Thườnglàkếtquảtrunggiantrongchuỗicácphéptoán.
Kýhiệu:
Vídụ:
– B1:
S P (R)
– B2
KQ A1, A2, …, Ak (S)
20
Chuỗi các phép toán
Kếthợpcácphéptoánđạisốquanhệ
– Lồngcácbiểuthứclạivớinhau
P(
A1, A2, …, Ak ( P (R))
– Thựchiệntừngphéptoánmột
• B1
S P (R)
• B2
A1, A2, …, Ak (R))
KQ
A1, A2, …, Ak (S)
21
Chuỗi các phép toán
Chobiếthọvàtênnhânviênlàmviệcởphòngsố4
– Quanhệ:NHANVIEN
– Thuộctính:HONV,TENNV
– Điềukiện:PHG=4
C1:
HONV, TENNV (
PHG=4 (NHANVIEN))
C2:
NV_P4 PHG=4 (NHANVIEN)
KQ
HONV, TENNV (NV_P4)
22
Phép toán tập hợp
Quanhệlàtậphợpcácbộ:
– PhéphộiRS
– PhépgiaoRS
– PhéptrừRS
Kếtquảcủa,,vàlàmộtquanhệcócùngtênthuộctínhvới
quanhệđầutiên(R).
23
Hai quan hệ khả hợp
Cho2quanhệRvàSkhảhợp:
+Cùngsốthuộctính.
Ví dụ: R và S đều có 2 thuộc tính.
+Cácthuộctính“tươngứng”cócùngkiểu.
24
Phép hội (Union)
Cho2quanhệRvàSkhảhợp.
PhéphộicủaRvàS
– KýhiệuR S
– LàmộtquanhệgồmcácbộthuộcRhoặcthuộcS,hoặccảhai
(cácbộtrùnglắpsẽbịbỏ).
R S = { t / tR tS }
Vídụ:
S
R
A
B
A
B
A
B
1
1
2
2
2
3
1
1
2
3
S
25