Cơ sở dữ liệu - Chương 04: Đại số quan hệ

ppt 80 trang vanle 2290
Bạn đang xem 20 trang mẫu của tài liệu "Cơ sở dữ liệu - Chương 04: Đại số quan hệ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptco_so_du_lieu_chuong_04_dai_so_quan_he.ppt

Nội dung text: Cơ sở dữ liệu - Chương 04: Đại số quan hệ

  1. Chương 4 Đại số quan hệ
  2. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 2
  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 thấp hơn 50000 TENNV HONV NS DCHI GT LUONG PHONG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 51 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 3
  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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 4
  5. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 5
  6. 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 6
  7. Thao tác thêm ¡ Được diễn đạt Rnew  Rold  E - R là quan hệ - E là một bộ mới cần thêm vào ¡ Vi phạm toàn vẹn - Ràng buộc miền - Ràng buộc khóa - Ràng buộc tham chiếu ¡ Ví dụ - Phân công nhân viên có mã 123 làm thêm đề án mã số 20 với số giờ là 10 PHANCONG  PHANCONG  (‘123’, 20, 10) Nhập môn Cơ sở dữ liệu - Khoa CNTT 7
  8. 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 ¡ Ràng buộc toàn vẹn - Ràng buộc tham chiếu: được tham chiếu - Xử lý: Ÿ Loại bỏ phép xóa, lan truyền, sửa đổi giá trị ¡ Ví dụ - Xóa các phân công đề án của nhân viên 123456789 Nhập môn Cơ sở dữ liệu - Khoa CNTT 8
  9. Thao tác sửa ¡ Được diễn đạt Rnew  F1, F2, , Fn (Rold) - 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 ¡ Ràng buộc toàn vẹn - Ràng buộc miền - Với khóa chính = xóa, chèn - Khóa ngoài: đảm bảo tham chiếu đúng giá trị ¡ 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 - Chuyển nhân viên “Tùng” từ phòng Nghiên cứu sang phòng Kỹ thuật Nhập môn Cơ sở dữ liệu - Khoa CNTT 9
  10. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 10
  11. 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 11
  12. Đạ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) - Dựa trên lý thuyết 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 Đề-các (Cartesian product) Ÿ Nối (join) - Đổi tên Nhập môn Cơ sở dữ liệu - Khoa CNTT 12
  13. Đạ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ệ Nhập môn Cơ sở dữ liệu - Khoa CNTT 13
  14. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 14
  15. Phép toán tập hợp ¡ Quan hệ là tập hợp các bộ - Phép hợp R  S - Phép giao R  S - Phép trừ R S ¡ Tính khả hợp (Tương thích đồng nhất - 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 15
  16. Phép toán tập hợp (tt) ¡ Ví dụ NHANVIEN TENNV NS GT THANNHAN TENTN NS_TN GT_TN Tung 12/08/1955 Nam Trinh 04/05/1986 Nu Hang 07/19/1968 Nu Khang 10/25/1983 Nam Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu Hung 09/15/1962 Nam Minh 02/28/1942 Nam Chau 12/30/1988 Nu Bậc n=3 DOM(TENNV) = DOM(TENTN) DOM(NS) = DOM(NS_TN) DOM(GT) = DOM(GT_TN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 16
  17. Phép hợp ¡ Cho 2 quan hệ R và S khả hợp ¡ Phép hợp 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 / t R  t S } ¡ Ví dụ R A B S A B 1 2 2  3  1 Nhập môn Cơ sở dữ liệu - Khoa CNTT 17
  18. 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 / t R  t S } ¡ Ví dụ R A B S A B 1 2 2  3  3 Nhập môn Cơ sở dữ liệu - Khoa CNTT 18
  19. 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 R S = { t / t R  t S } ¡ Ví dụ R A B S A B 1 2 2  3  1 Nhập môn Cơ sở dữ liệu - Khoa CNTT 19
  20. 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 20
  21. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 21
  22. 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 (R) ¡ 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  ,  ,  Nhập môn Cơ sở dữ liệu - Khoa CNTT 22
  23. 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ụ (R) R A B C D  (A=B)(D>5) 1 7  5 7   12 3   23 10 Nhập môn Cơ sở dữ liệu - Khoa CNTT 23
  24. Phép chọn (tt) ¡ Phép chọn có tính giao hoán  p1 ( p2 (R)) = ¡ Kết hợp nhiều phép chọn thành 1 phép chọn  p1 ( p2 (R)) = Nhập môn Cơ sở dữ liệu - Khoa CNTT 24
  25. 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 25
  26. Ví dụ 2 ¡ Tìm các nhân viên có lương trên 2.5tr ở phòng 4 hoặc các nhân viên có lương trên 3tr ở phòng 5 - Quan hệ: NHANVIEN - Thuộc tính: LUONG, PHG - Điều kiện: Ÿ LUONG>2500000 và PHG=4 hoặc Ÿ LUONG>3000000 và PHG=5  (PHG=4 AND LUONG>2.5tr)OR (PHG=5 AND LUONG>3tr) (NHANVIEN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 26
  27. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 27
  28. Phép chiếu ¡ Được dùng để lấy ra một vài cột của quan hệ R ¡ Ký hiệu A1, A2, , Ak(R) ¡ 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ụ R A B C 10 1 20 1 A,C (R)  30 1  40 2 Nhập môn Cơ sở dữ liệu - Khoa CNTT 28
  29. Phép chiếu (tt) ¡ Phép chiếu không có tính giao hoán X,Y (R) = X ( Y (R)) A1, A2, , An( A1, A2, , Am(R)) = Nhập môn Cơ sở dữ liệu - Khoa CNTT 29
  30. 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 30
  31. Ví dụ 4 ¡ Cho biết mã nhân viên có tham gia đề án hoặc có thân nhân MANV(DEAN) MANV(THANNHAN) MANV(DEAN)  MANV(THANNHAN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 31
  32. Ví dụ 5 ¡ Cho biết mã nhân viên có người thân và có tham gia đề án Nhập môn Cơ sở dữ liệu - Khoa CNTT 32
  33. Ví dụ 6 ¡ Cho biết mã nhân viên không có thân nhân nào Nhập môn Cơ sở dữ liệu - Khoa CNTT 33
  34. 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 A1, A2, , Ak (P (R)) P ( A1, A2, , Ak (R)) - Thực hiện từng phép toán một Ÿ B1 P (R) Ÿ B2 A1, A2, , Ak (Quan hệ kết quả ở B1) Cần đặt tên cho quan hệ Nhập môn Cơ sở dữ liệu - Khoa CNTT 34
  35. 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) - B2 KQ  A1, A2, , Ak (S) Nhập môn Cơ sở dữ liệu - Khoa CNTT 35
  36. Phép đổi tên ¡ Được dùng để đổi tên - Quan hệ Xét quan hệ R(B, C, D) S(R): (đọc là rho) Đổi tên quan hệ R thành S - Thuộc tính 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 36
  37. 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: HONV, TENNV (PHG=4 (NHANVIEN)) ¡ C2: NV_P4  PHG=4 (NHANVIEN) KQ  HONV, TENNV (NV_P4) KQ(HO, TEN)  HONV, TENNV (NV_P4) KQ(HO, TEN) ( HONV, TENNV (NV_P4)) Nhập môn Cơ sở dữ liệu - Khoa CNTT 37
  38. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 38
  39. Phép tích Đề các ¡ Được dùng để kết hợp các bộ của các quan hệ lại với nhau ¡ Ký hiệu R S ¡ 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à S có m thuộc tính thì Q sẽ có (n + m) thuộc tính (R+  Q+  ) Nhập môn Cơ sở dữ liệu - Khoa CNTT 39
  40. Phép tích Đề các (tt) ¡ Ví dụ R S R A B 1  2 S B C D 10 +  10 +  20 -  10 - Nhập môn Cơ sở dữ liệu - Khoa CNTT 40
  41. Phép tích Đề các (tt) ¡ Ví dụ unambiguous R A B R S A R.B S.B C D 1  2 1 10 + 1  10 + 1  20 - S B C D 1  10 -  2 10 + 10 +  2  10 +  10 +  2  20 -  20 -  2  10 -  10 - Nhập môn Cơ sở dữ liệu - Khoa CNTT 41
  42. Phép tích Đề các (tt) ¡ Thông thường theo sau phép tích Đề-các là phép chọn R S A=S.B (R S) A R.B S.B C D A R.B S.B C D 1 10 + 1 10 + 1  10 +  2  10 + 1  20 -  2  20 - 1  10 -  2 10 +  2  10 +  2  20 -  2  10 - Nhập môn Cơ sở dữ liệu - Khoa CNTT 42
  43. 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 DieuTENPHG hanh MAPHG4 987987987TRPHG NG_NHANCHUC01/01/1995 MANV TENNV HONV Quan ly 1 888665555 06/19/1981 Nghien cuu 5 333445555 05/22/1988 333445555 Tung Nguyen Dieu hanh 4 987987987 01/01/1995 987987987 Hung Nguyen MANV TENNV HONV NS DCHI GT LUONG PHG Quan ly 1 888665555 06/19/1981 888665555 Vinh Pham 333445555 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 999887777 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 987654321 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 987987987 Hung TRPHG=MANVNguyen 09/15/1962 (PHONGBANBa Ria VT NHANVIEN)Nam 38000 5 Nhập môn Cơ sở dữ liệu - Khoa CNTT 43
  44. Ví dụ 8 (tt) ¡ B1: Tích Đề-các PHONGBAN và NHANVIEN PB_NV  (NHANVIEN PHONGBAN) ¡ B2: Chọn ra những bộ thỏa TRPHG=MANV KQ  TRPHG=MANV(PB_NV) Nhập môn Cơ sở dữ liệu - Khoa CNTT 44
  45. Ví dụ 9 ¡ 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 Phòng nào có địa điểm nằm địa điểm nào? trong trong tập hợp đó? MAPHG DIADIEM MAPHG DIADIEM 1 TP HCM 1 TP HCM 4 HA NOI 4 HA NOI 5 VUNGTAU 5 VUNGTAU 5 NHATRANG 5 NHATRANG 5 TP HCM 5 TP HCM Nhập môn Cơ sở dữ liệu - Khoa CNTT 45
  46. Ví dụ 9 (tt) ¡ B1: Tìm các địa điểm của phòng 5 DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG)) ¡ B2: Lấy ra các phòng có cùng địa điểm với DD_P5 R1  MAPHG 5 (DIADIEM_PHG) R2  DIADIEM=DD (R1 DD_P5) KQ  MAPHG (R2) Nhập môn Cơ sở dữ liệu - Khoa CNTT 46
  47. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối - Nối có điều kiện tổng quát (Theta join) - Nối bằng (Equi join) - Nối tự nhiên (Natural join) ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 47
  48. Phép nối ¡ Đượ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 nối 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 nối 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 , , , , , Nhập môn Cơ sở dữ liệu - Khoa CNTT 48
  49. Phép nối(tt) ¡ Phân loại - Nối theta (theta join) là phép nối có điều kiện Ÿ Ký hiệu R C S Ÿ C gọi là điều kiện nối trên thuộc tính - Nối bằng (equi join) khi C là điều kiện so sánh bằng - Nối tự nhiên (natural join) Ÿ Ký hiệu R S hay R S Ÿ R+  S+  Ÿ Kết quả của phép nối bằng bỏ bớt đi 1 cột giống nhau Nhập môn Cơ sở dữ liệu - Khoa CNTT 49
  50. Phép nối(tt) ¡ Ví dụ phép nối theta R B<D S R A B C S D E 1 2 3 3 1 4 5 6 6 2 7 8 9 Nhập môn Cơ sở dữ liệu - Khoa CNTT 50
  51. Phép nối(tt) ¡ Ví dụ phép nối bằng R C=D S R A B C S D E 1 2 3 3 1 4 5 6 6 2 7 8 9 R C=S.C S R A B C S C D 1 2 3 3 1 4 5 6 6 2 7 8 9 Nhập môn Cơ sở dữ liệu - Khoa CNTT 51
  52. Phép nối(tt) ¡ Ví dụ phép nối tự nhiên R S R A B C S C D A A B B C C S.CD D 1 2 3 3 1 1 1 2 2 3 3 3 1 1 4 5 6 6 2 4 4 5 5 6 6 6 2 2 7 8 9 Nhập môn Cơ sở dữ liệu - Khoa CNTT 52
  53. Ví dụ 10 ¡ 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 B1: R(L_TUNG)  LUONG(TENNV=‘Tung’ (NHANVIEN)) B2: KQ  NHANVIEN LUONG>L_TUNG R Nhập môn Cơ sở dữ liệu - Khoa CNTT 53
  54. Ví dụ 11 ¡ 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 54
  55. Ví dụ 12 ¡ 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 55
  56. Ví dụ 13 ¡ 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 56
  57. Ví dụ 14 ¡ Cho biết lương cao nhất trong công ty - Quan hệ: NHANVIEN - Thuộc tính: LUONG Nhập môn Cơ sở dữ liệu - Khoa CNTT 57
  58. Ví dụ 15 ¡ Cho biết phòng ban có cùng địa điểm với phòng 5 - Quan hệ: DDIEM_PHG Nhập môn Cơ sở dữ liệu - Khoa CNTT 58
  59. 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 59
  60. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ Phép chia ¡ Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 60
  61. 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 R(Z) S(X) T(Y) Ÿ tR(Y) = t X Y Ÿ tR(X) = tS(X) Nhập môn Cơ sở dữ liệu - Khoa CNTT 61
  62. Phép chia (tt) ¡ Ví dụ R  S R A B C D E S D E a a 1 a 1 a  a 1 b 1 a  b 1  a  a 1  a  b 3  a  a 1  a  b 1  a  b 1 Nhập môn Cơ sở dữ liệu - Khoa CNTT 62
  63. Ví dụ 16 ¡ 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 B1: DA  MADA(DEAN) B2: NV_DEAN  MANV, MADA(PHANCONG) B3: MA_NV  MANV(NV_DEAN÷DA) Nhập môn Cơ sở dữ liệu - Khoa CNTT 63
  64. Ví dụ 17 ¡ 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ệ: NHANVIEN, PHANCONG, DEAN - Thuộc tính: MANV - Điều kiện: PHONG=4 B1: P4_DA  MADA(PHG=4 (DEAN)) B2: NV_DA  MANV, MADA(PHANCONG) B3: MA_NV  MANV(NV_DA÷P4_DA) Nhập môn Cơ sở dữ liệu - Khoa CNTT 64
  65. Phép chia (tt) ¡ Biểu diễn phép chia thông qua tập đầy đủ các phép toán ĐSQH T1  Y (R) T2  T1 S T3  Y(T2 R) T  T1 T2 Nhập môn Cơ sở dữ liệu - Khoa CNTT 65
  66. Nội dung chi tiết ¡ Giới thiệu ¡ Các thao tác cập nhật trên quan hệ ¡ Đạ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 nối ¡ 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 66
  67. 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 67
  68. Hàm kết hợp (tt) ¡ 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 68
  69. 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 G1, G2, , GnℑF1(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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 69
  70. Phép gom nhóm (tt) ¡ Ví dụ ℑSUM(C)(R) R A B C 2 7 4 7  2 3 (R)  2 10 AℑSUM(C) Nhập môn Cơ sở dữ liệu - Khoa CNTT 70
  71. Ví dụ 18 ¡ Tính số lượng nhân viên và lương trung bình của cả công ty ℑCOUNT(), AVERAGE(LUONG)(NHANVIEN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 71
  72. Ví dụ 19 ¡ Tính số lượng nhân viên và lương trung bình của từng phòng ban MAPGHℑCOUNT(), AVERAGE(LUONG)(NHANVIEN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 72
  73. Phép nối ngoài ¡ Mở rộng phép nối để tránh mất mát thông tin - Thực hiện phép nối - Lấy thêm các bộ không thỏa điều kiện nối ¡ Có 3 hình thức - Nối ngoài trái - Nối ngoài phải - Nối ngoài đầy đủ Nhập môn Cơ sở dữ liệu - Khoa CNTT 73
  74. Ví dụ 20 ¡ 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 PHG=MAPHG PHONGBAN KQ  HONV,TENNV, TENPHG (R1) TENNV HONV TENPHG Tung Nguyen Nghien cuu Hang Bui null Nhu Le null Vinh Pham Quan ly Nhập môn Cơ sở dữ liệu - Khoa CNTT 74
  75. Tài liệu tham khảo ¡ Giáo trình CSDL - Chương 3.III ¡ Database management system - Chapter 4 ¡ Fundamentals of Database Systems - Chapter 7 ¡ An introduction to Database System - Chapter 6, 7 Nhập môn Cơ sở dữ liệu - Khoa CNTT 75
  76. Bài tập 1 T1 T2T1 T1 T1.P = T2.AT2 T1 (T1.Q = T2.B)T2 T1 T1.P = T2.AT2 T1 (T1.Q = T2.B)T2 T1 (T1.Q = T2.A AND T1.R = T2.C)T2 Nhập môn Cơ sở dữ liệu - Khoa CNTT 76
  77. Bài tập 2 ¡ Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ: - NHANVIEN(MANV, HONV, TENNV, NS, GT, DCHI, LUONG, MANGS, MAĐV) - ĐONVI(MADV, TENDV, MANQL, NGAY_BD) - DEAN(MADA, TENDA, DD_DA, MADV) - THANNHAN(MANV, TEN_TN, NS, GT, QUANHE) - NV_DEAN(MANV, MADA, SOGIO) - DONVI_DD(MADV, DD) Nhập môn Cơ sở dữ liệu - Khoa CNTT 77
  78. Bài tập 2(tt) ¡ Đưa ra tên và địa chỉ của tất cả các nhân viên làm việc cho đơn vị. ¡ Với mỗi dự án có địa điểm tại Hà nội, hãy liệt kê mã số dự án, mã số của đơn vị kiểm soát, Tên, địa chỉ và ngày sinh của người quản lý đơn vị ¡ Tìm tên của các nhân viên làm việc trên tất cả các dự án do đơn vị có mã số 5 kiểm soát. ¡ Tạo ra một danh sách các mã số dự án đối với các dự án có một nhân viên hoặc một người quản lý đơn vị kiểm soát dự án có tên là ‘Nam’. ¡ Đưa ra tên của tất cả các nhân viên có nhiều hơn hoặc bằng 2 người phụ thuộc. ¡ Đưa ra các nhân viên không có người phụ thuộc. ¡ Đưa ra tên của những người quản lý có ít nhất là một người phụ thuộc. Nhập môn Cơ sở dữ liệu - Khoa CNTT 78
  79. Thi giữa kỳ ¡ Nắm được các khái niệm cơ bản về CSDL, mô hình CSDL ¡ Vẽ được lược đồ liên kết, hiểu lược đồ liên kết mở rộng chuyển đổi được sang lược đồ quan hệ ¡ Thực hiện được các thao tác CSDL (sử dụng các phép toán trên đại số quan hệ) Nhập môn Cơ sở dữ liệu - Khoa CNTT 79
  80. Nhập môn Cơ sở dữ liệu - Khoa CNTT 80