Bài giảng Cơ sở dữ liệu - Chương 6: Phép tính quan hệ (Relation Calculus - Ngôn ngữ tân từ) - Phạm Nguyễn Cương

Giới thiệu

Nhắc lại về lý thuyết logic

Phép tính quan hệ trên bộ - Tuple Relational Calculus (TRC) Phép tính quan hệ trên miền Domain Relational Calculus (DRC)

pdf 46 trang xuanthi 30/12/2022 280
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 6: Phép tính quan hệ (Relation Calculus - Ngôn ngữ tân từ) - 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_06_phep_tinh_quan_he_relation.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 6: Phép tính quan hệ (Relation Calculus - Ngôn ngữ tân từ) - Phạm Nguyễn Cương

  1. Nội dung . Giới thiệu . Nhắc lại về lý thuyết logic . Phép tính quan hệ trên bộ - Tuple Relational Calculus (TRC) . Phép tính quan hệ trên miền - Domain Relational Calculus (DRC) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 2
  2. Giới thiệu (tt) . Ngôn ngữ truy vấn hình thức dựa trên lý thuyết logic do Codd đề nghị năm 1972 . Sử dụng biểu thức logic để định nghĩa hình thức kết quả câu truy vấn - Dựa trên lý thuyết logic - Phi thủ tục - Rút trích “cái gì” hơn là “làm thế nào” . Khả năng diễn đạt tương đương ĐSQH © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 4
  3. Nội dung . Giới thiệu . Nhắc lại về lý thuyết logic . Phép tính quan hệ trên bộ . Phép tính quan hệ trên miền © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 6
  4. Nhắc lại về lý thuyết logic . Một số ví dụ về công thức logic - P(t), P(t) , Q(t) - P(t)  Q(t) - t(P(t)) - t(P(t)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 8
  5. Phép tính quan hệ trên bộ . Truy vấn được biểu diễn bởi một biểu thức . 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ộ  Có 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 10
  6. Ví dụ 2 . Tìm mã số và họ tên giáo viên có lương trên 2000 { t.MAGV, t.HOTEN | GIAOVIEN (t)  t.LUONG > 2000 } P(t) - Tập các MAGV và HOTEN của những bộ t sao cho t là một thể hiện của GIAOVIEN và t có giá trị lớn hơn 2000 tại thuộc tính LUONG - Kết quả : - Tìm những bộ t thuộc GIAOVIEN có thuộc tính lương lớn hơn 2000 - Lấy ra các giá trị tại thuộc tính MAGV và HOTEN © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 12
  7. Ví dụ 3 . Cho biết các giáo viên (MAGV) làm việc ở bộ môn ‘Hệ thống thông tin’ { t.MAGV | GIAOVIEN(t)  (s) ( BOMON(s)  s.TENBM ‘Hệ thống thông tin’  s.MABM t.MABM ) } GIAOVIEN Q(s) MAGV HOTEN MABM BOMON 1 Nguyễn Hoài An HTTT MABM TENBM 2 Trần Trà Hương MMT HTTT Hệ thống thông tin MAGV 3 Nguyễn Nam Sơn CNPM CNPM Công nghệ phần mềm 1 4 Lý Hoàng Hà HTTT MMT Mạng máy tính 4 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 14
  8. Ví dụ 5 . Cho biết tên các giáo viên (HOTEN) vừa không tham gia đề tài vừa không chủ nhiệm đề tài { t.HOTEN | GIAOVIEN(t)  (  (s) (THAMGIADT(s)  t.MAGV s.MAGV)   (u) (DETAI(u)  t.MAGV u.GVCNDT)) } GIAOVIEN THAMGIADT DETAI MAGV HOTEN MAGV MADT MADT GVCNDT 1 Nguyễn Hoài An 1 1 1 1 2 Trần Trà Hương 3 2 2 2 3 Nguyễn Nam Sơn 3 null 4 Lý Hoàng Hà © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 16
  9. Ví dụ 7 . Cho biết tên các giáo viên nữ và tên khoa của giáo viên này {t.HOTEN, u.TENKHOA | GIAOVIEN(t)  KHOA(u)  t.PHAI ‘Nữ’  (s)(BOMON(s)  s.MAKHOA u.MAKHOA  s.MABM t.MABM) } © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 18
  10. Ví dụ 8 (tt) . Tìm các giáo viên (MAGV, HOTEN) tham gia vào tất cả các đề tài { t.MAGV, t.HOTEN | GIAOVIEN(t)  (s)(DETAI(s)  (u)(THAMGIADT(u)  u.MADT s.MADT  t.MAGV u.MAGV))} GIAOVIEN DETAI THAMGIADT MAGV HOTEN MADT TENDT MAGV MADT t1 1 Nguyễn Hoài An s1 1 u1 1 1 t2 2 Trần Trà Hương s2 2 u2 2 2 t3 3 Nguyễn Nam Sơn s3 3 u3 4 1 t4 4 Lý Hoàng Hà u4 4 2 u5 4 3 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 20
  11. Ví dụ 9 (tt) . Tìm các giáo viên (MAGV, HOTEN) tham gia vào tất cả các đề tài do giáo viên mã số 2 làm chủ nhiệm { t.MAGV, t.HOTEN | GIAOVIEN(t)  (s)((DETAI(s)  s.GVCNDT = 2) (u(THAMGIADT(u)  u.MADT s.MADT  t.MAGV u.MAGV ))) } © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 22
  12. Đị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 thuo ̣c tính trong các bo ̣ t tương ứ ng - P là công thức  P là công thức nguyên tố  Hoặc được hình thành từ những công thức nguyên tố © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 24
  13. Công thức nguyên tố . (i) R(t) - t là biến bộ GIAOVIEN (t) - R là quan hệ . (ii) t.A  s.B - A là thuộc tính của biến bộ t t.MAGV = s.MAGV - 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 , , , , , © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 26
  14. Công thức nguyên tố (tt) . Công thức (ii) và (iii) t.A  s.B t.A  c - 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 28
  15. 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 30
  16. 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 32
  17. Công thức an toàn . Xét công thức { t |  (GIAOVIEN(t)) } - Có rất nhiều bộ t không thuộc quan hệ GIAOVIEN - 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 34
  18. Nội dung . Giới thiệu . Nhắc lại về lý thuyết logic . Phép tính quan hệ trên bộ . Phép tính quan hệ trên miền © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 36
  19. Ví dụ 1 . Cho biết mã và tên giáo viên có lương trên 3000 { p, q | (r) (GIAOVIEN(p, q, r, s, t, u, v, x, y, z,m)  r > 3000 )) } GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, SONHA, DUONG, QUAN, THANHPHO, GVQLCM, MABM) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 38
  20. Ví dụ 3 . Cho biết các giáo viên (MAGV, HOTEN) không có tham gia đề tài nào {p, q | GIAOVIEN(p, q, r, s, t, u, v, x, y, z, m)  (a)(THAMGIADT(a, b, c, d, e)  a = p ) } GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, SONHA, DUONG, QUAN, THANHPHO, GVQLCM, MABM) THAMGIADT(MAGV, MADT, STT, PHUCAP, KETQUA) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 40
  21. 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ộ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 42
  22. Công thức an toàn (tt) . Xét công thức { x | y (R(x, y))  z ( R(x, z)  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ỉ xêm 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 44
  23. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 46