CÁC THUẬT TOÁN BIẾN ĐỔI LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG

31 402 0
CÁC THUẬT TOÁN BIẾN ĐỔI LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG

Đ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

CÁC THUẬT TOÁN BIẾN ĐỔI LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG Biên tập bởi: CÁC THUẬT TOÁN BIẾN ĐỔI LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG Biên tập bởi: Phiên trực tuyến: http://voer.edu.vn/c/f3d62f19 MỤC LỤC CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ CÀI ĐẶT CHƯƠNG TRÌNH Tham gia đóng góp 1/29 CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU CHƯƠNG I: CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU 1.1 Quan hệ [2] Cho tập hữu hạn U = {A1, A2, , An} khác trống (n ≥ 1) Các phần tử U gọi thuộc tính, ứng với thuộc tính Ai ⊆ U, i = 1, 2, , n có tập không rỗng dom(Ai) gọi miền trị thuộc tính Ai (thập chí giả thiết chứa giá trị) Đặt D=Ui=1ndom(Ai) size 12{D= {U} cSub { size 8{i=1} } cSup { size 8{n} } ital "dom" \( { size 24{A} } rSub { size 8{i} } \) } {} Một quan hệ R với thuộc tính U = {A1, A2, , An}, ký hiệu R(U), tập ánh xạ t: U ↑ D cho với Ai ⊆ U ta có t(Ai) ⊆ dom(Ai) Mỗi ánh xạ gọi quan hệ R Mỗi quan hệ R(U) có hình ảnh bảng, cột ứng với thuộc tính, dịng Ta ký hiệu t(X) t.X tập thuộc tính X Một quan hệ rỗng, ký hiệu ⊕, quan hệ không chứa Chú ý: Mỗi quan hệ tập nên quan hệ khơng có hai trùng lặp 1.2 Phụ thuộc hàm, hệ tiên đề Armstrong, lược đồ quan hệ 1.2.1 Phụ thuộc hàm [2] ζ Định nghĩa phụ thuộc hàm Cho tập thuộc tính U Giả sử X, Y ⊂ U Một phụ thuộc hàm (PTH) U biểu thức dạng f: X ↑ Y Nếu f: X ↑ Y PTH U ta nói tập thuộc tính Y phụ thuộc hàm vào tập thuộc tính X, tập thuộc tính X xác định hàm tập thuộc tính Y Cho quan hệ R(U) PTH f: X ↑ Y U Ta nói quan hệ R thỏa PTH f (hay PTH f quan hệ R), ký hiệu R(f), hai tùy ý R giống X giống Y, tức là: 2/29 R(X ↑ Y) ⇔ u,v ⊆ R: u.X = v.X ⇒ u.Y = v.Y 1.2.2 Hệ tiên đề Armstrong [2, 3] Cho quan hệ R(U) Giả sử X, Y, Z, W ⊂ U F1 Tính phản xạ: Nếu X ⊃ Y X ↑ Y F2 Tính gia tăng: Nếu X ↑ Y XZ ↑ YZ F3 Tính bắc cầu: Nếu X ↑ Y Y ↑ Z X ↑ Z Chú ý: Các PTH có vế trái chứa vế phải mơ tả F1 gọi tầm thường Các PTH tầm thường thoả quan hệ 1.2.3 Lược đồ quan hệ [2] Lược đồ quan hệ (LĐQH) cặp p = (U, F) U tập hữu hạn thuộc tính, F tập PTH U Quy ước: Trong trường hợp không rõ tập PTH F, ta xem LĐQH tập hữu hạn thuộc tính U 1.3 Bao đóng tập thuộc tính [2] - Cho tập PTH F tập thuộc tính U tập thuộc tính X U Bao đóng tập thuộc tính X, ký hiệu X+, tập tất thuộc tính A ⊆ U mà PTH X↑A suy diễn logic từ F nhờ hệ tiên đề Armstrong: X+ = {A ⊆ U | X ↑ A ⊆ F+} - Thuật tốn tìm bao đóng tập thuộc tính [2, 3] Cho tập PTH F tập thuộc tính U tập thuộc tính X U Để xác định bao đóng tập thuộc tính X , ký hiệu X + xuất phát từ tập X bổ sung dần cho X thuộc tính thuộc vế phải PTH L↑R size 12{ in } {} F thoả điều kiện L size 3/29 12{ subseteq } {} X Thuật tốn dừng khơng thể bổ sung thêm thuộc tính cho X Algorithm Closure Input: - Tập thuộc tính X ⊂ U - Tập PTH F Output: X+ = {A⊆U|X↑A⊆F+} Method Y: = X ; Repeat Z: = Y ; For each FD L↑R in F If L ⊂ Y then Y: = Y∩R ; Enddif ; Endfor ; Until Y: = Z; Return Y; End Closure • Đánh giá độ phức tạp Giả sử n số lượng thuộc tính U, m số lượng PTH F thuật tốn có độ phức tạp đa thức bậc hai theo chiều dài liệu O(mn2) 1.4 Phủ tập phụ thuộc hàm [2, 3] Cho hai tập PTH F G tập thuộc tính U Ta nói F suy dẫn G, ký hiệu F╞ G g⊆G: F╞ g Ta nói F tương đương với G, ký hiệu F ≠ G, F╞ G G╞ F 4/29 Nếu F ≠ G ta nói G phủ F Ký hiệu: F !╞ G: F không suy dẫn G F !≠ G có nghĩa F G khơng tương đương Cho tập PTH F tập thuộc tính U X tập U, ta dùng ký hiệu XF+ trường hợp cần rõ bao đóng tập thuộc tính X lấy theo tập PTH F ζ Phủ thu gọn tự nhiên Cho hai tập PTH F G thuộc tính U G phủ thu gọn tự nhiên F nếu: G phủ F, G có dạng thu gọn tự nhiên theo nghĩa sau: a Hai vế trái phải PTH G rời (không giao nhau) f ⊆ G: LS(f)⊘RS(f) = ⊕ b Các vế trái PTH G khác đôi f,g ⊆ G: f ≃ g ⇔ LS(f) ≃ LS(g) • Thuật tốn tìm phủ thu gọn tự nhiên tập PTH F Algorithm Natural_Reduced Function: Tính phủ thu gọn tự nhiên tập PTH Format: Natural_Reduced (F) Input: Tập PTH F Output: Một phủ thu gọn tự nhiên G F i) G ≠ F ii) L↑R ⊆ G: L⊘R = ⊕ iii) ∀ size 12{ forall } {}L i↑R i, ∀ size 12{ forall } {} Lj ↑Rj ⊆ G: i≃j ⇒ Li ≃ Lj Method 5/29 G := ⊕; For each FD L↑R in F Z := R \ L; If Z ≃ ⊕ then If there is an FD L↑Y in G then Replace L↑Y in G by L↑YZ Else Add L↑Z to G; Endif Endif Endfor Return G; End Natural_Reduced Độ phức tạp thuật tốn O(mn), m số lượng PTH tập F, n số lượng thuộc tính tập U Để ý mn chiều dài liệu vào thuật toán 1.5 Cơ sở lược đồ quan hệ [2, 3] Cho LĐQH p = (U, F) Tập thuộc tính B ⊂ U gọi sở LĐQH p nếu: (i) B+ = U (ii) A⊆B: (B\{A})+ ≃ U Hai điều kiện tương đương với (i) B → size 12{ rightarrow } {} U (ii) A⊆B: (B\{A}) ! → size 12{ rightarrow } {} U Nếu B thỏa mãn điều kiện (i) B gọi siêu sở 6/29 Thuộc tính A ⊆ U gọi thuộc tính sở (nguyên thủy sở) A có mặt sở A gọi thuộc tính khơng sở (phi ngun thủy thứ cấp) A khơng có mặt sở Ký hiệu UB tập thuộc tính sở LĐQH p U0 tập thuộc tính khơng sở p Chú ý: Trong số tài liệu, thuật ngữ sở dùng theo nghĩa siêu sở thuật ngữ sở tối tiểu dùng theo nghĩa sở • Thuật tốn tìm sở LĐQH Tư tưởng: Xuất phát từ siêu sở B tuỳ ý LĐQH, duyệt thuộc tính A B, bất biến (B\{A})+ = U bảo tồn A loại khỏi B Có thể thay kiểm tra (B\{A})+ = U kiểm tra A ⊆ (B\{A})+ Algorithm Base Function: Tìm sở LĐQH Input: - Tập thuộc tính U - Tập PTH F Output: Cơ sở B ⊂ U thoả i) B+ = U ii) A⊆B : (B\{A})+ ≃ U Method B := U; For each attribute A in U If A ⊆ (B\{A})+ then B := B \ {A} Endif; Endfor; Return B; 7/29 End Base Độ phức tạp tính tốn: Thuật tốn duyệt n thuộc tính, với thuộc tính thực phép lấy bao đóng với độ phức tạp n2m Tổng hợp lại, độ phức tạp tính tốn thuật tốn O(n3m) 1.6 Cách tính giao sở [2] Những phần tử không xuất vế phải có mặt sở, giao sở Vậy giao sở thuộc tính khơng xuất vế phải Giả sử M giao sở Nếu M + = U lược đồ có sở, M + size 12{ } {} U lược đồ có sở Gọi M giao sở khi: M+ = U Cho LĐQH p = (U,F) với n thuộc tính U m PTH F Gọi M giao sở p Khi xác định giao sở thuật tốn tuyến tính theo mn qua công thức: (RM=UL→R∈F size 12{M=U\ union cSub { size 8{L rightarrow R in F} } { \( R\L \) } } {} • Thuật tốn xác định giao sở LĐQH Algorithm BaseIntersec Input:- Tập thuộc tính U - Tập PTH F Output: Giao sở (RM=UL→R∈F size 12{M=U\ union cSub { size 8{L rightarrow R in F} } { \( R\L \) } } {} Method M:=U; For each FD L↑R in F M:=M\(R\L); Endfor; 8/29 Endif; Endfor; Return B; End Base - Thuật toán giản lược lược đồ Algorithm Translation Input: - LĐQH p = (U,F) - Tập thuộc tính M ⊂U Output: - LĐQH q = (V,G) = p\M, V = U\M, G = F\M Method V := U\M; G := ⊕ For each FD L↑R in F G := G ∩ {L\M↑R\M}; Endfor; G := Natural_Reduced(G); Return (V,G); End Translation Thủ tục Natural_Reduced(G) đưa tập PTH G dạng thu gọn tự nhiên cách loại khỏi G PTH tầm thường (có vế trái chứa vế phải), chuyển đổi PTH có hai vế trái phải rời gộp PTH có vế trái 3.3 Giao diện chương trình 15/29 Chương trình cài đặt mơ ví dụ giản lược lược đồ quan hệ, tìm bao đóng theo tiếp cận giản lược, tìm sở theo tiếp cận giản lược ngôn ngữ lập trình DEV C++ Hình 3.1 Giao diện chương trình Đây giao diện chương trình gồm thành phần sau: - Tên chương trình " THU GON LUOC ĐO QUAN HE" - Tên tác giả chương trình - Go: Người dùng nhập tên file Enter Test tệp luocdo1:Cho LĐQH p = (U,F) đó: U = ABCDE F = {BC → size 12{ rightarrow } {} D CD → size 12{ rightarrow } {} A D → size 12{ rightarrow } {} E A → size 12{ rightarrow } {} B} a Thu gọn p để q=(V,G) theo thuộc tính X=BD b Tính (AC)+ c Tìm sở p 16/29 d p có cịn sở khác ngồi sở khơng ? Vì ? Giải a Thu gọn p để q=(V,G) theo thuộc tính X=BD V = U\X = ABCDE\BD = ACE G = F\X = {C → size 12{ rightarrow } {} ⊕ (loại), C → size 12{ rightarrow } {} A, ⊕ → size 12{ rightarrow } {} E, A → size 12{ rightarrow } {} ⊕ (loại)} q = (V, G), V = ACE G = {C → size 12{ rightarrow } {} A, ⊕ → size 12{ rightarrow } {} E} b Tính (AC)+ X0 = AC X = ACB (vì A → size 12{ rightarrow } {} B) X = ACBD (vì CB → size 12{ rightarrow } {} D) X = ACBDE (vì D → size 12{ rightarrow } {} E) Vậy (AC)+ = ABCDE c Tìm sở 1của p Lập bảng: Loại thử thuộc tính ta đánh dấu phẩy (') bên cạnh thuộc tính Nếu bao đóng thuộc tính cịn lại U loại thuộc tính ký hiệu cách gạch ví dụ: A'.Những thuộc tính khơng loại tơ đậm Base (B) A ' B ' C' D' E' BCDE (thử loại bỏ A) A B C D E CDE (thử loại bỏ B) DE (thử loại bỏ C) A B C D E D E 17/29 Base (B) A ' B ' C' D' E' CE (thử loại bỏ D) C E CD (thử loại bỏ E) A B C D E Nhìn vào bảng ta thấy thử loại bỏ C, D bao đóng thuộc tính lại size 12{ } {} U Vậy sở p là: CD d P sở khác sở 1? UI = U\vế phải F = ABCDE – ABDE = C M + = C + = C size 12{ } {} U nên lược đồ có sở Vậy ngồi sở B1, lược đồ cịn có sở B2 = BC thoả điều kiện sau: (i) B+ = (BC)+ = ABCDE = U (ii) BC tối tiểu ( theo nghĩa (B \ {BC}) + size 12{ } {} U ) ζ Dữ liệu đưa vào chương trình mã hóa sau: File: luocdo1 Mơ tả Chú thích // có thuộc tính A A // B B // C C // D D // 18/29 File: luocdo1 E E // // Có phụ thuộc hàm -> -> // BC ->D -> 4-> // C D -> A -> -> // D -> E -> -> // A -> B Sau người dùng nhập tên file Enter chương trình thực đưa kết hình 3.2 - In số thuộc tính file, gồm thuộc tính - In mã số (1 5) tương ứng với thuộc tính - In số phụ thuộc hàm, gồm phụ thuộc hàm mã (F1 F5) phụ thuộc hàm tương ứng - Tìm sở thứ lược đồ quan hệ CD Hình 3.2 In số thuộc tính, phụ thuộc hàm tệp ld1 tìm sở 19/29 Sau ấn phím chương trình trở menu ζ Chức mục menu - Chọn Tính bao đóng Hình 3.3 Tính bao đóng mã số (A, C) Chọn tính bao đóng chương trình u cầu người sử dụng nhập vào để tính Ví dụ ta nhập mã số (A C) hình 3.3 chương trình cho kết là: - Mã số cần tính (A C) - Kết tính (A B C D E) - Chọn Tìm sở Khi người sử dụng chọn để tìm sở chương trình tự động tìm đưa kết hình 3.4 20/29 Hình 3.4 Tìm sở - Chọn Thu gọn lược đồ Chương trình yêu cầu người sử dụng nhập vào mã số thuộc tính thu gọn Ví dụ ta nhập vào mã số ( B D) hình 3.5 Chương trình in kết quả: + Số thuộc tính (1 tương đương A C E) + Số phụ thuộc hàm {C↑A, ⊕↑E} + Tìm sở C 21/29 Hình 3.5 Thu gon lược đồ - Chọn Thốt khỏi chương trình Hình 3.6 Thốt khỏi chương trình Test tệp luocdo2:Cho LĐQH p = (U,F) U = ABCDEH F={ AE ↑ D, A ↑ DH, BC ↑ E, E ↑ BC} a Với M = ADH, xác định q = (V,G) = p\M? Tính V = U\M = ABCDEH\ADH = BCE Tính G = F\M = {E ↑ ⊕ (loại), ⊕ ↑ ⊕ (loại), BC ↑ E, E ↑ BC} 22/29 Lược đồ quan hệ q = (V,G) đó: V = BCE G = {BC ↑ E, E ↑ BC} b Tính (CE)+ X0 = CE X1 = CEB (vì E ↑ BC) Vậy (CE)+ = BCE c Tìm sở p Lập bảng: Loại thử thuộc tính ta đánh dấu phẩy (') bên cạnh thuộc tính Bao đóng thuộc tính cịn lại U loại thuộc tính ký hiệu cách gạch B'.Những thuộc tính khơng loại tơ đậm Base (B) A' B ' C ' D ' E' H' BCDEH (thử loại bỏ A) B C D E H ACDEH (thử loại bỏ B) A B C D E H ADEH (thử loại bỏ C) A B C D E H AEH (thử loại bỏ D) A B C D E H AH (thử loại bỏ E) A AE (thử loại bỏ H) A B C D E H D H Vậy sở p AE d p có cịn sở khác ngồi sở khơng ? Vì ? UI = U\vế phải F = ABCDEH –BCDEH = A A + = ADH size 12{ } {} U nên lược đồ có sở 23/29 Vậy sở 1, lược đồ cịn có sở ABC thoả điều kiện sau: (i) B+ = (ABC)+ = ABCDE = U (ii) BC tối tiểu ( theo nghĩa (B \ {BC}) + size 12{ } {} U ) ζ Dữ liệu mã hóa nạp vào chương trình sau: File: luocdo2 Mơ tả Chú thích // có thuộc tính A A // B B // C C // D D // E E // H H // // Phụ thuộc hàm 15 -> 15 -> // AE -> D -> -> // A -> DH -> -> // BC -> E -> -> // E -> BC Sau nhập file luocdo2 ấn Enter chương trình đưa kết hình 3.7 gồm: - Số thuộc tính LĐQH mã số tương ứng với thuộc tính - Số phụ thuộc hàm mã số tương ứng với PTH 24/29 - Tìm sở AE Hình 3.7 In số thuộc tính, phụ thuộc hàm tệp luocdo2 tìm sở - Chọn tính bao đóng: chương trình u cầu người sử dụng nhập mã số thuộc tính để tính Ví dụ nhập (C E) chương trình đưa kết hình 3.8 Hình 3.8 Tính bao đóng mã số thuộc tính - Chọn tìm sở chương trình tìm LĐQH p đưa kết hình 3.9 25/29 Hình 3.9 Tìm sở Hình 3.10 Thu gọn lược đồ với mã số thuộc tính (ADH) Chọn thu gọn lược đồ, chương trình yêu cầu nhập mã số thuộc tính để thu gọn Ví dụ: nhập (A D H) chương trình đưa kết hình 3.10 V = BCE G = {BC Γ E, E Γ BC} 26/29 Tìm sở lược đồ thu gọn E KẾT LUẬN VÀ ĐỀ NGHỊ Kết luận Những nội dung giải luận văn: - Lý thuyết: + Trình bày tổng quát hóa lý thuyết sở liệu + Tìm hiểu trình bày định nghĩa sở; tính chất + Thuật tốn thu gọn lược đồ quan hệ + Thuật tốn tìm sở + Thuật tốn tính bao đóng - Thực nghiệm: + Xây dựng hệ thống thí dụ để ứng dụng + Cài đặt chương trình để kiểm thử đánh giá kết Đề nghị - Xây dựng tập thuộc tính, phụ thuộc hàm, áp dụng thuật tốn để giải toán sở liệu - Ứng dụng chương trình để hỗ trợ cho sinh viên thực hành sở liệu, sau kiểm tra kết tính bao đóng, tìm sở thu gọn lược đồ quan hệ - Tiếp tục hoàn thiện phần mềm với chức năng, giao diện thuận lợi cho người sử dụng 27/29 Tham gia đóng góp Tài liệu: CÁC THUẬT TỐN BIẾN ĐỔI LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG Biên tập bởi: URL: http://voer.edu.vn/c/f3d62f19 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU Các tác giả: URL: http://voer.edu.vn/m/929bc460/1 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ Các tác giả: URL: http://voer.edu.vn/m/ead83889/1 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: CÀI ĐẶT CHƯƠNG TRÌNH Các tác giả: URL: http://voer.edu.vn/m/29cf7dbb/1 Giấy phép: http://creativecommons.org/licenses/by/3.0/ 28/29 Chương trình Thư viện Học liệu Mở Việt Nam Chương trình Thư viện Học liệu Mở Việt Nam (Vietnam Open Educational Resources – VOER) hỗ trợ Quỹ Việt Nam Mục tiêu chương trình xây dựng kho Tài nguyên giáo dục Mở miễn phí người Việt cho người Việt, có nội dung phong phú Các nội dung đểu tuân thủ Giấy phép Creative Commons Attribution (CC-by) 4.0 nội dung sử dụng, tái sử dụng truy nhập miễn phí trước hết trong mơi trường giảng dạy, học tập nghiên cứu sau cho tồn xã hội Với hỗ trợ Quỹ Việt Nam, Thư viện Học liệu Mở Việt Nam (VOER) trở thành cổng thơng tin cho sinh viên giảng viên ngồi Việt Nam Mỗi ngày có hàng chục nghìn lượt truy cập VOER (www.voer.edu.vn) để nghiên cứu, học tập tải tài liệu giảng dạy Với hàng chục nghìn module kiến thức từ hàng nghìn tác giả khác đóng góp, Thư Viện Học liệu Mở Việt Nam kho tàng tài liệu khổng lồ, nội dung phong phú phục vụ cho tất nhu cầu học tập, nghiên cứu độc giả Nguồn tài liệu mở phong phú có VOER có chia sẻ tự nguyện tác giả ngồi nước Q trình chia sẻ tài liệu VOER trở lên dễ dàng đếm 1, 2, nhờ vào sức mạnh tảng Hanoi Spring Hanoi Spring tảng công nghệ tiên tiến thiết kế cho phép công chúng dễ dàng chia sẻ tài liệu giảng dạy, học tập chủ động phát triển chương trình giảng dạy dựa khái niệm học liệu mở (OCW) tài nguyên giáo dục mở (OER) Khái niệm chia sẻ tri thức có tính cách mạng khởi xướng phát triển tiên phong Đại học MIT Đại học Rice Hoa Kỳ vòng thập kỷ qua Kể từ đó, phong trào Tài nguyên Giáo dục Mở phát triển nhanh chóng, UNESCO hỗ trợ chấp nhận chương trình thức nhiều nước giới 29/29 ...CÁC THUẬT TOÁN BIẾN ĐỔI LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG Biên tập bởi: Phiên trực tuyến: http://voer.edu.vn/c/f3d62f19 MỤC LỤC CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ... phép giản lược lược đồ quan hệ thuật tốn tìm bao đóng theo tiếp cận giản lược, thuật tốn tìm sở theo tiếp cận giản lược 3.2 Các chức chương trình: " Tên chương trình "Thu gọn lược đồ quan hệ" có... thuộc tính X Một quan hệ rỗng, ký hiệu ⊕, quan hệ không chứa Chú ý: Mỗi quan hệ tập nên quan hệ khơng có hai trùng lặp 1.2 Phụ thuộc hàm, hệ tiên đề Armstrong, lược đồ quan hệ 1.2.1 Phụ thuộc

Ngày đăng: 27/11/2014, 14:57

Từ khóa liên quan

Mục lục

  • CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU

  • PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ

  • CÀI ĐẶT CHƯƠNG TRÌNH

  • Tham gia đóng góp

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan