Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu - Chương 6: Phép tính quan hệ - Nguyễn Minh Thu

pdf 42 trang ngocly 80
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu - Chương 6: Phép tính quan hệ - Nguyễn Minh Thu", để 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:

  • pdfbai_giang_co_so_du_lieu_va_quan_tri_co_so_du_lieu_chuong_6_p.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu - Chương 6: Phép tính quan hệ - Nguyễn Minh Thu

  1. Chương 6 Phép tính quan hệ
  2. Nội dung chi tiết Giới thiệu Phép tính quan hệ trên bộ Phép tính quan hệ trên miền Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2
  3. Giới thiệu Maths Database 1970 1981 Codd Algebra Relational Algebra ACM 1972 YOU Turing Logic Relational Calculus Award Geometry 2??? ??? ??? Award 2??? Other fields Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 3
  4. Giới thiệu (tt) Là ngôn ngữ truy vấn hình thức Do Codd đề nghị vào năm 1972, “Data Base Systems”, Prentice Hall, p33-98 Đặc điểm - Phi thủ tục - Dựa vào lý thuyết logic - Rút trích cái gì (what) rút trích như thế nào (how) - Khả năng diễn đạt tương đương với ĐSQH Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 4
  5. Giới thiệu (tt) Có 2 loại - Phép tính quan hệ trên bộ (Tuple Rational Calculus)  SQL - Phép tính quan hệ trên miền (Domain Rational Calculus)  QBE (Query By Example) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 5
  6. Nội dung chi tiết Giới thiệu Phép tính quan hệ trên bộ Phép tính quan hệ trên miền Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 6
  7. Phép tính quan hệ trên bộ Biểu thức phép tính quan hệ trên bộ có dạng { t.A | P(t) } - t là biến bộ  Biến nhận giá trị là một bộ của quan hệ trong CSDL  t.A là giá trị của bộ t tại thuộc tính A - P là công thức có liên quan đến t  P(t) có giá trị ĐÚNG hoặc SAI phụ thuộc vào t - Kết quả trả về là tập các bộ t sao cho P(t) đúng Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 7
  8. Ví dụ 1 Tìm các nhân viên có lương trên 30000 { t | t NHANVIEN  t.LUONG > 30000 } P(t) P(t) - t NHANVIEN đúng  Nếu t là một thể hiện của quan hệ NHANVIEN - t.LUONG > 30000 đúng  Nếu thuộc tính LUONG của t có giá trị trên 30000 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 8
  9. Ví dụ 2 Cho biết mã và tên nhân viên có lương trên 30000 - Tìm những bộ t thuộc NHANVIEN có thuộc tính lương lớn hơn 30000 - Lấy ra các giá trị tại thuộc tính MANV và TENNV { t.MANV, t.TENNV | t NHANVIEN  t.LUONG > 30000 } - Tập các MANV và TENNV của những bộ t sao cho t là một thể hiện của NHANVIEN và t có giá trị lớn hơn 30000 tại thuộc tính LUONG Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 9
  10. Ví dụ 3 Cho biết các nhân viên (MANV) làm việc ở phòng ‘Nghien cuu’ t.MANV | t NHANVIEN s PHONGBAN  s.TENPHG ‘Nghien cuu’ - Lấy ra những bộ t thuộc NHANVIEN - So sánh t với một bộ s nào đó để tìm ra những nhân viên làm việc ở phòng ‘Nghien cuu’ - Cấu trúc “tồn tại” của phép toán logic t R (Q(t)) Tồn tại 1 bộ t thuộc quan hệ R sao cho vị từ Q(t) đúng Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 10
  11. Ví dụ 3 Cho biết các nhân viên (MANV) làm việc ở phòng ‘Nghien cuu’ { t.MANV | t NHANVIEN  s PHONGBAN ( s.TENPHG ‘Nghien cuu’  s.MAPHG t.PHG ) } Q(s) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 11
  12. Ví dụ 4 Cho biết tên các nhân viên (TENNV) tham gia làm đề án hoặc có thân nhân { t.TENNV | t NHANVIEN  ( s PHANCONG (t.MANV s.MA_NVIEN)  u THANNHAN (t.MANV u.MA_NVIEN)) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 12
  13. Ví dụ 5 Cho biết tên các nhân viên (TENNV) vừa tham gia làm đề án vừa có thân nhân { t.TENNV | t NHANVIEN  ( s PHANCONG (t.MANV s.MA_NVIEN)  u THANNHAN (t.MANV u.MA_NVIEN)) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 13
  14. Ví dụ 6 Cho biết tên các nhân viên (TENNV) tham gia làm đề án mà không có thân nhân nào { t.TENNV | t NHANVIEN  s PHANCONG (t.MANV s.MA_NVIEN)   u THANNHAN (t.MANV u.MA_NVIEN) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 14
  15. Ví dụ 7 Với mỗi đề án ở ‘TP HCM’ cho biết mã đề án, mã phòng ban chủ trì và tên người trưởng phòng { s.MADA, s.PHONG, t.TENNV | s DEAN  t NHANVIEN  s.DDIEM_DA ‘TP HCM’  u PHONGBAN (s.PHONG u.MAPHG  u.TRPHG t.MANV) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 15
  16. Ví dụ 8 Tìm các nhân viên (MA_NVIEN) tham gia vào tất cả các đề án - Cấu trúc “với mọi” của phép toán logic t R (Q(t)) Q đúng với mọi bộ t thuộc quan hệ R Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 16
  17. Ví dụ 8 (tt) Tìm các nhân viên (MANV, HONV, TENNV) tham gia vào tất cả các đề án { t.MANV, t.HONV, t.TENNV | t NHANVIEN  s DEAN ( u PHANCONG ( u.SODA s.MADA  t.MANV u.MA_NVIEN )) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 17
  18. Ví dụ 9 Tìm các nhân viên (MANV, HONV, TENNV) tham gia vào tất cả các đề án do phòng số 4 phụ trách - Cấu trúc “kéo theo” của phép tính logic P Q Nếu P thì Q Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 18
  19. Ví dụ 9 (tt) Tìm các nhân viên (MANV, HONV, TENNV) tham gia vào tất cả các đề án do phòng số 4 phụ trách { t.MANV, t.HONV, t.TENNV | t NHANVIEN  s DEAN ( s.PHONG = 4 ( u PHANCONG ( u.SODA s.MADA  t.MANV u.MA_NVIEN ))) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 19
  20. Định nghĩa hình thức Một công thức truy vấn tổng quát có dạng { t1.Ai, t2.Aj, tn.Ak | P(t1, t2, , tn) } - t1, t2, , tn là các biến bộ - Ai, Aj, , Ak là các thuộc tính trong các bộ t tương ứng - P là công thức  P được hình thành từ những công thức nguyên tố Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 20
  21. Biến bộ Biến tự do (free variable) { t | t NHANVIEN  t.LUONG > 30000 } t là biến tự do Biến kết buộc (bound variable) { t | t NHANVIEN  s PHONGBAN (s.MAPHG t.PHG) } Biến tự do Biến kết buộc Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 21
  22. Công thức nguyên tố (i) t R - t là biến bộ t NHANVIEN - R là quan hệ (ii) t.A  s.B - A là thuộc tính của biến bộ t t.MANV = s.MANV - B là thuộc tính của biến bộ s -  là các phép so sánh , , , , , (iii) t.A  c - c là hằng số s.LUONG > 30000 - A là thuộc tính của biến bộ t -  là các phép so sánh , , , , , Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 22
  23. Công thức nguyên tố (tt) Mỗi công thức nguyên tố đều mang giá trị ĐÚNG hoặc SAI - Gọi là chân trị của công thức nguyên tố Công thức (i) - Chân trị ĐÚNG nếu t là một bộ thuộc R - Chân trị SAI nếu t không thuộc R R A B C t1 = t1 R có chân trị ĐÚNG 10 1 20 1 t2 = t2 R có chân trị SAI Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 23
  24. Công thức nguyên tố (tt) Công thức (ii) và (iii) - Chân trị tùy thuộc vào việc thay thế giá trị thật sự của bộ vào vị trí biến bộ R A B C Nếu t là bộ 10 1 Thì t.B > 5 có chân trị ĐÚNG (10 > 5) 20 1 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 24
  25. Qui tắc (1) Mọi công thức nguyên tố là công thức (2) Nếu P là công thức thì - P là công thức - (P) là công thức (3) Nếu P1 và P2 là các công thức thì - P1  P2 là công thức - P1  P2 là công thức - P1 P2 là công thức Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 25
  26. Qui tắc (tt) (4) Nếu P(t) là công thức thì - t R (P(t)) là công thức  Chân trị ĐÚNG khi P(t) ĐÚNG với mọi bộ t trong R  Chân trị SAI khi có ít nhất 1 bộ làm cho P(t) SAI - t R (P(t)) là công thức  Chân trị ĐÚNG khi có ít nhất 1 bộ làm cho P(t) ĐÚNG  Chân trị SAI khi P(t) SAI với mọi bộ t trong R Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 26
  27. Qui tắc (tt) (5) Nếu P là công thức nguyên tố thì - Các biến bộ t trong P là biến tự do (6) Công thức P=P1P2 , P=P1P2 , P=P1 P2 - Sự xuất hiện của biến t trong P là tự do hay kết buộc phụ thuộc vào việc nó là tự do hay kết buộc trong P1, P2 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 27
  28. Một số biến đổi (i) P1  P2 =  (P1  P2) (ii) t R (P(t)) = t R (P(t)) (iii) t R (P(t)) = t R (P(t)) (iv) P Q = P  Q Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 28
  29. Công thức an toàn Xét công thức { t | (t NHANVIEN) } - Có rất nhiều bộ t không thuộc quan hệ NHANVIEN - Thậm chí không có trong CSDL - Kết quả trả về không xác định Một công thức P gọi là an toàn nếu các giá trị trong kết quả đều lấy từ miền giá trị của P - Dom(P) - Tập các giá trị được đề cập trong P Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 29
  30. Công thức an toàn (tt) Ví dụ { t | t NHANVIEN  t.LUONG > 30000 } - Dom(t NHANVIEN  t.LUONG > 30000) - Là tập các giá trị trong đó  Có giá trị trên 30000 tại thuộc tính LUONG  Và các giá trị khác tại những thuộc tính còn lại - Công thức trên là an toàn Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 30
  31. Nội dung chi tiết Giới thiệu Phép tính quan hệ trên bộ Phép tính quan hệ trên miền Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 31
  32. Phép tính quan hệ trên miền Biểu thức phép tính quan hệ trên miền có dạng { x1, x2, , xn | P(x1, x2, , xn) } - x1, x2, , xn là các biến miền  Biến nhận giá trị là một miền giá trị của một thuộc tính - P là công thức theo x1, x2, , xn  P được hình thành từ những công thức nguyên tố - Kết quả trả về là tập các giá trị x1, x2, , xn sao cho khi các giá trị được thay thế cho các xi thì P đúng Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 32
  33. Ví dụ 3 Cho biết mã và tên nhân viên có lương trên 30000 { r, s | x ( NHANVIEN  x > 30000 ) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 33
  34. Ví dụ 4 Cho biết các nhân viên (MANV) làm việc ở phòng ‘Nghien cuu’ { s | z ( NHANVIEN  a, b ( PHONGBAN  a = ‘Nghien cuu’  b = z )) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 34
  35. Ví dụ 10 Cho biết các nhân viên (MANV, HONV, TENNV) không có thân nhân nào { p, r, s | s ( NHANVIEN  a ( THANNHAN  a = s )) } Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 35
  36. Công thức nguyên tố (i) R - xi là biến miền - R là quan hệ có n thuộc tính (ii) x  y - x, y là các biến miền - Miền giá trị của x và y phải giống nhau -  là các phép so sánh , , , , , (iii) x  c - c là hằng số - x là biến miền -  là các phép so sánh , , , , , Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 36
  37. Nhận xét Một công thức nguyên tố mang giá trị ĐÚNG hoặc SAI với một tập giá trị cụ thể tương ứng với các biến miền - Gọi là chân trị của công thức nguyên tố Một số qui tắc và biến đổi tương tự với phép tính quan hệ trên bộ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 37
  38. Công thức an toàn Xét công thức { p, r, s |  ( NHANVIEN) } - Các giá trị trong kết quả trả về không thuộc miền giá trị của biểu thức - Công thức không an toàn Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 38
  39. Công thức an toàn (tt) Xét công thức { x | y ( R)  z ( R  P(x, z)) } Công thức 1 Công thức 2 - R là quan hệ có tập các giá trị hữu hạn - Cũng có 1 tập hữu hạn các giá trị không thuộc R - Công thức 1: chỉ xem xét các giá trị trong R - Công thức 2: không thể kiểm tra khi không biết tập giá trị hữu hạn của z Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 39
  40. Công thức an toàn (tt) Biểu thức { x1, x2, , xn | P(x1, x2, , xn) } được gọi là an toàn nếu: - Những giá trị xuất hiện trong các bộ của biểu thức phải thuộc về miền giá trị của P - Vị từ : biểu thức x (Q(x)) đúng khi và chỉ khi xác định được giá trị của x thuộc dom(Q) làm cho Q(x) đúng - Vị từ : biểu thức x (Q(x)) đúng khi và chỉ khi Q(x) đúng với mọi giá trị của x thuộc dom(Q) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 40
  41. Bài tập về nhà Bài tập - Làm lại các bài tập của chương 4 (ĐSQH)  Trừ các câu có hàm kết hợp và gom nhóm - Biểu diễn bằng 2 ngôn ngữ  Phép tính quan hệ có biến là bộ  Phép tính quan hệ có biến là miền Đọc - Ngôn ngữ QBE Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 41
  42. Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 42