Professional Documents
Culture Documents
Đại số quan hệ
Nội dung chi tiết
Đại số quan hệ
Phép chọn và phép chiếu
Các phép toán lý thuyết tập hợp
Phép kết
Các phép toán quan hệ bổ sung
Phép kết ngoài
Các thao tác cập nhật trên quan hệ
2
Đại số quan hệ
ĐSQH = {phép toán thao tác trên quan hệ}
- Các phép toán chia làm 2 nhóm:
Các phép toán tập hợp (hội, giao, trừ, tích đề các, chia, …)
Các phép toán quan hệ (chiếu, chọn, kết, …)
3
Phép chọn
Được dùng để lấy ra các bộ (dòng) của quan hệ R
(bảng dữ liệu).
Các bộ được chọn phải thỏa mãn điều kiện chọn P
Ký hiệu:
P (R)
4
Phép chọn
Kết quả trả về là một quan hệ
- Có cùng danh sách thuộc tính với R
- Có số bộ luôn ít hơn hoặc bằng số bộ của R
Phép chọn có tính giao hoán
Ví dụ
R A B C D S A B C D
1 7 1 7
5 7 (A=B)(D>5) (R) 23 10
12 3
23 10
5
Ví dụ 1
Cho biết các sinh viên thuộc khoa Tin Học
- Quan hệ: SINHVIEN
- Thuộc tính: MAKH
- Điều kiện: MAKH=‘TH’
(MAKH=‘TH’) (SINHVIEN)
MASV HOSV TENSV PHAI NGAYSINH NOISINH MAKH HOCBONG
6
Ví dụ 2
Tìm các sinh viên thuộc khoa Tin Học có học bổng
trên 120,000 đồng.
- Quan hệ: SINHVIEN
- Thuộc tính: MAKH, HOCBONG.
- Điều kiện: MAKH=‘TH’ và HOCBONG > 120000
(MAKH=‘TH’)(HOCBONG>120000) (SINHVIEN)
7
Ví dụ 3
Tìm các sinh viên thuộc khoa Tin Học hoặc khoa
Anh Văn.
- Quan hệ: SINHVIEN
- Thuộc tính: MAKH.
- Điều kiện: MAKH=‘TH’ hoặc MAKH=‘AV’
(MAKH=‘TH’)(MAKH=‘AV’) (SINHVIEN)
8
Ví dụ 3
(MAKH=‘TH’)(MAKH=‘AV’) (SINHVIEN)
MASV HOSV TENSV PHAI NGAYSINH NOISINH MAKH HOCBONG
9
Ví dụ 4
Tìm các sinh viên thuộc khoa Tin Học có học bổng
từ 50,000 đến 150,000 đồng.
- Quan hệ: SINHVIEN
- Thuộc tính: MAKH, HOCBONG.
- Điều kiện: MAKH=‘TH’ và 50000 HOCBONG 150000
10
Ví dụ 4
11
Phép chiếu
Được dùng để trích chọn ra một vài thuộc tính (cột)
của quan hệ R (bảng dữ liệu).
Ký hiệu:
A1, A2, …, Ak(R)
12
Ví dụ 5
13
Ví dụ 5
14
Ví dụ 6
Cho biết họ tên, ngày sinh, học bổng của các sinh
viên
- Quan hệ: SINHVIEN
- Thuộc tính: HOSV, TENSV, NGAYSINH, HOCBONG
15
Ví dụ 6
16
Phép chiếu mở rộng
Ví dụ:
- Cho biết họ tên của các SV và học bổng của họ sau khi
tăng 5000.
17
Chuỗi các phép toán
A1, A2, …, Ak
( P (R)) (
P A1, A2, …, Ak (R))
18
Phép gán
Được sử dụng để nhận lấy kết quả trả về của một
phép toán
- Thường là kết quả trung gian trong chuỗi các phép toán
Ký hiệu
Ví dụ
- B1 S P (R)
- Thuộc tính
20
Ví dụ 7
Cho biết họ và tên sinh viên khoa Tin Học
- Quan hệ: SINHVIEN
- Thuộc tính: HOSV, TENSV
- Điều kiện: MAKH=‘TH’
KQ HO TEN
22
Các phép toán lý thuyết tập hợp
Quan hệ là tập hợp các bộ
- Phép hội R S
- Phép giao R S
- Phép trừ R S
23
Các phép toán lý thuyết tập hợp
Ví dụ
NHANVIEN THANNHAN
Như Nữ Hằng Nữ
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(PHAI) = DOM(PHAITN)
24
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à một 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ỏ)
R S = { t / tR tS }
Ví dụ
R A B S A B RS A B
1 2 1
2 3 2
1 1
3
25
Phép hội
Phép hội của NHANVIEN và THANNHAN
- Ký hiệu: NHANVIEN THANNHAN
26
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à một quan hệ gồm các bộ thuộc R đồng thời thuộc S
R S = { t / tR tS }
Ví dụ
R A B S A B RS A B
1 2 2
2 3
1
27
Phép giao
Phép giao của NHANVIEN và THANNHAN
- Ký hiệu: NHANVIEN THANNHAN
28
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à một quan hệ gồm các bộ thuộc R và không thuộc S
R S = { t / tR tS }
Ví dụ
R A B S A B RS A B
1 2 1
2 3 1
1
29
Phép trừ
Phép trừ của NHANVIEN và THANNHAN
- Ký hiệu: NHANVIEN THANNHAN
30
Phép trừ
Phép trừ của THANNHAN và NHANVIEN
- Ký hiệu: THANNHAN NHANVIEN
31
Các tính chất
Giao hoán
RS=SR
RS=SR
Kết hợp
R (S T) = (R S) T
R (S T) = (R S) T
32
Phép tích Cartesian
Được dùng để kết hợp các bộ (dòng) của các quan
hệ (bảng dữ liệu) lại với nhau.
Ký hiệu
RS
33
Phép tích Cartesian
Ví dụ
Tên quan hệ.Tên thuộc tính
(Tên bảng.Tên cột)
R A B
34
Phép tích Cartesian
Thông thường theo sau phép tích Cartesian là phép
chọn
RS A=S.B (R S)
1 10 + 1 10 +
1 10 + 2 10 +
1 20 - 2 20 -
1 10 -
2 10 +
2 10 +
2 20 -
2 10 -
35
Phép tích Cartesian
Ví dụ: Cho biết học bổng cao nhất trường
- Quan hệ: SINHVIEN
- Thuộc tính: HOCBONG
36
Phép tích Cartesian
B2: Lấy tập hợp học bổng trừ đi học bổng trong R3
KQ HOCBONG (SINHVIEN) R3
37
Phép kết
Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan
hệ thành 1 bộ.
Ký hiệu R S
- R(A1, A2, …, An) và S(B1, B2, …, Bm)
Kết quả của phép kết là một quan hệ Q
- Có n + m thuộc tính Q(A1, A2, …, An, B1, B2, …, Bm)
- Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn
một số điều kiện kết nào đó
Có dạng Ai Bj
Ai là thuộc tính của R, Bj là thuộc tính của S
Ai và Bj có cùng miền giá trị
là phép so sánh , , , , ,
38
Phép kết
Phân loại
- Kết theta (theta join) là phép kết có điều kiện
Ký hiệu R C S
C gọi là điều kiện kết trên thuộc tính
39
Phép kết
R B<D S
R A B C S D E KQ A B C D E
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 1 2 3 6 2
7 8 9 4 5 6 6 2
40
Phép kết
Ví dụ phép kết bằng
R C=D S
R A B C S D E KQ A B C D E
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
R C=S.C S
R A B C S C D KQ A B C C D
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
41
Phép kết
Ví dụ phép kết tự nhiên
R S
R A B C S C D A B C S.C D
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
A B C D
1 2 3 1
4 5 6 2
42
Ví dụ 8
Cho biết tên khoa của từng sinh viên.
- Quan hệ: SINHVIEN, KHOA
- Thuộc tính: MASV, HOSV, TENSV, PHAI, NGAYSINH,
NOI SINH, MAKH, HOCBONG, TENKHOA
KQ SINHVIEN KHOA
SINHVIEN.MAKH=KHOA.MAKH
43
Ví dụ 8
Kết quả KQ SINHVIEN KHOA
B01 Trần Thanh Mai 0 20/12/1981 Bến Tre TH 200,000 Tin Học
B02 Trần Thị Thu Thủy 0 13/02/1982 TP.HCM TH 30,000 Tin Học
44
Phép chia
Được dùng để lấy ra một số bộ trong quan hệ R sao
cho thỏa với tất cả các bộ trong quan hệ S
Ký hiệu R S
- R(Z) và S(X)
Z là tập thuộc tính của R, X là tập thuộc tính của S
XZ
Kết quả của phép chia là một quan hệ T(Y)
- Với Y=Z-X
- Có t là một bộ của T nếu với mọi bộ tSS, tồn tại bộ
tRR thỏa 2 điều kiện
tR(Y) = t R(Z) S(X) T(Y)
tR(X) = tS(X) X Y
45
Phép chia (tt)
Ví dụ
RS
R A B C D E S D E R S A B C
a
a a 1 a 1
a
a a 1 b 1
a b 1
a a 1
a b 3
a a 1
a b 1
a b 1
46
Ví dụ 9
Cho biết mã sinh viên đã thi tất cả các môn
- Quan hệ: KETQUA, MONHOC
- Thuộc tính: MASV
Q1
MASV, MAMH (KETQUA)
Q2 MAMH (MONHOC)
KQ Q1 Q2
47
Phép chia (tt)
Biểu diễn phép chia thông qua tập đầy đủ các phép
toán ĐSQH
Q3 Y(Q2 R) Q2 Q1 S
48
Các phép toán quan hệ bổ sung
Các hàm thống kê:
- AVG: tính giá trị trung bình cộng.
- MAX: tính giá trị lớn nhất.
- MIN: tính giá trị nhỏ nhất.
- SUM: tính tổng cộng.
- COUNT: đếm dòng dữ liệu.
49
Các phép toán quan hệ bổ sung
Ví dụ
SUM(B) = 10
R A B
1 2 AVG(A) = 1.5
3 4
MIN(A) = 1
1 2
1 2 MAX(B) = 4
COUNT(A) = 4
50
Các phép toán quan hệ bổ sung
Đượ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
G1, G2, …, Gn IF1(A1), F2(A2), …, Fn(An)(E)
- E là biểu thức ĐSQH
- G1, G2, …, Gn là các thuộc tính gom nhóm
- F1, F2, …, Fn là các hàm
- A1, A2, …, An là các thuộc tính tính toán trong hàm F
51
Các phép toán quan hệ bổ sung
Ví dụ
KQ ISUM(C)(R)
KQ SUM
R A B C (c)
27
2 7
4 7
2 3 KQ AISUM(C)(R)
2 10
KQ A SUM
(c)
14
3
10
52
Ví dụ 10
Cho biết số lượng sinh viên hiện có trong CSDL:
KQ(Tong_so_SV) ICOUNT(MASV)(SINHVIEN)
Tong_so_SV
8
53
Phép kết ngoài
Mở rộng phép kết để tránh mất mát thông tin
- Thực hiện phép kết
- Lấy thêm các bộ không thỏa điều kiện kết
Có 3 hình thức
- Mở rộng bên trái
- Mở rộng bên phải
- Mở rộng 2 bên
54
Ví dụ 11
Cho biết họ tên sinh viên và kết quả thi của họ nếu có:
R1 SINHVIEN KETQUA
55
Ví dụ 11
R1 SINHVIEN KETQUA
KQ HOSV, TENSV, MAMH, DIEM (R1)
56
Các thao tác cập nhật
Nội dung của CSDL có thể được cập nhật bằng các
thao tác
- Thêm (insertion)
- Xóa (deletion)
- Sửa (updating)
Các thao tác cập nhật được diễn đạt thông qua
phép toán gán:
57
Thao tác thêm
Được diễn đạt
Rnew Rold E
- R là quan hệ
- E là một biểu thức ĐSQH
Ví dụ
- Thêm kết quả thi của SV mã số A01 thi môn 04 đạt 7
điểm
58
Thao tác xóa
Được diễn đạt
Rnew Rold E
- R là quan hệ
- E là một biểu thức ĐSQH
Ví dụ
- Xóa các kết quả thi của sinh viên có mã số A01
59
Thao tác sửa
Được diễn đạt
Ví dụ
- Tăng học bổng cho tất cả sinh viên lên 1.5 lần
60
Ví dụ 12
Các sinh viên có nơi sinh là Tp.HCM sẽ được tăng
học bổng lên 1.2 lần, ngược lại tăng lên 1.5 lần
SINHVIEN (MASV, HOSV, TENSV, PHAI, NGAYSINH, NOISINH, MAKH, HOCBONG*1.2 (NOISINH = ‘TP.HCM’(SINHVIEN)))
(MASV, HOSV, TENSV, PHAI, NGAYSINH, NOISINH, MAKH, HOCBONG*1.5 (NOISINH ≠ ‘TP.HCM’(SINHVIEN)))
61