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

* 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 89 trang xuanthi 30/12/2022 1600
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ệ - Phạm Nguyễn Cương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_04_dai_so_quan_he_pham_nguyen.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Phạm Nguyễn Cương

  1. 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 2
  2. 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 . Ngôn ngữ truy vấn (Query Language –QL): - Cho phép người dùng rút trích hay cập nhật dữ liệu được lưu trong một mô hình dữ liệu . Ngôn ngữ truy vấn quan hệ: - Đại số quan hệ (Relational Algebra)  Biểu diễn câu truy vấn dưới dạng biểu thức, cho phép người dùng biểu diễn các bước thực hiện câu truy vấn - Phép tính quan hệ (Relational Calculus)  Biểu diễn kết quả phi thủ tục dựa trên ngôn ngữ logic, cho phép người dùng diễn đạt cái họ cần hơn là thao tác xử lý nó - SQL (Structured Query Language) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 4
  3. Đạ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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 6
  4. Đại số quan hệ (tt) Phép toán đại số Phép toán đại số quan hệ Toán hạng ‐ Biến : x, y, z, ‐Quan hệ : NhanVien, ‐Hằngsố : 150, ‐ Thể hiện của quan hệ : t, v, Toán tử ‐ Thao tác xử lý giữa các toán ‐ Thao tác xử lý giữa các quan hệ hạng để tạo thành giá trị mới : +, ‐, để tạo thành quan hệ mới : phép *, /, chọn , hội  , Biểu thức ‐ Chuỗi các phép toán đại số ‐ Chuỗi các phép toán đại số quan ‐ Kết quả cho ra một giá trị mới hệ (câu truy vấn) ‐ Kết quả cho ra một quan hệ mới (x+7) / (y‐3) (x+y)*z and/or (x+7) / (y‐3) MANV (NHANVIEN) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 8
  5. 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) - Cho hai lược đồ quan hệ R(A1, A2, , An) và S(B1, B2, , Bn), r(R), s(S). Hai quan hệ r và s là khả hợp nếu  R và S có cùng bậc n  Và có DOM(Ai)=DOM(Bi) , 1 i n . Kết quả phép toán , , hoặc của r và s là một quan hệ có các thuộc tính cùng tên với các thuộc tính của quan hệ r. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 10
  6. 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ị loại bỏ) r  s = { t / t r  t s } . Ví dụ r AB s AB r  s AB 1 2 1 2  3 2  1  1 2  3 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 12
  7. 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 AB s AB r  s AB 1 2 2 2  3  1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 14
  8. 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 AB s AB r s AB 1 2 1 2  3  1  1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 16
  9. 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 18
  10. Phép chọn . Được dùng để lấy ra các bộ của quan hệ r 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  ,  ,  © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 20
  11. Phép chọn (tt) . Phép chọn có tính giao hoán  p1 ( p2 (r)) =  p2 ( p1 (r)) =  p1  p2 (r) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 22
  12. 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ụ A,C (r) r ABC A,C (r) A C 10 1 1 20 1  1  30 1  2  40 2 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 24
  13. Phép chọn vs. Phép chiếu A1, A2, A3 , An A1, A2, A3 , An  Phép chọn i j, i>=j A1, A2, A3 , An A1, A2, A3 , Am Phép chiếu n m, n>=m © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 26
  14. Ví dụ 2 . Cho biết mã số các giáo viên thuộc bộ môn HTTT hoặc có tham gia đề tài mã 001 MAGV (MABM=‘HTTT’ (GIAOVIEN))  MAGV (MAĐT=‘001’ (TG_ĐETAI)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 28
  15. Ví dụ 4 . Cho biết tên các công việc bắt đầu trong khoảng từ 01/01/2007 đến 01/08/2007  (NGAYBĐ>=‘1/1/2007’  NGAYBĐ<=‘1/8/2007’) (CONGVIEC) © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 30
  16. Phép chiếu tổng quát . Ví dụ - Cho biết họ tên của các giáo viên và lương của họ sau khi tăng 10% HOTEN, LUONG*1.1 (GIAOVIEN) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 32
  17. 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 34
  18. Ví dụ 5 . Cho biết mã số và họ tên giáo viên thuộc bộ môn HTTT . C1: MAGV, HOTEN (MABM=‘HTTT’ (GIAOVIEN)) . C2: GV_HTTT  MABM=‘HTTT’ (GIAOVIEN) KQ  MAGV, HOTEN (GV_HTTT) KQ(MA, TEN)  MAGV, HOTEN (GV_HTTT) KQ(MA, TEN) ( MAGV, HOTEN (GV_HTTT)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 36
  19. 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 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+  S+  ) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 38
  20. 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=S.B (r s) AR.BS.B C D AR.BS.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 - © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 40
  21. Ví dụ 6 (tt) TENBM MABM TRUONGBM NGAYNHANCHUC GV HOTEN Hệ thống thông tin HTTT 002 20/09/2004 002 Trần Trà Dương Mạng máy tính MMT 001 15/05/2005 001 Trương Nam Sơn © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 42
  22. GIÁOVIÊN MÃGV HỌTÊN . NGÀYSINH SỐNHÀ . 001 Nguyễn Hoài An . 15/02/1973 25/3 . 002 Trần Trà Hương . 20/06/1960 125 . 003 Nguyễn Ngọc Ánh . 11/05/1975 12/21 . . . . . . . BỘ MÔ N MÃBM TÊNBM PHÒNG . TRƯỞNGBM . HTTT Hệ thống thông tin B13 . 002 . CNTT Công nghệ tri thức B15 . . MMT Mạng máy tính B16 . 001 . . . . . . . GITRUONGBM=MAGVÁ OVIÊ N x B(BM_GV)Ộ MÔ N MÃGV HỌTÊN . NGÀYSINH . MÃBM TÊNBM PHÒNG . TRƯỞNGBM . 001 Nguyễn Hoài An . 15/02/1973 . HTTT Hệ thống thông tin B13 . 002 . 001 Nguyễn Hoài An . 15/02/1973 . CNTT Công nghệ tri thức B15 . . 001 Nguyễn Hoài An . 15/02/1973 . MMT Mạng máy tính B16 . 001 . 44 . . . . . . . . . . . © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN
  23. Ví dụ 7 (tt) . B1: Chọn ra những lương không phải là lớn nhất r1  ( LUONG (GIAOVIEN)) r2  GIAOVIEN.LUONG < R1.LUONG(GIAOVIEN r1) r3  R2.LUONG (r2) . B2: Lấy tập hợp lương trừ đi lương trong r3 KQ  LUONG (GIAOVIEN) r3 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 46
  24. Ví dụ 8 (tt) . B1: Tìm bộ môn mà giáo viên ‘Trần Trà Hương’ thuộc về r1  MABM,MAGV (HOTEN=‘TrầnTràHương’ (GIAOVIEN)) . B2: Lấy ra họ tên các giáo viên cùng bộ môn r2  HOTEN <>’TrầnTràHương’ (GIAOVIEN) r3  R1.MABM=R2.MABM (r1 r2) KQ  HOTEN (r3) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 48
  25. 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 50
  26. 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): khi hai thuộc tính trong điều kiện kết bằng C có tên giống nhau.  Ký hiệu r s hay r s  R+  S+   Quan hệ kết quả của phép kết bằng có tập thuộc tính là hội tập thuộc tính của r và s bỏ bớt đi 1 thuộc tính giống nhau © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 52
  27. Phép kết (tt) . Ví dụ phép kết bằng r C=D s r ABC s DE ABC D E 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 45662 789 r C=s.C s r ABC S S.CCD D ABC s.C D 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 45662 789 (S.C,D) s © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 54
  28. Ví dụ 10 . Cho biết giáo viên có lương lớn hơn lương của giáo viên ‘Nguyễn Hoài An’ - Quan hệ: GIAOVIEN - Thuộc tính: LUONG GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, ) R1(LG)  LUONG (HOTEN=‘Nguyễn Hoài An’ (GIAOVIEN)) KQ  GIAOVIEN LUONG>LG R1 KQ(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, , LG)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 56
  29. Ví dụ 12 . Với mỗi đề tài, cho biết thông tin giáo viên chủ nhiệm đề tài đó - Quan hệ: ĐETAI, GIAOVIEN ĐETAI(MAĐT, TENĐT, KINHPHI, , GVCNĐT) GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, ) KQ  ĐETAI GVCNĐT = MAGV GIAOVIEN KQ(MAĐT, TENĐT, KINHPHI, , GVCNĐT, MAGV, HOTEN, ) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 58
  30. Ví dụ 14 . Cho biết lương cao nhất trong bộ môn ‘HTTT’ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 60
  31. Ví dụ 16 . Cho biết các giáo viên của bộ môn ‘Vi sinh’ có tham gia đề tài 006 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 62
  32. 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 64
  33. Phép chia (tt) . Ví dụ r  s r ABCDE s DE ABC a a 1 a 1 a  a  a 1 b 1  a  a  b 1  a  a 1  a  b 3  a  a 1  a  b 1  a  b 1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 66
  34. Ví dụ 18 . Cho biết tên đề tài có tất cả giảng viên bộ môn ‘Hệ thống thông tin’ tham gia © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 68
  35. 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 70
  36. Hàm kết hợp (tt) . Ví dụ SUM(B) = 10 r AB AVG(A) = 1.5 1 2 MIN(A) = 1 3 4 MAX(B) = 4 1 2 COUNT(A) = 4 1 2 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 72
  37. Phép gom nhóm (tt) . Ví dụ SUM(C)(r) SUM_C r ABC 27 2 7 4 7  2 3  2 10 ASUM(C)(r) A SUM_C 14  3  10 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 74
  38. Ví dụ 20 . Cho biết số lượng giáo viên và lương trung bình của từng bộ môn © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 76
  39. Ví dụ 22 . Cho biết họ tên giáo viên chủ nhiệm nhiều đề tài nhất © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 78
  40. 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 80
  41. Ví dụ 24 ‐ b . Cho danh sách tên bộ môn và họ tên trưởng bộ môn đó nếu có. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 82
  42. 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 84
  43. 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ụ - Phân công giáo viên có mã 001 tham gia công việc 4 của đề tài số 001 với mức phụ cấp 2 THAMGIAĐT  THAMGIAĐT  (‘001’, ‘001’, 4, 2) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 86
  44. Ví dụ 25 . Xóa các đề tài thuộc chủ đề ‘NCPT’ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 88