Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Nguyễn Minh Thu

Nội dung chi tiết

 Giới thiệu

 Đại số quan hệ

 Phép toán tập hợp

 Phép chọn

 Phép chiếu

 Phép tích Cartesian

 Phép kết

 Phép chia

 Các phép toán khác

 Các thao tác cập nhật trên quan hệ

pdf 81 trang yennguyen 2320
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Nguyễn Minh Thu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Nguyễn Minh Thu

Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Nguyễn Minh Thu
Chương 4 
Đại số quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 3 
Giới thiệu 
 Xét một số xử lý trên quan hệ NHANVIEN 
- Thêm mới một nhân viên 
- Chuyển nhân viên có tên là “Tùng” sang phòng số 1 
- Cho biết họ tên và ngày sinh các nhân viên có lương 
trên 20000 
 5 
4 
TENNV HONV NGSINH DCHI PHAI LUONG PHONG 
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 
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 
1
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 4 
Giới thiệu (tt) 
 Có 2 loại xử lý 
- Làm thay đổi dữ liệu (cập nhật) 
 Thêm mới, xóa và sửa 
- Không làm thay đổi dữ liệu (rút trích) 
 Truy vấn (query) 
 Thực hiện các xử lý 
- Đại số quan hệ (Relational Algebra) 
 Biểu diễn câu truy vấn dưới dạng biểu thức 
- Phép tính quan hệ (Relational Calculus) 
 Biểu diễn kết quả 
- SQL (Structured Query Language) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 5 
Nhắc lại 
 Đại số 
- Toán tử (operator) 
- Toán hạng (operand) 
 Trong số học 
- Toán tử: +, -, *, / 
- Toán hạng - biến (variables): x, y, z 
- Hằng (constant) 
- Biểu thức 
 (x+7) / (y-3) 
 (x+y)*z and/or (x+7) / (y-3) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 6 
Đại số quan hệ 
 Biến là các quan hệ 
- Tập hợp (set) 
 Toán tử là các phép toán (operations) 
- Trên tập hợp 
 Hội  (union) 
 Giao  (intersec) 
 Trừ (difference) 
- Rút trích 1 phần của quan hệ 
 Chọn  (selection) 
 Chiếu (projection) 
- Kết hợp các quan hệ 
 Tích Cartesian (Cartesian product) 
 Kết (join) 
- Đổi tên 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 7 
Đại số quan hệ (tt) 
 Hằng số là thể hiện của quan hệ 
 Biểu thức 
- Được gọi là câu truy vấn 
- Là chuỗi các phép toán đại số quan hệ 
- Kết quả trả về là một thể hiện của quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 8 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 9 
Phép toán 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 
 Tính khả hợp (Union Compatibility) 
- 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 , , và là một quan hệ có cùng tên 
thuộc tính với quan hệ đầu tiên (R) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 10 
Phép toán tập hợp (tt) 
 Ví dụ 
TENNV NGSINH PHAI 
Tung 12/08/1955 Nam 
Hang 07/19/1968 Nu 
Nhu 06/20/1951 Nu 
Hung 09/15/1962 Nam 
NHANVIEN TENTN NG_SINH PHAITN 
Trinh 04/05/1986 Nu 
Khang 10/25/1983 Nam 
Phuong 05/03/1958 Nu 
Minh 02/28/1942 Nam 
THANNHAN 
Chau 12/30/1988 Nu 
Bậc n=3 
DOM(TENNV) = DOM(TENTN) 
DOM(NGSINH) = DOM(NG_SINH) 
DOM(PHAI) = DOM(PHAITN) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 11 
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ỏ) 
 Ví dụ 
R  S = { t / t R  t S } 
A B 
R 
 
1 
2 
1 
A B 
S 
 
2 
3 
A B 
R  S 
 
1 
2 
1 
 3 
 2 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 12 
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 
 Ví dụ 
R  S = { t / t R  t S } 
A B 
R 
 
1 
2 
1 
A B 
S 
 
