Thuật toán tính bao đóng của tập thuộctính trên quanhệ

Một phần của tài liệu nghiên cứu phụ thuộc mạnh trong cơ sở dữ liệu (Trang 39 - 72)

Bởi Nhận xét 2.6.5, rõ ràng ta có

Như vậy đề tính chúng ta đi tính với mọi thuộc tính a X.

Gọi R = {h1,…,hm} là một quan hệ trên U. Với mỗi thuộc tính a U chúng ta xây dựng

với R là hệ bằng nhau của quan hệ R.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

= E(a)với mọi a U.

Chứng minh: Lưu ý, theo định nghĩa phụ thuộc hàm và phụ thuộc mạnh, rõ ràng trên quan hệ R chúng ta có

{a Y {a Yvới Y .

Gọi H = { Eij R| a Eij}. Rõ ràng nếu H = thì {a U SR

Giả sử H ≠ . Nếu H = R thì theo định nghĩa của phụ thuộc mạnh và định nghĩa của E(a), rõ ràng {a E(a) SR

Nếu H R thì với mỗi Eij H chúng ta đều cóhi(a)≠hj(b). Do đó {a E(a) SR

Ngoài ra, với mọi E sao cho E E(a) đều không xảy ra {a E SR

Bởi định nghĩa của chúng ta thu được = E(a)

Bổ đề được chứng minh. □

Trên cơ sở kết quả này, thuật toán tìm bao đóng của một thuộc tính trên một quan hệ cho trước như sau.

Thuật toán 2.7.2.(Tính tập bao đóng ) Vào: quan hệ R = {h1,…, hm} và a U. Ra:

Phương pháp:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

R = {Eij|1 i<j m}

ở đây Eij = {a U hi(a)= hj(a)}. Bước 2. Tính

Bởi bổ đề 2.7.1 rõ ràng =E(a) với mọi . Biết rằng hệ bằng nhau Rđược tính trong thời gian đa thức ( R nên rõ ràng độ phức tạp thờigian của thuật toán 2.7.2 là đa thức theo kích thước của R. Do vậy, việc tính bao đóng (X U) là đa thức theo kích thước của R.

Ví dụ 2.7.3. Xét quan hệ R trên U = {a,b,c} như sau:

R = a b c 0 0 0 0 1 1 1 1 2 0 1 3

Tính bao đóng củacác tập thuộc tính {a,b}, {a,c} và {b,c}. Ta có: R={{a},{b}, {a,b}}.

Suy ra: ={a}, = {b}, = U

Do vậy: = , = và = {b}.

2.8Họ các tập tối tiểu

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Đưa ra thuật toán tìm họ các tập tối tiểu của thuộc tính. Thuật toán này được chứng tỏ rất hiệu quả, độ phức tạp thời gian của nó là đa thức theo kích thước của U và S.

Định nghĩa 2.8.1. Giả sử G=(U,S) là một sơ đồ mạnh và a U. Đặt Ka={X P(U)|X {a} S+, :(Z {a} S+)(Z X)}. Ta gọi Ka là họ các tập tối tiểu của thuộc tính a.

Rõ ràng, {a} Ka,U Ka và Ka là một hệ Sperner trên U. (adsbygoogle = window.adsbygoogle || []).push({});

Mệnh đề 2.8.2.Giả sử G =(U,S)là một sơ đồ mạnh, a U, Ka là một họ các tập tối tiểu của a vàn = |U|.

Khi đó 1. Ka= {{b} b U và {b} {a} S+} 2. Với mọi X Kata có |X|= 1. 3. |Ka| n. 4. | = 1. Chứng minh (1):Theo bổ đề 2.6.2(3) chúng ta cóX+ +với X U.

Suy ra X+ {a}+ . Từ đây và theo định nghĩa của Ka chúng ta kéo theo được:

Ka= {{b} b U và {b} {a} S+} (2). Suy ra từ (1).

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

(4). Bởi (2) và định nghĩa của tập phản khoá, rõ ràng ta có = 1.

Mệnh đề được chứng minh. □

Từ mệnh đề 2.8.2 chúng ta xây dựng thuật toán tìm họ các tập tối tiểu của thuộc tính như sau.

Thuật toán 2.8.3. (Tìm họ các tập tối tiểu)

Vào: sơ đồ mạnh G=(U,S) và a U(U = {ai,…,an}). Ra:Ka họ các tập tối tiểu của a.

Phương pháp:

Buớc 1: Đặt Ka = ;

Bước i+l:(i = 1,2,..., n) Tính

Bởi mệnh đề 2.8.2 (1), rõ ràng thuật toán 2.8.3 tính đúng tập Ka Bổ đề sau là dễ dàng kiểm tra.

Bổ đề 2.8.4.Độ phức tạp thời gian tồi nhất của thuật toán 2.8.3 làO (|U|2|S|).

Theo bổ đề 2.8.4 độ phức tạp thời gian của thuật toán 2.8.3 là đa thức theo |U| và |S|. Do vậy, thuật toán của chúng ta rất hiệu quả.

Rõ ràng, nếu S={{a Yi| Yi i=1,2…,n}hoặc với mỗi phụ thuộc mạnh X Y S+sao cho a Y, thì Ka = {a}.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

S = {{a,b} c},{b} {a, d}, {d} {b}}. Tìm các họ các tập tối tiểu của các thuộc tính của U.

Theo thuật toán 2.8.3 ta có Ka={{a}, {b},{d}}, Kb={{b},{d}},

Kc={{a}, {b},{c}, {d}}, Kd={{b},{d}}.

2.9Quan hệ Armstrong của phụ thuộc mạnh

Quan hệ Armstrong của sơ đồ mạnh G=(U,S) là một điều kiện cần và đủ để một quan hệ R bất kỳ khi nào trở thành quan hệ Armstrong của sơ đồ mạnh G. Đưa ra một thuật toán đa thức xây dựng một quan hệ Armstrong R của một sơ đồ mạnh G cho trước (nghĩa là SR=S+) và ngược lại một thuật toán đa thức xây dựng một sơ đồ mạnh G từ một quan hệ R cho trước sao cho S+ = SR

2.9.1 Sự tồn tại của quan hệ Armstrong

Cho G = (U, S) là một sơ đồ mạnh và a U. Đặt Max(S+,a)={a P(U) (A {a} S+)

và ((A B) ( D B)( D {a} S+))}. Có thể thấy

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Chú ý rằng là tập phản khóa của họ Ka. Ta gọi Max(S+

) =

Bổ đề 2.9.2. Nếu U - Max(S+) thì {c} U S+với mỗi c U - Max(S+). (adsbygoogle = window.adsbygoogle || []).push({});

Chứng minh: Giả sử c U - Max(S+

).

Suy ra c Max(S+).Bởi (9.1) chúng ta có{c} a U

Theo tính chất (1) trong mệnh đề 8.2.2 và định nghĩa tập phản khoá {c} a U

Do vậy bởi quy tắc (S5) và định nghĩa của Kata có: {c} +

Bổ đề được chứng minh. □

Bổ đề 2.9.3. Giả sử A Khi đó với mọi b A thì

{b} S+ với c U - A Chứng minh:

Giả sử có A và b A sao cho {b} S+

với C U-A.Vì A và c U - A. Khi đó theomệnh đề 2.8.2(1): {c} S+

Do đó, bởi quy tắc (S2) ta có: {b} S+. Điều này trái với giả thiết A và b A. Vậy {b} S+ b A, A và c U-A

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bây giờ giả sử Max(S+

) ={A1...At}. Từ đây, chúng ta xây dựng ánh xạ Max : U P(U) như sau:

Dễ dàng thấy a U: a Max(a) và do đó Max(a) . Ngoài ra, cũng dễ thấy nếu S={{a1 U,…,{a1 U} với U {a1,..,an} thì a U: Max (ai) = U

Bổ đề 2.9.4. Nếu Max(a) = {a} A , A và a A thì {a} S+.

Chứng minh:

Đầu tiên chúng ta giả sử có b A sao cho {a} {b} S+. Bởi mệnh đề 2.8.2 (1) suy ra {a} Kb.

Giả sử ={{a} B}. Rõ ràng {b} Kb. Do đó b nghĩa là b B. Có thể thấy, nếu B thì A B. Do đó b B.Điều này mâu thuẫn. Do vậy B= . Bởi định nghĩa của Max(a), chúng ta cóMax(a)= {a}. Điều này mâu thuẫn với Max(a)= {a} A, A và a A.

Do đó{a} S+ b A

Từ điều này và theo quy tắc (S5) suy ra{a} S+

Bổ đề được chứng minh. □

Bởi bổ đề 2.9.4 rõ ràng {a} S+ vàdo đó nếu Max(a)=U thì{a} S+

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Định lý sau phát biểu một điều kiện cần và đủ để một quan hệ bất kỳ là quan hệ Armstrong của một sơ đồ mạnh cho trước.

Định lý 2.9.5.Giả sử G =(U,S) là một sơ đồ mạnh và R={h1,…, hm} là một quan hệ trên U. Khi đó điều kiện cần và đủ để R là một quan hệ Armstrong của G là: a U : = Max(a)

ở đây = {b U| {a} SR}. Chứng minh:

Đầu tiên chúng ta chứng tỏ {a}+

= Max(a)với mọi a U.

Ký hiệu H = {Ai Max(S+)| a Ai }. Có thể thấy, nếu H= thì theo bổ đề 2.9.2 ta có {a} Max(a) S+ (adsbygoogle = window.adsbygoogle || []).push({});

.

Giả sử H= . Dễ dàng thấy, nếu H Max(S+

) thì bởi bổ đề 2.9.4, {a} Max(a) S+.

Bởi bổ đề 2.9.3, rõ ràng với bất kỳ M sao cho M Max(a) chúng ta có {a} M S+.

Do đó, theo định nghĩa của {a}+

chúng ta có a U : {a}+ = Max{a).(9.2)

Rõ ràng, theo định lý 2.5.1, ta thấy rằng SR=S+ khi và chỉ khi với mỗi a U:{a}+=

Do đó, nếu SR = S+ thì = Max(a) với mọi a U

Ngược lại, nếu =Max(a) với mọi a U, thì khi đó bởi định lý 1.4.6 và (4.2) ta có SR = S+.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Định lý được chứng minh. □

Hệ quả sau là rõ ràng.

Hệ quả 2.9.6. Giả sử G = (U,S)là một sơ đồ mạnh và R là một quan hệ trên U. Khi đó, tồn tại một thuật toán thời gian đa thức để kiểm tra R có phải là một quan hệ Armstrong của G hay không.

2.9.2 Các thuật toán

Thuật toán 2.9.7.(Xây dựng quan hệ Armstrong của sơ đồ mạnh) Vào: sơ đồ mạnh G = (U,S).

Ra: Quan hệ R sao cho SR = S+ Phương pháp:

Bước 1: Tính họ các tập tối tiểu Kavới mỗi thuộc tính a Utheothuật toán 2.8.3.

Bước 2: Với mỗi họ Ka, tính tập phản khoá theothuật toán 1.6.5. Buớc 3. Đặt

Bước 4: Ký hiệu các phần tử của Max(S+

) là A1,…, AtXây dựng quan hệ R={h0, h1, ..,hm} như sau:

với mỗi a U,h0(a) = 0, i = 1,2,...,t

Bởi định lý 2.9.5, rõ ràng Rlà quan hệ Armstrong của Gnghĩa là SR = S+. Ví dụ sau chứng tỏ rằng với một sơ đồ mạnh cho trước G,thuật toán

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.9.7 có thể được áp dụng để xây dựng một quan hệ R sao cho R là quan hệ Armstrong củaG.

Ví dụ2.9.8 Cho sơđồ mạnh G=(U,S) với U = {a,b,c,d} và

S = {{a,b} c},{b} {a, d}, {d} {b}}. Tìmmột quan hệ Armstrong củaG.

Ta có:Ka={{a}, {b},{d}}, Kb={{b},{d}}, Kc={{a}, {b}, {c}, {d}} Kd={{b},{d}} Suy ra: = {{c}} , , Do đóMax(S+ ) = {{a,c},{c}}.Vậy a b c d R = 0 0 0 0 0 1 0 1 2 2 0 2 Rõ ràngR làmộtquan hệ Armstrongcủa G.

Ở đâyđểthuận lợi choviệc tínhđộphức tạp của thuật toán 2.9.7, chúng tatrình bày lại thuật toán tính tập phản khoá của họ Kai

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Thuật toán 2.9.10. (Tìm tập phản khoá ) Vào: họ Kai = {B1,…,Bmi} (adsbygoogle = window.adsbygoogle || []).push({});

Ra:

Phương pháp:

Buớc 1: Đặt = {U - {a} a B1}. Rõràng K1i = {B1}-1 Buớc q+1(q<mi): Giả sử Kqi=Fqi {X1,...,Xtqi}

với X1,...Xtqichứa Bq+l và Fqi={A Kqi Bq+1 A}. Với mọi i(i = 1,2,..,tqi)

Chúng ta xây dựng các phản khoá của {Bq+1} trên Xj tương tự như K1i. Ký hiệu chúng là ,…, (J =1,2,...,tqi).

ĐặtK(q+1)i=Fqi { A Fqi 1 j tqi , 1 p rj}

Chúng ta đặt =Kmi

Ký hiệu Kqi= Fqi {X1,... Xtqi}và gọi li(1 j m) là số các phần tử của Kqi

Bây giờ chúng ta sẽ tính độ phức tạp của thuật toán 2.9.7. Rõ ràng độ phức tạp thời gian của thuật toán 2.9.7 chính là độ phức tạp thời gian của bước1 và bước 2. Khi đó bởi mệnh đề 1.6.7 và bổ đề 2.8.4, mệnh đề sau là rõ ràng.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

ởđâyU = {a1,…,an}

Trong các trường hợp lqi<lmi( i, q: 1 q m), dễ thấy độ phức tạp thời gian của thuật toán 2.9.7 sẽ là

Theo tính chất (3) và tính chất (4) trong mệnh đề 2.8.2, chúng ta thấy rằng độ phức tạp thời gian của thuật toán 2.9.7 là đa thức theo và . Do vậy thuật toán của chúng ta rất hiệu quả.

Thuật toán 2.9.12. (Xây dựng sơ đồ mạnh G = (U,S) của quan hệ R trên U cho trước sao cho R là quan hệ Armstrong của G)

Vào: quanhệ R={h1,..., hm} trên U. Ra: sơ đồ mạnh G=(U,S) sao cho S+

=SR. Phương pháp:

Bước 1: Tính hệ bằng nhau SR.

Bước 2: Với mỗi thuộc tính a U tính bao đóng theo thuật toán 2.7.2:

Bước 3: Xây dựng sơ đồ mạnh G=(U,S) với S = {{a} a U}. Bởi định lý2.9.5(hoặcđịnh lý 2.5.1) rõ ràng S+

=SR.Rõ ràng, độ phức tạp thời gian của thuật toán 2.9.12 là đa thức theo kích thước của R.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ a b c d R = 0 0 0 0 0 1 0 1 2 2 0 2

Tìm sơ đồ mạnh Gsao cho S+=SR.Ta có R = {{a,c},{c}}. Suy ra

Với S = {{a} {a,c},{b} U, {c} {c}, {d} U}.

2.9.3 Một số bài toán quan trọng

Trong [15] J.Demetrovics và Vũ Đức Thi đã liệt kê bốn bài toán sau, những bài toán này đóng vai trò quan trọng trong quá trình nghiên cứu cấu trúc và lôgic của họ phụ thuộc mạnh.

Bài toán 2.9.14. (Xây dựng quan hệ Armstrong) Cho trước sơ đồ mạnh G=(U,S)xây dựng quan hệ R trên U sao cho SR= S+.

Bài toán 2.9.15. (Bài toán suy diễn phụ thuộc) Cho trước quan hệ R trên U xây dựng sơ đồ mạnh G=(U,S) sao cho S+

=SR.

Bài toán 2.9.16 (Bài toán kéo theo phụ thuộc mạnh-quan hệ) Cho trước sơ đồ mạnh G=(U,S)và quan hệ R trên U, xác định xem SR S+.

Bài toán 2.9.17(Bài toán tương đương phụ thuộc mạnh-quan hệ) Cho trước sơ đồ mạnh G= (U,S) và quan hệ R trên Uxác định xem SR =S+ (adsbygoogle = window.adsbygoogle || []).push({});

Tính đa thức của các bài toán trên đã được khẳng định trong [15]. Tuy nhiên ở đây, chúng ta cung cấp một chứng minh khác trên cơ sở sử dụng các Vậy sơ đồ mạnh cần tìm là G=(U,S)

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

kết quả đã được chỉ ra ở trên. Trong đó độ phức tạp của các bài toán này cũng được chứng minh là đa thức.

Mệnh đề sau là rõ ràng từ mệnh đề 2.9.11

Mệnh đề 2.9.18. Bài toán 2.9.14 được giải quyết trong thời gian đa thức theo kích thước của G.

Từ thuật toán 2.9.12, mệnh đề sau là rõ ràng.

Mệnh đề 2.9.19. Bài toán 2.9.15được giải quyết trong thời gian đa thức theo kích thước của R.

Mệnh đề 2.9.20. Bài toán 2.9.16 được giải quyết trong thời gian đa thức theo kích thước của R và G.

Chứng minh: Gọi G=(U,S) là một sơ đồ mạnh và Rlà một quan hệ trên U. Từ quan hệ R, ta xây dựng sơ đồ mạnh G1=(U,S1) sao cho = SR theo thuật toán 2.9.12. Biết rằng thời gian xây dựng G1là đa thức theo kích thước R.

Theo cách xây dựng trên, rõ ràng SR S+ khi và chỉ khi =S+.

Do đó, việc kiểm tra SR S+tương đương với kiểm tra =S+. Tuy nhiên, việc kiểm tra =S+

là thời gian đa thức theo kích thước R và G.

Suy ra Bài toán 2.9.16 được giải quyết trong thời gian đa thức theo kích thước của R và G.

Mệnh đề được chứng minh. □

Bởi Hệ quả 2.9.6, mệnh đề sau là rõ ràng.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

kích thước của R và G.

2.10 Kết luận

Chương này đã thu được một số kết quả sau. Chứng minh, một số tính chất của bao đóng của tập thuộc tính. Tìm hiểu một thuật toán đa thức tìm bao đóng của tập thuộc tính trên quan hệ.

Kết quả quan trọng trong chương này là phát biểu và chứng minh một điều kiện cần và đủ để một quan hệ bất kỳ là quan hệ Armstrong của một sơ đồ mạnh. Trên cơ sở định lý này, đưa ra thuật toán đa thức xây dựng một quan hệ Armstrong của một sơ đồ mạnh cho trước, và thuật toán đa. thức xây dựng sơ đồ mạnh của một quan hệ cho trước sao cho quan hệ này là quan hệ Armstrong của sơ đồ mạnh.

Cuối cùng, chứng minh bốn bài toán quan trọng đối với việc nghiên cứu cấu trúc và lôgic của họ phụ thuộc mạnh: bài toán xây dựng quan hệ Armstrong của một sơ đồ mạnh cho trước, bài toán xây dựng sơ đồ mạnh đúng trên một quan hệcho trước, bài toán kéo theo phụ thuộc mạnh-quan hệ và bài toán tương đương phụ thuộc mạnh-quan hệ, để có thể giải quyết bằng các thuật toán thời gian đa thức.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Chƣơng 3: CÀI ĐẶT MỘT SỐ THUẬT TOÁN VỀ PHỤ THUỘC MẠNH TRONG CƠ SỞ DỮ LIỆU

Trong phần này tác giả sẽ xây dựng chương trình trên chạy trên Window mô phỏng lại một số thuật toán về phụ thuộc mạnh.

3.1Lựa chọn bài toán để cài đặt

Bài toán 1(Xây dựng quan hệ Armstrong) Cho trước sơ đồ mạnh G=(U,S) xây dựng quan hệ R trên U sao cho SR= S+.

Bài toán 2 (Bài toán suy diễn phụ thuộc) Cho trước quan hệ R trên U xây dựng sơ đồ mạnh G=(U,S) sao cho S+=SR.

Đây là hai bài toán trong tổng số bốn quan trọng trong quá trình nghiên cứu cấu trúc và lôgic của họ phụ thuộc mạnh.

Với bài toán 1 – xây dựng quan hệ Armstrong. Đầu vào là một sơ đồ mạnh G = (U, S) với U là tập các thuộc tính, S là tập các phụ thuộc mạnh. Đầu ra là xây dựng quan hệ R sao cho SR= S+(là một quan hệ Armstrong của G).

Với bài toán 2 - bài toán suy diễn phụ thuộc. Đầu vào là một quan hệ R trên tập U. Đầu ra là xây dựng một sơ đồ mạnh G = (U, S) sao cho S+ = SR. Vậy đây là 2 bài toán ngược nhau. (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3.2 Thuật toán sử dụng trong chƣơng trình Thuật toán 1(Tìm tập phản khoá)

Vào: hệ Sperner K = {B1,…,Bm} trên U. Ra: K-1.

Phương pháp:

Bước 1. Đặt K1 = {U-{a} |a B1}.Rõ ràng K1= {B1}-1.

Buớc q+1 (q < m). Giả sử Kq =Fq {X1,,,, Xtq} với X1,... , Xtq chứa Bq+1 và Fq={A Kq|Bq+1 A}. Với mọi i (i = 1,2,...,tq), xây dựng các phản khoá của {Bq+1} trên Xi tương tự như K1. Ký hiệu chúng là ,…, (i=1, 2…tq )

Đặt : Kq+1 = Fq { | A Fq A, 1 ≤ i ≤ tq , 1 ≤ p ≤ ri} Cuối cùng đặt K-1

= Km

Thuật toán 2 (Tính tập bao đóng {a}+

)

Vào: sơ đồ mạnh G = (U,S) với S ={Ai i| i=1,2,... , m} và a U. Ra: bao đóng {a}+

, Phương pháp: tính {a}+

bằng quy nạp. Buớc1: Đặt X0

= {a}.

Bước i+1: Nếu có một phụ thuộc mạnh Aj Bj S sao cho Aj X(i) và Bj (i) thì ta tính

X(i+1) = X(i) ( j)

Trong trường hợp ngược lại, ta đặt {a}+

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một phần của tài liệu nghiên cứu phụ thuộc mạnh trong cơ sở dữ liệu (Trang 39 - 72)