III. Biểu thức ĐSQH
Khái niệm: 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ệ (không có tên)
Kết quả thực hiện các phép toán trên cũng là
các quan hệ, do đó có thể kết hợp giữa các
phép toán này để tạo nên các quan hệ mới
36 trang |
Chia sẻ: candy98 | Lượt xem: 818 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Đỗ Thị Kim Thành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRUNG TÂM DÀO TẠO CÁC VẤN ĐỀ KINH TẾ HIỆN ĐẠI
TRƯỜNG ĐẠI HỌC CHU VĂN AN
GV: Đỗ Thị Kim Thành
Email: kimthanh.do@gmail.com
Web:
DATABASE
CƠ SỞ DỮ LIỆU
GV: ĐỖ THỊ KIM THÀNH 2
Chương IV
ĐẠI SỐ QUAN HỆ
GV: ĐỖ THỊ KIM THÀNH 3
I. SƠ LƢỢC VỀ ĐẠI SỐ QUAN HỆ
Là một mô hình toán học dựa trên lý thuyết tập hợp
Đối tượng xử lý là các quan hệ trong CSDL quan
hệ
Cho phép sử dụng các phép toán rút trích dữ liệu
từ các quan hệ
Tối ưu hóa quá trình rút trích dữ liệu
Gồm có:
Các phép toán đại số quan hệ
Biểu thức đại số quan hệ
GV: ĐỖ THỊ KIM THÀNH 4
II. Sơ lƣợc các phép toán ĐSQH
Có năm phép toán cơ bản:
Chọn ( ) : chọn ra các dòng (bộ) trong QH thỏa điều kiện chọn.
Chiếu ( ) : chọn ra một số cột.
Tích Descartes ( ) : kết hai QH lại với nhau.
Trừ ( ) : chứa các bộ của QH1 nhưng không nằm trong QH2.
Hội ( ) : chứa các bộ của QH1 và các bộ của QH2.
Các phép toán khác:
Giao ( ), kết ( ), chia ( / hay ), đổi tên ( ): là các phép
toán không cơ bản (được suy từ 5 phép toán trên, trừ phép đổi
tên).
GV: ĐỖ THỊ KIM THÀNH 5
III. Biểu thức ĐSQH
Khái niệm: 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ệ (không có tên)
Kết quả thực hiện các phép toán trên cũng là
các quan hệ, do đó có thể kết hợp giữa các
phép toán này để tạo nên các quan hệ mới
GV: ĐỖ THỊ KIM THÀNH 6
Cho lược đồ quan hệ:
NHANVIEN (MANV, HOTEN, NS, PHAI)
Có các thể hiện
NHANVIEN
MANV HOTEN NS 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
IV. Các phép toán ĐSQH
GV: ĐỖ THỊ KIM THÀNH 7
1. Phép chọn -
(Quan hệ)
(Điều kiện 1 điều kiện 2 .)
Cú pháp :
(NHANVIEN)
Phai=‘Nam’
NHANVIEN
MANV HOTEN NS 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 NS PHAI
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam
NV003 Lý Phước Mẫn 02/04/1969 Nam
Kết quả phép chọn
Câu hỏi 1: Cho biết các nhân viên nam ?
Mục đích: chọn ra các dòng (bộ) trong QH thỏa ĐK chọn
GV: ĐỖ THỊ KIM THÀNH 8
(NHANVIEN)
(Phai=‘Nam’ Year(NS) > 1975)
NHANVIEN
MANV HOTEN NS 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 NS PHAI
Câu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ?
Kết quả phép chọn
(không có bộ nào thỏa)
1. Phép chọn -
GV: ĐỖ THỊ KIM THÀNH 9
Cú pháp:
NHANVIEN
MANV HOTEN NS 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
Câu hỏi 3: Cho biết họ tên nhân viên và giới tính ?
(Quan hệ)
Cột1, cột2, cột 3, .
(NHANVIEN)
HOTEN, PHAI
NHANVIEN
HOTEN PHAI
Nguyễn Tấn Đạt Nam
Trần Đông Anh Nữ
Lý Phước Mẫn Nam
2. Phép chiếu -
Mục đích: chọn ra một số cột trong một quan hệ
GV: ĐỖ THỊ KIM THÀNH 10
NHANVIEN
MANV HOTEN NS 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
Câu hỏi 4: Cho biết họ tên và ngày tháng năm sinh của các nhân viên
nam?
(NhanVien)
(Phai=‘Nam’)
Bước 1: Q
Kết quả phép chọn
(biểu thức ĐSQH)
được đổi tên thành
QH Q
Bước 2: (Q)
HOTEN, NS
NHANVIEN
HOTEN NS
Nguyễn Tấn Đạt 10/12/1970
Lý Phước Mẫn 02/04/1969
2. Phép chiếu -
GV: ĐỖ THỊ KIM THÀNH 11
Câu hỏi 5: Tính tích Descartes giữa 2 quan hệ nhân viên và phòng ban
NHANVIEN PHONGBAN
Quan-hệ-1 Cú pháp : Quan-hệ-2 Quan-hệ-k
3. Phép tích Descartes - X
Mục đích: kết hai quan hệ lại với nhau
GV: ĐỖ THỊ KIM THÀNH 12
PHONGBAN
MAPH TENPH TRPH
NC Nghiên cứu NV001
DH Điều hành NV002
NHANVIEN PHONGBAN
Nam
Nữ
Nam
02/04/1969
01/08/1981
10/12/1970
NS HOTEN MANV
Nguyễn Tấn Ðạt NV001
Lý Phước Mẫn NV003
Trần Ðông Anh NV002
NHANVIEN
PHAI PHONG
DH
NC
NC
NHANVIEN X PHONGBAN
MANV
HOTEN
NS
PHAI
PHONG
MAPH TENPH
TRPH
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NC
NC
Nghiên cứu
NV001
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NC
DH
Điều hành
NV002
NV002
Trần Đông Anh
01/08/1981
Nữ
DH
NC
Nghiên cứu
NV001
NV002
Trần Đông Anh
01/08/1981
Nữ
DH
DH
Điều hành
NV002
NV003
Lý Phước Mẫn
02/04/1969
Nam
NC
NC
Nghiên cứu
NV001
NV003
Lý Phước Mẫn
02/04/1969
Nam
NC
DH
Điều hành
NV002
3. Phép tích Descartes - X
GV: ĐỖ THỊ KIM THÀNH 13
4. Phép kết - - Theta-join
Câu hỏi 6: Cho biết mã nhân viên (MANV), họ tên (HOTEN) và tên phòng
(TENPH) mà nhân viên trực thuộc
MANV
HOTEN
NS
PHAI
PHONG
MAPH TENPH
TRPH
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NC
NC
Nghiên cứu
NV001
NV001
Nguyễn Tấn Đạt
10/12/1970
Nam
NC
DH
Điều hành
NV002
NV002
Trần Đông Anh
01/08/1981
Nữ
DH
NC
Nghiên cứu
NV001
NV002
Trần Đông Anh
01/08/1981
Nữ
DH
DH
Điều hành
NV002
NV003
Lý Phước Mẫn
02/04/1969
Nam
NC
NC
Nghiên cứu
NV001
NV003
Lý Phước Mẫn
02/04/1969
Nam
NC
DH
Điều hành
NV002
Điều kiện chọn: NHANVIEN.PHONG = PHONGBAN.MAPH
(NHANVIEN X PHONGBAN)
NHANVIEN.PHONG=PHONGBAN.MAPH
GV: ĐỖ THỊ KIM THÀNH 14
(NHANVIEN X PHONGBAN)
NHANVIEN.PHONG=PHONGBAN.MAPH
Quan-hệ-1
Phép kết được định nghĩa là phép tích Decartes và có điều
kiện chọn liên quan đến các thuộc tính giữa 2 quan hệ
Quan-hệ-2
• Phép kết với đk tổng quát được gọi là -kết, có thể là , =, >, =, <=
• Nếu đk kết là phép so sánh = thì gọi là kết bằng
Câu hỏi 6 viết lại:
MANV,HOTEN,TENPH (NHANVIEN PHONG=MAPH PHONGBAN)
Điều kiện kết
4. Phép kết - - Theta join
Cú pháp :
GV: ĐỖ THỊ KIM THÀNH 15
( Kết bằng )
NHANVIEN PHONG=MAPH PHONGBAN
Nếu PHONG trong NHANVIEN được đổi thành MAPH thì ta bỏ đi
1 cột MAPH thay vì phải để MAPH=MAPH, lúc này gọi là phép kết
tự nhiên (natural-join)
( Kết tự nhiên )
NHANVIEN MAPH PHONGBAN
Kết bằng:
Kết tự nhiên:
Hoặc viết cách khác: NHANVIEN * PHONGBAN
equi-join
natural-join
* Kết bằng và Kết tự nhiên
GV: ĐỖ THỊ KIM THÀNH 16
Câu hỏi 7: Tìm họ tên các trưởng phòng của từng phòng ?
HOTEN, TENPH (PHONGBAN TRPH=MANV NHANVIEN)
Câu hỏi 8: Cho lược đồ CSDL như sau:
TAIXE (MaTX, HoTen, NgaySinh, GioiTinh, DiaChi)
CHUYENDI (SoCD, MaXe, MaTX, NgayDi, NgayVe, ChieuDai, SoNguoi)
Cho biết họ tên tài xế, ngày đi, ngày về của những chuyến đi có chiều
dài >=300km, chở từ 12 người trở lên trong mỗi chuyến?
HoTen, NgayDi, NgayVe (Q MATX TAIXE)
(ChieuDai>=300 SoNguoi>=12)
(CHUYENDI) Q
Kết quả:
4. Phép kết - - Theta join
GV: ĐỖ THỊ KIM THÀNH 17
* 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
Ví dụ: In ra danh sách tất cả tài xế và số chuyến đi,
mã xe mà tài xế đó lái (nếu có)
GV: ĐỖ THỊ KIM THÀNH 18
* Phép kết ngoài
TAIXE CHUYENDI
MaTX
TAIXE
MaTX Hoten
TX01 Huynh Trong Tao
TX02 Nguyen Sang
TX03 Le Phuoc Long
TX04 Nguyen Anh Tuan
CHUYENDI
SoCD MaTX MaXe
CD01 TX01 8659
CD02 TX02 7715
CD03 TX01 8659
CD04 TX03 4573
Matx Hoten SoCD Matx Maxe
TX01 Huynh Trong Tao CD01 TX01 8659
TX01 Huynh Trong Tao CD03 TX01 8659
TX02 Nguyen Sang CD02 TX02 7715
TX03 Le Phuoc Long CD04 TX03 4573
TX04 Nguyen Anh Tuan Null Null Null {
Bộ của quan hệ TAIXE được thêm
vào dù không phù hợp với kết quả
của quan hệ CHUYENDI
Tương tự right outer join và full outer join (lấy cả 2)
(lấy hết tất cả bộ của quan hệ bên trái)
GV: ĐỖ THỊ KIM THÀNH 19
5. Phép đổi tên - ρ
Được dùng để đổi tên
Quan hệ
Xét quan hệ R(B, C, D)
ρ (R): đổi tên quan hệ R thành S
Thuộc tính
ρ (R): đổi tên thuộc tính B thành X
Đổi tên quan hệ R thành S và thuộc tính B thành X
ρ (R)
S
X, C, D
S (X, C, D)
GV: ĐỖ THỊ KIM THÀNH 20
V. Phép toán tập hợp
Các phép toán:
Phép hội: R S
Phép giao: R S
Phép trừ: R − S
Tính khả hợp: hai lược đồ quan hệ R(A1, A2 ,, An) và
S(B1, B2 ,,Bn) là khả hợp nếu:
Cùng bậc n
Và có DOM(Ai) = DOM(Bi), 1 ≤ i ≤ n
Kết quả của , , − là một quan hệ có cùng tên thuộc
tính với quan hệ đầu tiên (R)
GV: ĐỖ THỊ KIM THÀNH 21
Phép trừ, phép hội, phép giao tập hợp
Tất cả các phép toán này đều cần hai quan hệ đầu vào
tương thích khả hợp, nghĩa là chúng phải thoả:
Cùng số thuộc tính (cùng bậc)
Các thuộc tính “tương ứng” có cùng kiểu.
R
HO TEN
Vuong Quyen
Nguyen Tung
S
HONV TENNV
Le Nhan
Vuong Quyen
Bui Vu
- Bậc 2
- DOM (HO) = DOM (HONNV)
- DOM (TEN) = DOM (TENNV)
GV: ĐỖ THỊ KIM THÀNH 22
1. Phép trừ - −
Cho 2 quan hệ R và S khả hợp
Phép trừ của R và S
Ký hiệu: R − S
Là 1 quan hệ gồm các bộ thuộc R và không thuộc S
Q = R − S = { t/ tR tS}
Ví dụ:
R A B
α 1
α 2
β 1
S A B
α 2
β 3
R − S A B
α 1
β 1
GV: ĐỖ THỊ KIM THÀNH 23
2. Phép hội -
Cho 2 quan hệ R và S khả hợp
Phép hội của R và S
Ký hiệu: R S
Là 1 quan hệ gồm các bộ thuộc R hoặc thuộc S,
hoặc cả hai (các bộ trùng lắp sẽ bị bỏ)
Q = R S = { t/ tR tS}
Ví dụ
R A B
α 1
α 2
β 1
S A B
α 2
β 3
R S A B
α 1
α 2
β 1
α 2
β 3
GV: ĐỖ THỊ KIM THÀNH 24
3. Phép giao -
Cho 2 quan hệ R và S khả hợp
Phép giao của R và S
Ký hiệu: R S
Là 1 quan hệ gồm các bộ thuộc R đồng thời thuộc
S
Q = R S = R – (R – S) = { t/tR tS}
Ví dụ:
R A B
α 1
α 2
β 1
S A B
α 2
β 3
R S A B
α 2
GV: ĐỖ THỊ KIM THÀNH 25
Phép trừ, phép hội, phép giao tập hợp
R
HO TEN
Vuong Quyen
Nguyen Tung
S
HONV TENNV
Le Nhan
Vuong Quyen
Bui Vu
KQ phép trừ Q = {Nguyen Tung}
KQ phép hội Q = {Vuong Quyen, Nguyen Tung, Le Nhan, Bui Vu}
KQ phép giao Q = {Vuong Quyen}
Phép trừ: Q = R − S = { t/ tR tS}
Phép hội: Q = R S = { t/ tR tS}
Phép giao: Q = R S = R – (R – S) = { t/tR tS}
GV: ĐỖ THỊ KIM THÀNH 26
4. Các tính chất
Giao hoán
R S = S R
R S = S R
Kết hợp
R (S T) = (R S) T
R (S T) = (R S) T
GV: ĐỖ THỊ KIM THÀNH 27
CHO LƢỢC ĐỒ CSDL
NHANVIEN (MANV, HOTEN, PHAI, LUONG, NS, MA_NQL, MAPH)
PHANCONG (MANV, MADA, THOIGIAN)
GV: ĐỖ THỊ KIM THÀNH 28
Câu hỏi 9: Cho biết nhân viên không làm việc ? (Phép trừ)
Phép trừ, phép hội, phép giao tập hợp
Câu hỏi 10: Cho biết nhân viên được phân công tham gia đề án có mã số
‘TH01’ hoặc đề án có mã số ‘TH02’? (Phép hội)
MANV (NHANVIEN) – MANV (PHANCONG)
(PHANCONG)
(MADA=‘TH01’)
MANV
( ) (PHANCONG)
(MADA=‘TH02’)
MANV
( )
GV: ĐỖ THỊ KIM THÀNH 29
Phép trừ, phép hội, phép giao tập hợp
Câu hỏi 11: Cho biết nhân viên được phân công tham gia cả 2
đề án ‘TH01’ và đề án ‘TH02’? (Phép giao)
(PHANCONG)
(MADA=‘TH01’)
MANV
( ) (PHANCONG)
(MADA=‘TH02’)
MANV
( )
GV: ĐỖ THỊ KIM THÀNH 30
5. Phép chia tập hợp ( / hay )
Phép chia (R S) cần hai quan hệ đầu vào R, S thoả:
Tập thuộc tính của R là tập cha của tập thuộc tính S.
Ví dụ: R có m thuộc tính, S có n thuộc tính : n m
Định nghĩa:
R và S là hai quan hệ, R+ và S+ lần lượt là tập thuộc tính
của R và S. Điều kiện S+ là tập con không bằng của
R+. Q là kết quả phép chia giữa R và S, Q+ = R+ - S+
}),(,/{ RstSstSRQ
21
12
1
))((
)(
TTT
RTST
RT
SR
SR
GV: ĐỖ THỊ KIM THÀNH 31
5. Phép chia tập hợp ( / hay )
Q= PHANCONG / DEAN
MADA
TH001
TH002
DT001
MANV
002
MANV MADA
001 TH001
001 TH002
002 TH001
002 TH002
002 DT001
003 TH001
R=PHANCONG S=DEAN
Kết quả Q
Cho biết nhân viên làm việc cho
tất cả các đề án ? (được phân
công tham gia tất cả các đề án)
Hoặc viết Q= PHANCONG DEAN
GV: ĐỖ THỊ KIM THÀNH 32
5. Phép chia tập hợp ( / hay )
Mahv
HV01
HV03
R=KETQUATHI
Mahv Mamh Diem
HV01 CSDL 7.0
HV02 CSDL 8.5
HV01 CTRR 8.5
HV03 CTRR 9.0
HV01 THDC 7.0
HV02 THDC 5.0
HV03 THDC 7.5
HV03 CSDL 6.0
S=MONHOC
Mamh Tenmh
CSDL Co so du lieu
CTRR Cau truc roi rac
THDC Tin hoc dai cuong
Q=KETQUA / MONHOC
)(
)(,
MONHOCMONHOC
KETQUATHIKETQUA
Mamh
MamhMahv
Mahv, Mamh (KETQUATHI) / Mamh (MONHOC)
GV: ĐỖ THỊ KIM THÀNH 33
VI. Các hàm tính toán
Nhận vào tập hợp các giá trị và trả về 1 giá trị đơn
AVG
MIN
MAX
SUM
COUNT
R A B
1 2
3 4
1 2
1 2
SUM(B) = 10
AVG(A) = 1.5
MIN (A) = 1
MAX(B) = 4
COUNT(A) = 4
GV: ĐỖ THỊ KIM THÀNH 34
VII. Phép gom nhóm – group by
Được dùng để phân chia quan hệ thành nhiều nhóm dựa
trên điều kiện gom nhóm nào đó
Kí hiệu:
E là biểu thức đại số quan hệ
Gi là thuộc tính gom nhóm (nếu không có Gi nào=> không chia
nhóm (1 nhóm), ngược lại (nhiều nhóm) => hàm F sẽ tính toán
trên từng nhóm nhỏ được chia bởi tập thuộc tính này)
Fi là hàm tính toán
Ai là tên thuộc tính tính toán trong hàm F
)()(),...,(),(,...,, 221121 Ennn AFAFAFGGG
GV: ĐỖ THỊ KIM THÀNH 35
VII. Phép gom nhóm – group by
Ví dụ:
R A B C
α 2 7
α 4 7
β 2 3
γ 2 10
ℑ SUM(C)(R)
A ℑ SUM(C)(R)
SUM_C
27
SUM_C
14
3
10
GV: ĐỖ THỊ KIM THÀNH 36
VII. Phép gom nhóm – group by
Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL?
Điểm thi cao nhất, thấp nhất, trung bình của từng môn ?
)()(),min(),max( KETQUATHIDiemavgDiemDiemMamh
)(CSDL''Mamh)(),min(),max( KETQUATHIDiemagvDiemDiem