2 
3 
A B 
R  S 
2 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 13 
Phép trừ 
 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 và không thuộc S 
 Ví dụ 
R S = { t / t R  t S } 
A B 
R 
 
1 
2 
1 
A B 
S 
 
2 
3 
A B 
R S 
 
1 
1 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 14 
Các tính chất 
 Giao hoán 
 Kết hợp 
R  S = S  R 
R  S = S  R 
R  (S  T) = (R  S)  T 
R  (S  T) = (R  S)  T 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 15 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 16 
Phép chọn 
 Được dùng để lấy ra các bộ của quan hệ R 
 Các bộ được chọn phải thỏa mãn điều kiện chọn P 
 Ký hiệu 
 P là biểu thức gồm các mệnh đề có dạng 
- 
- 
 gồm , , , , , 
 Các mệnh đề được nối lại nhờ các phép  ,  ,  
 P (R) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 17 
Phép chọn (tt) 
 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 
 Ví dụ 
 (A=B)(D>5) (R) A B 
R 
 
C 
1 
5 
12 
 23 
D 
7 
7 
3 
10 
 
 
 
A B 
C 
1 
 23 
D 
7 
10 
 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 18 
Phép chọn (tt) 
 Phép chọn có tính giao hoán 
 p1 ( p2 (R)) =  p2 ( p1 (R)) =  p1  p2 (R) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 19 
Ví dụ 1 
 Cho biết các nhân viên ở phòng số 4 
- Quan hệ: NHANVIEN 
- Thuộc tính: PHG 
- Điều kiện: PHG=4 
 PHG=4 (NHANVIEN) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 20 
Ví dụ 2 
 Tìm các nhân viên có lương trên 25000 ở phòng 4 
hoặc các nhân viên có lương trên 30000 ở phòng 5 
- Quan hệ: NHANVIEN 
- Thuộc tính: LUONG, PHG 
- Điều kiện: 
 LUONG>25000 và PHG=4 hoặc 
 LUONG>30000 và PHG=5 
 (LUONG>25000  PHG=4)  (LUONG>30000  PHG=5) (NHANVIEN) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 21 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 22 
Phép chiếu 
 Được dùng để lấy ra một vài cột của quan hệ R 
 Ký hiệu 
 Kết quả trả về là một quan hệ 
- Có k thuộc tính 
- Có số bộ luôn ít hơn hoặc bằng số bộ của R 
 Ví dụ 
 A1, A2, , Ak(R) 
A C 
 1 
A B 
R 
 
10 
20 
30 
C 
1 
1 
1 
 40 2 
 A,C (R) 
 1 
 2 
 1 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 23 
Phép chiếu (tt) 
 Phép chiếu không có tính giao hoán 
 A1, A2, , An( A1, A2, , Am(R)) = A1, A2, , An (R) , với n m 
 X,Y (R) = X ( Y (R)) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 24 
Ví dụ 3 
 Cho biết họ tên và lương của các nhân viên 
- Quan hệ: NHANVIEN 
- Thuộc tính: HONV, TENNV, LUONG 
 HONV,TENNV,LUONG (NHANVIEN) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 25 
Ví dụ 4 
 Cho biết mã nhân viên có tham gia đề án hoặc có 
thân nhân 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 26 
Ví dụ 5 
 Cho biết mã nhân viên có người thân và có tham gia 
đề án 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 27 
Ví dụ 6 
 Cho biết mã nhân viên không có thân nhân nào 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 28 
Phép chiếu tổng quát 
 Mở rộng phép chiếu bằng cách cho phép sử dụng 
các phép toán số học trong danh sách thuộc tính 
 Ký hiệu F1, F2, , Fn (E) 
- E là biểu thức ĐSQH 
- F1, F2, , Fn là các biểu thức số học liên quan đến 
 Hằng số 
 Thuộc tính trong E 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 29 
Phép chiếu tổng quát (tt) 
 Ví dụ 
