Bao đóng của tập thuộc tính (closures of attribute sets)

Một phần của tài liệu Đề cương bài giảng môn cơ sở dữ liệu (Trang 93 - 99)

1. Định nghĩa các thuật ngữ: cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ sở dữ

10.6. Bao đóng của tập thuộc tính (closures of attribute sets)

Cho F là tập các phụ thuộc hàm trên tập thuộc tính U, X⊆U, bao đóng của tập thuộc tính X đối với tập phụ thuộc hàm F, kí hiệu là X+ (hoặcXF+) nó

được đinh nghĩa như sau: X+= { A | A∈U và XA∈F+}

Nhận xétvới một tập F cho trước ta luôn có: -X+⊆U

-∀X, Y⊆U, Y⊆X, thì XY ∈F+

-∀f∈F thì f∈F+, suy ra F⊆F+, tơng tự∀f∈F thì f∈F*, suy ra F⊆F* -∀X, Y, Z⊆U, nếu XY∈F+và YZ∈F+thì XZ∈F+

-X⊆U, A∈X+khi và chỉ khi XA∈F+

Một sốtính chất của bao đóng của tập thuộc tính 1. Phản xạ∀X⊆U thì X⊆X+

2. Tính đơn điệu ∀X, Y⊆U, nếu X⊆Y thì X+⊆Y+ 3. X+X∈F+và XX+∈F+

4. Tính luỹ đẳng ((X)+)+= X+ 5. (X+Y)+= (XY+)+=(XY)+

6. XY∈F+khi và chỉ khi Y⊆X+hay XY suy dẫn được từ F khi và chỉ khi Y⊆X+

7. X+=Y+khi và chỉ khi XY∈F+và YX∈F+

Chứng minh

Để chứng minh các tính chất trên trước tiên ta chứng minh một mênh đề sau:

Mệnh đề:Với∀X, Y, Z∈U thì X YZ∈F+khi và chỉ khi

Việc chứng minh mệnh đề này được dựa vào hệ tiên đề Amstrong

a) Ta chứng minh chiều thuận “”, giả thiết XYZ ∈ F+ (1), ta cần chứng minh

YZZ∈F+(4) do luật phản xạ

Từ (1) và (4) theo tính chất bắc cầu cóXZ∈F+

Hoàn toàn tương tự YZY∈ F+ (5) ( theo tính chất phản xạ) từ (1) và (5) theo tính chất bắc cầu thì XY∈F+

XY∈F+ XZ∈F+

XY∈F+(2) XZ∈F+(3)

b) Ta chứng minhchiều ngược “”, giả thiết nếu có

Ta sẽ chứng minhXYZ∈F+

Từ(2) suy ra XZYZ (4) ( theo tính chất gia tăng ) Từ(3) suy ra XXZ (5) ( theo tính chất gia tăng ) Từ (4) và (5) và từ tính chất bắc cầusuy ra XYZ

Chứng minh1)

Với∀A∈ X suy ra {A}⊆X, suy ra XA∈X+ suy ra X⊆X+

Chứng minh2)

Với∀A∈ X+cần chỉ raA∈Y+nếu X⊆Y do A∈X+suy ra XA ∈F+(1)

do X⊆Y nên YX∈ F+ (2)

từ (1) và (2) và tính chất bắc cầusuy ra YA∈F+(3), từ(3) suy ra A∈Y+

Chứng minh3)

Theo tính chất (1) ta cóX⊆X+nên suy ra X+X∈F+ Giả sửX+= { A1, A2, … An}

Ta cần chứng minhXX+∈F+thật vậy Do Ai∈X+,∀i=1..n Nên

X A1∈F+( theo định nghĩa về bao đóng) X A2∈F+( theo định nghĩa về bao đóng) ...

X An∈F+(theo định nghĩa về bao đóng) Suy ra X A1A2… An∈F+( theo luật hợp) Nhưng do X+= A1A2… Annên suy ra XX+∈F+

Chứng minh4)

Để chứng minh(X+)+ = X+ta chứng minh(X+)+ ⊇X+và (X+)+⊆X+ Theo tính chất 1 ta có(X+)+ ⊇X+

Ta cần chứng minh(X+)+ ⊆X+

A ∈ X++ khi và chỉ khi X+  A ∈ F+ (*), mặt khác theo tính chất 3 ta có XX+∈F+ (**), từ (*) và (**) suy ra XA∈F+( theo tính chất bắc cầu) Suy ra A∈X+, suy ra X++ ⊆X+

TừX++⊆X+và X+ ⊆X++suy ra X++ =X+

Chứng minh5)

XY ∈F+(2) XZ∈F+(3)

Chứng minh chiều thuận: do X+ ⊇ X, suy ra X+ Y⊇ XY, suy ra (X+ Y)+⊇

(XY)+( do tính chất đơn điệu) Chứng minh chiều ngược

Do X⊆XY nên X+ ⊆(XY)+suy ra X+Y ⊆(XY)+ Y =(XY)+ Suy ra (X+Y)+⊆(XY)++= (XY)+

Từ chiều thuận và chiều ngược suy ra (X+Y)+= (XY)+ Hoàn toàn tương tự cho các đẳng thức khác

Chứng minh 6) a) Giả sử có Y⊆X+ta cần chứng minh XY∈F+ X+ Y∈F+( luật pản xạ) X X+( tính chất 3) X Y∈F+ b) Nếu có XY ∈F+ta cần chứng minh Y⊆X+ Ta viết Y= B1, B2,.., Bn, suy ra YBi(∀i=1..n)

Mặt khác XY nên theo tính chất bắc cầu suy ra XBi(∀i=1..n), suy ra Bi ∈X+, suy ra Y⊆X+

Chứng minh 7) Để chứng minh tính chất này ta phải chứng minh cả hai chiều:

- Chứng minh chiều thuận “”

Nếu X+=Y+ta cần chứng minh XY∈F+và YX∈F+thật vậy: X+=Y+khi và chỉ khi X+⊇Y+và X+⊆Y+

Do X⊆X+ mà X+⊆Y+nên X⊆Y+ nên suy ra Y+X mà YY+nên theo tính chất bắc cầu thì YX

Hoàn toàn tương tự cũng cóXY - Chứng minh chiều ngược “”

TừXY và YX ta cần chứng minhX+= Y+thật vậy XY suy ra Y⊆X+ suy ra Y+⊆X++ =X+hay Y+⊆X+ (1) Hoàn toàn tương tự từ YX suy ra X+⊆Y+ (2)

Từ (1) và (2) suy ra Y+= X+

10.6.1Thuật toán tìm bao đóng của một tập thuộc tính

Cholược đồ quan hệα= (U, F), X⊆U X+:={ A ∈U | XA ∈F+}

Vấn đề đặt ra X+F=X+=?

Thuật toán

Inputα= (U,F), X⊆U Output X+=?

Thuật toán

Ta xác định dãy X(0), X(1), X(2),... theo quy nạp như sau 1.Đặt X(0)=X

2. Giả sử rằng đã xây dựng được đến bước thứ i tức làđã biết X(i)( i≥0) 3. Xây dựng tiếp bướci+1nhưsau

X(i+1)= X(i)∪Z(i)trong đó Z(i)=∪Rjvới điều kiện :

Vì vậy Z(i) chính là hợp của các vế phải của các phụ thuộc hàm trong tập F mà có vế trái là tập con của tập trước và có vế phải chưa đượcthêm vào.

Điều kiện (3) chỉ có tác dụng tăng tốc độ tính toán.

Nhận xét: X(0), X(1), X(2),... là một dãy đơn điệu không giảm và bị chặn trên bởi U, do đó tồn tại chỉ số i nào đó để X(i)= X(i+1)(*), gọi i là chỉ số nhỏ nhất để X(i)= X(i+1) khi đó X+= X(i)

Thuật toán tìm baođóng của tập thuộc tính dưới dạng giảmã Pascal 1

Input:α = (U, F), X⊆U

Output: X+=? Method:

1. X+:=Φ{Ban đầu ta khởi gán X+là tập rỗng} 2. Repeat

Xold :=X+; {Xold là một biến tạm dùng để đánh dấu} For each f in F Do

Begin

L: = Left (f); {Left - Hàm lấy về vế trái của phụ thuộc hàm f} R: = Right (f); {Right- Hàm lấy về vế phải của phụ thuộc hàm f} If (L⊆X+) and (L⊄X+) Then

X+:= X+∪R; End;

Until (X+=Xold); 3. Return X+

Ví dụ1: Cholược đồ quan hệα= (U ,F) với U = ABCDEGH

F= { BCADE, ACBDG, BE ABC, CD BDH, BCHACG} Lj Rj∈F (1)

Lj⊆X(i) (2) Rj⊄X(i) (3)

Hãy tính X+trong các trường hợp a) X=BD b) X=ABE c) X=CDG Giải a) đặt X(0)=BD (=X) X(1)= X(0)∪Z(0)=BD∪ Φ=BD Suy ra X(0)= X(1)vậy X+=X=BD b)Đặt X(0)=ABE (=X) X(1)= X(0)∪Z(0)=ABE∪ABC=ABCE

X(2)= X(1)∪Z(1)=ABCE∪(ADE∪BDG)=ABCDEG X(3)= X(2)∪Z(2)= ABCDEG ∪BDH=ABCDEGH=U Vậy X+=U c)Đặt X(0)=CDG (=X) X(1)= X(0)∪Z(0)=CDG∪GBH=BCDGH X(2)= X(1)∪Z(1)= BCDGH∪ADE= ABCDEGH=U Vậy X+=U

Ví dụ 2: Choα= (U, F); U=ABCDEGH

F={ ABBCP, EBGH, ACDBG, DAEH} Hãy tính X+trong các trường hợp

a) X=AC b) X=CD c) X=ABG Giải a) Với X=AC X(0)= X=AC X(1)= X(0)∪ φ= X(0)nên X+=AC b) Với X=CD X(0)=X=CD X(1)= X(0)∪AEH =ACDEH X(2)= X(1)∪( BGH ∪BG) = ACDEH ∪( BGH∪BG) = ABCDEGH =U Do X(2)=U nên X+=U c) Với X=ABG X(0)=X=ABG X(1)= ABG∪BCD=ABCDG

X(2)= ABCDG∪(BCD∪BG∪AEH)= ABCDEGH =U Do X(2)=U nên X(3)= X(2)hay X(3)=U

- Nhận xét với thuật toán trên khi có một lược đồα =(U,F), ta dễ dàng có thể tính bao đóng của một tập X cho trước.

Nhận xét: Từ thuật toán tìm bao đóng của tập thuộc tính và tính chất XY∈F+ khi và chỉ khi Y⊆X+, cho ta một thuật toán đơn giản để kiểm tra xem một phụ thuộc hàm có suy dẫn được từ tập F các phụ thuộc hàm theo hệ tiên đề hay không theo thuật toán sau:

- f: XY - Tính X+

- Nếu Y⊆X thì f suy dẫn được từF

- Nếu Y⊄X thì f không suy dẫn được từF

Định lý: Thuật toán tìm baođóng là đúng đắn

Chứng minh:

Giả sử i là một số nào đó sao cho X(i)= X(i+1)ta cần chứng minh rằng X+= X(i) (*), để chứng minh hai tập này bằng nhau ta sẽ chứng minh

Chứng minh (1)

Tổng quát∀k ( k ∈N+) X(k)⊆ X+, ta sẽ chứng minh bằng phương pháp quy nạp

Khi k=0 thì lúcđó X(k)= X(0)=X⊆X+nên đúng

Giả sử đãđúng đến bớc k ( k>0) mà X(k)⊆X+, ta cần chứng minh X(k+1)⊆X+ Theo thuật toán thì X(k+1)=X(k)∪ Z(k)

Với Z(k)=∪Yj (I) Nhận xét do X(k)⊆X+, nên ta chỉ cần chứng minh Z(k)⊆X+là đủ. Từ (I) ta có : XjYj X(k)Xjvì Xj⊆ X(k)(phản xạ)

X+ X(k) vì X(k)⊆X+(theo giả thiết quy nạp) XX+( tính chất của bao đóng)

Suy ra XYJ ⇔YJ⊆X+suy ra Z(k)⊆X+suy ra (1) được chứng minh Chứng minh(2)

Ta cần chứng minhX+⊆X(i)nếu giả thiếtX(i+1)= X(i) X(i)⊆X+ (1)

X+⊆ X(i)(2)

Xj Yj∈F (1) Xj⊆X(i) (2) YJ⊄X(i) (3)

LấyA∈X+ta cần chứng minh A∈X(i) Thật vậy doA∈X+nên XA∈F+(1)

do X⊆X(i)nên theo tính chất phản xạ ta cóX(i)X (2) Từ (1) và (2) theo tính chất bắc cầu suy ra X(i) A (3)

Từ(3) suy ra A∈X(i+1)theo giả thiết thì X(i+1)= X(i)nên A∈X(i) Vậy lấyA∈X+ thì A∈X(i) vậyX+ ⊆X(i)

Một phần của tài liệu Đề cương bài giảng môn cơ sở dữ liệu (Trang 93 - 99)

Tải bản đầy đủ (PDF)

(161 trang)