Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
2,38 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM - NGÔ VIỆT TRƯỜNG PHỤTHUỘCLOGICTRONGCƠSỞDỮLIỆU LUẬN VĂN THẠC SĨ Chuyên ngành: CÔNG NGHỆ THÔNG TIN Mã số ngành: 60480201 TP HỒ CHÍ MINH, THÁNG NĂM 2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM - NGÔ VIỆT TRƯỜNG PHỤTHUỘCLOGICTRONGCƠSỞDỮLIỆU LUẬN VĂN THẠC SĨ Chuyên ngành: CÔNG NGHỆ THÔNG TIN Mã số ngành: 60480201 CÁN BỘ HƯỚNG DẪN KHOA HỌC: PGS TSKH NGUYỄN XUÂN HUY TP HỒ CHÍ MINH, THÁNG NĂM 2014 LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu, kết nêu Luận văn trung thực chưa công bố công trình khác Tôi xin cam đoan giúp đỡ cho việc thực Luận văn cảm ơn thông tin trích dẫn Luận văn rõ nguồn gốc Học viên thực Luận văn (Ký ghi rõ họ tên) NGÔ VIỆT TRƯỜNG LỜI CẢM ƠN Trong suốt quá trình học tập hoàn thành luận văn này, đã nhận được sư hướng dẫn, giúp đỡ quý báu của quý thầy cô, gia đình, bạn bè đồng nghiệp Với lòng kính trọng biết ơn sâu sắc xin được bày tỏ lời cảm ơn chân thành tới: Thầy hướng dẫn Phó giáo sư - Tiến sĩ Khoa học Nguyễn Xuân Huy, thầy đã truyền đạt kiến thức bổ ích cho quá trình học tập hướng dẫn hết sức tận tình quá trình hoàn thành luận văn Khoa Công Nghệ Thông Tin, Phòng quản lý khoa học - Đào tạo sau đại học trường Đại Học Công Nghệ Thành Phố Hồ Chí Minh đã tạo điều kiện thuận lợi giúp đỡ quá trình học tập hoàn thành luận văn Toàn thể quý thầy cô đã nhiệt tình giảng dạy truyền đạt kiến thức bổ ích cho suốt khóa học vừa qua Cuối xin cảm ơn đến tất cả người thân gia đình, bạn bè đồng nghiệp đã giúp đỡ suối quá trình học tập thưc luận văn NGÔ VIỆT TRƯỜNG MỤC LỤC Danh mục kí hiệu, từ viết tắt Danh mục hình minh họa Mở đầu Chương Tổng quan lý thuyết sởliệu quan hệ 1.1 Các khái niệm 1.1.1 Thuộc tính 1.1.2 Quan hệ n 1.1.3 Bộ 1.1.4 Lược đồ quan hệ 1.1.5 Khóa quan hệ .10 1.2 Phụthuộc hàm .12 1.2.1 Khái niệm phụthuộc hàm 12 1.2.2 Định nghĩa .12 1.2.3 Hệ luật dẫn Armstrong .13 1.2.4 Thuật toán tìm bao đóng tập thuộc tính .15 1.2.5 Bài toán thành viên 16 1.2.6 Phủ tối thiểu tập phụthuộc hàm 16 1.3 Khóa 17 1.3.1 Định nghĩa .17 1.3.2 Thuật toán tìm khóa 18 1.4 Kết chương 19 Chương Một số khái niệm sởphụthuộc Boole dương 20 2.1 Các công thức Boole 20 2.2 Phụthuộc Boole dương .23 2.2.1 Công thức Boole dương 23 2.2.2 Bảng chân lý quan hệ 24 2.2.3 Phụthuộc Boole dương 25 2.2.4 Một số tính chất phụthuộc Boole dương 25 2.2.5 Định lý tương đương 27 2.3 Bài toán suy dẫn cho lớp PTBD 28 2.4 Biểu diễn PTBD dạng hội suy dẫn 31 2.4.1 Công thức suy dẫn 31 2.4.2 Bài toán biểu diễn PTBD dạng hội suy dẫn .32 2.4.3 Tập TR PTBD .37 2.4.4 Xây dựng tập PTBD từ quan hệ R cho trước 40 2.5 Kết chương 41 Chương Ứng dụng lớp phụthuộc Boole dương giải số lớp toán 42 3.1 Bài toán thành viên 42 3.1.1 Phương pháp chứng minh công thức 45 3.1.2 Chuẩn hóa dạng chuẩn hội (CNF) 47 3.1.3 Phương pháp chứng minh công thức suy dẫn phép hợp giải 48 3.2 Bài toán bao đóng 48 3.3 Một số thí dụ minh họa 49 3.4 Môi trường xây dựng chương trình .51 3.4.1 Phần cài đặt chương trình 51 3.4.2 Dữliệu áp dụng cho chương trình 51 3.5 Kết đạt 52 3.9 Kết chương 52 Kết luận kiến nghị hướng phát triển .53 Tài liệu tham khảo .54 Phụ lục i DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT CSDL Cơsởliệu CTB Công thức Boole CTBD Công thức Boole dương CTSD Công thức suy dẫn HSD Hội suy dẫn I(U) Tập công thức suy dẫn tập biến U L(U) Tập CTB xây dựng tập biến U P(U) Tập toàn công thức dương U PTBD Phụthuộc Boole dương PTBDTQ Phụthuộc Boole dương tổng quát PTH Phụthuộc hàm R(U) Quan hệ R với tập thuộc tính U REL(U) Tập toàn thể quan hệ tập thuộc tính U REL_p(U) Tập toàn thể quan hệ có không p tập thuộc tính U, p ≥ SAT(F) Tập toàn thể quan hệ U thỏa tập ràng buộc F SAT_p(F) Tập toàn thể quan hệ có không p U thỏa tập ràng buộc F, p ≥ SubSet(U) Tập tập U ⇔ Khi ⇒ suy ra, kéo theo ├ suy dẫn theo quan hệ ╞ suy dẫn logic ├2 suy dẫn theo quan hệ có không ii DANH MỤC CÁC HÌNH MINH HOẠ Hình 1.1 Thể quan hệ khoa Hình 1.2 Thể quan hệ lophoc Hình 2.1 Bảng chân lý Tf,Tg 22 Hình 2.2 Bảng trị Vf,Vg .22 Hình 2.3 Bảng chân lý TG,Th .23 Hình 2.4 Quan hệ R(A,B,C) 24 Hình 2.5 Bảng chân lý TR 24 Hình 3.1 Các kí hiệu phép toán 42 Hình phụ lục Gọi thủ tục go1 54 Hình phụ lục Gọi thủ tục go2 55 Hình phụ lục Gọi thủ tục go3 55 Hình phụ lục Gọi thủ tục go 56 Hình phụ lục Gọi tiếp thủ tục go 56 Hình phụ lục Gọi tiếp thủ tục go 57 Hình phụ lục Gọi tiếp thủ tục go 57 Hình phụ lục Gọi tiếp thủ tục go 58 Hình phụ lục Tính trị a + b .58 Hình phụ lục 10 Tính trị a & b 59 Hình phụ lục 11 Tính trị a ⇒ b 59 Hình phụ lục 12 Tính trị a ^ b 60 Hình phụ lục 13 Tính trị a ⇔ b 60 iii MỞ ĐẦU Với phát triển ngày đại khoa học kĩ thuật giới, song bên cạnh phát triển xã hội người, mối liên quan công nghệ sống, mối quan hệ ngày đa dạng, phát triển với số lượng lớn rộng việc xử lý khối lượng liệu lớn vấn đề đáng nghiên cứu để đáp ứng phù hợp với phát triển quan hệ trên, nhằm giải xác hơn, phù hợp giá trị thực tiển, mối liên kết ràng buộc thực tiễn sống Việc tổ chức lưu trữ, quản lý khai thác liệu ta dùng nhiều mô hình tổ chức liệu khác từ mô hình truyền thống mô hình mạng, mô hình phân cấp, mô hình quan hệ đến mô hình đại, dùng nhiều mô hình sởliệu phân tán, mô hình sởliệu hướng đối tượng … Trong mô hình liệu, việc nghiên cứu lý thuyết ứng dụng ràng buộc liệu hay gọi phụthuộcliệu yêu cầu cấp thiết đặt Phụthuộcliệu Codd [13] tác giả mô hình liệu quan hệ đặt móng từ năm 1970 với khái niệm phụthuộc hàm Tiếp sau R Fagin Zaniolo đưa phụthuộc đa trị vào năm 1976 Cùng với phát triển lớp phụthuộc hàm, sốphụthuộcliệu bậc cao hệ tiên đề cho lớp phụthuộc - tức đặt móng sở lý thuyết phụthuộc liệu, giới thiệu sau phụthuộc đối ngẫu, phụthuộc mạnh, phụthuộc yếu J Demetrovics Gy Gyepesy đề xuất năm 1981, phụthuộc Boole dương Berman đề xuất năm 1985, 1987, phụthuộc Boole dương tổng quát Nguyễn Xuân Huy, Lê Thị Thanh [6] phát triển năm 1992, … Gần đây, sở lớp phụthuộc hàm phụthuộcliệu truyền thống cósố công trình nghiên cứu nhiều nhóm phụthuộcliệu mở rộng cho nhiều loại liệu khác Với liệu xác định, năm 2004, Ilya đồng nghiệp nghiên cứu phụthuộc hàm nhẹ (Soft Functional Dependencies – Soft FD) iv phụthuộc hàm mà giá trị X xác định giá trị Y với độ không chắn định hay phụthuộc hàm có điều kiện (Conditional functional dependencies CFDs) Bohannon [8] đồng nghiệp đề xuất năm 2007 để làm liệu Với liệu mờ, phụthuộc hàm đối sánh (Matching dependencies - MDs), phụthuộc hàm độ đo (Metric Functional Dependencies - MFD) Fan nghiên cứu, đề xuất năm 2008,2009 Hay phụthuộc (Sequential dependencies - SD) Golab đồng nghiệp đưa để khái quát liệu theo thứ tự biểu diễn mối quan hệ thuộc tính có thứ tự Gần đây, đầu năm 2011 nhóm nghiên cứu Song S Chen L [12] đề xuất phụthuộc sai khác (Differential Dependencies - DDs) để giải số vấn đề đảm bảo tính toàn vẹn, tối ưu truy vấn tốt so với phụthuộc hàm Lớp PTH hầu hết phụthuộc bậc cao phát triển sau phụthuộc đối ngẫu, phụthuộc mạnh, phụthuộc yếu, phụthuộc hàm nhẹ, phụthuộc hàm có điều kiện … dựa quan hệ đẳng thức so sánh trị thuộc tính xuất Trong thực tế, so sánh theo đẳng thức tồn loại hình so sánh khác Ta xét số thí dụ sau: Trong CSDL quản lý giao dịch thẻ tín dụng, số thẻ giao dịch xác định vị trí giao dịch Để xác định giao dịch có gian lận hay không ta kết hợp điều kiện số thẻ với vị trí để xác định thời gian giao dịch, thí dụ thẻ tín dụng giao dịch hai vị trí cách 40km (ở hai thành phố khác nhau), thời gian truyền sai lệch phải lớn 20 phút.Nếu hai giao dịch không thỏa điều kiện hai phiên giao dịch gian lận Như vậy, ta thấy phụthuộc [sothe (=0) ∧ vitri (≥40)] → [thoigian(≥20)] có ngữ nghĩa rộng PTH sothe → vitri Trongsố luận, độ cao số tự nhiên n, H(n) tổng chữ sốsố đó, thí dụ, H(2006) = H(125) = Nếu ta phân loại số theo độ cao hai số khác thuộc lớp Như phụthuộc H(N)→CLASS có ngữ nghĩa rộng PTH N → CLASS l 3.1.3 Phương pháp chứng minh công thức suy dẫn phép hợp giải Cho f, g công thức Boole dương Chứng minh f => g Xét h: (f => g)’ - Bước 1: Đưa h dạng CNF = tích tổng: h = h1.h2…hk - Bước 2: Thay nhân tử dạng (a+b) (a’+c) (b+c) - Bước 3: Lặp đến xảy tình sau: + Gặp 0: Kết luận f => g + Không gặp 0: Kết luận f không suy g 3.2 Bài toán bao đóng Thuật toán Algorithm Closure Format: Closure(X, F) Input: - Tập PTB F U - Tập thuộc tính X của U Output: - Y = X+ = {A ∈ U | X→A ∈ F+} Method Y:=X; for each element A in U\X if member_GPB(F, X→A) then Add A to Y; endif; endfor; return Y; End Closure Thí dụ 3.1 Cho F={a→bc, b→dc} Tính b+? Giải Với tập F cho U=abcd Ta tìm bao đóng X=b sau: Y:={b}; li Lần lượt xét phần tử A ∈ U\X Kiểm tra xem F => (X →A) bổ sung A vào G Sau bước thực với X=b: + Trường hợp A=a: Ta có G={b→a} Kiểm tra F=>G: - Đưa CNF: Đặt H=FG’ Ta có: H=(a’+bc)(b’+dc)ba’ // Do G= b→a nên G’=ba’ H=(a’+b)(a’+c)(b’+d)(b’+c)ba’có dạng CNF - Hợp giải: H=(a’+b)(b’+c)(a’+c)(b’+d)ba’=(a’+c)(b’+d)ba’=(a’+c)da’≠ + Trường hợp A=c: Ta có G={b→c} Kiểm tra F=>G: - Đưa CNF: Đặt H=FG’ Ta có: H=(a’+bc)(b’+dc)bc’ // Do G= b→c nên G’=bc’ H=(a’+b)(a’+c)(b’+d)(b’+c)bc’có dạng CNF - Hợp giải: H=(a’+b)(a’+c)(b’+d)(b’+c)bc’=(a’+b)(a’+c)(b’+d)cc’=0 G:=G∪c={b, c} + Trường hợp A=d: Ta có G={b→d} Kiểm tra F=>G: - Đưa CNF: Đặt H=FG’ Ta có: H=(a’+bc)(b’+dc)bd’ // Do G= b→d nên G’=bd’ H=(a’+b)(a’+c)(b’+d)(b’+c)bd’có dạng CNF - Hợp giải: H=(a’+b)(a’+c)(b’+d)(b’+c)bd’=(a’+b)(a’+c)(b’+c)dd’=0 G:=G∪d={b, c, d} Kết luận: Vậy bao đóng X = b X+ = bcd 3.3 Một số thí dụ minh họa Thí dụ 3.2 Hãy chứng minh: Nếu a=>b, b=>c a=>c (Tc bắc cầu) Gọi f, g công thức sau: lii f = (a=>b)(b=>c) = {a=>b, b=>c}; g = a=>c = {a=>c} Hỏi f => g? Giải X = ((a=>b)&(b=>c))=>(a=>c)? Xét phủ định X: H = [((a=>b)&(b=>c))=>(a=>c)]’ (A) Đưa h CNF H = [((a=>b)&(b=>c))=>(a=>c)]’ = = (a’+b)(b’+c)(a’+c)’ // Vận dụng công thức (x=>y)’ = xy’ (x=>y) = x’+y = (a’+b)(b’+c)ac’ = (a’+b)(b’+c)ac’ // Đây CNF (B) Hợp giải H = (a’+b)(b’+c)ac’ => (a’+c)ac’ // Thay (a’+b)(b’+c) (a’+c) => cc’ // Thay (a’+c)a = (a’+c)(a+0) (c+0) = c => Kết luận: Nếu a=>b, b=>c a=>c (Tc bắc cầu) Thí dụ 3.3 Hãy kiểm tra công thức sau: (a=>b) => (ac=>bc) ? Giải H = (a=>b)(ac=>bc)’ = (a’+b)(ac(bc)’) = (a+b)(b’+c’)ac CNF H => (a+c’)ac => aa = a Sai Kết luận: (a=>b) =/> (ac=>bc) Thí dụ 3.4 Hãy kiểm tra công thức (a=>b) => ((a+c)=>(b+c)) ? Giải H = (a=>b)[(a+c)=>(b+c)]’ = (a’+b)(a+c)(b+c)’ = (a’+b)(a+c)b’c’ CNF H = (a’+b)(a+c)b’c’ =>(b+c)b’c’ => cc’ = Kết luận: Công thức suy dẫn Thí dụ 3.5 Hãy chứng minh công thức sau (((x+a) (y+a’)) =>(x+y)) đúng, liii Giải Với thí dụ này, ta sử dụng phương pháp phản chứng Giả sử X sai, ta có: H = X’ = (x+a)(y+a’)(x+y)’ = (x+a)(y+a’)x’y’ CNF H => (x+y)x’y’ => yy’ = Kết luận: Công thức suy dẫn Thí dụ 3.6 Hãy chứng minh X = a’+1 Giải Vẫn dùng phương pháp phản chứng Giả sử X sai, ta có H = X’ = (a’+1)’ = a0 = Kết luận: Công thức suy dẫn Thí dụ 3.7 Hãy chứng minh công thức X = (ab => c) => (a => (b => c)) Giải Sử dụng phương pháp phản chứng sau: Giả sử X sai, ta có H = X’ = [(ab => c) => (a => (b => c))]’ = (ab=>c)[a=>(b=>c)]’ = = (ab=>c)a(b=>c)’ = ((ab)’+c)abc’ = (a’+b’+c)abc’ CNF H => (b’+c)bc’ => cc’ = Kết luận: Công thức X = (ab => c) => (a => (b => c)) 3.4 Môi trường xây dựng chương trình 3.4.1 Phần cài đặt chương trình Chương trình xây dựng ngôn ngữ Prolog, ngôn ngữ lập trình logic sử dụng phổ biến lĩnh vực trí tuệ nhân tạo Nguyên lý lập trình logic dựa mệnh đề Horn (Horn logic) Nội dung chương trình nhằm giải toán thành viên, tìm khóa tập thuộc tính với liệu công thức Logic F, G 3.4.2 Dữliệu áp dụng cho chương trình Dữliệu sử dụng để chạy chương trình tập thuộc tính phụthuộcLogic F tập thuộc tính phụthuộcLogic G có sẵn, nhập trực tiếp bàn phím phần code chương trình liv Thí dụ 3.8 Giải toán thành viên với phụthuộclogic F G sau: F= (a&b => c) & (~a+b), G = a => c Hỏi F => G? 3.5 Kết đạt Khi thực lệnh gọi thủ tục chương trình giải cách nhanh chóng toán thành viên với phụthuộc Boole F G cho kết rỗng ta kết luận theo thuật toán hợp giải ta kết luận F => G, ngược lại F =/> G Chương trình thực tìm khóa lược đồ quan hệ có tập hợp thuộc tính với phụthuộcLogic F, G cho trước Kết thuật toán cho giá trị tập hợp khóa tìm quan hệ Ta tìm trị cách nhanh chóng cách đưa vào thuộc tính hay hàm, chương trình xuất kết tương ứng thuộc tính hay hàm 3.6 Kết chương Chương trình bày sốsố toán thành viên toán bao đóng, thuật toán phương pháp hợp giải để giải toán thành viên cho phụthuộc Logic, sử dụng thuật toán tìm khóa để giải toán tìm khóa cho lược đồ quan hệ gồm phụthuộcLogic F,G Đồng thời trình bày cách thực hiện, việc đưa liệu kết chương trình ứng dụng viết ngôn ngữ Prolog lv KẾT LUẬN VÀ KIẾN NGHỊ HƯỚNG PHÁT TRIỂN Kết luận Lý thuyết phụthuộcliệu vấn đề nhiều người quan tâm nghiên cứu, phát triển mặt lý thuyết ứng dụng Các nhà nghiên cứu đề xuất nhiều loại phụthuộcliệu khác để đáp ứng yêu cầu thực tế phong phú đa dạng Lớp phụthuộcliệuphụthuộc hàm E F Codd [13] tác giả mô hình sởliệu quan hệ giới thiệu năm 1970 Cùng với phát triển lớp phụthuộc hàm, nhiều lớp phụthuộc khác nghiên cứu, phát triển phụthuộc đối ngẫu, phụthuộc mạnh, phụthuộc yếu, phụthuộc đối sánh, phụthuộc tuần tự, phụthuộc sai khác…và số lớp phụthuộc Boole dương Với mong muốn đóng góp vào phát triển ứng dụng đó, luận văn cố gắng tìm hiểu trình bày số khái niệm lớp phụthuộc Boole dương số vấn đề lớp phụthuộc bao đóng, toán suy dẫn, toán thành viên Kiến nghị hướng phát triển - Nghiên cứu ứng dụng loại phủ cho lớp phụthuộc Boole dương - phủ tự nhiên, phủ tối tiểu Tiếp tục tìm hiểu số lớp phụthuộcliệucó chất phụthuộc Boole dương nghiên cứu gần phụthuộc hàm mềm, phụthuộc hàm có - điều kiện, phụthuộc sai khác… Xây dựng ứng dụng, giải toán thực tế dựa vào lớp phụthuộc Boole dương lvi TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Bùi Đức Minh, Lương Nguyễn Hoàng Hoa (2011), “Hệ sinh cân toán biểu diễn sở hệ sinh ánh xạ đóng”, Chuyên san các công trình nghiên cứu, phát triển ứng dụng CNTT-TT, Tập V-1, Số (25), tr.15-21 [2] Nguyễn Xuân Huy (2006), Các phụthuộclogicsở liệu, Viện KH&CN Việt nam, NXB Thống kê, Hà Nội [3] Nguyễn Xuân Huy, Lê Đức Minh, Vũ Ngọc Loãn (2000), “Các ánh xạ đóng ứng dụng sở liệu”, Tạp chí Tin học Điều khiển học, 16(4), tr.1-6 [4] Nguyễn Xuân Huy, Lê Thị Mỹ Hạnh (2005), “Giàn giao ánh xạ đóng”, Chuyên san các công trình nghiên cứu - triển khai viễn thông công nghệ thông tin, số 14, tr 35-42 [5] Nguyễn Xuân Huy, Lê Thị Mỹ Hạnh (2005), “Thu gọn hệ sinh ánh xạ đóng”, Chuyên san các công trình nghiên cứu - triển khai viễn thông công nghệ thông tin, số 15, tr 53-58 [6] Nguyễn Xuân Huy, Lê Thị Mỹ Hạnh, Lương Nguyễn Hoàng Hoa, Bùi Đức Minh, Nguyễn Đức Vũ (2007), “Thiết kế sởliệu theo tiếp cận dịch chuyển lược đồ quan hệ”, Kỷ yếu Hội thảo Khoa học Quốc gia “Một số vấn đề chọn lọc của Công nghệ thông tin Truyền thông”, Đại Lải, 1415/09/2007, NXB KHTN, tr.499-506 Tài liệu tiếng Anh [7] Armstrong W.W., Delobel C (1980), “Decomposition and Functional Dependencies in Relations” , ACM TODS, 5(4), pp 404-430 [8] Bohannon, P., Fan, W., Geerts, F., Jia, X., and K.ementsietsidis, A (2007), “Conditional functional dependencies for data cleaning”, In ICDE, pp.746755 lvii [9] Cong, G., Fan, W., Geerts, F., Jia, X., and Ma, S (2007), “Improving data quality: Consistency and accuracy”, In VLDB, pp.315-326 [10] Fan, W., Geerts, F., Lakshmanan, L V S., and Xiong, M (2009), “Discovering conditional functional dependencies”, In ICDE, pp 12311234 [11] Luong Nguyen Hoang Hoa (2011), “Some results concerning Generalized Positive Boolean Dependencies in relational database”, Internatinal Journal of Computer Electrical Engineering (IJCEE), vol 3, no 6, pp 779-783 [12] Song, S., and Chen, L (2011), “Differential Dependencies: Reasoning and Discovery”, ACM Trans Datab Syst., vol.9, no 4, Article 39 [13] Codd E F (1970), “A Relational Model of Data for Large Shared Data Banks, CACM 13(6), pp 377-387 PHỤ LỤC (Một số kết chương trình ứng dụng) - Gọi thực lệnh “go1.” để giải toán thành viên - Kích đúp chuột lên file chương trình thanhvien.pl - Màn hình hiển thị sau: Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 6.4.1) Copyright (c) 1990-2013 University of Amsterdam, VU Amsterdam SWI-Prolog comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions Please visit http://www.swi-prolog.org for details For help, use?- help(Topic) or?- apropos(Word) 1?- Tại dấu nhắc ta đánh vào lệnh “go1.” 1?- go1 (a&b=>c)& (~a+b) => a=>c? Given: (a&b=>c) & (~a+b)=> (a=>c) Y = ~ ((a&b=>c) & (~a+b)=> (a=>c)) CNF: (~a+ ~b+c) & (~a+b)& (a& ~c) ToList: [~a+ ~b+c,~a+b,a,~c] List: [[~a,~b,c],[~a,b],[a],[~c]] [] true ! true ?Hình phụ lục 1- Gọi thủ tục go1 - Gọi thực lệnh “go2.” để giải toán thành viên ?- go2 (a=>b)& (b=>c) => a=>c? Given: (a=>b)& (b=>c)=> (a=>c) Y = ~ ((a=>b)& (b=>c)=> (a=>c)) CNF: (~a+b)& (~b+c)& (a& ~c) ToList: [~a+b,~b+c,a,~c] List: [[~a,b],[~b,c],[a],[~c]] [] true ! true Hình phụ lục - Gọi thủ tục go2 - Gọi thực lệnh “go3.” để giải toán thành viên ?- go3 (a=>b+c)& (a&d=>e)& (c+e=>b) => b&e=>a+d? Given: (a=>b+c)& (a&d=>e)& (c+e=>b)=> (b&e=>a+d) Y = ~ ((a=>b+c)& (a&d=>e)& (c+e=>b)=> (b&e=>a+d)) CNF: (~a+ (b+c))& (~a+ ~d+e)& ((~c+b)& (~e+b))& (b&e& (~a& ~d)) ToList: [~a+ (b+c),~a+ ~d+e,~c+b,~e+b,b,e,~a,~d] List: [[~a,b,c],[~a,~d,e],[~c,b],[~e,b],[b],[e],[~a],[~d]] [[b],[e],[~a],[~d],[~a,b],[~a,~d,b]] By val [0,1,0,0,1] false ! true Hình phụ lục 3- Gọi thủ tục go3 - Gọi thực lệnh “go.” để giải toán thành viên ?- go (a ⇒ b)& (b ⇒ c) ⇒ a ⇒ c? Given: (a⇒b)& (b⇒c) ⇒ (a⇒c) Y = ~ ((a⇒b)& (b⇒c) ⇒ (a⇒c)) CNF: (~a+b)& (~b+c)& (a& ~c) ToList: [~a+b,~b+c,a,~c] List: [[~a,b],[~b,c],[a],[~c]] [] true ! Continue [Y|N] ? y Hình phụ lục 4- Gọi thủ tục go - Để tiếp tục thực giải ta nhấn “y.”, kết tiếp tục giải sau: (~a+b)& (~b+c) ⇒ a ⇒ c? Given: (~a+b)& (~b+c) ⇒ (a⇒c) Y = ~ ((~a+b)& (~b+c) ⇒ (a⇒c)) CNF: (~a+b)& (~b+c)& (a& ~c) ToList: [~a+b,~b+c,a,~c] List: [[~a,b],[~b,c],[a],[~c]] [] true ! Continue [Y|N] ? y Hình phụ lục - Gọi tiếp thủ tục go (x+a)& (y+ ~a) ⇒ x+y? Given: (x+a)& (y+ ~a) ⇒ x+y Y = ~ ((x+a)& (y+ ~a) ⇒ (x+y) CNF: (x+a)& (y+ ~a)& (~x& ~y) ToList: [x+a,y+ ~a,~x,~y] List: [[x,a],[y,~a],[~x],[~y]] [] true ! Continue [Y|N] ? y Hình phụ lục 6- Gọi tiếp thủ tục go a+b ⇒ a? Given: a+b ⇒ a Y = ~ (a+b ⇒ a) CNF: (a+b)& ~a ToList: [a+b,~a] List: [[a,b],[~a]] [[b]] By val [0,1] false ! Continue [Y|N] ? y Hình phụ lục 7- Gọi tiếp thủ tục go a&b ⇒ a? Given: a&b ⇒ a Y = ~ (a&b ⇒ a) CNF: a&b& ~a ToList: [a,b,~a] List: [[a],[b],[~a]] [] true ! Continue [Y|N] ? n Bye ! true Hình phụ lục - Gọi tiếp thủ tục go - Khi nhấn “n.” chương trình thoát khỏi thủ tục “go” - Gọi thực lệnh “tt( thuộc tính).” để tính trị cho thuộc tính Thí dụ 3.9 Để tính trị biểu thức a+b ta gọi sau: ?- tt(a+b) [a,b] a+b [0,0] [0,1] [1,0] [1,1] True Hình phụ lục 9- Tính trị a+b Thí dụ 3.10 Để tính trị biểu thức a&b ta gọi sau: ?- tt(a&b) [a,b] a&b [0,0] [0,1] [1,0] [1,1] True Hình phụ lục 10- Tính trị a&b Thí dụ 3.11 Để tính trị biểu thức a ⇒ b ta gọi sau: ?- tt(a ⇒ b) [a,b] a ⇒b [0,0] [0,1] [1,0] [1,1] True Hình phụ lục 11- Tính trị a ⇒ b Thí dụ 3.12 Để tính trị biểu thức a^b ta gọi sau: ?- tt(a ^ b) [a,b] a^b [0,0] [0,1] [1,0] [1,1] True Hình phụ lục 12 - Tính trị a^b Thí dụ 3.13 Để tính trị biểu thức ab ta gọi sau: ?- tt(a ⇔ b) [a,b] a⇔b [0,0] [0,1] [1,0] [1,1] true Hình phụ lục 13 - Tính trị a⇔b ... lớp phụ thuộc liệu phụ thuộc Boole dương hay phụ thuộc có chất phụ thuộc Boole dương phụ thuộc sai khác, phụ thuộc đối sánh nghiên cứu sau Mục tiêu luận văn tìm hiểu lý thuyết phụ thuộc liệu. .. VỀ LÝ THUYẾT CƠ SỞ DỮ LIỆU QUAN HỆ Lý thuyết phụ thuộc liệu đóng vai trò quan trọng việc mô tả giới thực, phản ánh ngữ nghĩa liệu sở liệu Trong quản lý sở liệu (CSDL), phụ thuộc liệu hiểu mệnh... tối ưu truy vấn tốt so với phụ thuộc hàm Lớp PTH hầu hết phụ thuộc bậc cao phát triển sau phụ thuộc đối ngẫu, phụ thuộc mạnh, phụ thuộc yếu, phụ thuộc hàm nhẹ, phụ thuộc hàm có điều kiện … dựa