Bài giảng Cơ sở dữ liệu - Chương 5: 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ệ trên bộ, phép tính quan hệ trên miền. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương PHÉP TÍNH QUAN HỆ CƠ SỞ DỮ LIỆU Khoa Cơng nghệ thơng tin – Đại học Sài Gịn Nội dung chi tiết Giới thiệu 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 Giới thiệu Phép tính quan hệ Phép tính quan hệ miền Khoa CNTT – Đại học Sài Gòn Phi thủ tục Dựa vào lý thuyết logic Rút trích (what) rút trích (how) Khả diễn đạt tương đương với ĐSQH Khoa CNTT – Đại học Sài Gòn 1 Giới thiệu Giới thiệu Có loại Đại số quan hệ (relational algebra) có tính thủ tục, – Phép tính quan hệ (Tuple Rational gần với ngơn ngữ lập trình Calculus) vs • SQL Phép tính quan hệ (relational calculus) khơng có – Phép tính quan hệ miền (Domain tính thủ tục gần với ngôn ngữ tự nhiên Rational Calculus) • QBE (Query By Example) Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gịn Phép tính quan hệ Ví dụ Biểu thức phép tính quan hệ có dạng Tìm nhân viên có lương 30000 { t.A | P(t) } { t | t NHANVIEN t.LUONG > 30000 } – t biến P(t) • Biến nhận giá trị quan hệ CSDL • t.A giá trị t thuộc tính A P(t) – t NHANVIEN • Nếu t thể quan hệ NHANVIEN – P công thức có liên quan đến t – t.LUONG > 30000 • P(t) có giá trị ĐÚNG SAI phụ thuộc vào t • Nếu thuộc tính LUONG t có giá trị 30000 – Kết trả tập t cho P(t) Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gịn Ví dụ Ví dụ Cho biết mã tên nhân viên có lương 30000 Cho biết nhân viên (MANV) làm việc phòng ‘Nghien cuu’ t.MANV | t NHANVIEN – Tìm t thuộc NHANVIEN có thuộc tính lương lớn s PHONGBAN s.TENPHG ‘Nghien cuu’ 30000 – Lấy t thuộc NHANVIEN – Lấy giá trị thuộc tính MANV TENNV – So sánh t với s để tìm nhân viên { t.MANV, t.TENNV | t NHANVIEN t.LUONG > 30000 } làm việc phòng ‘Nghien cuu’ – Tập MANV TENNV t cho t thể – Cấu trúc “tồn tại” phép toán logic NHANVIEN t có giá trị lớn 30000 thuộc tính LUONG t R (Q(t)) Tồn t thuộc quan hệ R cho vị từ Q(t) Khoa CNTT – Đại học Sài Gịn Khoa CNTT – Đại học Sài Gịn Ví dụ Ví dụ Cho biết nhân viên (MANV) làm việc phòng ‘Nghien cuu’ Cho biết tên nhân viên (TENNV) tham gia làm đề án 10 có thân nhân { t.MANV | t NHANVIEN { t.TENNV | t NHANVIEN ( s PHONGBAN ( s.TENPHG ‘Nghien cuu’ s PHANCONG (t.MANV s.MA_NVIEN) s.MAPHG t.PHG ) } u THANNHAN (t.MANV u.MA_NVIEN)) } Q(s) Khoa CNTT – Đại học Sài Gòn 11 Khoa CNTT – Đại học Sài Gịn 12 Ví dụ Ví dụ Cho biết tên nhân viên (TENNV) vừa tham gia làm đề Cho biết tên nhân viên (TENNV) tham gia làm đề án án vừa có thân nhân mà khơng có thân nhân { t.TENNV | t NHANVIEN ( { t.TENNV | t NHANVIEN s PHANCONG (t.MANV s.MA_NVIEN) s PHANCONG (t.MANV s.MA_NVIEN) u THANNHAN (t.MANV u.MA_NVIEN)) } u THANNHAN (t.MANV u.MA_NVIEN) } Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gịn 13 14 Ví dụ Ví dụ Với đề án ‘TP HCM’ cho biết mã đề án, mã phịng Tìm nhân viên (MA_NVIEN) tham gia vào tất đề án – Cấu trúc “với mọi” phép toán logic ban chủ trì trưởng phịng t R (Q(t)) { s.MADA, s.PHONG, t.TENNV | s DEAN t NHANVIEN s.DDIEM_DA ‘TP HCM’ Q với t thuộc quan hệ R u PHONGBAN (s.PHONG u.MAPHG { t.MANV, t.HONV, t.TENNV | t NHANVIEN u.TRPHG t.MANV) } s DEAN ( u PHANCONG ( u.SODA s.MADA t.MANV u.MA_NVIEN )) } Khoa CNTT – Đại học Sài Gòn 15 Khoa CNTT – Đại học Sài Gòn 16 Định nghĩa hình thức Ví dụ Tìm nhân viên (MANV, HONV, TENNV) tham gia vào Một công thức truy vấn tổng quát có dạng tất đề án phòng số phụ trách { t1.Ai, t2.Aj, …tn.Ak | P(t1, t2, …, tn) } – Cấu trúc “kéo theo” phép tính logic PQ – t1, t2, …, tn biến Nếu P Q – Ai, Aj, …, Ak thuộc tính t tương ứng { t.MANV, t.HONV, t.TENNV | t NHANVIEN – P công thức s DEAN ( • P hình thành từ công thức nguyên tố s.PHONG = ( u PHANCONG ( u.SODA s.MADA t.MANV u.MA_NVIEN ))) } Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gòn 17 Biến 18 Công thức nguyên tố Biến tự (free variable) (i) { t | t NHANVIEN t.LUONG > 30000 } tR – t biến – R quan hệ t NHANVIEN t biến tự (ii) t.A s.B – A thuộc tính biến t t.MANV = s.MANV – B thuộc tính biến s – phép so sánh , , , , , (iii) t.A c – c số s.LUONG > 30000 – A thuộc tính biến t – phép so sánh , , , , , Biến kết buộc (bound variable) { t | t NHANVIEN s PHONGBAN (s.MAPHG t.PHG) } Biến tự Biến kết buộc Khoa CNTT – Đại học Sài Gòn 19 Khoa CNTT – Đại học Sài Gịn 20 Cơng thức ngun tố Cơng thức nguyên tố Mỗi công thức nguyên tố mang giá trị ĐÚNG SAI Công thức (ii) (iii) – Chân trị tùy thuộc vào việc thay giá trị thật – Gọi chân trị công thức ngun tố vào vị trí biến Cơng thức (i) R – Chân trị ĐÚNG t thuộc R – Chân trị SAI t không thuộc R R A B C 10 20 t1 = t2 = A B 10 20 C 1 Nếu t Thì t.B > có chân trị ĐÚNG (10 > 5) t1 R có chân trị ĐÚNG t2 R có chân trị SAI Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gòn 21 Qui tắc Qui tắc (1) Mọi công thức nguyên tố cơng thức (4) Nếu P(t) cơng thức 22 – t R (P(t)) công thức (2) Nếu P cơng thức • Chân trị ĐÚNG P(t) ĐÚNG với t R – P cơng thức • Chân trị SAI có làm cho P(t) SAI – (P) công thức (3) Nếu P1 P2 công thức – t R (P(t)) cơng thức – P1 P2 cơng thức • Chân trị ĐÚNG có làm cho P(t) ĐÚNG – P1 P2 cơng thức • Chân trị SAI P(t) SAI với t R – P1 P2 công thức Khoa CNTT – Đại học Sài Gòn 23 Khoa CNTT – Đại học Sài Gòn 24 Qui tắc Một số biến đổi (5) Nếu P cơng thức ngun tố (i) P1 P2 = (P1 P2) – Các biến t P biến tự (ii) tR (P(t)) = tR (P(t)) (6) Công thức P=P1P2 , P=P1P2 , P=P1P2 (iii) tR (P(t)) = tR (P(t)) – Sự xuất biến t P tự hay kết buộc phụ thuộc vào việc tự hay kết buộc P1, (iv) P Q = P Q P2 Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gịn 25 26 Cơng thức an tồn Cơng thức an tồn Ví dụ Xét cơng thức { t | t NHANVIEN t.LUONG > 30000 } { t | (t NHANVIEN) } –Dom(t NHANVIEN t.LUONG > 30000) – Có nhiều t khơng thuộc quan hệ NHANVIEN – Thậm chí khơng có CSDL – Kết trả không xác định –Là tập giá trị • Có giá trị 30000 thuộc tính LUONG Một cơng thức P gọi an toàn giá trị kết lấy từ miền giá trị P • Và giá trị khác thuộc tính cịn lại –Cơng thức an toàn – Dom(P) – Tập giá trị đề cập P Khoa CNTT – Đại học Sài Gòn 27 Khoa CNTT – Đại học Sài Gịn 28 Phép tính quan hệ miền Ví dụ Biểu thức phép tính quan hệ miền có dạng Cho biết mã tên nhân viên có lương 30000 { x1, x2, …, xn | P(x1, x2, …, xn) } { r, s | x ( – x1, x2, …, xn biến miền • Biến nhận giá trị miền giá trị thuộc tính NHANVIEN x > 30000 ) } – P công thức theo x1, x2, …, xn • P hình thành từ công thức nguyên tố – Kết trả tập giá trị x1, x2, …, xn cho giá trị thay cho xi P Khoa CNTT – Đại học Sài Gịn Khoa CNTT – Đại học Sài Gịn 29 Ví dụ Ví dụ 10 Cho biết nhân viên (MANV) làm việc phòng ‘Nghien Cho biết nhân viên (MANV, HONV, TENNV) khơng có cuu’ thân nhân { s | z ( 30 { p, r, s | s ( NHANVIEN NHANVIEN a, b ( PHONGBAN a ( THANNHAN a = s )) } a = ‘Nghien cuu’ b = z )) } Khoa CNTT – Đại học Sài Gòn 31 Khoa CNTT – Đại học Sài Gòn 32 Công thức nguyên tố (i) Nhận xét R Một công thức nguyên tố mang giá trị ĐÚNG SAI với – xi biến miền – R quan hệ có n thuộc tính (ii) tập giá trị cụ thể tương ứng với biến miền – Gọi chân trị công thức nguyên tố xy – x, y biến miền – Miền giá trị x y phải giống – phép so sánh , , , , , (iii) Một số qui tắc biến đổi tương tự với phép tính quan hệ xc – c số – x biến miền – phép so sánh , , , , , Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gòn 33 Cơng thức an tồn Cơng thức an tồn Xét cơng thức Xét công thức { p, r, s | ( NHANVIEN) } 34 { x | y ( R) z ( R P(x, z)) } – Các giá trị kết trả không thuộc miền giá Công thức trị biểu thức Công thức – R quan hệ có tập giá trị hữu hạn – Cơng thức khơng an tồn – Cũng có tập hữu hạn giá trị không thuộc R – Công thức 1: xem xét giá trị R – Công thức 2: kiểm tra tập giá trị hữu hạn z Khoa CNTT – Đại học Sài Gòn 35 Khoa CNTT – Đại học Sài Gịn 36 Cơng thức an tồn Biểu thức { x1, x2, …, xn | P(x1, x2, …, xn) } gọi an toàn nếu: Thank you! – Những giá trị xuất biểu thức phải thuộc miền giá trị P – Vị từ : biểu thức x (Q(x)) xác định giá trị x thuộc dom(Q) làm cho Q(x) – Vị từ : biểu thức x (Q(x)) Q(x) với giá trị x thuộc dom(Q) Khoa CNTT – Đại học Sài Gòn 37 10 ... cơng thức (2) Nếu P cơng thức • Chân trị ĐÚNG P(t) ĐÚNG với t R – P cơng thức • Chân trị SAI có làm cho P(t) SAI – (P) công thức (3) Nếu P1 P2 cơng thức – t R (P(t)) công thức – P1 P2 cơng... P(t) ĐÚNG – P1 P2 cơng thức • Chân trị SAI P(t) SAI với t R – P1 P2 cơng thức Khoa CNTT – Đại học Sài Gịn 23 Khoa CNTT – Đại học Sài Gòn 24 Qui tắc Một số biến đổi (5) Nếu P cơng thức ngun tố... Q = P Q P2 Khoa CNTT – Đại học Sài Gòn Khoa CNTT – Đại học Sài Gịn 25 26 Cơng thức an tồn Cơng thức an tồn Ví dụ Xét cơng thức { t | t NHANVIEN t.LUONG > 30000 } { t | (t NHANVIEN)