- Cho biết họ tên của các nhân viên và lương của họ sau 
khi tăng 10% 
 HONV, TENNV, LUONG*1.1 (NHANVIEN) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 30 
Chuỗi các phép toán 
 Kết hợp các phép toán đại số quan hệ 
- Lồng các biểu thức lại với nhau 
- Thực hiện từng phép toán một 
 B1 
 B2 
 A1, A2, , Ak (P (R)) P ( A1, A2, , Ak (R)) 
P (R) 
 A1, A2, , Ak (Quan hệ kết quả ở B1) 
Cần đặt tên cho quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 31 
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 
- B2 
S  P (R) 
KQ  A1, A2, , Ak (S) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 32 
Phép đổi tên 
 Được dùng để đổi tên 
- Quan hệ 
- Thuộc tính 
 S(R) : Đổi tên quan hệ R thành S 
Xét quan hệ R(B, C, D) 
 X, C, D (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 
 S(X,C,D)(R) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 33 
Ví dụ 7 
 Cho biết họ và tên nhân viên làm việc ở phòng số 4 
- Quan hệ: NHANVIEN 
- Thuộc tính: HONV, TENNV 
- Điều kiện: PHG=4 
 C1: 
 C2: 
 HONV, TENNV (PHG=4 (NHANVIEN)) 
NV_P4  PHG=4 (NHANVIEN) 
KQ  HONV, TENNV (NV_P4) 
KQ(HO, TEN)  HONV, TENNV (NV_P4) 
 KQ(HO, TEN) ( HONV, TENNV (NV_P4)) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 34 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 35 
Phép tích Cartesian 
 Được dùng để kết hợp các bộ của các quan hệ lại 
với nhau 
 Ký hiệu 
 Kết quả trả về là một quan hệ Q 
- Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S 
- Nếu R có u bộ và S có v bộ thì Q sẽ có u v bộ 
- Nếu R có n thuộc tính và Q có m thuộc tính thì Q sẽ có 
n + m thuộc tính (R+  Q+  ) 
R S 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 36 
Phép tích Cartesian (tt) 
 Ví dụ 
A B 
R 
 
1 
2 
B C 
S 
 
10 
10 
D 
+ 
+ 
 20 - 
 10 - 
X
 (X,C,D) (S) 
R S 
A B 
 
1 
2 
 2 
 1 
 1 
 1 
 2 
 2 
X C 
10 
10 
 10 
 10 
 20 
 10 
 20 
 10 
D 
+ 
+ 
+ 
+ 
- 
- 
- 
- 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 37 
Phép tích Cartesian (tt) 
 Ví dụ 
A B 
R 
 
1 
2 
B C 
S 
 
10 
10 
D 
+ 
+ 
 20 - 
 10 - 
unambiguous 
A R.B 
 
1 
2 
 2 
 1 
 1 
 1 
 2 
 2 
S.B C 
10 
10 
 10 
 10 
 20 
 10 
 20 
 10 
D 
+ 
+ 
+ 
+ 
- 
- 
- 
- 
R S 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 38 
Phép tích Cartesian (tt) 
 Thông thường theo sau phép tích Cartesian là phép 
chọn 
R S 
A R.B 
 
1 
2 
 2 
 1 
 1 
 1 
 2 
 2 
S.B C 
10 
10 
 10 
 10 
 20 
 10 
 20 
 10 
D 
+ 
+ 
+ 
+ 
- 
- 
- 
- 
A=S.B (R S) 
A R.B 
 1 
 2 
 2 
S.B C 
 10 
 10 
 20 
D 
+ 
+ 
- 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 39 
Ví dụ 8 
 Với mỗi phòng ban, cho biết thông tin của người 
trưởng phòng 
- Quan hệ: PHONGBAN, NHANVIEN 
- Thuộc tính: TRPHG, MAPHG, TENNV, HONV,  
TENPHG MAPHG TRPHG NG_NHANCHUC 
Nghien cuu 5 333445555 05/22/1988 
Dieu hanh 4 987987987 01/01/1995 
Quan ly 1 888665555 06/19/1981 
TENNV HONV NGSINH DCHI PHAI LUONG PHG 
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 
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 
333445555 
987987987 
987654321 
999887777 
MANV 
TENPHG MAPHG TRPHG NG_NHANCHUC 
Nghien cuu 5 333445555 05/22/1988 
Dieu hanh 4 987987987 01/01/1995 
Quan ly 1 888665555 06/19/1981 
TENNV HONV 
Tung Nguyen 
Hung Nguyen 
333445555 
987987987 
888665555 
MANV 
Vinh Pham 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 40 
Ví dụ 8 (tt) 
 B1: Tích Cartesian PHONGBAN và NHANVIEN 
 B2: Chọn ra những bộ thỏa TRPHG=MANV 
PB_NV  (NHANVIEN PHONGBAN) 
KQ  TRPHG=MANV(PB_NV) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 41 
Ví dụ 9 
 Cho biết lương cao nhất trong công ty 
- Quan hệ: NHANVIEN 
- Thuộc tính: LUONG 
TENNV HONV LUONG  
Tung Nguyen 40000  
Hang Bui 25000  
Nhu Le 43000  
Hung Nguyen 38000  
LUONG  
40000  
25000  
43000  
38000  
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 42 
Ví dụ 9 (tt) 
 B1: Chọn ra những lương không phải là lớn nhất 
 B2: Lấy tập hợp lương trừ đi lương trong R3 
R1  ( LUONG (NHANVIEN)) 
R2  NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN R1) 
R3  NHAN_VIEN.LUONG (R2) 
KQ  LUONG (NHANVIEN) R3 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 43 
Ví dụ 10 
 Cho biết các phòng ban có cùng địa điểm với phòng 
