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 2120
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