Một sơ đồ mạnh G là một cặp (U,S), trong đóU là tập hữu hạn khác rỗng các thuộc tính và S là tập các phụ thuộc mạnh trên U. Khi đó bao đóng của tập phụ thuộc mạnh S, ký hiệu S+, được định nghĩa là tập tất cả các phụ thuộc mạnh được dẫn xuất từ S bằng cách áp dụng các quy tắc từ (Sl)-(S5).
J.Demetrovics trong [10] đã chứng minh rằng nếu G=(U,S) là một sơ đồ mạnh thì luôn có ít nhất một quan hệ R trên U sao cho SR = S+. Quan hệ R như vậy được gọi là quan hệ Armstrong của G. Rõ ràng trong trường hợp này các phụ thuộc mạnh của G đều đúng trên R. 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 được chỉ ra bởi J.Demetrovics và Vũ Đức Thi [15].
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Cho G = (U, S) là một sơ đồ mạnh và X U. Đặt ={a U | X S+}
Khi đó được gọi là bao đóng của tập thuộc tính X trên G. Trường hợpG là rõ ràng, nếu không sợ nhầm lẫn chúng ta sẽ viết X+
thay cho .
Bổ đề 2.3.1. [15] Giả sử G =(U,S)là một sơ đồ mạnh. Khi đó X Y S+
nếu và chỉ nếu Y X+. Biết rằng X+
= + Có thể xem J.DemetrovicsvàVũ
ĐứcThitrong[15],tuynhiên trong chứng minh của mệnh đề 2.8.2chúng ta cũng đã khẳng định được điều này. Do đó để tính bao đóng của một tập thuộc tính, trước hết ta cần phải tính bao đóng của mọi thuộc tính nằm trong tập thuộc tính đó. Dưới đây là thuật toán tính bao đóng {a}+ với a là một thuộc tính trong sơ đồ mạnh G=(U,S).
Thuật toán 2.3.2. [15] (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/
Rõ ràng tồn tại một số nguyên nhỏ nhất kđể
{a} =X(0) X(1) … X(k) X(k+1)… Khi đó đặt : {a}+
=X(k)
Mệnh đề 2.3.3.[15] Với mỗi a Uthuật toán 2.3.2 tính đúng bao đóng{a}+ Có thế thấy rằng độ phức tạp của thuật toán 2.3.2 là thời gian đa thức theo |U| và |S|. Từ đây, rõ ràng tồn tại một thuật toán thời gian đa thức để giải bài toán thành viên(nghĩa là cho một sơ đồ mạnh G = (U, S) và một phụ thuộc mạnh X Y kiểm tra xem X Y có thuộc S+
hay không).
Mệnh đề 2.3.4. [15] Giả sử G =(U, S)là một sơ đồ mạnh và X Y là một phụ thuộc mạnh, Khi đó có một thuật toán thời gian đa thức xác định xem
X S+ hay không.
Đối với quan hệ R trên U ta đặt ={a U| X {a} SR}. Khi đó được gọi bao đóng của tập thuộc tính X trên R. Trường hợp SR là rõ ràng, nếu không sợ nhầm lẫn chúng ta sẽ viết thay cho .
Rõ ràng = (Nhận xét 2.6.5). Do vậy, để tính bao đóng của một tập thuộc tính trên quan hệ, trước hết ta cần phải tính bao đóng của mọi thuộc tính nằm trong tập thuộc tính đó. Thuật toán tính bao đóng của một thuộc tính được đề xuất trong phần 2.7(thuật toán 2.7.2)và đã được chứng minh có độ phức tạp thời gian đa thức. Từ đó, rõ ràng bao đóng của tập thuộc tính trên quan hệ cũng được tính trong thời gian đa thức.
Lưu ý rằng, khi bàn về phụ thuộc mạnh thì quan hệ R được xét là quan hệ của một sơ đồ mạnh G=(U, S) nào đó, nghĩa là tập thuộc tính của R là U và
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
R thoả mọi phụ thuộc mạnh của S.
2.4 Khoá tối tiểu của sơ đồ mạnh và quan hệ
Chúng ta đã biết khái niệm khoá được đưa ra với ý nghĩa xác định duy nhất một đối tượng. Cho G =(U, S) là sơ đồ mạnh, R là một quan hệ trên U vàK={ai,... , ap} là một tập con thuộc tính của U. Khi đó K được gọi là một
khoácủa G(tương ứng của R) nếu:
=U (tương ứng =U )
Tập thuộc tính K được gọi là một khoá tối tiểu của G(tương ứng của R) nếu K thoả các điều kiện sau:
1. K là một khoá của G(tương ứng của R),
2. Bất kỳ một tập con thực sự nào của K không là khoá của G(tương ứng củaR).
Ký pháp KG(tương ứng KR) là tập tất cả khoá tối tiểu của G(tương ứng R). Trong [1] Nguyễn Kim Anh đã đưa ra thuật toán tìm một khoá tối tiểu của một sơ đồ mạnh với độ phức tạp thời gian là đa thức. Hơn nữa, tác giả đã chứng minh một kết quả rất thú vị, đó là đối với sơ đồ mạnh mọi khoá tối tiểu đều có lực lượng như nhau. Ngoài ra, tác giả cũng chứng minh được rằng bài toán tìm tập tất cả khóa tối tiểu KG của G được giải quyết bằng một thuật toán có độ phức tạp thời gian là đa thức nếu lực lượng của KG là đa thức.
2.5 Các dạng tƣơng đƣơng của họ phụ thuộc mạnh
Ánh xạ F : P(U) P(U)được gọi là hàm mạnh trên U nếu với mọi a, b Uvà X P(U):
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.b F({a}) kéo theo F({b}) F({a}) 3. F(X) =
Chú ý 2.5.[26] Rõ ràng, với bất kỳ hàm mạnhF chúng ta đều có 1. F( )= U
2. với mọi X,Y P(U) : F(X Y) = F(X) F(Y), 3. nếu X Y thì F(Y) F(X).
Chúng ta có thể thấy rằng tập {F({a})|a U} xác định tập {F(X)|X P(U)}
Trong [26], Vũ Đức Thi chứng tỏ rằng giữa các s - họ và các hàm mạnh tồn tại một tương ứng 1-1.
Địnhlý2.5.1.[26]Giả sử Slà một s-họ trên U.
Đặt FS(X)={a U|X {a} S}. Khi đóFS là một hàm mạnh trên U. Nguợc lại, nếu F là một hàm mạnh trên U thì có đúng một s -họ S trên U sao cho FS=F, ở đâyS={X
Định lý 2.5.1 chỉ ra rằng đề nghiên cứu phân tích các đặc trưng của họ phụ thuộc mạnh chúng ta có thể dùng công cụ hàm mạnh. Ngoài hàm mạnh, chúng ta còn có s - nửa dàn giao [26], cũng là một dạng tương đương khác của họ các phụ thuộc mạnh. Các dạng tương đương này chính là các công cụ để chúng ta có thể nghiên cứu phong phú hơn nữa cấu trúc lôgic của họ các phụ thuộc mạnh.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.6 Một số tính chất cơ bản của bao đóng của tập thuộc tính Chú ý 2.6.1. Chúng ta định nghĩa ánh xạ Fs : P(U) P(U) như sau: Chú ý 2.6.1. Chúng ta định nghĩa ánh xạ Fs : P(U) P(U) như sau:
Fs(X) = {a U X {a} S+}.
Từ Định lý 2.5.1, rõ ràng Fs làmột hàm mạnh trên U. Khi đó theo định nghĩa bao đóng X+
, rõ ràng
X+= Fs(X)
Đối với mọi phụ thuộc mạnh X Y, chúng ta luôn giả sử rằng X,Y Từ chú ý này, chúng ta nhận thấy phép toán lấy bao đóng của tập thuộc tính (trên sơ đồ mạnh) là một hàm mạnh. Do vậy, bổ đề sau là rõ ràng.
Bổ đề 2.6.2 Giả sử G = (U,S) là một sơ đồ mạnh a,b U và X,Y U. Khi đó
1. a {a}+
2. Nếu b {a}+ thì {b}+ {a}+ 3. X+=
4. (X Y)+ = X+ Y+ 5. Nếu X Y thì Y+ X+
Bổ đề 2.6.3. Giả sử G =(U,S) là một sơ đồ mạnh và X,Y U. Khi đó
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2. Nếu X Y S+ thì Y+ X+
3. Nếu X Y S+ và Y X S+ thì X+= Y+ Chứng minh.
1. Vì X+ X+ nên theobổ đề 2.6.1 X X+ S+
2. Giả sử X Y S+. Theo định nghĩa bao đóng của tập thuộctính Y+ ={a U Y {a} S+}.
Ký hiệu Y+ = {a1,…,ap} ≠ . Khi đó, theo quy tắc (S2), từ X Y S+ và Y {ai} S+( i=1,2,….,p):
X {ai} S+ i = 1,2,….,p hay ai X+ i = 1,2,….,p
vậy Y+ X+
3. Giả sử X Y S+ và Y X S+.Theo tính chất (2) suy ra Y+ X+vàX+ Y+. Vậy X+= Y+
Bổ đề được chứng minh. □
Bổ đề 2.6.4. Giả sử G= (U, S) là một sơ đồ mạnh và X, Y U. Khi đó 1. X Y S+ nếu và chỉ nếu {a} Y S+ với mỗi a X
2. X Y S+ nếu và chỉ nếu X {b} S+ với mỗi b Y Chứng minh.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2. Suy ra từ quy tắc (S3) và quy tắc (S5).
Bổ đề được chứng minh. □
Nhận xét 2.6.5. Xét ánh xạ : P(U) P(U) như sau: (X)={a U X {a} SR}.
Bởi Định lý 2.5.1, suy ra là một hàm mạnh trên U. Theo định nghĩa bao đóng của tập thuộc tính trên quan hệ, rõ ràng
= (X).
Từ đây, chúng ta nhận thấy rằng phép toán lấy bao đóng của tập thuộc tính trên quan hệ cũng là một hàm mạnh. Do đó các bổ đề2.6.2, bổ đề 2.6.3 và bổ đề 2.6.4 vẫn còn đúng đối với quan hệ.
2.7 Thuật toán tính bao đóng của tập thuộc tính trên quan hệ
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.
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+).
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+
.
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).