Trang 1 1CHƯƠNG 5LÝ THUYẾT THIẾT KẾ CƠ SỞDỮLIỆU QUAN HỆ2NỘI DUNGPhụthuộc hàm và lượcđồquan hệKhái niệm phụthuộc hàmLượcđồquan hệSuy dẫn logicBaođóng của tập phụthuộc hàmHệtiênđềArmstrong
NỘI DUNG Phụ thuộc hàm lược đồ quan hệ Khái niệm phụ thuộc hàm Lược đồ quan hệ Suy dẫn logic Bao đóng tập phụ thuộc hàm Hệ tiên đề Armstrong Bao đóng tập thuộc tính Khóa lược đồ quan hệ Phép tách lược đồ quan hệ Các dạng chuẩn Chuẩn hóa lược đồ quan hệ CHƯƠNG LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ Phụ thuộc hàm lược đồ quan hệ Đặt vấn đề Các vấn đề nảy sinh với CSDL thiết kế tồi: Dư thừa liệu Dị thường sửa chữa Dị thường thêm Dị thường xố Ví dụ: CSDL gồm quan hệ: MASV HOTEN 20091000 NS MAHP TENHP Nguyễn Mai Hoa 1-5-85 m1 Đại số 20091000 Nguyễn Mai Hoa 1-5-85 m2 20091000 Nguyễn Mai Hoa 1-5-85 20091001 Trần Mạnh Dũng 20091001 Trần Mạnh Dũng Khái niệm phụ thuộc hàm Định nghĩa Cho tập thuộc tính U hữu hạn khác ∅ Một phụ thuộc hàm U có dạng X →Y, X, Y ⊆ U HK (Y phụ thuộc hàm vào X hay X định Y, X vế trái Y vế phải phụ thuộc hàm) TC DIEM Giải tích Cho R(U) Nói R thoả X →Y ∀u, v ∈ R mà u.X = v.X u.Y = v.Y m3 Giải tích Kí hiệu R(f) - quan hệ R thỏa phụ thuộc hàm f 2-9-85 m1 Đại số R thỏa tập phụ thuộc hàm F R(f), với ∀f ∈ F 2-9-85 m2 Giải tích kí hiệu R(F) Lược đồ quan hệ Suy dẫn logic Định nghĩa Cho lược đồ quan hệ α = (U, F); Định nghĩa Lược đồ quan hệ α cặp hai thành phần: f : phụ thuộc hàm U α = (U, F), U tập thuộc tính, F tập phụ thuộc hàm Nói f suy dẫn logic từ F với quan hệ R thuộc α, R(F) R(f) Kí hiệu F ⊨ f Quan hệ R(U) gọi thuộc lược đồ α R(F) Ví dụ Ví dụ: Cho lược đồ α = (U, F) với U = ABC; F = {A → B, B → C} Chứng minh F⊨ A → C U={ MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM} F = {MASV → {HOTEN, NS}; R quan hệ thuộc lược đồ α = (U, F), ta có R(F) Ta chứng minh R(A → C): MAHP → {TENHP, HK, TC}; Giả sử u, v ∈ R mà u.A = v.A (1) u.C ≠ v.C (2) {MASV, MAHP} → DIEM} u.B = v.B u.C = v.C (vì R(B →C)) Mâu Vì R(A → B), (1) thuẫn với (2) Vậy u.C = v.C R(A → C) Bao đóng tập phụ thuộc hàm Hệ tiên đề cho phụ thuộc hàm Định nghĩa Bao đóng tập phụ thuộc hàm F là: Hệ tiên đề Armstrong (A0) F+ = { X →Y | F⊨ X →Y} Cho lược đồ quan hệ α = (U, F), X, Y, Z ⊆ U Khi F = F+, nói F họ đầy đủ phụ thuộc hàm A1) Luật phản xạ (reflexity) Tính chất: F G tập phụ thuộc hàm tập thuộc tính U F ⊆ F+ Tính đơn điệu Nếu Y ⊆ X X →Y A2) Luật tăng trưởng (augmentation) Nếu X →Y XZ →YZ A3) Luật bắc cầu (transitivity) Nếu F ⊆ G F+ ⊆ G+ Nếu X →Y Y →Z X →Z Tính lũy đẳng Kí hiệu F⊢f : phụ thuộc hàm fsuy dẫn từ F nhờ hệ tiên đề Armstrong (Bằng cách áp dụng luật A0) F+ + = F+ (FG)+ ⊇ F+ G+ (FG)+ = (F+G)+ = (FG+)+ F* = {f | F ⊢ f} Ví dụ Chứng minh {A → B, B → CD} ⊢ AC → CD (1) A→B (2) B → CD (3) A → CD (1, 2, A3) (4) AC → CD (3, A2) (||) Hệ quả: (Hệ quan trọng luật hợp - tách) Giả sử Y = A1A2…An thì: X → Y ⇔ X → Ai , ∀i = 1,2, n * Định lý Hệ tiên đề A0 đầy đủ (i) A0 đúng: F* ⊆ F+ * Các quy tắc khác: (ii) A0 đầy đủ: F* = F+ A4) Luật hợp (union rule) Chứng minh (i): Điều (i) có nghĩa: Nếu X→Y, X→Z X→YZ Với F tập phụ thuộc hàm, R quan hệ R(F), F ⊢ X→Y F ⊨ X→Y hay R(X→Y) A5) Luật tựa bắc cầu (pseudo-transitivity rule) Chứng minh (ii): Do (i) có F* ⊆ F+ nên cần chứng minh F+ ⊆ F* hay ∀ X →Y ∈F+ X→Y ∈ F* Nếu X→Y, WY→Z WX→Z A6) Luật tách (decomposition rule) Nếu X→Y, Z⊆ Y X→Z 10 Ví dụ U = CTHRSG F = { C→T, HT→R, HS→R, CS→G, HR→C} Bài toán thành viên Chứng minh CH → R HS → U suy dẫn từ F nhờ hệ tiên đề Armstrong Cho tập thuộc tính U, F tập phụ thuộc hàm U, f phụ thuộc hàm U Hỏi X→Y ∈ F+ hay không Định nghĩa 3.5 Cho F tập phụ thuộc hàm tập thuộc tính U, X⊆ U Bao đóng X F X+F = {A ∈U | F ⊢ X → A} Trong ngữ cảnh cụ thể viết X+ thay cho X+F Ghi nhớ: - Các điều sau tương đương: F⊨ X →Y ⇔ X →Y ∈ F+ ⇔ F⊢ X → Y ⇔ Y⊆ X+F 11 X+ = {A | F⊢ X → A} = {A| X → A ∈ F+} 12 Tính chất Tính bao đóng tập thuộc tính U - tập thuộc tính; F - tập phụ thuộc hàm U; X, Y ⊆ U U - tập hữu hạn thuộc tính, X ⊆ U, F - tập phụ thuộc hàm U Phản xạ: X ⊆ X+ Tính đơn điệu: X ⊆ Y X+ ⊆ Y+ Tính luỹ đẳng: X+ = ( X+)+ = X+ + Phương pháp tính X+ : Tính liên tiếp tập thuộc tính X0, X1, Xi, (XY)+ ⊇ X +Y+ X0 = X (XY)+ = (X+Y)+ = (XY+)+ Xi+1= Xi ∪ Zi,với Zi = ∪Yj Xj →Yj ∈ F Xj ⊆ Xi Vì X0 ⊆ X1 ⊆ X2 ⊆ .⊆ Xi ⊆ ⊆ U, dãy đơn điệu tăng bị chặn U ∃i: Xi = Xi +1 (*) Khi X+ = Xi, với i số nguyên nhỏ thỏa mãn (*) F ⊢ X →Y ⇔ Y ⊆ X+ X →Y ⇔ Y+ ⊆ X+ X → X+ X+ → X Lưu ý: Một cải thiện thuật toán: loại bỏ phụ thuộc hàm sau dùng X+ =Y+ ⇔ X →Y Y → X 13 14 Khoá lược đồ quan hệ Định nghiã Cho lược đồ quan hệ α = (U, F), K ⊆ U K gọi khoá (key) lược đồ α nếu: Ví dụ Cho tập phụ thuộc hàm F = {AC → BE, ACE → DG, B → CE, ACD → EGH} a Tính X+ với X = A i) K+ = U b Chứng tỏ ABC → EDH suy dẫn từ F nhờ hệ tiên đề A0 ii) ∄ K' ⊊ K mà K' thoả mãn (i) Nếu K thoả mãn (i), K siêu khố (super key) Ví dụ Xét lược đồ quan hệ với U = {S#, SNAME, P#, PNAME, QTY} F = {S# → SNAME, P# → PNAME, {S#, P#} → QTY}} Lược đồ có khố {S#, P#} 15 16 Ví dụ Cho lược đồ α = (U, F) với Thuật tốn tìm khố lược đồ quan hệ U = {MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM} F = {MASV→{HOTEN,NS}; MAHP→ {TENHP, HK, TC}; Thuật toán Tìm khố lược đồ quan hệ TENHP → MAHP; {MASV, MAHP} → DIEM} Lược đồ α có khố {MASV, MAHP} {MASV, TENHP} Ví dụ U = CSZ; F = {CS→Z, Z→C} Algorithm KEY1 Input U, F Output Một khoá K lược đồ α = (U, F) Method Khoá là: CS SZ * Nhận xét: - Mọi lược đồ quan hệ α có khố K := U; For each A in U If (K \ {A})+ = U then K := K \ {A}; endif; - Khố lược đồ nói chung khơng Endfor; - Các khố khơng bao - Hợp hai khóa siêu khố, khơng khố Giao hai khố khơng siêu khóa 17 Thuật tốn Tìm khố lược đồ quan hệ Algorithm KEY2 Input U, F = {Li → Ri | i = 1,2, m} Output Một khoá K lược đồ α = Algorithm KEY Input U, F = {Li→Ri | i = 1,2, m} Output Một khoá K lược đồ α = (U, F) m U (Ri \ Li ) i=1 Tìm tập P ⊆ Nα tập thuộc tính khơng thuộc khố K := (U \ L1R1) ∪ L1; P = */ M := (IαP)+ \ Iα For i := to n /* P ⊆ M ⊆ Nα */ U (R i \ Li) Li ⊆ Iα H := U \ M \ Iα Endfor; End 18 Iα = U \ If (K \ {Ai })+ = U then K := K \ {Ai }; endif; End If Iα+ = U then Return (Iα); /*Giả sử K= {A1, A2, ,An } Return (K); Tính giao khoá Method Xuất phát từ Iα bổ sung dần thuộc tính H tìm khố K Return (K); 19 Return (K); 20 - Nếu H đủ nhỏ tìm tất khố lược đồ thuật tốn - Nếu Iα+ = U lược đồ có khố Iα - Bước thuật tốn dựa vào tính chất sau: Nếu X ⊆ Iα, Y ⊆ Nα, P = (XY)+ \ X Y ⊆ P ⊆ Nα PHỦ CỦA TẬP PHỤ THUỘC HÀM Tập tối thiểu Ví dụ Tìm khố lược đồ α = (U, F), với: Định nghĩa Tập phụ thuộc hàm F tập tối thiểu a) U = CSZ, F = {CS → Z, Z → C} (minimal) nếu: 1) Mỗi vế phải phụ thuộc hàm F có b) U = CTHRSG; F = {C→T, HT→R, HS→R, CS→G, HR→ C} c) U = ABCDEGHIK F = {ACH → BH, BH → ACD, ABCI → DIK, ADEI → BGC, CGI → AEK, H → BC} thuộc tính 2) ∄ X → A ∈ F cho F+ = (F \ {X →A})+ 3) ∄ X → A ∈ F mà F+ = (F \ {X →A} ∪{Z →A})+, 21 với Z ⊂ X Kiểm tra điều kiện 2) Cách kiểm tra điều kiện 3) Với X → A ∈ F, X → A dư thừa, tức F+ = F1+, F1 = F \ {X → A} ⇔ A ∈ X+F1 Với X → A ∈ F, B ∈ X dư thừa, tức Chứng minh: (i) Nếu A ∈ X+F1 ⇔ X → A ∈ F1+ Chứng minh: F+ = (F \ {X →A} ∪{Z → A})+, với Z = X \ {B} ⇔ A ∈ (X \ {B})+F Do (FG)+ = (F +G)+ = (FG+)+ nên (i) Nếu B dư thừa, từ F+ = (F \ {X →A} ∪ {Z → A})+ ⇒ Z→ A ∈ F+ ⇒ A ∈ Z+F (F1 ∪ {X →A})+ = (F1+ ∪ {X → A})+ =(F1+)+, (ii) Nếu A ∈ Z+F ⇒Z → A ∈ F+ Lại có: X ⊃ Z ⇒ X → Z ⇒ X → A ∈ F+ (luật bắc cầu) hay F+ = (F1+)+ = F1+ X →A dư thừa Mọi phụ thuộc hàm thuộc F+ mà suy dẫn từ X → A suy dẫn từ Z → A nên thay X→A Z→A hay B dư thừa (ii) Nếu X →A dư thừa, tức F+= F1+ Do X→A ∈ F Từ (i) (ii) X→A∈ F1+ X→A dư thừa 22 A ∈ X+F1 A∈ X+F1 23 Từ (i) (ii) ta có điều phải chứng minh (||) 24 PHỦ CỦA TẬP PHỤ THUỘC HÀM Chứng minh: Xây dựng G tập: Sự tương đương tập phụ thuộc hàm G = {X → Ai}, với X → Y ∈ Fvà Y = {A1,…An} Định nghĩa Cho F, G tập phụ thuộc hàm tập thuộc tính U F G tương đương F+ = G+ Ta chứng minh F+ = G+ (i) Chứng minh G+ ⊆ F+ Do X → Y ⊢X → Ai (luật tách) nên G ⊆ F+ Bổ đề Mọi tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm G mà vế phải phụ thuộc hàm G bao gồm khơng q thuộc tính suy G+ ⊆ F+ (ii) Chứng minh F+ ⊆ G+ Ta có {X → A1,… ,X → An} ⊢ X → Y ∈ F (luật hợp) F ⊆ G+ F+ ⊆ G+ Từ (i) (ii) suy F+ = G+ (||) 25 Phủ tối thiểu (minimal cover) Định nghĩa Cho F tập phụ thuộc hàm Tập phụ thuộc hàm G gọi phủ tối thiểu F nếu: 1) G tương đương F, 2) G tập tối thiểu Nhận xét: - Ln tìm phủ tối thiểu cho F - Một tập phụ thuộc hàm F có nhiều phủ tối thiểu 27 26 Thuật tốn Tìm phủ tối thiểu Algorithm Minimal Cover Input F Output Tập G phủ tối thiểu F Method G := F; Thay phụ thuộc hàm X → {A1…An} ∈ G n phụ thuộc hàm X → A1, X → A2,…, X → An For each X→A in G If X→A dư thừa then G := G \ {X →A}; For each X → A in G For each B in X If B dư thừa then G := G \ {X→ A} ∪ {X \ {B} → A}; Return (G); 28 Ví dụ 3: Ví dụ 1: F = { AB → C, C → A, BC → D, ACD → B, D →E, F = {A →B, B → A, B → C, A → C , C → A } D →G, BE →C, CG→B,CG →D, CE →A, CE →G} Loại phụ thuộc hàm (theo thứ tự):B → A, A → C Loại phụ thuộc hàm theo thứ tự phủ tối thiểu {A → B, B → C, C → A} ACD →B, CG →D, CE → A phủ tối thiểu là: Nếu loại B → C phủ tối thiểu: G = { AB →C, C →A, BC →D, D →E, D →G, {A → B, B → A, A →C, C → A} BE →C, CG →B, CE →G} Nếu thứ tự loại phụ thuộc hàm là: CE → A, CG → B Ví dụ 2: loại A khỏi ACD →B (thay ACD → B CD → B) F = {AB → C, A → B, B → A} kết là: Có thể loại A B từ AB → C loại G = { AB →C, C →A, BC→D, D →E, D →G, đồng thời hai BE →C, CD →B, CG →D, CE → G} 29 30 Cho lược đồ α = (U, F) với U = {MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM} PHÉP TÁCH LƯỢC ĐỒ QUAN HỆ Hình chiếu tập phụ thuộc hàm tập thuộc tính F = Cho tập phụ thuộc hàm F tập thuộc tính U , {MSV → {HOTEN, NS}; MAHP → {TENHP, HK, TC}; {MASV, MAHP} → DIEM} Z⊆U ΠZ(F) = {X →Y ∈ F+| XY ⊆ Z} Xét phép tách δ = [U1, U2, U3]: U1 = {MASV, HOTEN, NS} U2 = {MAHP, TENHP, HK, TC} Phép tách lược đồ quan hệ Cho lược đồ quan hệ α = (U, F) Phép tách lược đồ α thay α tập lược đồ quan hệ α1, α2,…, αk cho: αi = , i = 1,2, ,k, Ui ⊆ U, U1 ∪ U2 ∪ … ∪ Uk = U U3 = {MASV, MAHP, DIEM} F1 = {MASV → {HOTEN, NS} F2 = {MAHP → {TENHP, HK, TC}} F3 = {{MASV, MAHP} → DIEM Fi = ∏Ui (F) Ký hiệu phép tách δ = [U1, U2,…,Uk] 31 32 Cho lược đồ α = (U, F) với Phép tách không thông tin U = CSZ; F = {CS → Z, Z → C} (Lossles - Join Decomposition) Xét phép tách ρ = [CS, ZC] U1 = CS; F1 = ∅ U2 = ZC; F2 = {Z→C} Ví dụ: Quan hệ T lược đồ α sau tách kết nối lại nảy sinh mới: Nhận xét: - Với phép tách ρ, F1 ∪ F2 ⊬ F T (A B C) - Với phép tách δ, F1∪ F2 ∪ F3 ⊢F Phép tách bảo toàn tập phụ thuộc hàm (Dependency Preservation) Cho lược đồ quan hệ α = (U, F) phép tách δ = [U1,…,Uk] α Khi δ phép tách bảo toàn tập phụ thuộc hàm F nếu: ∪ Fi ⊢ F A1 b1 c1 a1 b1 b1 c1 a1 b2 c1 a1 b2 b2 c1 a2 b2 c2 a2 b2 b2 c2 Phép tách không thơng tin đảm bảo quan hệ khơi phục lại từ phần chiếu ( phép kết nối) 33 Phép tách δ = [U1, U2,…,Uk] lược đồ quan hệ α = (U, F) không thông tin với ∀ R thuộc α: R = R1 ⋈ R2 ⋈ …⋈ Rk, Ri = ∏U ( R ), T2 (B C) T1 ⋈ T2 ⊃ {(a1, b2, c2), (a2, b2, c1)}, (a2, b2, c1) ∉T Định nghĩa T1 (A B) 34 Thuật tốn kiểm tra phép tách khơng thơng tin Algorithm Lossles - Join Decomposition Input Lược đồ quan hệ α = (U, F) , i = 1,2, , k U ={A1,…,An}, i Ký hiệu R1 ⋈ R2 ⋈ …⋈ Rk = mδ(R) phép tách δ = [U1, U2,…Uk] Bổ đề Cho lược đồ quan hệ α = (U, F) phép tách δ = [U1, U2,…,Uk] lược đồ α Khi đó, với quan hệ R lược đồ α ta có: R ⊆ mδ (R) Nếu S = mδ (R) với i = 1,2, ,k, ta có: ∏Ui ( S ) = ∏Ui ( R ) mδ (mδ (R)) = mδ(R) 35 Output Kết luận α có phép tách có kết nối không thông tin hay không Method Xây dựng bảng n cột, k hàng, cột j ứng với thuộc tính Aj ∈ U, hàng i ứng với lược đồ quan hệ αi Ở hàng i, cột j ghi kí hiệu: + aj Aj ∈ Ui + bij Aj ∉ Ui 36 Biến đổi bảng theo qui tắc: • Với phụ thuộc hàm X →Y ∈ F Xét hàng, có hàng i, t giống X làm chúng giống Y theo cách: + Nếu kí hiệu aj thay kí hiệu aj + Nếu ký hiệu bij btj thay ký hiệu bij btj • Q trình dừng khơng làm thay đổi bảng Xem bảng kết Nếu xuất hàng gồm tồn kí hiệu a1, a2,…an phép tách δ có kết nối khơng mát thông tin (ngược lại, δ không phép tách khơng thơng tin) Ví dụ α = (U, F) , U = SAIP, F = {S →A, SI →P} δ = [U1, U2] , U1 = SA , U2 = SIP Ví dụ U = ABCDE, F = {C →D, A →C, B →C, DE →C, CE →A} δ = [AC, BC , CD, DEC, CEA) Ví dụ U = ABCDE, F = {C →D, A →C, B →C, , DE →C, CE →A} δ = [ AC, BC , CD, DEC, CEA, BE] 37 38 DẠNG CHUẨN Định lý δ = [U1, U2] phép tách α = (U, F) δ phép tách có kết nối khơng thơng tin U1 ∩ U2 →U1 \ U2 ∈ F+ (hoặc U1 ∩ U2 →U2 \ U1 ∈ F+) Dạng chuẩn (1NF) Dạng chuẩn (2NF) Dạng chuẩn (3NF) Dạng chuẩn Boyce−Codd (BCNF) Dạng chuẩn Dạng chuẩn Ví dụ α = (U, F) , U = SAIP, F = {S →A, SI →P} δ = [U1, U2] , U1 = SA , U2 = SIP U1 ∩ U2 = {S}; U1 \ U2 = {A} 39 40 Ví dụ lược đồ không 1NF Dạng chuẩn (1NF-The first normal form) Thuộc tính đa trị Lược đồ quan hệ α =(U, F) dạng chuẩn 1NF thuộc tính A∈U có miền trị chứa giá trị ngun tố Thuộc tính ‘khơng ngun tố’ thuộc tính đa trị (multivalued attribute) thuộc tính phức/ghép (composite attribute) kết hợp loại thuộc tính Ví dụ S (S#, S1 S2 SNAME, Smith Jones CITY) {London, Paris} {Rome} Ví dụ Thuộc tính ghép SHHSX CQD DCHI SX(SHMH, SL) S1 A Hà Nội (H1, 250) S1 A Hà Nội (H2, 300) S2 A Hà Nội (H1, 100) S3 B Hải Phòng (H3, 200) 41 Đưa quan hệ chưa chuẩn hoá dạng chuẩn Đưa quan hệ chưa chuẩn hoá dạng chuẩn Biến đổi quan hệ S thành: S (S#, CITY1, CITY2, S1 London Paris S2 Rome Ví dụ 1 Tách làm quan hệ: S (S#, SNAME) S_CITY (S#, CITY) 42 có khố S# có khố {S#, CITY} CITY3, SNAME) Smith Jones Quan hệ S trở thành: S (S#, CITY, SNAME) S1 London Smith S1 Paris Smith S2 Rome Jones Khoá: {S#, CITY} Nhược điểm: dư thừa liệu 43 44 Đưa quan hệ chưa chuẩn hoá dạng chuẩn Dạng chuẩn Lược đồ α = (U, F), Cách 1: Biến đổi thành quan hệ phẳng (flat realation) HSX(SHHSX, CQD, DCHI, SHMH, SL) Nhược điểm: Dư thừa liệu U = {SHHSX, CQD, DCHI, SHMH, SL} F = {SHHSX → DCHI, DCHI →CQD, {SHHSX, SHMH}→SL} Cách 2: Đưa thuộc tính lồng thành quan hệ kết CSDL gồm quan hệ sau: HSX(SHHSX, CQD, DCHI) SX(SHHSX, SHMH, SL) Nhận xét: - α 1NF - Khoá {SHHSX, SHMH} Các thuộc tính khơng khố Nα = {CQD, DCHI, SL} Dư thừa liệu dẫn đến dị thường cập nhật, loại bỏ, bổ sung 45 46 Dạng chuẩn (2NF) SHHSX CQD DCHI SHMH SL S1 A Hà Nội H1 250 S1 A Hà Nội H2 300 S2 A Hà Nội H1 100 S3 B Hải Phòng H3 200 Định nghĩa Phụ thuộc đầy đủ (full functional dependency) Cho phụ thuộc hàm X →Y, Y gọi phụ thuộc đầy đủ vào X (hay X →Y phụ thuộc hàm đầy đủ) !∃ Z ⊂ X mà Z →Y Định nghĩa Lược đồ α = (U, F) 2NF nếu: F = {SHHSX → DCHI, DCHI →CQD, {SHHSX, SHMH}→SL} Khoá nhất: + α 1NF {SHHSX, SHMH} Các thuộc tính khơng khố: Nα = {CQD, DCHI, SL} + Mọi thuộc tính khơng khoá phải phụ thuộc đầy đủ vào khoá Dư thừa liệu dẫn đến dị thường cập nhật, loại bỏ, bổ sung 47 48 Ví dụ Lược đồ α = (U, F), Nhận xét: α1 dư thừa liệu: địa giống CQD giống nhau, gây khó khăn cập nhật liệu U = {SHHSX, CQD, DCHI, SHMH, SL} F = {SHHSX → DCHI, DCHI →CQD, {SHHSX, SHMH}→SL} Tách thành lược đồ 2NF: SHHSX CQD DCHI + α1 =, S1 A Hà Nội S1 A Hà Nội S2 A Hà Nội S3 B Hải Phòng U1 = {SHHSX, CQD, DCHI}, F1 = {SHHSX →DCHI, DCHI → CQD} + α2 = , U2 = {SHHSX, SHMH, SL} F2 = {{SHHSX, SHMH} → SL} 49 50 α1 =, Dạng chuẩn (3NF) U1 = {SHHSX, CQD, DCHI}, F1 = {SHHSX →DCHI, DCHI → CQD} Định nghĩa (Phụ thuộc bắc cầu) Cho α = (U, F), A ∈ U, X ⊆ U Nói A phụ thuộc bắc cầu vào X ∃ Y ⊆ U: α2 = , U2 = {SHHSX, SHMH, SL} X →Y F2 = {{SHHSX, SHMH} → SL} Y → A α2 3NF Y ↛ X α1 không 3NF (CQD phụ thuộc bắc cầu vào khoá) A ∉ XY Định nghĩa Lược đồ α = (U, F) 3NF nếu: Tách α1 thành: α11 α12 + α 1NF U11 = {SHHSX, DCHI}, U12 = {CQD, DCHI} + Mọi thuộc tính khơng khố khơng phụ thuộc bắc cầu vào khố F11 = {SHHSX →DCHI}, F12 = {DCHI →CQD} 51 52 SHHSX CQD DCHI SHMH SL Lược đồ Xét lược đồ quan hệ α=(U, F), U =CSZ, S1 A Hà Nội H1 250 α = (U, F) F ={Z→C, CS →Z} S1 A Hà Nội H2 300 S2 A Hà Nội H1 100 S3 B Hải Phòng H3 200 Lược đồ Hà Nội S2 Hà Nội S3 Hải Phịng Khố lược đồ: CS, SZ Nα = φ Lược đồ SHHSX DCHI α11 = S1 (trong C: City, S: Street, Z: Zipcode) α 2NF 3NF α12 = Lược đồ α2 = SHHSX SHMH SL S1 H1 250 S1 H2 300 S2 H1 100 S3 H3 200 Còn dư thừa liệu, chẳng hạn như: DCHI CQD Hà Nội A Hải Phòng B 53 C S Z c1 s1 z1 c1 s2 z1 54 Dạng chuẩn Boyce - Codd (BCNF) [1974] Lược đồ α = (U, F) BCNF có X ⊆ U, A ∈ U A ∉ X mà X→ A∈ F+ X phải siêu khố (Có thể xem 3NF dạng đơn giản BCNF dạng phát biểu tổng quát 3NF là:∀ X →A ∈ F+ X siêu khố A thuộc tính khố Trong dạng chuẩn BCNF khơng cho phép A thuộc tính khố) 55 Bài tập Cho lược đồ α = (U, F), U = SIDM, đó: S: Store I: Item D: Department M: Manager F = {SI →D, SD →M} Kiểm tra dạng chuẩn lược đồ α 56 PHỤ THUỘC ĐA TRỊ VÀ DẠNG CHUẨN Xét quan hệ R (CTX), đó: C: Course ; T: Teacher ; T: Text Giả thiết: - Mỗi môn học có nhiều giáo viên dạy - Mỗi mơn học sử dụng nhiều loại SGK - Giáo viên SGK không phụ thuộc Phụ thuộc đa trị Định nghĩa Cho lược đồ quan hệ α = (U, F), X, Y ⊆ U Z = U - XY Quan hệ R α thoả phụ thuộc đa trị (MVD) R C T X →→Y với t1, t2 ∈ R mà t1.X = t2.X X CSDL GS Hùng Nhập mơn CSDL ∃ t3 ∈ R: t1.Y = t3.Y , t1.X = t3.X, t2.Z = t3.Z CSDL GS Hùng Nguyên lý hệ CSDL CSDL GS Dũng Nhập mơn CSDL Do tính đối xứng t1, t2, cịn ∃ t4 ∈ R: t4.X = t2.X, t4.Y = t2.Y, t4.Z = t1.Z CSDL GS Dũng Nguyên lý hệ CSDL Kí hiệu X→→ Y|Z 57 58 Ví dụ R (C T H R S R (C G) T H R S G) t1 CS101 D M9 22 K B t1 CS101 D M9 22 K B t4 CS101 D W9 33 K B t4 CS101 D W9 33 K B CS101 D F9 22 K B CS101 D F9 22 K B t3 CS101 D M9 22 L C D M9 22 L C CS101 D W9 33 L C t3 CS101 t2 CS101 D F9 22 L C t2 CS101 D W9 33 L C Quan hệ R thoả C→→HR CS101 D F9 22 L Quan hệ R không thoả: C→→H, C→→R t1 = (CS101, D, M9, 22, K, B) t2 = (CS101, D, W9, 33, L, C) t3 = (CS101, D, M9, 22, L, C) t4 = (CS101, D, W9, 33, K, B) chẳng hạn, thoả C →→H với t1, t2 phải tìm t3 = (CS101, D, M9, 33, L, C) ∈ R, CSDL có: t = (CS101, D, M9, 22, L, C) Một số phụ thuộc đa trị khác thoả R: C→→SG, HR →→SG 59 C Nếu có R mâu thuẫn với HS→R 60 Dạng chuẩn (4NF) PHỤ THUỘC KẾT NỐI VÀ DẠNG CHUẨN Lược đồ quan hệ α = 4NF với X→→Y, Y ⊈X, XY≠ U X siêu khố α Định nghĩa Một phụ thuộc kết nối (JD-Join Dependency) kí hiệu JD(U1,…,Un) lược đồ quan hệ α U xác định ràng buộc quan hệ R α cho: ∀R : R = ∏U ( R )>< ∏U ( R )>< >< ∏U ( R ) n Định nghĩa Lược đồ α dạng chuẩn tập F FD, MVD, JD, JD(U1,…,Un) F+, Ui siêu khố α 61 62 CHUẨN HỐ THÀNH BCNF Bổ đề Cho lược đồ quan hệ α = (U, F), δ =[U1, U2,…,Uk] phép tách không thông tin α, δi = [Ui1, Ui2…, Uit] phép tách không thông tin lược đồ αi = Khi phép tách Nhận xét: Nếu lược đồ α = (U, F) chưa BCNF ∃ X →A ∈ F+ mà X khơng khố Đặt XA =U1 , U \ {A} =U2 Ta có: U1 ∩ U2 = X, U1 \ U2 = A X →A ∈ F+ δ =[U1, U2, …Ui-1,Ui1, Ui2,…, Uit, Ui+1,…, Uk] lược đồ α không thông tin Phép tách δ =[U1, U2] α không thông tin Dễ thấy α1 = BCNF 63 64 Thuật toán 3.6 Tách lược đồ quan hệ thành lược đồ BCNF Input U = CTHRSG Khoá HS Lược đồ quan hệ α = (U, F) C→T, HT→ R, HS →R, HR →C, CS →G CS →G Output Một phép tách không thông tin lược đồ α cho lược đồ BCNF U1 = CSG Khoá CS Method Nếu α khơng BCNF tách đơi α thành α1, α2 theo cách: C→T C->T Chọn X → A ∈ F mà X khơng siêu khố U2 = CTHRS Khố HS C→T, HT→R HS →R, HR →C U22 = CHRS Khoá HS U21= CT Khoá C CH→R (từ HT→R, C →T,), HS→R, HR→C Khi phép tách δ =[U1, U2], U1 = XA, U2 = U \ {A} Tiếp tục trình α1và α2 lược đồ nhận BCNF CH→R, HR→C U222 = HRS Khoá HS 65 66 CHUẨN HOÁ THÀNH 3NF CHUẨN HOÁ THÀNH 3NF Input U221 = CHR Khoá CH, HR α = (U, F) Output Một phép tách α bảo toàn tập phụ thuộc hàm, có lược đồ 3NF Method Tính G phủ tối thiểu F Với X vế trái phụ thuộc hàm G, tạo lược đồ quan hệ tập thuộc tính XA1A2…Ak, X →A1,…, X→Ak ∈ G 67 Định lý: Cho α = (U, F) K khóa lược đồ α δ = [U1, U2,…,Un] phép tách lược đồ quan hệ α thu theo thuật tốn chuẩn hóa thành 3NF Khi đó, phép tách ρ = [U1, U2,…,Un, K] thỏa mãn: Các lược đồ NF Là phép tách không thơng tin Là phép tách bảo tồn tập phụ thuộc hàm 68