số 5 
- Quan hệ: DIADIEM_PHG 
- Thuộc tính: DIADIEM, MAPHG 
- Điều kiện: MAPHG=5 
Phòng 5 có tập hợp những 
địa điểm nào? 
Phòng nào có địa điểm nằm 
trong trong tập hợp đó? 
DIADIEM MAPHG 
1 
4 
5 
5 
TP HCM 
VUNGTAU 
NHATRANG 
HA NOI 
5 TP HCM 
DIADIEM MAPHG 
1 
4 
5 
5 
TP HCM 
VUNGTAU 
NHATRANG 
HA NOI 
5 TP HCM 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 44 
Ví dụ 10 (tt) 
 B1: Tìm các địa điểm của phòng 5 
 B2: Lấy ra các phòng có cùng địa điểm với DD_P5 
DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG)) 
R2  DIADIEM=DD (R1 DD_P5) 
KQ  MAPHG (R2) 
R1  MAPHG 5 (DIADIEM_PHG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 45 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
- Kết tự nhiên (Natural join) 
- Kết có điều kiện tổng quát (Theta join) 
- Kết bằng (Equi join) 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 46 
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à (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 , , , , , 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 47 
Phép kết (tt) 
 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 
- Kết bằng (equi join) khi C là điều kiện so sánh bằng 
- Kết tự nhiên (natural join) 
 Ký hiệu R S hay R S 
 R+  Q+  
 Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 48 
Phép kết (tt) 
 Ví dụ phép kết theta 
D E 
3 
S 
6 
1 
2 
A B 
1 
R 
4 
2 
5 
C 
3 
6 
7 8 9 
R B<D S 
1 2 3 3 1 
1 2 3 6 2 
4 5 6 6 2 
A B C D E 
R C S = C(R S) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 49 
Phép kết (tt) 
 Ví dụ phép kết bằng 
D E 
3 
S 
6 
1 
2 
A B 
1 
R 
4 
2 
5 
C 
3 
6 
7 8 9 
R C=D S 
A B 
1 2 
C 
3 
4 5 6 
D 
3 
E 
1 
6 2 
C D 
3 
S 
6 
1 
2 
A B 
1 
R 
4 
2 
5 
C 
3 
6 
7 8 9 
R C=S.C S 
A B 
1 2 
C 
3 
4 5 6 
S.C 
3 
D 
1 
6 2 
S.C 
 (S.C,D) S 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 50 
Phép kết (tt) 
 Ví dụ phép kết tự nhiên 
R S 
C D 
3 
S 
6 
1 
2 
A B 
1 
R 
4 
2 
5 
C 
3 
6 
7 8 9 
A B 
1 2 
C 
3 
4 5 6 
S.C 
3 
D 
1 
6 2 
A B 
1 2 
C 
3 
4 5 6 
D 
1 
2 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 51 
Ví dụ 11 
 Cho biết nhân viên có lương hơn lương của nhân 
viên ‘Tùng’ 
- Quan hệ: NHANVIEN 
- Thuộc tính: LUONG 
NHAN_VIEN(HONV, TENNV, MANV, , LUONG, PHG) 
R1(LG)  LUONG (TENNV=‘Tung’ (NHANVIEN)) 
KQ  NHAN_VIEN LUONG>LG R1 
KQ(HONV, TENNV, MANV, , LUONG, LG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 52 
Ví dụ 12 
 Với mỗi nhân viên, hãy cho biết thông tin của phòng 
ban mà họ đang làm việc 
- Quan hệ: NHANVIEN, PHONGBAN 
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC) 
NHANVIEN(HONV, TENNV, MANV, , PHG) 
KQ  NHANVIEN PHG=MAPHG PHONGBAN 
KQ(HONV, TENNV, MANV, , PHG, TENPHG, MAPHG, ) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 53 
Ví dụ 13 
 Với mỗi phòng ban hãy cho biết các địa điểm của 
phòng ban đó 
- Quan hệ: PHONGBAN, DDIEM_PHG 
PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC) 
DDIEM_PHG(MAPHG, DIADIEM) 
KQ  PHONGBAN DDIEMPHG 
KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC, DIADIEM) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 54 
Ví dụ 8 
 Với mỗi phòng ban hãy cho biết thông tin của người 
trưởng phòng 
- Quan hệ: PHONGBAN, NHANVIEN 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 55 
Ví dụ 9 
 Cho biết lương cao nhất trong công ty 
- Quan hệ: NHANVIEN 
- Thuộc tính: LUONG 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 56 
Ví dụ 10 
 Cho biết phòng ban có cùng địa điểm với phòng 5 
- Quan hệ: DDIEM_PHG 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 57 
Tập đầy đủ các phép toán ĐSQH 
 Tập các phép toán , , , ,  được gọi là tập đầy 
đủ các phép toán ĐSQH 
- Nghĩa là các phép toán có thể được biểu diễn qua chúng 
- Ví dụ 
 RS = RS ((R S)  (S R)) 
 R CS = C(R S) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 58 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 59 
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 
 X  Z 
 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ộ tS S, tồn tại bộ 
tR R thỏa 2 điều kiện 
 tR(Y) = t 
 tR(X) = tS(X) X Y 
T(Y) S(X) R(Z) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 60 
Phép chia (tt) 
 Ví dụ 
A B 
 
a 
a 
 a 
 a 
 a 
 a 
 a 
 a 
C D 
 
a 
b 
 a 
 a 
 b 
 a 
 b 
 b 
E 
1 
3 
1 
1 
1 
1 
1 
1 
R D E 
a 
S 
b 
1 
1 
R  S 
A B C 
 a  
 a  
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 61 
Ví dụ 14 
 Cho biết mã nhân viên tham gia tất cả các đề án 
- Quan hệ: PHANCONG, DEAN 
- Thuộc tính: MANV 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 62 
Ví dụ 15 
 Cho biết mã nhân viên tham gia tất cả các đề án do 
phòng số 4 phụ trách 
- Quan hệ: PHANCONG, DEAN 
- Thuộc tính: MANV 
- Điều kiện: PHG=4 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 63 
Phép chia (tt) 
 Biểu diễn phép chia thông qua tập đầy đủ các phép 
toán ĐSQH 
Q1  Y (R) 
Q2  Q1 S 
Q3  Y(Q2 R) 
T  Q1 Q3 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 64 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
- Hàm kết hợp (Aggregation function) 
- Phép gom nhóm (Grouping) 
- Phép kết ngoài (Outer join) 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 65 
Hàm kết hợp 
 Nhận vào tập hợp các giá trị và trả về một giá trị 
đơn 
- AVG 
- MIN 
- MAX 
- SUM 
- COUNT 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 66 
Hàm kết hợp (tt) 
 Ví dụ 
A B 
1 
R 
3 
2 
4 
1 
1 
2 
2 
SUM(B) = 10 
AVG(A) = 1.5 
MIN(A) = 1 
MAX(B) = 4 
COUNT(A) = 4 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 67 
Phép gom nhóm 
 Đượ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 Đ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 
G1, G2, , GnIF1(A1), F2(A2), , Fn(An)(E) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 68 
Phép gom nhóm (tt) 
 Ví dụ 
ISUM(C)(R) 
SUM_C 
27 
A B 
R 
2 
4 
 
 
2 
2 
C 
7 
7 
3 
10 AISUM(C)(R) 
SUM_C 
14 
3 
10 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 69 
Ví dụ 16 
 Tính số lượng nhân viên và lương trung bình của cả 
công ty 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 70 
Ví dụ 17 
 Tính số lượng nhân viên và lương trung bình của từng 
phòng ban 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 71 
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 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 72 
Ví dụ 18 
 Cho biết họ tên nhân viên và tên phòng ban mà họ 
phụ trách nếu có 
- Quan hệ: NHANVIEN, PHONGBAN 
- Thuộc tinh: TENNV, TENPH 
R1  NHANVIEN MANV=TRPHG PHONGBAN 
KQ  HONV,TENNV, TENPHG (R1) 
TENNV HONV TENPHG 
Tung Nguyen Nghien cuu 
Hang Bui null 
Nhu Le null 
Vinh Pham Quan ly 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 73 
Nội dung chi tiết 
 Giới thiệu 
 Đại số quan hệ 
 Phép toán tập hợp 
 Phép chọn 
 Phép chiếu 
 Phép tích Cartesian 
 Phép kết 
 Phép chia 
 Các phép toán khác 
 Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 74 
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 
Rnew  các phép toán trên Rold 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 75 
Thao tác thêm 
 Được diễn đạt 
- R là quan hệ 
- E là một biểu thức ĐSQH 
 Ví dụ 
- Phân công nhân viên có mã 123456789 làm thêm đề án 
mã số 20 với số giờ là 10 
Rnew  Rold  E 
PHANCONG  PHANCONG  (‘123456789’, 20, 10) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 76 
Thao tác xóa 
 Được diễn đạt 
- R là quan hệ 
- E là một biểu thức ĐSQH 
 Ví dụ 
- Xóa các phân công đề án của nhân viên 123456789 
Rnew  Rold E 
PHANCONG  PHANCONG MANV=‘123456789’(PHANCONG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 77 
Ví dụ 19 
 Xóa những phân công đề án có địa điểm ở ‘Ha Noi’ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 78 
Thao tác sửa 
 Được diễn đạt 
- R là quan hệ 
- Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính 
 Ví dụ 
- Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần 
Rnew  F1, F2, , Fn (Rold) 
PHANCONG  MA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 79 
Ví dụ 20 
 Các nhân viên làm việc trên 30 giờ sẽ được tăng 
thời gian làm việc lên 1.5 lần, còn lại tăng lên 2 lần 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 80 
Bài tập về nhà 
 Bài tập 
- 5.2.1 / 207-210 
- 5.2.4 / 210-212 
 Đọc 
- Phép toán quan hệ trên BAG / 214-220 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 81 

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_4_dai_so_quan_he_nguyen_minh.pdf