Mục tiêu của bài giảng Cơ sở dữ liệu - Chương 6: Ngôn ngữ phép tính quan hệ cung cấp cho người học các kiến thức: Giới thiệu, phép tính quan hệ có biến là bộ Tuple Relational Calculus – TRC, phép tính quan hệ có biến là miền Domain Relational Calculus - DRC
Chương NGÔN NGỮ PHÉP TÍNH QUAN HỆ Giới thiệu z Là ngôn ngữ truy vấn hình thức Codd đề nghò (1972,1973), Lacroit & Piroix (1977), Ullman (1982) phát triển, cài đặt số ngôn ngữ QBE, ALPHA,… z Đặïc điểm: – Phi thủ tục – Dựa logic – Khả diễn đạt tương đương với ĐSQH CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu z2 loại: – Ngôn ngữ phép tính quan hệ có biến (gọi tắt phép tính bộ) – Ngôn ngữ phép tính quan hệ có biến miền (gọi tắt phép tính miền) Nội dung I Giới thiệu II Phép tính quan hệ có biến Tuple Relational Calculus – TRC III Phép tính quan hệ có biến miền Domain Relational Calculus - DRC CuuDuongThanCong.com https://fb.com/tailieudientucntt Phép tính quan hệ có biến (Tuple Relational Calculus) Biến quan hệ vùng biến z Biến bộ: biến nhận giá trò quan hệ CSDL z Với biến t, quan hệ R mà t biến thiên gọi quan hệ vùng biến kí pháp R(t) CuuDuongThanCong.com https://fb.com/tailieudientucntt Biểu thức truy vấn phép tính z Một biểu thức truy vấn phép tính đơn giản có dạng {t⏐P(t)} đó: t biến P(t) công thức theo t P(t) đònh trò ĐÚNG hay SAI tùy thuộc vào giá trò t Ví dụ z Tìm ngày sinh đòa nhân viên có tên "Dinh Ba Tien“ {t.NGSINH, t.DCHI⏐ NHANVIEN(t) and t.HONV='Dinh' and t.TENLOT='Ba' and t.TENNV='Tien'} CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ z Tìm tất nhân viên có lương 30,000 {t⏐ NHANVIEN(t) and t.LUONG>30000} Công thức đònh rằng: t biến quan hệ vùng biến t NHANVIEN Trò biểu thức truy vấn t ∈NHANVIEN thỏa t.LUONG>30000 Đònh nghóa hình thức phép tính z Một công thức truy vấn tổng quát có dạng {t1.A1,t2.A2,…,tn.An⏐P(t1, t2,…,tn,tn+1,…,tn+m)} đó: – t1,t2,…tm+n biến không thiết phải giống nhau, – Ai thuộc tính quan hệ vùng biến ti – P công thức z Một công thức P(t1, t2, …, tn, tn+1, …, tn+m) hình thành từ công thức nguyên tố10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Công thức nguyên tố Công thức nguyên tố đònh nghóa: R(t) công thức nguyên tố R quan hệ t biến ti.A θ tj.B công thức nguyên tố θ phép so sánh (=, ≠,>, ≥, , ≥, 3000 [theo (1)] [theo (2)] [theo (3)] 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Công thức nguyên tố z Mỗi công thức nguyên tố đònh trò ĐÚNG SAI cụ thể, gọi giá trò chân lý công thức nguyên tố z Với công thức nguyên tố R(t), R quan hệ t biến R – R(t) đònh trò ĐÚNG t thuộc R – R(t) đònh trò SAI ngược lại 13 Ví dụ R A B C a1 b1 c1 a2 b2 c2 Giả sử có t1= t2= ⇒ R(t1) đònh trò ĐÚNG, R(t2) đònh trò SAI Với công thức nguyên tố dạng (2), (3), đònh trò tùy thuộc vào ý nghóa phép thay giá trò thật vào vò trí biến 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Công thức Công thức ĐN: Mọi công thức nguyên tố công thức Nếu F1 F2 công thức (F1 and F2), (F1 or F2), not(F1), not (F2) công thức Giá trò chân lý công thức ĐN: – (F1 and F2) ĐÚNG F1 lẫn F2 ĐÚNG – (F1 or F2) SAI F1 lẫn F2 SAI – not(F1) ĐÚNG F1 SAI, not(F1) SAI F1 ĐÚNG – not(F2) ĐÚNG F2 SAI, 15 not(F2) SAI F2 ĐÚNG Công thức Nếu F công thức (∀t)(F) công thức (∀t)(F) đònh trò ĐÚNG F ĐÚNG với t, SAI SAI Nếu F công thức (∃t)(F) công thức (∃t)(F) đònh trò SAI F SAI với t, ĐÚNG ĐÚNG Nếu F công thức (F) công thức 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Biến tự & Biến kết buộc z Nếu F công thức nguyên tố biến t F biến tự z Tất biến tự t F xem biến kết buộc công thức F'=(∃t)(F) F'=(∀t)(F) z Đối với công thức F= F1 and F2 , F=F1 or F2, F=not(F1) F=not(F2) Xuất biến t F tự hay kết buộc hoàn toàn phụ thuộc vào việc tự hay kết buộc F1, F2 17 Biến tự & Biến kết buộc z Biến tự công thức ⇔ biến toàn cục chương trình (biểu diễn kết công thức - What) z Biến kết buộc công thức ⇔ biến cục chương trình (biểu diễn kiểm tra công thức – Yes/No) 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ z Tìm tên đòa nhân viên phòng "Nghien cuu“ z{ t.HONV, t.TENNV, t.DCHI⏐ NHANVIEN(t) and (∃d)(PHONGBAN(d) and d.TENPHG='Nghien cuu' and d.MAPHG=t.SOPHG)} 19 Ví dụ z Với đề án "Ha Noi", liệt kê mã số đề án (MADA), mã số phòng ban chủ trì đề án (MAPHG), họ tên trưởng phòng (TENNV, HONV) đòa (DCHI) ngày sinh (NGSINH) người {p.MADA, p.PHONG m.TENNV,m.HONV, m.NGSINH, m.DCHI ⏐ DEAN(p) and NHANVIEN(m) and p.DDIEM_DA='Ha Noi' and ((∀d) (PHONGBAN(d) and p.PHONG=d.MAPHG and d.TPHG=m.MANV))} p,m : biến tự do, d:biến kết buộc 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ z Tìm họ tên nhân viên người phụ trách trực tiếp nhân viên {e.HONV, e.TENNV, s.HONV, s.TENNV ⏐ NHANVIEN(e) and NHANVIEN(s) and e.MA_NQL = s.MANV} 21 Ví dụ z Tìm họ tên nhân viên làm việc cho đề án mà phòng mã số chủ trì {e.HONV, e.TENNV ⏐ NHANVIEN(e) and ((∃ x)(∃ w) (DEAN(x) and PHANCONG(w) and x PHONG=5 and w.MA_NVIEN=e.MANV and x.MADA=w.SODA))} 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số biến đổi lượng từ (∀ x)(P(x))≡ not (∃x)(not(P(x))) (x)(P(x)) ≡ not(∀ x)(not (P(x)) (∀ x)(P(x) and Q(x))≡ not (∃ x)(not(P(x)) or (∀ x)(P(x) or Q(x))≡ not (∃ x)(not(P(x)) and (∃ x)(P(x) or Q(x)) ≡ not(∀ x)(not(P(x)) and (∃ x)(P(x) and Q(x)) ≡ not(∀ x)(not(P(x)) or (∀ x)(P(x)) ⇒(∃ x)(P(x)) not(∃ x)(P(x)) ⇒ not(∀ x)(P(x)) not not not not (Q(x))) (Q(x))) (Q(x))) (Q(x))) Tuy nhiên, khẳng đònh sau SAI: not(∀ x)(P(x)) ⇒ not(∃ x)(P(x)) 23 Công thức an toàn Xem câu truy vấn: {t ⏐ not(NHANVIEN(t) )} ⇒ ý nghóa: cho biết nhân viên bảng NHANVIEN ⇒ câu truy vấn không xác đònh ⇒ not(NHANVIEN(t)) công thức không an toàn 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ z Danh sách nhân viên (TENNV, HONV) thân nhân { e.HONV, e.TENNV ⏐ NHANVIEN(e) and (not(∃d)( THANNHAN(d) and e.MANV=d.MA_NVIEN))} {e.TENNV, e.HONV⏐ NHANVIEN(e) and (∀d)(not(THANNHAN(d) or ((∃d)(THANNHAN(d) and not(e.MANV=d.MA_NVIEN)))))} 25 Phép tính quan hệ có biến miền (Domain Relational Calculus- DRC) 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm Biến miền biến nhận giá trò từ miền giá trò thuộc tính z Một biểu thức truy vấn phép tính miền có dạng z {x1,x2,…,xn⏐P(x1,x2,…,xn,xn+1,…, xn+m)} {x1x2… xn⏐P(x1,x2,…,xn,xn+1,…,xn+m)} Trong x1,x2, …, xn, xn+1, …, xn+m biến miền không thiết phải khác nhau, nhận giá trò từ MGT thuộc tính P công thức theo x1, …, xn 27 Công thức Một công thức hình thành từ công thức nguyên tố Công thức nguyên tố ĐN (i) R(x1,x2, …, xj) công thức nguyên tố Trong R quan hệ bậc j Mỗi xi, 1≤ i ≤ n, biến miền Công thức ngụ ý (x1,x2,…,xj) quan hệ R (ii) xi θ xj công thức nguyên tố, xi xj biến miền, c trò, θ phép so sánh (=,≠,>,≥,,≥,