Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
1,06 MB
Nội dung
đại học quốc gia hà nội Trờng đại học CÔNG NGHƯ ˜&™ TrÇn Thμnh Trung NGHI£N CøU Mét sè vÊn đề phụ thuộc Dữ LIệU V KHAI PHá Dữ LIệU TRONG CƠ Sở Dữ LIệU QUAN Hệ LUậN VĂN THạC Sĩ HNi2009 TIEU LUAN MOI download : skknchat@gmail.com đại học quốc gia hà nội Trờng đại học CÔNG NGHệ ưưư&ưưư Trần Thnh Trung NGHIÊN CứU Một số vấn đề phụ thuộc Dữ LIệU V KHAI PHá Dữ LIệU TRONG CƠ Sở Dữ LIệU QUAN Hệ Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin M số: 60 48 05 LN V¡N TH¹C SÜ NG−êi h−íng dÉn khoa häc: pgs ts vò ngäc lo∙n Hà Nội – 2009 TIEU LUAN MOI download : skknchat@gmail.com 1 LỜI CAM ĐOAN Tơi xin cam đoan: Luận văn “Nghiên cứu một số vấn đề về Phụ thuộc dữ liệu và Khai phá dữ liệu trong Cơ sở dữ liệu quan hệ” là cơng trình nghiên cứu riêng của tơi Các kết quả nghiên cứu trong luận văn là trung thực. Nếu sai tơi xin hồn tồn chịu trách nhiệm. Hà Nội, ngày 15 tháng 11 năm 2009 Học viên Trần Thành Trung TIEU LUAN MOI download : skknchat@gmail.com 2 LỜI CẢM ƠN Tác giả xin bày tỏ lịng biết ơn sâu sắc tới PGS.TS Vũ Ngọc Lỗn, người đã hướng dẫn, truyền đạt những kinh nghiệm q báu và tận tình giúp đỡ tác giả hồn thành luận văn này. Tác giả xin cảm ơn sự quan tâm giúp đỡ của các thầy, cơ trong khoa Cơng nghệ thơng tin đã tận tình giảng dạy cũng như giúp đỡ trong q trình học tập và nghiên cứu tại Khoa; đồng thời xin cảm ơn sự ủng hộ của các anh chị học viên lớp K13HTTT đã động viên và giúp đỡ tác giả trong q trình thực hiện đề tài này. Hà Nội, ngày 15 tháng 11 năm 2009 Học viên Trần Thành Trung TIEU LUAN MOI download : skknchat@gmail.com 3 TĨM TẮT Lớp phụ thuộc dữ liệu đóng vai trị rất quan trọng trong q trình thiết kế cơ sở dữ liệu thì và một trong những lớp phụ thuộc dữ liệu đầu tiên là lớp phụ thuộc hàm. Ngày nay, việc mở rộng lớp phụ thuộc hàm này (mờ hố) đang được nghiên cứu và tiếp cận theo nhiều hướng khác nhau. Với mục tiêu nghiên cứu về việc mở rộng này cũng như các khái niệm liên quan, trong đề tài nghiên cứu đã tìm hiểu sâu về phụ thuộc dữ liệu và trình bày các nội dung liên quan đến lớp phụ thuộc hàm mờ (fuzzy functional dependency), bao đóng tập thuộc tính và thuật tốn tìm bao đóng tập thuộc tính mờ (fuzzy transitive closure), khố mờ (fuzzy key) và thuật tốn tìm khố mờ, các dạng chuẩn mờ trong CSDL quan hệ. Bên cạnh đó đề tài cũng đã nghiên cứu về việc mở rộng một trong những định lý quan trọng nhất của việc nghiên cứu CSDL đó là định lý tương đương TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 4 ABSTRACT Data dependency plays a very important role in the process of designing the database and one of the first data dependency class is the functional dependency. Today, the expansion of the functional dependency (fuzzy functional dependency) are being studied and approached in several ways. With the objective of researching on the expansion of functional dependency and related concepts, my thesis focus on researching about data dependency, fuzzy functional dependency, fuzzy transitive closure and the algorithm for finding fuzzy transitive closure of attributes , fuzzy key and the algorithm of finding fuzzy keys in relational database. Besides, my thesis also focuses on researching about the expansion of one of the most important theorems of rational database – the equivalence theorem (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 5 MỤC LỤC LỜI CAM ĐOAN 1 LỜI CẢM ƠN 2 TÓM TẮT 3 ABSTRACT 4 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 7 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 8 DANH MỤC CÁC BẢNG BIỂU 9 MỞ ĐẦU 10 I. Mục tiêu nghiên cứu của đề tài 10 II. Một số kết quả đạt được .10 III. Bố cục của Luận văn .11 CHƯƠNG 1. TỔNG QUAN .12 1.1 Cơ sở dữ liệu 12 1.1.1 Các khái niệm chung 12 1.1.2 Định nghĩa 12 1.2 Phụ thuộc hàm 13 1.2.1 Định nghĩa 13 1.2.2 Tính chất của Phụ thuộc hàm (Hệ tiên đề Amstrong) 14 1.2.3 Bao đóng tập thuộc tính 15 1.2.4 Định lý tương đương .18 1.3 Khoá 19 CHƯƠNG 2. LỚP PHỤ THUỘC HÀM MỜ TRONG CƠ SỞ DỮ LIỆU QUAN HỆ 21 2.1 Dữ liệu mờ 21 2.1.1 Tập rõ .21 2.1.2 Tập mờ .21 2.1.3 Các phép toán cơ bản trên tập mờ .22 2.2 Phụ thuộc hàm mờ 23 2.2.1 Định nghĩa 23 2.2.2 Tính chất 27 2.3 Xây dựng hệ tiên đề cho lớp Phụ thuộc hàm mờ ( Hệ tiên đề Amstrong mở rộng) 29 CHƯƠNG 3. KHOÁ MỜ TRONG CƠ SỞ DỮ LIỆU QUAN HỆ 31 3.1 Khoá mờ .31 3.2 Bao đóng tập thuộc tính 31 + 3.2.1. Tính chất của bao đóng tập thuộc tính (X ) .32 3.2.2 Bài toán thành viên 33 3.2.3 Thuật tốn tìm bao đóng 34 3.2.4 Tính đúng của thuật tốn tìm bao đóng .37 3.3 Định lý tương đương cho tập mờ 41 3.3.1 Định nghĩa 42 (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 6 3.3.2 Định nghĩa 42 3.3.3 Định lý 42 3.4 Thuật tốn tìm khố mờ 44 3.5 Các dạng chuẩn mờ 45 3.5.1 Dạng chuẩn mờ F1NF .45 3.5.2 Dạng chuẩn mờ F2NF .46 3.5.2.1 Xác định dạng chuẩn mờ F2NF .47 3.5.2.2 Đưa quan hệ về dạng chuẩn mờ F2NF 48 3.5.3 Dạng chuẩn mờ F3NF .50 3.5.4 Dạng chuẩn mờ Boyce Codd (FBCNF) 51 KẾT LUẬN .53 4.1 Ý nghĩa khoa học và thực tiễn của đề tài .53 4.2 Kết luận và kiến nghị 53 4.2.1 Kết luận 53 4.2.2 Hướng phát triển đề tài 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC 57 (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 7 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT TT 1 2 3 4 5 6 Từ viết tắt CNTT CSDL HTTT HĐH FTH FFD 7 FK Nghĩa đầy đủ Công nghệ thông tin Cơ sở dữ liệu Hệ thống thông tin Hệ điều hành Phụ thuộc hàm Fuzzy Functional Dependency Phụ thuộc hàm mờ Fuzzy Key – khoá mờ (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 8 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1: Hệ thống thơng tin 12 Hình 2: Hệ thống Cơ sở dữ liệu 13 Hình 3: Tập mờ và tập rõ 22 Hình 4: Tập Input 71 Hình 5: Giao diện cài đặt thuật tốn 71 Hình 6: Giao diện chạy thuật tốn (Nhập tập thuộc tính cần tính bao đóng X + ) 72 Hình 7: Kết quả bao đóng của tập thuộc tính {A,B,C} 72 (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 58 c,Y: char; f: TEXT; s: String; muc_thoa,chi_so:array [1 50] of real; vt,thuoc_tinh:array[1 50]of char; vp: array[1 50]of string; code: integer; Blist, X, last: contro; {Blist la bao dong tam thoi} MXD: mang; {Mien xac dinh cua tap thuoc tinh} {**********Thu tuc doc du lieu tu File *******} Procedure Doc_du_lieu; Begin Assign(f, 'Input.txt'); Reset(f); readln(f); readln(f,n); readln(f,m); for i:=4 to (3+n) do begin while not EOLN(f) do begin (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 59 read(f,thuoc_tinh[i]); read(f,c); read(f,s); val(s,chi_so[i],Code); end; readln(f); end; readln(f); readln(f); i:=14; While not EOF(F) do begin While not EOLN(f) do begin read(f,vt[i]); read(f,c); read(f,c); read(f,c); s:=''; while c' ' do begin s:=s+c; read(f,c); (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 60 end; vp[i]:=s; read(f,c); read(f,s); val(s,muc_thoa[i], Code); end; readln(f); i:=i+1; end; End; {Ham kiem tra xem thuoc tinh Y da nam trong MXD hay chua?} Function Kiemtra(Y:char;MXD: mang):Boolean; var i:byte; kt:Boolean; Begin kt:= false; for i:=1 to 50 do begin if (Y=MXD[i]) then begin kt:=true; end; (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 61 end; Kiemtra:=kt; End; {***********Ham kiem tra xem phan tu co thuoc danh sach hay khong*************} function kiem_tra_thuoc(c: char; p: contro): boolean; var q: contro; kt: boolean; begin q:= p; kt:= false; if p= nil then kt:= false else begin while q nil do begin if (q^.thuoc_tinh = c) then begin kt:= true; break; end; q:=q^.next; end; (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 62 end; kiem_tra_thuoc:= kt; end; {******************************************************} function min(a,b: real): real; begin if a>b then min:= b else min:= a; end; {******************************************************} function max(a,b: real):real; begin if a>b then max:=a else max:= b; end; {************Ham so sanh 2 bao dong tam thoi*********} Function Sosanh(var X:contro; var Y:contro): Boolean; var tg:contro; kt: boolean; Begin tg:=X; While tgnil do (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 63 begin if not(kiem_tra_thuoc(tg^.thuoc_tinh, Y)) then begin sosanh:= true; exit; end; tg:= tg^.next; end; tg:=Y; While tgnil do begin if not(kiem_tra_thuoc(tg^.thuoc_tinh, X)) then begin sosanh:= true; exit; end; tg:= tg^.next; end; sosanh:= false; End; {****Thu tuc them phan tu vao tap bao dong tam thoi***} procedure Them(c: char; r: real;var p: contro); (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 64 var phan_tu_moi: contro; begin if p= nil then begin new(phan_tu_moi); phan_tu_moi^.thuoc_tinh:= c; phan_tu_moi^.muc_thoa:= r; phan_tu_moi^.next:=nil; p:= phan_tu_moi; end else begin new(phan_tu_moi); phan_tu_moi^.thuoc_tinh:= c; phan_tu_moi^.muc_thoa:= r; phan_tu_moi^.next:=p; p:= phan_tu_moi; end; end; {***Ham tim vi tri cua mot thuoc tinh trong bao dong***} Function vi_tri(c: char; p: contro): contro; (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 65 var q: contro; begin q:= p; while q^.thuoc_tinh c do q:= q^.next; vi_tri:= q; end; {*******Ham hop mo 2 bao dong tam thoi******} Function hop(X,Blist: contro): contro; var p,q,tg: contro; Begin tg:=nil; p:= X; while pnil do begin if not(kiem_tra_thuoc(p^.thuoc_tinh,tg)) then Them(p^.thuoc_tinh,p^.muc_thoa, tg) else begin q:= vi_tri(p^.thuoc_tinh,tg); q^.muc_thoa:=max(q^.muc_thoa,p^.muc_thoa); end; (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 66 p:= p^.next; end; p:= Blist; while pnil do begin if not(kiem_tra_thuoc(p^.thuoc_tinh, tg)) then Them(p^.thuoc_tinh,p^.muc_thoa, tg) else begin q:= vi_tri(p^.thuoc_tinh,tg); q^.muc_thoa:= max(q^.muc_thoa,p^.muc_thoa); end; p:= p^.next; end; hop:= tg; End; {******************************************************} Procedure Inbaodong( X:contro); var p: contro; Begin p:=X; (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 67 writeln; writeln('Bao dong cua tap thuoc tinh ', p^.thuoc_tinh ,' la:'); While pNil do begin write('(',p^.thuoc_tinh,',',p^.muc_thoa:2:2,')'); write(' '); p:=p^.next; end; End; {**********Thu tuc tim bao dong cua thuoc tinh ********} Procedure thuchien(B: char); var i,j:byte; p,q,tg:contro; r: real; Begin {Khoi tri bao dong cua thuoc tinh B} new(X); X^.thuoc_tinh:=B; X^.muc_thoa:=1; X^.next:=nil; {Khoi tri mien xac dinh} (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 68 for i:= 1 to 50 do MXD[i]:='@'; {***************************************************} MXD[2]:= B; n:= 1;{n la so thuoc tinh trong MDX} while (1>0) do begin for i:=14 to (13+m) do begin if Kiemtra(vt[i],MXD) then begin for j:= 1 to length(vp[i]) do begin if not(Kiemtra(vp[i][j],MXD)) then begin MXD[n+1]:=vp[i][j]; n:= n+1; end; end; Them(vp[i][2],muc_thoa[i],Blist); for j:= 2 to length(vp[i]) do begin (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 69 if kiem_tra_thuoc(vp[i][j],Blist) then begin p:= vi_tri(vp[i][j],Blist); P^.muc_thoa:= min(p^.muc_thoa,muc_thoa[i]); end else Them(vp[i][j],muc_thoa[i], Blist); end; end; end; tg:= hop(X,Blist); if sosanh(X,tg) then X:=tg else exit; end; End; BEGIN clrscr; Doc_du_lieu; writeln('Tap thuoc tinh'); writeln('********************************************'); (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 70 for i:= 4 to (3+n) do begin writeln(thuoc_tinh[i], ' ', chi_so[i]:2:2); end; writeln; writeln('Tap cac PTH'); writeln('********************************************'); for i:= 14 to (13+m) do begin writeln(vt[i], '>',vp[i],' ', muc_thoa[i]:2:2); end; Repeat clrscr; write('Nhap thuoc tinh de tinh bao dong: '); readln(Y); thuchien(Y); Inbaodong(X); writeln; writeln('Ban co muon tiep tuc chuong trinh khong? (C/K)'); write('Cau tra loi la: '); readln(c); until (c='k') or (c='K'); clrscr; readln; (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he 71 END. Một số giao diện của việc cài đặt Thuật tốn tìm bao đóng tập thuộc tính X + Hình 4: Tập Input Hình 5: Giao diện cài đặt thuật tốn (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he (LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he(LUAN.VAN.THAC.SI).Nghien.cuu.mot.so.van.de.ve.phu.thuoc.du.lieu.va.khai.pha.du.lieu.trong.co.so.du.lieu.quan.he