Cơ sở dữ liệu - Chương 6: Ngôn ngữ phép tính quan hệ
zLà ngôn ngữ truy vấn hình thức do Codd
đề nghị (1972,1973), được Lacroit &
Piroix (1977), Ullman (1982) phát
triển, cài đặt trong một số ngôn ngữ
như QBE, ALPHA, .
zĐặc điểm:
–Phi thủ tục
–Dựa trên logic
–Khả năng diễn đạt tương đương với
ĐSQH
1NGÔN NGỮ PHÉP TÍNH QUAN HỆ Chương 6 2 Giới thiệu z Là ngôn ngữ truy vấn hình thức do Codd đề nghị (1972,1973), được Lacroit & Piroix (1977), Ullman (1982) phát triển, cài đặt trong một số ngôn ngữ như QBE, ALPHA,…... zĐặïc điểm: – Phi thủ tục – Dựa trên logic – Khả năng diễn đạt tương đương với ĐSQH 3Giới thiệu z 2 loại: – Ngôn ngữ phép tính quan hệ có biến là bộ (gọi tắt là phép tính bộ) – Ngôn ngữ phép tính quan hệ có biến là miền (gọi tắt là phép tính miền) 4 Nội dung I. Giới thiệu II. Phép tính quan hệ có biến là bộ Tuple Relational Calculus – TRC III. Phép tính quan hệ có biến là miền Domain Relational Calculus - DRC 5Phép tính quan hệ có biến là bộ (Tuple Relational Calculus) 6 Biến bộ và quan hệ vùng của biến bộ z Biến bộ: biến nhận giá trị là một bộ của quan hệ trong CSDL z Với mỗi biến bộ t, quan hệ R mà t biến thiên trên đó được gọi là quan hệ vùng của biến bộ và được chỉ ra bởi kí pháp R(t). 7Biểu thức truy vấn phép tính bộ zMột biểu thức truy vấn phép tính bộ đơn giản có dạng {t⏐P(t)} trong đó: t là một biến bộ P(t) là 1 công thức theo t. P(t) định trị ĐÚNG hay SAI tùy thuộc vào giá trị của t 8 Ví dụ z Tìm ngày sinh và địa chỉ của nhân viên có tên là "Dinh Ba Tien“ {t.NGSINH, t.DCHI⏐ NHANVIEN(t) and t.HONV='Dinh' and t.TENLOT='Ba' and t.TENNV='Tien'} 9Ví dụ z Tìm tất cả các nhân viên có lương trên 30,000 {t⏐ NHANVIEN(t) and t.LUONG>30000} Công thức này chỉ định rằng: t là một biến bộ quan hệ vùng của biến bộ t là NHANVIEN Trị của biểu thức truy vấn này là các bộ t ∈NHANVIEN thỏa t.LUONG>30000 10 Định nghĩa hình thức của phép tính bộ 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)} trong đó: – t1,t2,…tm+n là các biến bộ và không nhất thiết phải giống nhau, – Ai là một thuộc tính của quan hệ vùng của biến bộ ti. – P là 1 công thức. z Một công thức P(t1, t2, ...…, tn, tn+1, ...…, tn+m) được hình thành từ các công thức nguyên tố. 11 Công thức nguyên tố Công thức nguyên tố được định nghĩa: 1. R(t) là công thức nguyên tố R là một quan hệ và t là một biến bộ 2. ti.A θ tj.B là công thức nguyên tố θ là phép so sánh (=, ≠,>, ≥, <,≤) A là thuộc tính cuả quan hệ vùng của biến bộ ti B là thuộc tính cuả quan hệ vùng của biến bộ tj 3. ti.A θ c hoặc c θ tj.B là các công thức nguên tố c là trị hằng, θ là 1 phép so sánh (=, ≠,>, ≥, <,≤) A là thuộc tính cuả quan hệ vùng của biến bộ ti B là thuộc tính cuả quan hệ vùng của biến bộ tj 12 Công thức nguyên tố z Ví dụ: dưới đây là các công thức nguyên tố: – NHANVIEN (t) [theo (1)] – r.MANV = s.MANV [theo (2)] – t.LUONG > 3000 [theo (3)] 13 Công thức nguyên tố zMỗi công thức nguyên tố định trị ĐÚNG hoặc SAI đối với 1 bộ cụ thể, được gọi là giá trị chân lý của một công thức nguyên tố. z Với công thức nguyên tố R(t), R là 1 quan hệ và t là biến bộ trên R – R(t) định trị ĐÚNG nếu t là một bộ thuộc R – R(t) định trị SAI nếu ngược lại 14 Ví dụ R A B C a1 b1 c1 a2 b2 c2 Giả sử có 2 bộ t1= t2= ⇒ R(t1) định trị ĐÚNG, R(t2) định trị SAI Với các công thức nguyên tố dạng (2), (3), định trị tùy thuộc vào ý nghĩa của phép thay thế giá trị thật sự của bộ vào vị trí biến bộ. 15 Công thức Công thức được ĐN: 1. Mọi công thức nguyên tố là công thức. 2. Nếu F1 và F2 là các công thức thì (F1 and F2), (F1 or F2), not(F1), not (F2) là công thức Giá trị chân lý của các công thức trên được ĐN: – (F1 and F2) chỉ ĐÚNG nếu cả F1 lẫn F2 đều ĐÚNG. – (F1 or F2) chỉ SAI nếu cả F1 lẫn F2 đều SAI – not(F1) là ĐÚNG nếu F1 là SAI, not(F1) là SAI nếu F1 là ĐÚNG. – not(F2) là ĐÚNG nếu F2 là SAI, not(F2) là SAI nếu F2 là ĐÚNG. 16 Công thức 3. Nếu F là 1 công thức thì (∀t)(F) là một công thức. (∀t)(F) định trị ĐÚNG nếu F ĐÚNG với mọi bộ t, SAI nếu ít nhất một bộ SAI. 4. Nếu F là 1 công thức thì (∃t)(F) là một công thức. (∃t)(F) định trị SAI nếu F SAI với mọi bộ t, ĐÚNG nếu ít nhất một bộ ĐÚNG. 5. Nếu F là công thức thì (F) là công thức. 17 Biến tự do & Biến kết buộc zNếu F là một công thức nguyên tố thì mọi biến bộ t trong F đều là biến tự do. z Tất cả các biến bộ tự do t trong F được xem là biến kết buộc trong công thức F'=(∃t)(F) hoặc F'=(∀t)(F). zĐối với công thức F= F1 and F2 , F=F1 or F2, F=not(F1) hoặc F=not(F2). Xuất hiện của biến t trong F là tự do hay kết buộc là hoàn toàn phụ thuộc vào việc nó là tự do hay kết buộc trong F1, F2. 18 Biến tự do & Biến kết buộc z Biến tự do trong một công thức ⇔ biến toàn cục trong một chương trình (biểu diễn kết quả công thức - What). z Biến kết buộc trong một công thức ⇔ biến cục bộ trong một chương trình (biểu diễn kiểm tra công thức – Yes/No). 19 Ví dụ z Tìm tên và địa chỉ của các 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)} 20 Ví dụ z Với mọi đề án ở "Ha Noi", liệt kê các mã số đề án (MADA), mã số phòng ban chủ trì đề án (MAPHG), họ tên trưởng phòng (TENNV, HONV) cũng như địa chỉ (DCHI) và ngày sinh (NGSINH) của người ấy. {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 21 Ví dụ z Tìm họ tên của từng nhân viên và 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} 22 Ví dụ z Tìm họ tên các nhân viên làm việc cho các đề án mà phòng mã số 5 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))} 23 Một số biến đổi lượng từ 1. (∀ x)(P(x))≡ not (∃x)(not(P(x))) 2. (x)(P(x)) ≡ not(∀ x)(not (P(x)). 3. (∀ x)(P(x) and Q(x))≡ not (∃ x)(not(P(x)) or not (Q(x))). 4. (∀ x)(P(x) or Q(x))≡ not (∃ x)(not(P(x)) and not (Q(x))). 5. (∃ x)(P(x) or Q(x)) ≡ not(∀ x)(not(P(x)) and not (Q(x))). 6. (∃ x)(P(x) and Q(x)) ≡ not(∀ x)(not(P(x)) or not (Q(x))). 7. (∀ x)(P(x)) ⇒(∃ x)(P(x)) 8. not(∃ x)(P(x)) ⇒ not(∀ x)(P(x)) Tuy nhiên, khẳng định sau SAI: not(∀ x)(P(x)) ⇒ not(∃ x)(P(x)) 24 Công thức an toàn Xem câu truy vấn: {t ⏐ not(NHANVIEN(t) )} ⇒ ý nghĩa: cho biết những nhân viên không có trong bảng NHANVIEN ⇒ câu truy vấn không xác định ⇒ not(NHANVIEN(t)) là công thức không an toàn. 25 Ví dụ zDanh sách những nhân viên (TENNV, HONV) không có thân nhân nào. { 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)))))} 26 Phép tính quan hệ có biến là miền (Domain Relational Calculus- DRC) 27 Khái niệm z Biến miền là biến nhận giá trị từ một miền giá trị của một thuộc tính. z Một biểu thức truy vấn phép tính miền có dạng {x1,x2,…,xn⏐P(x1,x2,…,xn,xn+1,…, xn+m)} hoặc {x1x2… xn⏐P(x1,x2,…,xn,xn+1,…,xn+m)} Trong đó x1,x2, …, xn, xn+1, …, xn+m là các biến miền và không nhất thiết phải khác nhau, nhận giá trị từ các MGT của các thuộc tính và P là công thức theo x1, ...…, xn. 28 Công thức Một công thức được hình thành từ các công thức nguyên tố. Công thức nguyên tố được ĐN (i) R(x1,x2, ...…, xj) là một công thức nguyên tố. Trong đó R là một quan hệ bậc j. Mỗi xi, 1≤ i ≤ n, là một biến miền. Công thức này ngụ ý rằng (x1,x2,…,xj) là một bộ của quan hệ R (ii) xi θ xj là công thức nguyên tố, xi và xj là các biến miền, c là một hằng trị, θ là 1 phép so sánh (=,≠,>,≥,<,≤). 29 Công thức (iii) xi θ c hoặc c θ xj công thức nguyên tố, xi và xj là các biến miền, c là một hằng trị, θ là 1 phép so sánh (=,≠,>,≥,<,≤). Một công thức nguyên tố định 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, được gọi là giá trị chân lý của một công thức nguyên tố. Các ĐN về công thức dựa trên công thức nguyên tố, các ĐN về biến kết buộc và biến tự do, các lượng từ trong trường hợp phép tính miền cũng tương tự như phép tính bộ. 30 Ví dụ {uv⏐ (∃ q) (∃ r) (∃ s) (NHANVIEN(qrstuvwxyz) and q='Dinh' and r='Ba' and s='Tien')} {uv⏐ (NHANVIEN('Dinh', 'Ba', 'Tien',t,u,v,w,x,y,z)} 31 Ví dụ {qsv ⏐(∃z) (NHANVIEN(qrstuvwxyz) and (∃ l)(∃ m)(PHONGBAN(lmno) and l='Nghien cuu' and m=z)) } {iksuv ⏐(∃ j)(DEAN(hijk) and (∃ t) (NHANVIEN(qrstuvwxyz) and (∃m)(∃n) (PHONGBAN(lmno) and k=m and n=t and j='Ha Noi')))} 32 Tài liệu tham khảo 1. Mai Văn Cường, Phạm Nguyễn Cương, Bài giảng Ngôn ngữ phép tính quan hệ. 2. Ramez Elmasri and Shamkant B. Navathe, Fundamentals of Database Systems, Chapter 6. Fourth Edition, Addison-Wesley, 2004. ISBN 0-321-12226-7. 3. R. Ramakrishnan and J. Gehrke, Database Management Systems, Chapter4 - Relational Algebra and Calculus, McGrawHill, 2nd Edition. 33 HẾT.
File đính kèm:
- Chuong_6_Ngon_ngu_bien_bo_va_bien_mien.pdf