Bài giảng Cơ sở dữ liệu - Chương 5: Phụ thuộc hàm - Nguyễn Việt Cường

• PHỤ THUỘC HÀM • BÀI TOÁN TÌM PHỦ TỐI THIỂU • BÀI TOÁN TÌM KHÓA PHỤ THUỘC HÀM • Khái niệm phụ thuộc hàm • Bao ñóng của một tập phụ thuộc hàm F • Bộ luật dẫn AMSTRONG • Bao đóng của tập thuộc tính X • Thuật toán tìm F+

pdf52 trang | Chia sẻ: candy98 | Lượt xem: 1090 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu - Chương 5: Phụ thuộc hàm - Nguyễn Việt Cường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1CHƯƠNG 5 PHỤ THUỘC HÀM Functional dependency 2NỘI DUNG • PHỤ THUỘC HÀM • BÀI TOÁN TÌM PHỦ TỐI THIỂU • BÀI TOÁN TÌM KHÓA  Pth là mt công c biu din mt cách hình thc mt dng ràng buc tòan vn  Pth ñc ng d ng trong vi c gi!i quy$t bài tóan tìm khóa, tìm ph* t+i thiu và chu,n hóa c- s/ d0 li u 3PHỤ THUỘC HÀM • Khái niệm phụ thuộc hàm • Bao ñóng của một tập phụ thuộc hàm F • Bộ luật dẫn AMSTRONG • Bao ñóng của tập thuộc tính X • Thuật toán tìm F+ 4Xét ví dụ (sgk) : Cho quan hệ Phân công 1:25p15/8412Copely 5:50a13/8281Copely 5:50a9/8281Copely 1:25p12/8116Chin 10:15a13/883Chin 10:15a11/883Clark 6:35p12/8301Clark 5:50a8/8281Clark 1:25p10/8116Cushing 10:15a9/883Cushing GIOKH)NGAYKH,MAYBAY,(PHICONG,phanCong 1. KHÁI NIỆM 5Trong thế giới thực luôn có những qui tắc hoạt ñộng : - Mỗi máy bay có một giờ khởi hành duy nhất - Nếu biết phi công, Ngày và giờ khởi hành thì biết ñược máy bay do phi công này lái - Nếu biết máy bay, ngày khởi hành thì biết phi công lái chuyến bay ñó Những qui tắc hoạt ñộng trên là một loại ràng buộc , ñược gọi là phụ thuộc hàm , và có thể phát biểu lại như sau : MAYBAY xác ñịnh GIOKH Hay GIOKH phụ thuộc hàm vào MAYBAY ðược ký hiệu f1: {MAYBAY}→ GIOKH f2: {PHICONG,NGAYKH,GIOKH}→ MAYBAY f3: {MAYBAY,NGAYKH}→ PHICONG 6 ðịnh nghĩa phụ thuộc hàm Cho lược ñồ quan hệ Q(A1,A2,,An) X, Y là hai tập con của Q+ = {A1,A2,,An} r là quan hệ trên Q t1, t2 là hai bộ bất kỳ trên r X → Y ⇔ ( t1.X = t2.X ⇒ t1.Y= t2.Y ) - N$u ∃ t1,t2 ∈ r , sao cho t1.X = t2.X và t1.Y ≠ t2.Y ta nói : pth X → Y không th=a trên r - N$u v?i m@i quan h r ñAu th=a mãn pth X → Y , ta nói pth X → Y ñc ñCnh nghĩa trên lc ñE quan h Q 7e1d1c5b2a3 e1d3c4b1a2 e1d3c3b1a2 d1d1c2b2a1 e1d1c1b1a1 Phụ thuộc hàm nào sau ñây thỏa r (A , B , C , D , E) A →D , AB→D AB→C e1d3c1b1a5 e2d2c2b2a4 e1d1c1b1a3 e2d2c2b2a2 e1d1c1b1a1 Phụ thuộc hàm nào sau ñây thỏa q BC→E , DE→C , A → BCDE 8Ví duïï: phanCong(PC, MB, N, G) , F ={(1),(2),(3)} Ñònh nghóa: Phụ thuộc hàm X → Y ñược suy diễn logic từ F nếu một lược ñồ quan hệ Q 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ệu F |= X → Y (Gọi F |= X → Y là phụ thuộc hàm hệ quả) NX : Neááu (1) thoûûa maõnõ thì (4) cuõngõ ñöôïïc thoûûa maõnõ ⇒ chæ caààn kieååm tra (1) 1. MB → G 2. MB,N → PC 3. PC,N,G → MB 4. MB,N → G 5. MB,N,G → PC 6. PC, N, G → PC ⇒ F F+ 2. Phụ thuộc hàm ñược suy diễn logic từ F Bao ñóng của một tập phụ thuộc hàm F 9 Bao ñoùùng F+ cuûûa F : là tập tất cả các phụ thuộc hàm ñược suy diễn logic từ F  Luaäät daãnã ñeåå suy ra phuïï thuoääc haøøm heää quaûû töøø F : f’ laøø phuïï thuoääc haøøm suy töøø F qua luaäät daãnã (kyùù hieääu F  f’ ) neááu ∃ f1, f2,, fn sao cho fn=f’ vaøø (fi ∈ F) ∨ (fi ñöôïïc suy dieãnã töøø fj vôùùi j=1,,i-1) Kyùù hieääu F ’={f’ | F  f’} ⇒ caààn tìm luaäät daãnã sao cho F ’= F+ ; nghóa laøø ∀f, F= f ⇒ F f vaøø F f ⇒ F = f 10 Cho quan hệ Q(Q+) . X,Y,Z,W là các tập thuộc tính của Q+ Hệ tiên ñề Amstrong gồm các luật sau (F1) LuIt ph!n x (reflexive rule): N$u Y ⊆ X thì X → Y (F2) LuIt thêm vào (augmentation rule): N$u X → Y thì XZ → Y trong ñó ký hi u XZ thay cho X∪ Z (F3) LuIt bPc cQu (transitive rule): N$u X → Y và Y → Z thì X → Z Các luật dẫn khác suy từ (F1), (F2), (F3) (F4) BPc cQu gi! : n$u X → Y và YW → Z thì XW → Z. (F5) LuIt hi : n$u X → Y và X → Z thì X → YZ (F6) LuIt phân rã : n$u X → Y và Z⊆Y thì X → Z 3. Bộ Luật Dẫn AMSTRONG (Hệ tiên ñề Amstrong) Cần chứng minh Hệ tiên ñề Armstrong là ñúng và ñầy ñủ (xem sgk) Tính ñúng : F f ⇒ F = f Tính ñầy ñủ : ∀ F = f ⇒ F  f 11 A → D , A → EA → DELuật phân rã A → DEBA → DE A → B Luật hội AB → CA → DE DEB → C Luật bắc cầu giả A → CA → DE DE → C Luật bắc cầu AB → DE AB → DEB ABC → DEB A → DELuật thêm vào AB → BB ⊆ ABLuật phản xạ Ví dụ : 12 Chứng minh Luật thêm vào: giả sử có t1.XZ = t2.XZ (1) ⇒ t1.X = t2.X ⇒ t1.Y = t2.Y (do X → Y) (2) ⇒ XZ → Y (do (1) ⇒ (2)) Luật hợp: giả sử có t1.X = t2.X (1) ⇒ t1.Y = t2.Y và t1.Z = t2.Z ⇒ t1.YZ = t2.YZ (2) ⇒ X → YZ (do (1) ⇒ (2)) Luật phân rã: gỉa sử có t1.X = t2.X (1) ⇒ t1.YZ = t2.YZ (do X → YZ) ⇒ t1.Y = t2.Y (2) ⇒ X → Y (do (1) ⇒ (2)) Luật bắc cầu: giả sử có t1.X= t2.X (1) ⇒ t1.Y = t2.Y ⇒ t1.Z = t2.Z (2) ⇒ X → Z (do (1) ⇒ (2)) Luật bắc cầu giả: giả sử có t1.XZ = t2.XZ (1) ⇒ t1.X = t2.X và t1.Z = t2.Z (2) ⇒ t1.Y = t2.Y (do X → Y) (3) ⇒ t1.YZ = t2.YZ (Kết hợp (2) và (3)) ⇒ t1.W = t2.W (do YZ →W) (4) ⇒ XZ →W 13 Bài tIp 1 : Chng t= các pth sau ñc suy din tY F nhZ b luIt d[n Amstrong ? F = { B → A , DA→ CE , D → H , AC → D } AC → DA AC → DH AC → EH ? F = { B → A , BD→ CE , A → CB , C → G , GE → H } ? BD → EH B → CG 14 Ta có f4 : AC → D và AC → A (theo luật phản xạ) => Suy ra AC → DA (theo luật hội) F = { B → A , DA→ CE , D → H , AC → D } Ví dụ Chứng minh AC → DA ? 15 Cho Q là lược ñồ quan hệ Q( Q+), F là tập các phụ thuộc hàm ñịnh nghĩa trên Q , gọi X, Ai ⊆Q +. Bao ñóng c*a tIp thuc tính X dba trên F ký hi u là X+ (hodc X+F ) X+F = ∪ Ai v?i X → Ai là ph thuc hàm ñc suy din tY F nhZ h tiên ñA Armstrong  Nhận xét : X ⊆ X+ , X+ ⊆ Q+ ⇒Bổ ñề : X → Y ∈ F+ ⇔ Y ⊆ X+ Chứng minh : (1) X → Y ⇒ tồn tại k sao cho Y = Ak ⊆ ∪ Ai = X+ theo ñịnh nghĩa của X + (2) Y ⊆ X+⇒ X+ = Y ∪ (X+ - Y) ⇒ X → Y ∪ (X+ - Y)⇒ X → Y theo luật phân rã 4.Bao ñóng của tập thuộc tính X (closures of attribute sets) 16 Thuật toán tìm bao ñóng X+: 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: lQn lt xét các ph thuc hàm c*a F N$u Y→ Z có Y ⊆ Xi thì Xi+1 = Xi ∪ Z Loi ph thuc 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 Ngc li ldp li b?c 2 17 Ví d 1: Cho lc ñE quan h Q(ABCDE) và tIp ph thuc hàm F F = { f1: A → B f2: B → C f3: C → D f4: D → E } Tìm bao ñóng c*a tIp X = {AB} dba trên F Gi!i: B?c 1:X0 = AB B?c 2: xét f1 vì A ⊆ X0  X1 = AB ∪ B = AB , loi f1 xét f2 vì B ⊆ X1  X2 = AB ∪ C = ABC , l@ai f2 xét f3 vì C ⊆ X2  X3 = ABC ∪ D = ABCD , loi f3 xét f4 vì D ⊆ X3  X4 = ABCD ∪ E = ABCDE , loi f4 B?c 3 : X+ = X4 = {ABCDE} là bao ñóng c*a X 18 Ví d 2: (sgk ) Cho lc ñE quan h Q(ABCDEGH) và tIp ph thuc hàm F F = { f1: B → A f2: DA → CE f3: D → H f4: GH → C f5: AC → D } Chng minh f= {AC → EH } ñc suy d[n tY F ? Gi!i: B?c 1: X0 = AC B?c 2: xét f5 vì AC ⊆ X0  X1 = AC ∪ D = ACD xét f2 vì AD ⊆ X1  X2 = ACD ∪ CE = ACDE xét f3 vì D ⊆ X2  X3 = ACDE ∪ H = ACDEH Xét f1, f4 :không th=a vì có v$ trái không nlm trong X3 VIy X3 không thay ñmi  X+=X3={ACDEH} là bao ñóng c*a X  AC → EH ∈ F+ 19 Bài tIp 2: Cho Q(ABCDEGH) và tIp pth F th=a trên Q. Tìm bao ñóng c*a AC ? F = { B → A , DA→ CE , D → H , AC → D } F = { B → A , BD→ CE , A → CB , C → G , GE → H } AC + = ? B + = ? 20 5. Thuật toán tìm F+ Thuật toán cơ bản ðể tính bao ñóng F+ của tập các phụ thuộc hàm F ta thực hiện các bước sau: • 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ộc hàm nào thuộc F+ Thuật toán cải tiến Dựa vào thuật toán cơ bản trên, ta nhận thấy có thể tính F+ theo các bước sau: 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 4: 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+. 21 Phủ và Phủ tối thiểu Các khái niệm : • Tập phụ thuộc hàm tương ñương với F • Phủ của F • Phủ tối thiểu của F 22 1. Hai tập phụ thuộc hàm tương ñương Bổ ñề : F ≡ G nếu và chỉ nếu F |= G và G |= F  Nếu F ≡ G ⇒ F = G và G = F ∀g∈ G +, g: X → Y⇒ g∈ F + ⇒ F = g Do ñó ∀g∈ G thì F= g hay F = G Tương tự ∀f∈ F thì G = f hay G = F  Nếu F = G và G = F ⇒ F ≡ G F = G ⇒ G ⊆ F + ⇒ G +⊆ (F +)+= F + G = F ⇒ F ⊆ G + ⇒ F +⊆ (G +)+= G + Tập phụ thuộc hàm F và G tương ñương nếu F+ = G+ ký hiệu F ≡ G 23 Thuật tóan xác ñịnh F và G có tương ñương không ? B1 :với mỗi X → Y của F xác ñịnh xem X → Y có ñược suy dẫn từ G không B2 :với mỗi X → Y của G xác ñịnh xem X → Y có ñược suy dẫn từ F không Nếu cả 2 bước trên ñều ñúng thì F ≡ G 24 Ví dụ 1: Cho lược ñồ quan hệ Q (ABCDE) và 2 tập pth F ={A→BC, A→D, CD→E } và G ={A→BCE, A→ABD, CD→E } 1. F có tương ñương với G không ? 2. F có tương ñương với G’ = { A→BCDE } 1. Nhận xét : F ñược suy diễn từ G (1) Ta Kiểm tra G có ñược suy diễn từ F không ? Tính AF+ = {ABCDE} => trong F+ có A→BCE và A→ABD (2) Từ (1) (2) : kết luận F ≡ G 2. Ta kiểm tra F có ñược suy diễn từ G’ không ? Tính CDG+ = {CD} => G’+ không chứa pth CD → E Kết luận : F không tương ñương G’ 25 Ví dụ 1: Cho lược ñồ quan hệ Q (ABCDE) và 2 tập pth F ={A→BC, A→D, CD→E } và G ={A→BCE, A→ABD, CD→E } 1. F có tương ñương với G không ? 2. F có tương ñương với G’ = { A→BCDE } 26 Bài tập : xem xét các cặp pth sau có tương ñương không? Cho lược ñồ quan hệ Q (ABCDE) và 2 tập pth F ={A→BC, A→D, CD→E } và G ={A→DE , A→BCE, CD→E } F ={A→B, B→C, C→D } và G ={A→BCD , B→CD, C→D } F ={A→B, B→C, C→D } và G ={A→CD , C→D } F ={AB→C, B→C, CD→E ,D→E } và G ={B→C , D→E } F ={AB→C, B→C, CD→E ,D→E } và G ={AB→C, B→C, C→B, BD→E } 27 2. Phủ của F 3. Phủ tối thiểu G là phủ của F nếu G ≡ F Một số phủ của F : G1 = { A→BCE, A→ABD, CD→E } G2 = { A→E, A→ABCD, CD→E } G3 = { A→BCD, CD→E } . Trong các phủ của F ta quan tâm tới một nhóm phủ gọi là phủ tối thiểu G là phủ tối thiểu của F nếu G là phủ của F ñồng thời thỏa 3 ñiều kiện sau : - G là tập phụ thuộc hàm có vế trái không dư thừa (G chỉ chứa những pth ñầy ñủ) - G là tập phụ thuộc hàm có vế phải một thuộc tính (G chỉ chứa những pth có vế phải một thuộc tính) - G là tập phụ thuộc hàm không dư thừa 28 3.a. Phụ thuộc hàm có vế trái không dư thừa : Cho F , f: X→Y∈F. Nói rlng ph thuc hàm f: X→Y có v$ trái d thYa (ph thuc hàm không ñQy ñ*) n$u tEn ti mt Z∈ X sao cho : F ≡ F - {X → Y} ∪ {Z → Y} Ví d 1: cho Q(A,B,C) và F= {AB→C; B→C} AB → C là ph thuc hàm có v$ trái d thYa vì F ≡ F- {AB→C}∪ {B→C}= {B→C} 29 Thuật tóan ñể lọai khỏi F các pth có vế trái dư thừa : Bước 1: LQn lt thbc hi n b?c 2 cho các pth X→Y c*a F Bước 2: V?i m@i tIp con X’≠ ∅ c*a X. N$u X'→Y∈ F+ thì thay X→Y trong F blng X'→Y Nhận xét : Pth có vế trái một thuộc tính là pth có vế trái không dư thừa F là Tập pth có vế trái không dư thừa nếu F không chứa những pth có vế trái dư thừa. 30 Ví d 2: lọai khỏi F các pth có vế trái dư thừa cho tIp ph thuc hàm F = {A → BC, B → C, AB → D} - xét pth AB → D : A → D ∈ F+ ? tính AF + = ABCD => A → D ∈ F+ B → D ∈ F+ ? tính BF + = BC => B → D ∉ F+ Trong F ta thay AB → D blng A → D VIy F ≡ F’ = {A → BC, B → C, A → D} - Các pth còn li có v$ trái 1 thuc tính _ là pth ñQy ñ* K$t luIn : F ≡ F’ là tIp pth có v$ trái không d thYa 31 3.b. Tập phụ thuộc hàm có vế phải một thuộc tính Mỗi tập phụ thuộc hàm F ñều tương ñương với một tập phụ thuộc hàm G mà vế phải của các pth trong G chỉ gồm một thuộc tính. Ví dụ 3: cho F = {A → BC , B → C , A → D} ta suy ra F ≡ {A → B, A → C , B → C , A → D} = G G ñược gọi là tIp ph thuc hàm có v$ ph!i mt thuc tính. 32 3.c. Tập phụ thuộc hàm không dư thừa Nói rlng F là tIp ph thuc hàm không d thYa n$u không tEn ti X→ Y ∈ F sao cho F ≡ F – {X→ Y}. Ngc li F là tIp ph thuc hàm d thYa. Ví dụ 4: cho F = {A→BC, B→D, AB→D} thì F dư thừa vì tồn tại AB→D ∈ F mà F ≡ F – {AB→D} = {A→BC, B→D} Thuật tóan lọai khỏi F các pth dư thừa: Bước 1: lần lượt lọai từng pth X → Y trong F , ta có G Bước 2: kiểm tra X → Y có ñược suy dẫn từ G không ? Bước 3: nếu có thì pth X → Y là dư thừa và lọai khỏi F quay lại bước 1 33 Giải theo thuật toán : cho F = {A→BC, B→D, AB→D} - Thử loại A→BC , có G = { B→D, AB→D} => A→BC không ñược suy dẫn từ G - Thử loai B→D , có G = {A→BC, AB→D} => B→D không ñược suy dẫn từ G - Thử loại AB→D, có G = {A→BC, B→D } => AB→D ñược suy dẫn từ G , => F dư thừa AB→D 34 Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm * Từ tập phụ thuộc hàm F cho trước , câu hỏi là tìm phủ tối thiểu của F ? B?c 1: loi kh=i F các ph thuc hàm có v$ trái d thYa. B?c 2: Tách các ph thuc hàm có v$ ph!i trên mt thuc tính thành các ph thuc hàm có v$ ph!i mt thuc tính. B?c 3: loi kh=i F các ph thuc hàm d thYa Nhận xét : Từ một tập pth F luôn tìm ñược ít nhất một phủ tối thiểu F’ Nếu tập pth F có nhiều phủ tối thiểu thì các phủ tối thiểu tương ñương với nhau F’ ≡ F’’ ≡ F * Bài tóan trọng tâm 35 Ví dụ 1: Cho lược ñồ quan hệ Q(A,B,C,D) và tập pth F như sau: F = {AB → CD,B → C,C → D} Hãy 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 → CD ∈ F+ ? trả lời: BF+ = BCD ⇒ B → CD ∈ F+ Xét A → CD ∈ F+ ? trả lời: AF+ = A ⇒ A → CD ∉ F+ Vậy AB → CD là phụ thuộc hàm có vế trái dư thừa A ⇒ kết quả của bước 1 là: F ≡ {B → CD ; B → C ; C → D} = F1 Bước 2: kết quả của bước 2 là: F ≡ {B → D; B → C;C → D} = F1 Bước 3: trong F1 , B → C là phụ thuộc hàm dư thừa? xét B → C ∈ G+ ? với G = F1 - {B → C} = {B → D;C → D} Trả lời : BG+ = BD ⇒ B → C ∉ G+ ⇒ B → C không dư thừa trong F1 36 trong F1 , B → D là phụ thuộc hàm dư thừa? xét B → D ∈ G+ ? với G = F1 - {B → D} = {B → C;C → D} trả lời : BG+ = BCD ⇒ B → D ∈ G + ⇒ B → D dư thừa trong F1 trong F1 , C → D là phụ thuộc hàm dư thừa? xét C → D ∈ G+ ? với G = F1 - {C → D} = {B → D;B → C} trả lời :CG+ = C ⇒ C → D ∉ G + ⇒ C→ D không dư thừa trong F1 Kết quả của bước 3 : cho phủ tối thiểu F ≡ F1 - {B → D} F ≡ {B → C;C → D} = Ftt 37 Ví dụ 2: Cho lược ñồ quan hệ Q(A,B,C,D) và tập phụ thuộc F như sau: F= {AB → C , B → A , A → B} Hãy tính phủ tối thiểu của F? Bước 1 : AB → C có là pth có vế trái dư thừa ? B → C ∈ F+ ? trả lời: B+ = ABC ⇒ B → C ∈ F+ A → C ∈ F+ ? trả lời: A+ = ABC ⇒ A → C ∈ F+ Kết quả có 2 tập F’ và F” có vế trái không dư thừa : F ≡ F’ = {B → C;B → A;A → B} F ≡ F” = {A → C;B → A;A → B} Bước 2 : F’ và F” là các tập phụ thuộc hàm có vế phải một thuộc tính Bước 3 : Xét F’ = {B → C;B → A;A → B} thì thấy F’ không phải là tập pth dư thừa. Xét F” = {A → C;B → A;A → B} thì thấy F” không phải là tập pth dư thừa Kết luận : F có 2 tập phủ tối thiểu F’ và F” 38 Ví dụ 3: Cho lược ñồ quan hệ Q(MSCD,MSSV,CD,HG) và tập phụ thuộc F như sau: F = {MSCD→ CD; CD → MSCD; CD,MSSV → HG; MSCD,HG → MSSV; CD,HG → MSSV; MSCD,MSSV → HG} Hãy tìm phủ tối thiểu của F ? Ví dụ 4: Cho lược ñồ quan hệ Q(ABC) ,tìm các phủ tối thiểu của tâp phụ thuộc hàm F F = { A→ B ; A→ C; B → A; C → A;B → C } 39 KHÓA CỦA LƯỢC ðỒ QUAN HỆ • Khái niệm • Thuật toán tìm một khóa • Thuật toán tìm tất cả các khóa 40 Cho Q(Q+) và F là tập pth ñịnh nghĩa trên Q. Cho K⊆ Q+ K là một khóa của Q nếu thỏa 2 ñiều kiện: (1) K → Q+ ∈ F+ (hay KF + = Q+) (2) ∃ K’ ⊂ K , K’ → Q+ ∈ F+ - Tập thuộc tính S là siêu khóa nếu S ⊇ K - Thuộc tính A là thuc tính khóa nếu A ∈ K - Thuộc tính B là thuc tính không khóa nếu B ∉ K - Tập thuộc tính không khóa có thể bằng ∅ - Một lươc ñồ quan hệ có thể có nhiAu khóa K 41  Thuật tóan tìm một khóa của lược ñồ quan hệ Q : B1 : Gán K = Q+ B2 : Lần lượt thử lọai từng thuộc tính A ∈ K,có K’ = K – A nếu k’+ = Q+ thì gán K = K’ Thực hiện lại bước 2 42 Ví dụ_sgk : Cho Q(ABCDEGHI) và F = {AC→ B, BI → ACD, ABC → D, H → I, ACE → BCG, CG → AE} Gán K = Q+ = {A,B,C,D,E,G,H,I} Xét K’= K - {A} = {BCDEGHI} , tính K’+ = BCDEGHIA = Q+ ⇒gán K = K’ Xét K’= K - {B} = {CDEGHI} , tính K’+ = CDEGHIAB = Q+ ⇒Gán K= K’ Xét K’= K – {C} = {DEGHI} , tính K’+ = DEGHI ≠ Q+ Xét K’= K – {D} = {CEGHI} , tính K’+ = CEGHIABD = Q+ ⇒Gán K = k’ Tiếp tục tương tự kết quả thu ñược khóa K = {C,G,H} 43 • Cho Q(ABCDEGHI) và F = {AC→ B, BI → ACD, ABC → D, H → I, ACE → BCG, CG → AE} K’= {DEGHI} K’+= ? 44  Thuật tóan tìm tất cả các khóa của lược ñồ quan hệ Q Thuật tóan căn bản: B1: Xây dựng các tập con Xi có thể có của Q+ B2: Tìm bao ñóng của các Xi B3: Xác ñịnh các siêu khóa Si chính là các Xi có Xi+ = Q+ B4: Xác ñịnh các khóa từ tập siêu khóa S ∀ Si, Sj ∈ S, nếu ∃ Sj ⊂ Si thì S’ = S – Si Cuối cùng tập S’ là tIp tvt c! các khóa cQn tìm Ví dụ -sgk Nhận xét : Kết quả của B1 có thể là một tập rất lớn của các tập con của Q+ (2n) 45  Thuật tóan tìm tất cả các khóa của lược ñồ quan hệ Q Thuật tóan cải tiến : Các khái niệm -Tập thuộc tính nguồn (TN) gồm tất cả • Các thuộc tính chỉ xuất hiện ở vế trái và không xuất hiện ở vế phải của các pth • Các thuộc tính không xuất hiện ở cả vế trái và vế phải của các pth -Tập thuộc tính ñích (TD) gồm tất cả -Các thuộc tính chỉ xuất hiện ở vế phải của các pth -Tập thuộc tính trung gian (TG) : gồm tất cả •Các thuộc tính xuất hiện ở cả vế trái và vế phải của các pth Hệ quả : Nếu K là khóa của A thì K ⊇ TN và K ∩ TD = ∅ 46 Thuật tóan cải tiến : Dữ liệu vào : lược ñồ quan hệ Q , tập phụ thuộc hàm F Dữ liệu ra: tất cả các khóa của quan hệ Q B1: Xác ñịnh tập thụôc tính nguồn TN, tập thuộc tính trung gian TG B2: Nếu TG = ∅ thì Q chỉ có một khóa K = TN kết thúc Ngược lại : Qua bước 3 B3: tìm tất cả các tập con Xi của tập trung gian TG B4: tìm các siêu khóa Si : ∀ Xi , nếu (TN ∪ Xi)+ = Q+ thì Si = TN ∪ Xi B5: tìm các khóa từ tập siêu khóa S: ∀ Si, Sj ∈ S, nếu ∃ Sj ⊂ Si thì S’ = S – Si cuối cùng , tập S’ chính là tập khóa cần tìm 47 Ví dụ 1: cho Q(CSZ) , F= {CS → Z , Z → C} B5B4B3 SZCSZCSCZCZ SZSZSZCSZZ SCSCSCZSCC SS∅ KhóaSiêukhóa( TN∪TG)+TN∪TGTG B1: TN = {S} , TG = {C,Z} B2 ñến B5 : 48 Ví dụ 2: cho Q(A,B,C,D) và tập F={ AB→C, D→B, C→ABD }. Tìm tất cả các khóa ? Giải: B1: TN={∅} , TG={A,B,C,D } B2: 49 F={ AB→C, D→B, C→ABD } ADADADBCADAD ACACACBDACAC ABABABCDABAB DBDD CCCABDCC BBB AAA ∅∅ KhóaSiêukhóa( TN∪TG)+TN∪TGTG {ABCD} 50 F={ AB→C, D→B, C→ABD } ABCDCDABABCDABCD BCDCDABBCDBCD ACDCDABACDACD ABDCDABABDABD ABCCDABABCABC CDCDCDABCDCD BDBDBD BCBCBCADBCBC KhóaSiêukhóa( TN∪TG)+TN∪TGTG {ABCD} 51 Ví dụ 3: cho Q(A,B,C,D,E,H) và tập F= {A → E; C → D; E → DH} CM: K={A,B,C} là khóa duy nhất của Q ? B1: TN= {A,B,C} , TG = { E } B2 52 F= {A → E; C → D; E → DH} B5B4B3 A,B,C,EABCEDH = Q+ A,B,C,EE ABCABCABCEDH = Q+ A,B,C∅ KhóaSiêukhóa( TN∪TG)+TN∪TGTG