BUỔI 7
Bài 7: (tiếp theo)
Ngôn ngữ Đại số quan hệ
Khoa HTTT - Dương Khai Phong
1
Nội dung
1. Phép kết
2. Phép chia
3. Hàm tính toán và gom nhóm
Khoa HTTT - Dương Khai
2
1. Phép kết
1.1 Phép kết
1.2 Phép kết bằng, phép kết tự nhiên
1.3 Phép kết ngoài
Khoa HTTT - Dương Khai
3
1. Phép kết (Theta-Join)
1.1 Phép kết
Theta-join (θ ): tương tự như phép tích kết hợp
với phép chọn. Điều kiện chọn gọi là điều kiện
kết.
P
Ký hiệu: R S
Trong đó R,S là các quan hệ, p là điều kiện kết
Các bộ có giá trị NULL 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à θ
Kết với θ là một trong những phép so sánh
( ≠ ,= ,> ,≥ ,< ,≤ )
Khoa HTTT - Dương Khai
4
1. Phép kết (Theta-Join)
1.1 Phép kết
A1> B2
Ví dụ: Cho 2 quan hệ R,S như sau:
R
S
R S
A1
A2
B1
B2
B3
B3
1
2
8
0
4
2
8
1
2
1
0
7
7
8
7
1
8
8
0
4
0
8
0
4
1
8
1
0
7
8
4
1
0
7
8
4
0
2
8
0
3
2
1
5
8
4
8
0
4
8
4
1
0
7
8
4
2
1
5
A1
A2
B1
1
2
0
1
8
0
B2
Khoa HTTT - Dương Khai
5
1. Phép kết (Theta-Join)
1.2 Phép kết bằng, kết tự nhiên
Nếu θ là phép so sánh bằng (=), phép kết gọi là
phép kết bằng (equi-join).
MAHV=TRUONGLOP
Ký hiệu:
HOCVIEN
LOP
Nếu điều kiện của equi-join là các thuộc tính
giống nhau thì gọi là phép kết tự nhiên (naturaljoin). 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
HOCVIEN LOP
MAHV
HOCVIEN * KETQUATHI
Khoa HTTT - Dương Khai
6
1. Phép kết (Theta-Join)
1.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
Right outer join
Full outer join
R
R
R
S
S
S
Ví dụ: In ra danh sách tất cả các học viên và
điểm số của các môn học mà học viên đó thi
(nếu có)
Khoa HTTT - Dương Khai
7
1. Phép kết (Theta-Join)
1.3 Phép kết ngoài (outer join)
HOCVIEN
Mahv
Hoten
HV01 Nguyen Van Lan
HV02 Tran Hong Son
HV03 Nguyen Le
HV04 Le Minh
KETQUATHI
Mahv Mamh
Diem
HV01 CSDL
7.0
HV02 CSDL
8.5
HV01 CTRR
8.5
HV03 CTRR
9.0
HOCVIEN
Mahv
mahv
Hoten
KETQUATHI
Mahv Mamh Diem
HV01 Nguyen Van Lan
HV01
CSDL
7.0
HV01 Nguyen Van Lan
HV01
CTRR
8.5
HV02 Tran Hong Son
HV02
CSDL
8.5
HV03 Nguyen Le
HV03
CTRR
9.0
HV04 Le Minh
Null
Null
Null
Khoa HTTT - Dương Khai
8
2. Phép chia (Division)
Định nghĩa: Q = R ÷ S = {t / ∀s ∈ S , (t , s) ∈ R}
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+
Có thể diễn đạt bằng phép toán đại số như sau:
T ←π +
( R)
+
1
R −S
T ←π +
((S ×T ) − R)
+
2
1
R −S
T ← T −T
1
2
Khoa HTTT - Dương Khai
9
2. Phép chia (Division)
Ví dụ: Tìm học viên đã thi tất cả các môn
R
S
KETQUATHI
Mahv Mamh
Diem
Q
MONHOC
Mahv
Mamh
Tenmh
HV01
HV03
HV01 CSDL
7.0
CSDL
Co so du lieu
HV02 CSDL
8.5
CTRR
Cau truc roi rac
HV01 CTRR
8.5
THDC
Tin hoc dai cuong
HV03 CTRR
9.0
HV01 THDC
7.0
HV02 THDC
5.0
HV03 THDC
7.5
HV03 CSDL
6.0
KETQUA÷ MH
KETQUA ← KETQUATHI [ MaHV , MaMH ]
MH ← MONHOC[ MaMH ]
Khoa HTTT - Dương Khai
10
2. Phép chia (Division)
A
B1
B2
B3
MANV MADA
MADA
MADA
MADA
TH00
1
TH00
1
TH00
1
TH002
TH002
001
TH00
1
001
TH002
002
TH00
1
002
TH002
A/B1
A/B2
A/B3
002
DT00
1
MANV
MANV
MANV
001
001
002
003
TH00
1
002
002
DT00
1
003
Khoa HTTT - Dương Khai
11
3. Hàm tính toán và gom nhóm
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:
G1 ,G2 ,...,Gn
ℑ F1 ( A1 ), F2 ( A2 ),..., Fn ( An ) ( E )
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
Khoa HTTT - Dương Khai
12
3. Hàm tính toán và gom nhóm
Điểm thi cao nhất, thấp nhất, trung bình của
môn CSDL ?
ℑ max( Diem ),min( Diem ),agv ( Diem )σ Mamh = 'CSDL' ( KETQUATHI )
Điểm thi cao nhất, thấp nhất, trung bình của
từng môn ?
Mamh
ℑ max( Diem ),min( Diem ),avg ( Diem ) ( KETQUATHI )
Khoa HTTT - Dương Khai
13