Bao đóng của F F+ Bao đóng của F ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn logic từF... Sử dụng bao đóng của tập thuộc tính Kiểm tra siêu khóa Testing for superkey
Trang 1- Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
- Phụ thuộc hàm (FD)
- Phụ thuộc hàm tương đương
Trang 2Phụ thuộc hàm (FD)
Đị nh nghĩa: Cho một lược đồ quan hệ gồm n thuộc tính: Q(A1, A2,…, An)
X, Y là hai tập con của Q+={A1, A2,…, An}
r là một quan hệ trên Q
t1, t2 là hai bộ bất kỳ của r
Phụ thuộc hàm giữa hai thuộc tính X và Y ký hiệu là X Y được định nghĩa như sau:
X Y (t1.X = t2.X t1.Y = t2.Y)
(Ta nói X xác định Y hay Y phụ thuộc hàm vào X )
Trang 5Phụ thuộc hàm (FD)
Thuật toán Satifies: Cho quan hệ r và X, Y là hai tập con
của Q+ , Thuật toán SATIFIES sẽ trả về trị true nếu X Y ngược lại là false
SATIFIES(r,X,Y)
Sắp các bộ của quan hệ r theo X để các giá trị giống nhau trên
X nhóm lại với nhau
Nếu tập các bộ cùng giá trị trên X cho các giá trị trên Y giốngnhau thì trả về true ngược lại là False
Trang 6Phụ thuộc hàm (FD)
Ví dụ: SATIFIES(phanCong,MAYBAY,GIOKH)
Trang 7Ví dụ: Q+=(A, B, C, D)
Trang 8Hệ luật dẫn Armstrong
Phụ thuộc hàm được suy diễn logic từ F
Phụ thuộc hàm X Y được suy diễn logic từ F nếu một quan hệ r bất kỳ thỏa
mãn tất cả các phụ thuộc hàm của F thì cũng thỏa phụ thuộc hàm X Y Ký hiệuF|= X Y
Bao đóng của F (F+)
Bao đóng của F ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn logic từF
Trang 10Hệ luật dẫn Armstrong
Hệ luật dẫn Amstrong:
Cho X,Y,Z,W là tập con của Q+
r là quan hệ bất kỳ của Q
Ba luật của tiên đề Amstrong:
1 Luật phản xạ (reflexive rule):
Trang 11Hệ luật dẫn Armstrong
Ba hệ quả của tiên đề Amstrong:
1 Luật hợp (Union Rule)
Trang 12Bao đóng của tập thuộc tính X (closures of attribute sets)
Trang 13Bao đóng của tập thuộc tính X (closures of attribute sets)
Thuật toán tìm bao đón g:
Tính liên tiếp tập các tập thuộc tính X0,X1,X2, theo phương pháp sau:
Bước 1: X0 = X
Bước 2: lần lượt xét các phụ thuộc hàm của F
Nếu Y Z có Y Xi thì Xi+1 = Xi Z
Loại phụ thuộc hàm Y Z khỏi F
Bước 3: Nếu ở bước 2 không tính được Xi+1 thì Xi chính là bao đóng của X
Ngược lại lặp lại bước 2
Trang 14Bao đóng của tập thuộc tính X (closures of attribute sets)
Ví dụ: Cho lược đồ quan hệ Q(A,B,C,D,E,G,H) và tập phụ thuộc hàm
F={B A; DA CE; D H; GH C; AC D} Tìm bao đóng của X = {AC} trên F
Trang 15Bao đóng của tập thuộc tính X (closures of attribute sets)
Ví du 2: cho lược đồ quan hệ: Q(A,B,C,D,E,G)
Trang 16Sử dụng bao đóng của tập thuộc tính
Kiểm tra siêu khóa (Testing for superkey)
Để kiểm tra X có phải là siêu khóa: tính X + , nếu X + chứa tất cả các thuộc tính của R thì X
là siêu khóa.
X là khóa dự tuyển (candidate key) nếu không tập con nào trong số các tập con của nó là khóa
Kiểm tra một phụ thuộc hàm XY có được suy dẫn từ F.
Kiểm tra 2 tập phụ thuộc hàm tương đương
F + =G +
Với mỗi phụ thuộc hàm Y Z trong F
Tính Y+ trên tập phụ thuộc hàm G
Trang 17Phụ thuộc hàm dư thừa
Tập các phụ thuộc hàm có thể là dư thừa vì chúng có thể suy diễn từ các FDs khác.
Ví dụ:
AC là dư thừa đối với F: (AB, BC, A C)
Một phần của phụ thuộc hàm cũng có thể dư thừa.
Ví dụ:
F=(A B, BC, AC,D) có thể được viết lại: F=(A B, BC,
AD)
Trang 18Bao đóng của tập phụ thuộc hàm
Bao đóng của F ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn
logic từ F.
Thuật toán tìm bao đóng F+
Bước 1: Tìm tất cả tập con của Q+
Bước 2: Tìm tất cả các phụ thuộc hàm có thể có của Q
Bước 3: Tìm bao đóng của tất cả tập con của Q
Bước 4: Dựa vào bao đóng của tất cả các tập con đã tìm để xác định phụ thuộchàm nào thuộc F+
Trang 19Bao đóng của tập phụ thuộc hàm
Trang 20Bao đóng của tập phụ thuộc hàm
Tìm tất cả các phụ thuộc hàm có thể có:
Kết quả: F + = {AB C, AB AC,AB BC, AB ABC,
C B,C BC,AC B, AC AB,AC BC, AC ABC}
A B A BC B C AB C F C A C BC F+ AC BC F+ BC AC
A AB A ABC B AC AB AC F+ C B F C ABC AC ABC F+ BC ABC
A C B A B BC AB BC F+ C AB AC B F+ BC A
A AC B AB B ABC AB ABC F+ C AC AC AB F+ BC AB
Trang 21Bao đóng của tập phụ thuộc hàm
Thuật toán tìm F+ cải tiến:
Bước 1: Tìm tất cả tập con của Q+
Bước 2: Tìm bao đóng của tất cả tập con của Q+
Bước 3: Dựa vào bao đóng của các tập con đã tìm để suy ra các phụ thuộc hàm thuộc F+
Trang 22Bao đóng của tập phụ thuộc hàm
Ví dụ :
A+ = A chỉ gồm các phụ thuộc hàm hiển nhiên
{AB}+ = ABC cho các phụ thuộc hàm không hiển nhiên sau: ABC, AB AC, AB
BC, AB ABC
Tìm tất cả các tập con của {ABC} rồi bỏ các tập con của {AB}
Các tập con của {ABC} là:
Trang 23Bao đóng của tập phụ thuộc hàm
1/ Cho quan hệ sau:
Phụ thuộc hàm nào sau đây thỏa r:
A D,AB D,C BDE,E A,A E
Trang 24Bao đóng của tập phụ thuộc hàm
Trang 25Bao đóng của tập phụ thuộc hàm
1 Cho F = {A D,AB DE,CE G,E H} Hãy tìm bao đóng của AB
2 Cho F={AB E, AG I, BE I, E G, GI H}
Hãy chứng tỏ phụ thuộc hàm AB GH được suy diễn từ F nhờ luật dẫn Armstrong
Tìm bao đóng của {AB}
3 Cho F={A D, AB E, BI E, C I, E C} tìm bao đóng của {AE}+
Trang 26Phụ thuộc hàm tương đương
Định Nghĩa : Hai tập phụ thuộc hàm F và G là tương
đương (Equivalent) nếu F+ = G+
ký hiệu F = G.
Thuật toán xác định F và G có tương đương không
Bước 1 : Với mỗi phụ thuộc hàm X Y của F ta xác định xem X Y có là thành viên của G không
Bước 2 : Với mỗi phụ thuộc hàm X Y của G ta xác định xem X Y có là thành viên của F không
Nếu cả hai bước trên đều đúng thì F G
Trang 27Phụ thuộc hàm tương đương
Ví dụ: Cho lược đồ quan hệ Q(ABCE) hai tập phụ thuộc hàm:
F={ABC,AD,CE}
G = {ABCE,AABD,CE}
a) F có tương đương với G không?
b) F có tương đương với G’={A BCE} không?
Trang 28Phụ thuộc hàm tương đương
Trang 29Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Phụ thuộc hàm có vế trái dư thừa :
F là tập các phụ thuộc hàm trên lược đồ quan hệ Q
Trang 30Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Ví dụ 2: cho tập phụ thuộc hàm F = {A BC , B C, AB D} Phụ thuộc hàm
AB D có vế trái dư thừa B vì:
F = F – {AB D} {A D}
= {A BC, B C, A D}
F là tập phụ thuộc hàm có vế trái không dư thừa nếu F không chứa phụ thuộc hàm có vế trái dư thừa.
Trang 31Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Thuật toán loại các phụ thuộc hàm có vế trái dư thừa :
Xét lần lượt các phụ thuộc hàm X Y trong F
Với mọi tập con X’≠ của X, nếu X’ Y F+ thì thay X Y bằng X’ Y
Ví dụ 3: F = {A BC , B C, AB D}, phụ thuộc hàm AB D có A+=ABC A
DF+
Trong F ta thay AB D bằng A D
F = {A BC,B C, A D}
Trang 32Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Phụ thuộc hàm dư thừa:
F là tập phụ thuộc hàm không dư thừa nếu không tồn tại F’ Fsao cho F’ F Ngược lại F là tập phụ thuộc hàm dư thừa
Ví dụ:
Cho F = {A BC, B D, AB D} thì F dư thừa vì F F’= {A BC, B D}
Trang 33Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Tập phụ thuộc hàm tối thiểu (minimal cover)
F được gọi là một tập phụ thuộc hàm tối thiểu (hay phủ tối thiểu) nếu F thỏa đồngthời ba điều kiện sau:
F là tập phụ thuộc hàm có vế trái không dư thừa
F là tập phụ thuộc hàm có vế phải một thuộc tính
F là tập phụ thuộc hàm không dư thừa
Trang 34Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm
Bước 1: Loại bỏ các phụ thuộc hàm có vế trái dư thừa
Bước 2: Tách các phụ thuộc hàm có vế phải nhiều hơn mộtthuộc tính thành các phụ thuộc hàm có vế phải một thuộctính
Bước 3: Loại bỏ các phụ thuộc hàm dư thừa
Trang 35Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Ví dụ 1: Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ thuộc
F ={AB C D, B C, C D} Tìm phủ tối thiểu của F.
Bước 1: AB CD là phụ thuộc hàm có vế trái dư thừa?
Xét B C D F + ?
Tính B+ =BCD B C D F+
Vậy AB C D là phụ thuộc hàm có vế trái dư thừa A F={B
C D; B C; C D}
Trang 36Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Bước 2: tách các phụ thuộc hàm có vế phải nhiều hơn 1 thuộc tính thành các phụthuộc hàm có vế phải 1 thuộc tính
Trang 37Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Trong F 1tt ,B D là phụ thuộc hàm dư thừa?
B D G+ ? với G = F1tt - {B D}={B C; C D}
BG+ =BC D B D G+
trong F1tt, B D dư thừa
Kết quả của bước 3 cho phủ tối thiểu:
F={B C;C D}=Ftt
Trang 38Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Ví dụ 6: Cho lược đồ quan hệ Q(A,B,C, D) và tập phụ thuộc F như sau:
Trang 39Phủ tối thiểu của tập phụ thuộc hàm (minimal cover)
Trang 40KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Định Nghĩa : Cho lược đồ quan hệ Q(A1,A2,…,An)
Trang 41KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Tập thuộc tính S được gọi là siêu khóa nếu S K
Thuộc tính A được gọi là thuộc tính khóa nếu AK với K làkhóa bất kỳ của Q Ngược lại A được gọi là thuộc tính không khóa.
Một lược đồ quan hệ có thể có nhiều khóa và tập thuộc tínhkhông khóa cũng có thể bằng rỗng
Trang 42KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Thuật toán tìm một khóa của một lược đồ quan hệ Q
Trang 43KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Ví dụ: cho lược đồ quan hệ Q và tập phụ thuộc hàm F như sau:
‒ Q(A,B,C,D,E)
‒ F={ABC, AC B, BC DE} tìm khóa K
B1: K=Q+ K=ABCDE
B2:(K\A)+ (BCDE)+=BCDE ≠ Q+ K=ABCDE
B3:(K\B)+ (ACDE)+= ABCDE = Q+ K=ACDE
B4: (K\C)+ (ADE)+ = ADE ≠ Q+ K=ACDE
B5: (K\D)+ (ACE)+ = ACEBD=Q+ K=ACE
B6: (K\E)+ (AC)+ = ACBDE =Q+ K=AC
Trang 44KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Ví dụ: cho lược đồ quan hệQ(ABCDEGHI) và tập thuộc tính F={AC B;
Trang 45KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Thuật toán tìm tất cả khóa của lược đồ quan hệ:
Bước 1 : Xác định tất cả các tập con khác rỗng của Q+ ={X1, X2, …,X 2 n-1 }
Bước 2 : Tìm bao đóng của các Xi
Bước 3 : Siêu khóa là các Xi có Xi += Q+
Giả sử ta đã có các siêu khóa là S = {S1,S2,…,Sm}
Bước 4 : xét mọi Si, Sj con của S (i ≠ j), nếu Si Sj thì loại Sj (i,j=1 n), kết quả còn lại của S chính là tập tất cả các khóa cần tìm
Trang 46KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Ví dụ: Tìm tất cả các khóa của lược đồ quan hệ và tập phụ
thuộc hàm như sau:
Trang 47KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Thuật toán (cải tiến) tìm tất cả khóa của một lược đồ quan hệ
Bước1 : tạo tập thuộc tính nguồn TN, tập thuộc tính trung gian TG
Bước2 :
Nếu TG = thì lược đồ quan hệ chỉ có một khóa K = TN kết thúc
Ngược lại Qua bước 3
Bước3 : tìm tất cả các tập con Xi của tập trung gian TG
Trang 48KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Bước 4: tìm các siêu khóa Si bằng cách Xi
Trang 49KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (Key)
Ví dụ: cho lược đồ quan hệ Q(CSZ) và tập phụ thuộc hàm F={CS Z; Z C}.
Áp dụng thuật toán cải tiến:
TN = {S}; TG = {C,Z}
Gọi Xi là các tập con của tập TG: