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à XA∈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ì XY ∈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 XY∈F+và YZ∈F+thì XZ∈F+
-X⊆U, A∈X+khi và chỉ khi XA∈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à XX+∈F+
4. Tính luỹ đẳng ((X)+)+= X+ 5. (X+Y)+= (XY+)+=(XY)+
6. XY∈F+khi và chỉ khi Y⊆X+hay XY suy dẫn được từ F khi và chỉ khi Y⊆X+
7. X+=Y+khi và chỉ khi XY∈F+và YX∈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 XYZ ∈ F+ (1), ta cần chứng minh
YZZ∈F+(4) do luật phản xạ
Từ (1) và (4) theo tính chất bắc cầu cóXZ∈F+
Hoàn toàn tương tự YZY∈ F+ (5) ( theo tính chất phản xạ) từ (1) và (5) theo tính chất bắc cầu thì XY∈F+
XY∈F+ XZ∈F+
XY∈F+(2) XZ∈F+(3)
b) Ta chứng minhchiều ngược “”, giả thiết nếu có
Ta sẽ chứng minhXYZ∈F+
Từ(2) suy ra XZYZ (4) ( theo tính chất gia tăng ) Từ(3) suy ra XXZ (5) ( theo tính chất gia tăng ) Từ (4) và (5) và từ tính chất bắc cầusuy ra XYZ
Chứng minh1)
Với∀A∈ X suy ra {A}⊆X, suy ra XA∈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 XA ∈F+(1)
do X⊆Y nên YX∈ F+ (2)
từ (1) và (2) và tính chất bắc cầusuy ra YA∈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 minhXX+∈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 XX+∈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ó XX+∈F+ (**), từ (*) và (**) suy ra XA∈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)
XY ∈F+(2) XZ∈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 XY∈F+ X+ Y∈F+( luật pản xạ) X X+( tính chất 3) X Y∈F+ b) Nếu có XY ∈F+ta cần chứng minh Y⊆X+ Ta viết Y= B1, B2,.., Bn, suy ra YBi(∀i=1..n)
Mặt khác XY nên theo tính chất bắc cầu suy ra XBi(∀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 XY∈F+và YX∈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à YY+nên theo tính chất bắc cầu thì YX
Hoàn toàn tương tự cũng cóXY - Chứng minh chiều ngược “”
TừXY và YX ta cần chứng minhX+= Y+thật vậy XY suy ra Y⊆X+ suy ra Y+⊆X++ =X+hay Y+⊆X+ (1) Hoàn toàn tương tự từ YX 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 | XA ∈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= { BCADE, ACBDG, BE ABC, CD BDH, BCHACG} 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={ ABBCP, EBGH, ACDBG, DAEH} 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 XY∈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: XY - 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ó : XjYj X(k)Xjvì Xj⊆ X(k)(phản xạ)
X+ X(k) vì X(k)⊆X+(theo giả thiết quy nạp) XX+( tính chất của bao đóng)
Suy ra XYJ ⇔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 XA∈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)