CHƯƠNG Phép tính quan hệ (Ngơn ngữ tân từ) Bài giảng mơn Cơ sở liệu © Bộ mơn Hệ Thống Thông Tin - Khoa Công Nghệ Thông Tin - Trường Đại học Khoa học Tự nhiên Nội dung ▪ Giới thiệu ▪ Nhắc lại lý thuyết logic ▪ Phép tính quan hệ - Tuple Relational Calculus (TRC) ▪ Phép tính quan hệ miền - Domain Relational Calculus (DRC) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN Nội dung ▪ Giới thiệu ▪ Nhắc lại lý thuyết logic ▪ Phép tính quan hệ ▪ Phép tính quan hệ miền © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN Giới thiệu (tt) ▪ Ngôn ngữ truy vấn hình thức dựa lý thuyết logic Codd đề nghị năm 1972 ▪ Sử dụng biểu thức logic để định nghĩa hình thức kết câu truy vấn - Dựa lý thuyết logic - Phi thủ tục - Rút trích “cái gì” “làm nào” ▪ Khả diễn đạt tương đương ĐSQH © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN Giới thiệu (tt) ▪ Phân loại - Phép tính quan hệ ⚫ Biến thiên quan hệ ⚫ SQL (Structured Query Language) - Phép tính quan hệ miền ⚫ Biến thiên thành phần miền giá trị ⚫ QBE (Query By Example) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN Nội dung ▪ Giới thiệu ▪ Nhắc lại lý thuyết logic ▪ Phép tính quan hệ ▪ Phép tính quan hệ miền © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN Nhắc lại lý thuyết logic ▪ Biểu thức logic : phát biểu ln có giá trị “đúng” hay “sai” - Bây tháng - > (phát biểu sai) ▪ Các khái niệm : - Biến : đại lượng biến thiên x, y, z, … Phép toán logic : phủ định, : kéo theo, : và, : Lượng từ : tồn tại, : với Công thức : biểu thức xây dựng dựa biểu thức logic © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN Nhắc lại lý thuyết logic ▪ Một số ví dụ 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 Nội dung ▪ Giới thiệu ▪ Nhắc lại lý thuyết logic ▪ Phép tính quan hệ ▪ Phép tính quan hệ miền © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN Phép tính quan hệ ▪ Biểu thức phép tính quan hệ có dạng { t.A | P(t) } - t biến ⚫ Có giá trị quan hệ CSDL ⚫ t.A giá trị t thuộc tính A - P cơng thức có liên quan đến t ⚫ P(t) có giá trị ĐÚNG SAI phụ thuộc vào t - Kết trả tập t cho P(t) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 10 Ví dụ ▪ Tìm giáo viên có lương 2000 { t | GIAOVIEN (t) t.LUONG > 2000 } P(t) Q(t) - Tìm t thuộc quan hệ giáo viên thuộc tính lương có giá trị 2000 - Kết : t thỏa mãn P(t) Q(t) - GIAOVIEN(t) ⚫ Nếu t quan hệ GIAOVIEN - t.LUONG > 2000 ⚫ Nếu thuộc tính LUONG t có giá trị 2000 © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 11 Ví dụ ▪ Tìm mã họ tên giáo viên có lương 2000 { t.MAGV, t.HOTEN | GIAOVIEN (t) t.LUONG > 2000 } P(t) - Tập MAGV HOTEN t cho t thể GIAOVIEN t có giá trị lớn 2000 thuộc tính LUONG - Kết : - Tìm t thuộc GIAOVIEN có thuộc tính lương lớn 2000 - Lấy giá trị thuộc tính MAGV HOTEN © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 12 Ví dụ ▪ Cho biết giáo viên (MAGV) làm việc môn ‘Hệ thống thông tin’ - Lấy t thuộc GIAOVIEN - So sánh t với s để tìm giáo viên làm việc môn ‘Hệ thống thông tin’ - Lượng từ “tồn tại” phép toán logic: (t)(P(t)) Tồn t cho biểu thức P(t) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 13 Ví dụ ▪ Cho biết giáo viên (MAGV) làm việc 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 Nguyễn Hoài An HTTT MABM TENBM Trần Trà Hương MMT HTTT Hệ thống thông tin MAGV Nguyễn Nam Sơn CNPM CNPM Công nghệ phần mềm HTTT MMT Mạng máy tính 4 Lý Hồng Hà © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 14 Ví dụ ▪ Cho biet ten cac giao vien (HOTEN) tham gia đè tài trưởng môn { t.HOTEN | GIAOVIEN(t) ( (s)(THAMGIADT(s) t.MAGV = s.MAGV) (u)(BOMON(u) t.MAGV = u.TRUONGBM)) } BOMON THAMGIADT GIAOVIEN MAGV HOTEN MAGV MADT MABM TRUONGBM t1 Nguyễn Hoài An 1 HTTT t2 Trần Trà Hương CNPM MMT null t3 Nguyễn Nam Sơn t4 Lý Hồng Hà © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 15 Ví dụ ▪ Cho biet ten cac giao vien (HOTEN) vưa khong 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)) } DETAI THAMGIADT GIAOVIEN HOTEN MAGV MADT MADT GVCNDT Nguyễn Hoài An 1 1 Trần Trà Hương 2 null MAGV Nguyễn Nam Sơn Lý Hoàng Hà © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 16 Ví dụ ▪ Với môn khoa CNTT, cho biết họ tên giáo viên trưởng môn { s.MABM, t.HOTEN | BOMON(s) GIAOVIEN(t) s.MAKHOA = ‘CNTT’ s.TRUONGBM = t.MAGV } GIAOVIEN BOMON MABM MAKHOA TRUONGBM MAGV HOTEN MABM HTTT CNTT 1 Nguyễn Hoài An HTTT Trần Trà Hương MMT CNPM CNTT MMT CNTT null Nguyễn Nam Sơn CNPM Lý Hoàng Hà CNPM MABM HOTEN HTTT Nguyễn Hồi An CNPM Lý Hồng Hà © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 17 Ví dụ ▪ Cho biết tên giáo viên nữ tên khoa quản lý giáo viên {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 Ví dụ ▪ Tìm giáo viên (MAGV, HOTEN) tham gia vào tất đề tài - Cấu trúc “với mọi” phép toán logic (t) (P(t)) Mọi t phải làm cho biểu thức P © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 19 Ví dụ (tt) ▪ Tìm giáo viên (MAGV, HOTEN) tham gia vào tất đề tài { t.MAGV, t.HOTEN | GIAOVIEN(t) (s)(DETAI(s) (u)(THAMGIADT(u) u.MADT = s.MADT GIAOVIEN MAGV t1 t2 t3 t4 t.MAGV = u.MAGV))} THAMGIADT DETAI HOTEN MADT MAGV MADT … u1 1 2 TENDT Nguyễn Hoài An s1 Trần Trà Hương s2 … u2 Nguyễn Nam Sơn s3 … u3 u4 u5 4 Lý Hồng Hà © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 20 10 Ví dụ ▪ Tìm giáo viên (MAGV, HOTEN) tham gia vào tất đề tài giáo viên mã số làm chủ nhiệm - Cấu trúc “kéo theo” phép tính logic PQ Nếu P Q © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 21 Ví dụ (tt) ▪ Tìm giáo viên (MAGV, HOTEN) tham gia vào tất đề tài giáo viên mã số 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 11 GIAOVIEN MAGV t1 t2 t3 t4 HOTEN MAGV MADT u1 1 u2 3 u3 null u4 u5 4 MADT Nguyễn Hoài An s1 Trần Trà Hương s2 Nguyễn Nam Sơn s3 Lý Hoàng Hà s4 s5 THAMGIADT DETAI GVCNDT { t.MAGV, t.HOTEN | GIAOVIEN(t) (s)((DETAI(s) s.GVCNDT = 2) (u(THAMGIADT(u) MAGV u.MADT = s.MADT t.MAGV = u.MAGV ))) } © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 23 Định nghĩa hình thức ▪ Một cơng thức truy vấn tổng qt có dạng { t1.Ai, t2.Aj, …tn.Ak | P(t1, t2, …, tn) } - t1, t2, …, tn la cac biến - Ai, Aj, …, Ak la cac thuọ c tinh cac bọ t tương ưng - P công thức ⚫ P cơng thức ngun tố ⚫ Hoặc hình thành từ cơng thức ngun tố © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 24 12 Biến ▪ Biến tự (free variable) { t | GIAOVIEN(t) t.LUONG > 2000 } t biến tự ▪ Biến kết buộc (bound variable) { t | GIAOVIEN(t) (s)(BOMON(s) s.MABM = t.MABM s.TENBM = “Hệ thống thông tin” ) } Bien tự Bien ket buọ c © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 25 Công thức nguyên tố ▪ (i) R(t) - t biến - R quan hệ GIAOVIEN (t) ▪ (ii) t.A s.B - A thuộc tính biến t - B thuộc tính biến s - phép so sánh , , , , , = ▪ (iii) t.MAGV = s.MAGV t.A c - c số - A thuộc tính biến t - phép so sánh , , , , , = © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN s.LUONG > 30000 26 13 Công thức nguyên tố (tt) ▪ Mỗi công thức nguyên tố mang giá trị ĐÚNG SAI - Gọi chân trị công thức nguyên tố ▪ Công thức (i) tR - 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 = t1 R có chân trị ĐÚNG t2 R có chân trị SAI © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 27 Công thức nguyên tố (tt) ▪ Công thức (ii) (iii) t.A s.B t.A c - Chân trị tùy thuộc vào việc thay giá trị thật vào vị trí biến R A B C 10 20 Nếu t Thì t.B > có chân trị ĐÚNG (10 > 5) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 28 14 Công thức ▪ Được hình thành từ cơng thức ngun tố thơng qua phép toán logic lượng từ - Phủ định P(t) Toán tử P(t) Q(t) Toán tử P(t) Q(t) Cấu trúc tồn (t)(P(t)) Cấu trúc với (t)(P(t)) Phép toán kéo theo : P(t) Q(t) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 29 Qui tắc ▪ (1) Mọi công thức nguyên tố công thức ▪ (2) Nếu P cơng thức - (P) cơng thức - (P) công thức ▪ (3) Nếu P1 P2 cơng thức - P1 P2 công thức - P1 P2 công thức - P1 P2 cơng thức © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 30 15 Qui tắc (tt) ▪ (4) Nếu P(t) công thức - t (P(t)) cơng thức ⚫ Chân trị ĐÚNG P(t) ĐÚNG với t ⚫ Chân trị SAI có t làm cho P(t) SAI - t (P(t)) công thức ⚫ Chân trị ĐÚNG có làm cho P(t) ĐÚNG ⚫ Chân trị SAI P(t) SAI với t © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 31 Qui tắc (tt) ▪ (5) Nếu P cơng thức ngun tố - Các biến t P biến tự ▪ (6) Công thức P=P1P2 , P=P1P2 , P=P1P2 - 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, P2 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 32 16 Một số biến đổi ▪ (i) P1 P2 = (P1 P2) ▪ (ii) t (R(t) (P(t)) = t ( R(t) P(t)) ▪ (iii) t (R(t) (P(t)) = t (R(t) (P(t)) ▪ (iv) P Q = P Q © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 33 Cơng thức an tồn ▪ Xét cơng thức { t | (GIAOVIEN(t)) } - Có nhiều t khơng thuộc quan hệ GIAOVIEN - Thậm chí khơng có CSDL - Kết trả khơng xác định ▪ Một cơng thức P gọi an tồn giá trị kết lấy từ miền giá trị P - Dom(P) - Tập giá trị đề cập P © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 34 17 Cơng thức an tồn (tt) ▪ Ví dụ { t | GIAOVIEN(t) t.LUONG > 30000 } - Dom(GIAOVIEN(t) t.LUONG > 30000) - Là tập giá trị ⚫ Có giá trị 3000 thuộc tính LUONG ⚫ Và giá trị khác thuộc tính cịn lại - Cơng thức an tồn © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 35 Nội dung ▪ Giới thiệu ▪ Nhắc lại lý thuyết logic ▪ Phép tính quan hệ ▪ Phép tính quan hệ miền © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 36 18 Phép tính quan hệ miền ▪ Biểu thức phép tính quan hệ miền có dạng { x1, x2, …, xn | P(x1, x2, …, xn) } - x1, x2, …, xn biến miền ⚫ Biến nhận giá trị miền giá trị thuộc tính - 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 © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 37 Ví dụ ▪ Cho biết mã tên giáo viên có lương 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 19 Ví dụ ▪ Cho biết giáo viên (MAGV) làm việc môn ‘Hệ thống thông tin’ {p | (m)(GIAOVIEN(p, q, r, s, t, u, v, x, y, z,m) (a)(b)(BOMON(a, b, c, d, e, f, j) b = ‘Hệ thống thông tin’ a = m )) } GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, SONHA, DUONG, QUAN, THANHPHO, GVQLCM, MABM) BOMON(MABM, TENBM, PHONG, DIENTHOAI, TRUONGBM, MAKHOA, NGAYNHANCHUC) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 39 Ví dụ ▪ Cho biết giáo viên (MAGV, HOTEN) khơng có tham gia đề tài {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 20 Công thức nguyên tố ▪ (i) R(x1, x2, …, xn) - xi biến miền - R quan hệ có n thuộc tính ▪ (ii) xy - x, y biến miền - Miền giá trị x y phải giống - phép so sánh , , , , , = ▪ (iii) xc - c số - x biến miền - phép so sánh , , , , , = © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 41 Nhận xét ▪ Một công thức nguyên tố mang giá trị ĐÚNG SAI với 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ố ▪ Một số qui tắc biến đổi tương tự với phép tính quan hệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 42 21 Cơng thức an tồn ▪ Xét cơng thức { p, r, s | GIAOVIEN(p, q, r, s, t, u, v, x, y, z)} - Các giá trị kết trả không thuộc miền giá trị biểu thức - Cơng thức khơng an tồn © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 43 Cơng thức an tồn (tt) ▪ Xét cơng thức { x | y (R(x, y)) z ( R(x, z) P(x, z)) } Công thức - Công thức R quan hệ có tập giá trị hữu hạ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 © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 44 22 Cơng thức an tồn (tt) ▪ Cho biểu thức { x1, x2, …, xn | P(x1, x2, …, xn) } ▪ Biểu thức gọi an toàn nếu: - Những giá trị xuất biểu thức phải thuộc miền giá trị P - Lượng từ : biểu thức x (Q(x)) xác định giá trị x thuộc dom(Q) làm cho Q(x) - Lượng từ : biểu thức x (Q(x)) Q(x) với giá trị x thuộc dom(Q) © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 45 © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 46 23 ... HTTT - Khoa CNTT - Trường ĐH KHTN 29 Qui tắc ▪ (1) Mọi công thức nguyên tố công thức ▪ (2) Nếu P cơng thức - (P) công thức - (P) công thức ▪ (3) Nếu P1 P2 cơng thức - P1 P2 công thức - P1... xy - x, y biến miền - Miền giá trị x y phải giống - phép so sánh , , , , , = ▪ (iii) xc - c số - x biến miền - phép so sánh , , , , , = © Bộ mơn HTTT - Khoa CNTT - Trường... Q © Bộ mơn HTTT - Khoa CNTT - Trường ĐH KHTN 33 Cơng thức an tồn ▪ Xét cơng thức { t | (GIAOVIEN(t)) } - Có nhiều t không thuộc quan hệ GIAOVIEN - Thậm chí khơng có CSDL - Kết trả không xác