1. Trang chủ
  2. » Công Nghệ Thông Tin

Phụ thuộc logic trong cơ sở dữ liệu

70 267 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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ỘC LOGIC TRONG 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ỘC LOGIC TRONG 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 đã 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 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ệ 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ệ 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ệ 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ộc liệu yêu cầu cấp thiết đặt Phụ thuộc liệ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ộc liệ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ộc liệu truyền thống số công trình nghiên cứu nhiều nhóm phụ thuộc liệ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 đ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 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 đ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 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)] ngữ nghĩa rộng PTH sothe → vitri Trong số 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 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 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 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 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 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 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ộc Logic F tập thuộc tính phụ thuộc Logic G 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ộc logic 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ệ tập hợp thuộc tính với phụ thuộc Logic 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ộc Logic 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ộc liệ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ộc liệu khác để đáp ứng yêu cầu thực tế phong phú đa dạng Lớp phụ thuộc liệu phụ 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ộc liệu 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 - đ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ộc logic sở 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

Ngày đăng: 11/09/2017, 20:40

TỪ KHÓA LIÊN QUAN

w