Bài giảng Cơ sở dữ liệu - Chương 4: Lý thuyết thiết kế cơ sở dữ liệu quan hệ cung cấp cho người học các kiến thức: Tổng quan về thiết kế CSDLQH, phục thuộc hàm, phép tách các sơ đồ quan hệ,... Mời các bạn cùng tham khảo.
1/30/2012 Nội dung Lý thuyết thiết kế sở liệu quan hệ • • • • Ng ễn Hồng Phương Nguyễn Tổng quan thiết kế CSDLQH Phụ thuộc hàm Phép tách sơ đồ quan hệ (SĐQH) Các dạng chuẩn SĐQH phuongnh@soict.hut.edu.vn http://is.hut.edu.vn/~phuongnh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội Tổng quan thiết kế CSDLQH Các vấn đề CSDL VD • Vấn đề sơ đồ quan hệ thiết kế chưa tốt: • Dư thừa liệu: Hãng cung ứng nhiều mặt hàng thơng tin hãng bị lặp lại bảng (VD S1), mặt hàng cung ứng nhiều hãng bị lặp lại (VD Screw) • Dị thường liệu thêm: Nếu có hãng chưa cung cấp mặt hàng nào, giá trị cho thuộc product q quantity y g ộ liệu ệ ợ tính p thêm vào khơng xác định • Dị thường liệu xóa: Nếu hãng cung cấp mặt hàng, ta muốn xóa thơng tin cung cấp ta thơng tin hãng cung cấp • Dị thường liệu sửa đổi: Do thông tin bị lặp lại nên việc sửa đổi liệu dẫn đến việc khơng quán liệu hãng sơ sót khơng sửa đổi tồn giá trị liên quan đến hãng Giả sử ta cần sở liệu lưu trữ thông tin hãng cung ứng Sơ đồ quan hệ thiết kế tất thuộc tính cần thiết lưu quan hệ: Suppliers(sid, sname, city, numofemps, product, quantity) sid sname city NOE S1 Smith London 100 product quantity Screw 50 S1 Smith London 100 Nut 100 S2 J&J Paris 124 Screw 78 S3 Blake Tokyo 75 Bolt 100 Đề xuất giải pháp Mục đích chuẩn chuẩn hố hố • Nếu sơ đồ thay sơ đồ quan hệ • Xác định tập lược đồ quan hệ cho phép tìm kiếm thơng tin cách dễ dàng, đồng thời tránh dư thừa liệu • Hướng tiếp cận: Một kỹ thuật sử dụng Tách lược đồ quan hệ có vấn đề thành lược đồ quan hệ chuẩn Phụ thuộc hàm sử dụng để nhân biết lược đồ chưa chuẩn đề xuất hướng cải tiến –Supp(sid, sname, city, numofemps) –Supply(sid, product,quantity) Thì tất vấn đề nêu loại bỏ Tuy nhiên tìm kiếm liệu phải thực kết nối bảng không chọn chiếu bảng cách thiết kết trước CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Phụ thuộc hàm Ví dụ • Định nghĩa: Cho R(U) sơ đồ quan hệ với U tập thuộc tính {A1, A2,…,An} X, Y tập U Nói X xác định Y hay Y phụ h thuộc th ộ hàm hà vào X ( X Y) với quan hệ r xác định R(U) t1, t2 thuộc r mà t1[X] = t2[X] ta có t1[Y] = t2[Y] • Ví dụ 1: A B C a1 b1 c1 a2 b2 c2 a3 b1 c1 a4 b3 c2 • A B, A C, B C • Ví dụ 2: sở liệu mẫu dùng chương 3, ta có bảng S, với giá trị sid tồn giá trị tương ứng cho sname, city status Do ta có sid sname, sid city, sid status Hệ tiên đề Amstrong phụ thuộc hàm Cho – R(U) sơ đồ quan hệ, U tập thuộc tính – X,Y,Z,W U (Ký hiệu: XY = X Y) • Phản xạ (reflexivity) Nếu Y X XY • Tăng trưởng (augmentation) Nếu XY XZYZ • Bắc cầu (transitivity) Nếu XY, YZ XZ Hệ hệ tiên đề Amstrong • Luật hợp (union) Nếu XY, XZ XYZ • Luật tựa bắc cầu (pseudotransitivity) Nếu XY, XY WYZ XWZ XWZ • Luật tách (decomposition) Nếu XY, Z Y XZ Ví dụ Bao đóng tập phụ thuộc hàm • Ví dụ 1: Cho tập phụ thuộc hàm {ABC, CA} Chứng minh: BC ABC CA AB C BC AB, AB ABC 10 BC AB AB ABC BC ABC • Ví dụ 2: Cho lược đồ quan hệ R(ABEIJGH) tập phụ thuộc hàm F = {ABE, AGJ, BEI, EG, GIH} Chứng minh: AB GH 11 • Định nghĩa: Cho F tập phụ thuộc hàm Bao đóng F ký hiệu F+ tập lớn chứa phụ thuộc hàm suy từ phụ thuộc hàm F • Bao đóng tập phụ thuộc hàm lớn, chi phí tốn cho việc tìm kiếm bao đóng tập phụ thuộc hàm Do để thuận tiện cho việc kiểm tra xem phụ thuộc hàm có suy diễn từ tập phụ thuộc hàm có sẵn khơng, người ta sử dụng Bao đóng tập 12 thuộc tính CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Bao đóng tập thuộc tính tập phụ thuộc hàm Thuật tốn 1: Tìm bao đóng tập thuộc tính tập phụ thuộc hàm • Định nghĩa: Cho lược đồ quan hệ R(U), F tập phụ thuộc hàm U X tập U Bao đóng tập thuộc tính X ký hiệu X+ tập tất thuộc tính xác định hàm X thơng qua tập F X+ = {A U| X A F+} • Ta thấy định nghĩa bao đóng tập thuộc tính dựa bao đóng tập phụ thuộc hàm Trên thực tế, người ta đưa thuật toán để giúp xác định bao đóng tập thuộc tính dễ dàng 13 Ví dụ 0: 1: 2: 3: 4: 14 Bổ đề • XY suy diễn từ hệ tiên đề Amstrong Y X+ • Chứng minh: • Cho R(U) , U = {A, B, C, D, E, F} F = {ABC, BCAD, DE, CFB} Tính (AB)+ • Thực hiện: – Bước – Bước – Bước – Bước – Bước • Vào: Tập hữu hạn thuộc tính U, tập phụ thuộc hàm F U XU • Ra: X+ • Thuật tốn X0 = X B0 Bi Tính Xi từ Xi-1 Nếu YZ F Y Xi-1 A Z A Xi-1 Xi = Xi-1 A ngược lại, Xi = Xi-1 Nếu Xi Xi-1 lặp Bi ngược lai, chuyển Bn Bn X+ = Xi – Giả sử Y=A1 An, với A1, ,An thuộc tính YX+ – Từ định nghĩa X+ ta có XAi Áp dụng tiên đề Amstrong cho i, suy XY nhờ luật hợp – Ngược lại, giả sử có XY, áp dụng hệ tiên đề Amstrong cho i, ta có XAi, AiY nhờ luật tách Từ suy YX+ X0 = AB X1 = ABC ( AB C) X2 = ABCD (do BCAD) X3 = ABCDE (do DE) X4 = ABCDE 15 16 Khoá Thuật tốn 2: Tìm khố tối thiểu • Định nghĩa: Cho lược đồ quan hệ R(U), F • Vào: U = {A1, A2, …, An} , F • Ra: khố tối thiểu K xác định U F • Thuật toán B0 K 0= U Nếu (Ki-1\{Ai})U Bi Ki= Ki-1\ {Ai} ngược lại, Ki= Ki-1 Bn+1 K = Kn tập phụ thuộc hàm xác định U K tập U, K gọi khoá tối thiểu R – KU phụ thuộc hàm F+ – Với tập thực K’ K K’U khơng thuộc F+ • Với ta đề cập phần bao đóng trên, ta nói, để thỏa mãn khố tối thiểu K+ = U K tập thuộc tính nhỏ có tính chất 17 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Ví dụ Nhận xét về ph phụ ụ thu thuộc ộc hàm • Cho U = {A, B, C, D, E} • F = {ABC, ACB, BCDE} TÌm khố tối thiểu quan hệ r xác định U F • Thực • B0: K0= U = ABCDE • B1: Kiểm tra xem có tồn phụ thuộc hàm (K0\{A})U (BCDEU) hay khơng Ta cần phải sử dụng thuật tốn để kiểm tra điều kiện tương đương (BCDE)+ có U không không (BCDE)+= BCDE , khác U Vậy K1 = K0 = ABCDE • B2: Tương tự, thử loại bỏ B khỏi K1 ta có (ACDE)+ = ABCDE = U Vậy K2 = K1 \ {B} = ACDE • B3: K3 = ACDE • B4: K4 = ACE • B5: K5 = AC • Vậy AC khố tối thiểu mà ta cần tìm • Từ tập phụ thuộc hàm suy diễn phụ thuộc hàm khác • Trong tập phụ thuộc hàm cho sẵn có phụ thuộc hàm bị coi dư thừa • Làm để có tập phụ thuộc hàm tốt? 19 20 Tập ph phụ ụ thu thuộc ộc hàm tươ ương ng đươ đương ng Ví dụ • Định nghĩa: Tập phụ thuộc hàm F phủ tập phụ thuộc hàm G hay G phủ F hay F G tương đương F+ = G+ • Cho lược đồ quan hệ R(U) với U = {A, B, C, D, E, F} F = {ABC, DEF, CBD} G = {ACB, DEF, BCD} Hỏi F G có phải tập pth tương đương hay khơng? • Thực hiện: Đối với phụ thuộc hàm F – Ký hiệu F G • Kiểm tra tính tương đương tập phụ th ộ hàm thuộc hà B.1 Với phụ thuộc hàm YZ F, Z Y+ (trên G) YZ G+ Nếu với phụ thuộc hàm f F, f G+ F+ G+ B.2 Tương tự, phụ thuộc hàm g G, g F+ G+ F+ B.3 Nếu F+ G+ G+ F+ F G – f1= ABC AB+ (đối với G) = ABCDEF = U Vậy f1 thuộc G+ – f2= DEF thuộc G nên chắn thuộc G+ – f3= CBD C+ (đối với G) = C không chứa BD Vậy f3 không thuộc G+ – Kết luận F không tương đương với G 21 22 Tập ph phụ ụ thu thuộc ộc hàm kh khô ông d dư th thừa ừa Phủ Ph ủ tối thi thiểu ểu tập tập ph phụ ụ thu thuộc ộc hàm • Đ/N: Tập phụ thuộc hàm F không dư thừa không XY F cho F \ {XY} F • Thuật tốn 3: Tìm phủ khơng dư thừa tập phụ thuộc hàm • Đ/N: Fc gọi phủ tối thiểu tập phụ thuộc hàm F thỏa mãn điều kiện sau: – Vào: Tập thuộc tính U, F = {Li Ri: i = n} – Ra : Phủ không dư thừa F’ F – Thuật toán B0 F0= F Bi Nếu Fi-1\ {LiRi} Fi-1 Fi = Fi-1 \ {LiRi} ngược lại, Fi = Fi-1 Bn+1 F’ = Fn Đk1: Với f Fc, f có dạng X A, A thuộc tính Đk2: Với f = XY Fc, ! A X (A thuộc tính): (Fc \ f) U {(X \ A)Y} Fc Đk3: ! XA Fc : Fc \ {XA} Fc 23 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Thuật toán 4: Tìm phủ phủ tối thi thiểu ểu tập phụ thuộc hàm Ví dụ • Vào: Tập thuộc tính U, F = {LiRi: i = n} • Ra: phủ tối thiểu Fc tập phụ thuộc hàm F • Thuật tốn B.1 Biến đổi F dạng F1={Li Aj} Aj thuộc tính thuộc U (thoả mãn đk1) B.2 Loại bỏ thuộc tính thừa vế trái phụ thuộc hàm Lần lượt giản ước thuộc tính vế trái phụ thuộc hàm F1 thu F1’ Nếu F1’ F1 loại bỏ thuộc tính xét Khi khơng có giản ước xảy ta thu F2 thỏa mãn đk2 B.3 Loại bỏ phụ thuộc hàm dư thừa Lần lượt kiểm tra phụ thuộc hàm f Nếu F2 \ f F2 loại bỏ f Khi khơng phụ thuộc hàm loại bỏ thu đươc F3 thoả mãn đk3 B.4 Fc = F3 • U = {A,B,C} F = {ABC, BC, AB, ABC} Tìm phủ tối thiểu F? – F1 = {AB, AC, BC, ABC} – Xét pth F1 mà vế trái có nhiều thuộc tính ABC Giản ước A ta BC có F1, A thuộc tính thừa Tương tự ta tìm B thừa, loại bỏ ABC khỏi F1.F2 = {AB, AC, BC} – Bỏ pth thừa: AC thừa Vậy Fc = {AB, BC} 25 Ví dụ 26 Ví dụ (tiếp) • Tìm phủ tối thiểu tập phụ thuộc hàm F = {AB, ABCDE, EFG, ACDFEG} – F1 = {AB, ABCDE, EFG, ACDFE, ACDFG} – Loại bỏ thuộc tính thừa phụ thuộc hàm ABCDE, ACDFE ACDFG Xét ABCDE: Giả sử giản ước A , ta BCDE, kiểm tra BCDE có suy từ F1 khơng, ta tính (BCD)+ (đối với F1) (BCD)+ = BCD, khơng chứa E, BCDE khơng suy diễn từ F, A thuộc tính thừa pth xét B thừa từ F1 ta có AB dẫn đến (ACD)+ = ABCDE có chứa E Làm tương tự ta thấy khơng có thuộc tính thừa F2 = {AB, ACDE, EFG, ACDFE, ACDFG} 27 Phép tách Sơ đồ quan hệ – Loại bỏ pth thừa F2: Lần lượt thử loại bỏ pth khỏi F2, tập pth thu đựoc sau loại bỏ tương đương với F2 pth vừa loại thừa A B khơng thừa loại pth khỏi F2 từ tập phụ thuộc hàm lại A+ không chứa B Tương tự , ACDE, EF G không thừa ACDF E phụ thuộc hàm thừa loại bỏ pth này, tập pth lại ACDE, theo tiên đề tăng trưởng ta suy ACDFE ACDFG thừa loại bỏ pth này, tập pth lại có ACDE EFG, ta có (ACDF)+ = ACDEFG có chứa G – Vậy Fc = { AB, ACDE, EFG} 28 Phép tách khơng mát thơng tin • Mục đích – Thay sơ đồ quan hệ R(A1, A2, …, An) tập sơ đồ {R1, R2, …, Rk} Ri R R = R1 U R2 U … U Rk • Yêu cầu phép tách • Đ/N: Cho lược đồ quan hệ R(U) phép tách R thành sơ đồ {R1, R2, …, Rk} gọi phép tách không mát thông tin đ/v tập phụ thuộc hàm F với quan hệ r xác định R thỏa mãn F thì: r = R1(r) R2(r) … Rk (r) • Ví dụ: Phép tách mát thông tin Supplier(sid, sname,city,NOE, pid, pname,colour,quantity) – Bảo tồn thuộc tính, ràng buộc – Bảo tồn liệu S1(sid,sname,city,NOE) SP1(pid,pname,colour,quantity) S1(sid,sname,city,NOE) SP2(sid,pid,pname,colour,quantity) • Ví dụ: Phép tách không mát thông tin 29 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Thuật tốn 5: Kiểm tra tính khơng mát thông tin phép tách Định lý tách đơi • Cho lược đồ quan hệ R(U), tập pth F , phép tách R thành R1(U1), R2(U2) phép tách không mát thông tin phụ thuộc hàm sau thỏa mãn F+: U1 ∩ U2 U1 - U2 U1 ∩ U2 U2 - U1 • Hệ quả: Cho lược đồ quan hệ R(U) phụ thuộc hàm XY thỏa mãn R(U) Phép tách R thành lược đồ R1(U1), R2(U2) phép tách không mát thông tin với: U1 = XY U2 = XZ Z = U \ XY • Vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk} • Ra: phép tách mát thơng tin hay khơng • Thuật tốn B.1 Thiết lập bảng k hàng, n cột Nếu Aj thuộc tính Ri điền aj vào (i,j) Nếu khơng điền bij B.i Xét f = XY F Nếu hàng t1, t2 thuộc bảng : t1[X] = t2[X] đồng t1[Y] = t2[Y], ưu tiên giá trị a Lặp thay đổi giá trị bảng B.n Nếu bảng có hàng gồm kí hiệu a1, a2, … , an phép tách khơng mát thông tin ngược lại, phép tách không bảo tồn thơng tin 31 Ví dụ 32 Ví dụ (tiếp) • B.2 & 3: • Từ A C, ta có • R = ABCD tách thành R1=AB, R2 =BD, R3=ABC, R4=BCD F = {AC, BC, CDB, CD} • B.1: Tạo bảng gồm hàng, cột A B C D R1 a1 a2 a3 b41 R2 b12 a2 b32 a4 R3 a1 a2 a3 b43 R4 b14 a2 a3 a4 A B C D R1 a1 a2 a3 b41 A B C D R1 a1 a2 b31 b41 R2 b12 a2 b32 a4 R2 b12 a2 a3 a4 R3 a1 a2 a3 b43 R3 a1 a2 a3 b43 R4 b14 a2 a3 a4 R4 b14 a2 a3 a4 • Từ B C, ta có 33 Ví dụ (tiếp) • Từ C D, ta có 34 Phép tách bảo tồn tập phụ thuộc hàm • Hình chiếu tập phụ thuộc hàm A B C D R1 a1 a2 a3 a4 R2 b12 a2 a3 a4 R3 a1 a2 a3 a4 R4 b14 a2 a3 a4 • Vậy ta có hàng có tồn giá trị a Chứng tỏ phép tách cho không mát thông tin Cho sơ đồ quan hệ R, tập phụ thuộc hàm F, phép tách {R1, R2, … , Rk} R F Hình chiếu Fi F Ri tập tất XY F+: XY Ri • Phép tách sơ đồ quan hệ R thành {R1, R2, … , Rk} phép tách bảo toàn tập phụ thuộc hàm F (F1 F2 … Fk)+ = F+ hay hợp tất phụ thuộc hàm hình chiếu F lên sơ đồ suy diễn phụ thuộc hàm F 35 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Ví dụ Các dạng chuẩn SĐQH • Ví dụ 1: R = {A, B, C} F = { AB, BC, CA} • Quay lại vấn đề thiết kế sở liệu quan hệ, câu hỏi mà đặt trình Có cần thiết phải tinh chỉnh thiết kế hay khơng, thực thiết kế mà có tốt hay chưa Để giúp trả lời câu hỏi này, người ta đưa định nghĩa dạng chuẩn Có ộ vài dạng g chuẩn ợ xem xét,, quan hệ thuộc vào dạng chuẩn ẩ ta coi số vấn đề dư thừa liệu hay dị thường liệu ngăn ngừa hay tối thiểu hóa • Các dạng chuẩn mà quan tâm – Dạng chuẩn (1NF) – Dạng chuẩn (2NF) – Dạng chuẩn (3NF) 38 – Dạng chuẩn Boye-Code (BCNF) tách thành R1 = AB, R2 = BC Phép tách có phải bảo tồn tập phụ thuộc hàm khơng? • Ví dụ 2: R = {A, B, C} , F = {ABC, CB} tách thành R1 = AB, R2 = BC Phép tách có bảo tồn tập pth khơng, khơng có mát thơng tin khơng? • Ví dụ 3: R = { A, B, C, D} , F = {AB, CD} tách thành R1 = AB, R2 = CD Phép tách có bảo tồn tập pth khơng, có mát thơng tin khơng? • Vậy phép tách có bảo tồn tập phụ thuộc hàm khơng đảm bảo khơng mát thông tin ngược lại 37 Dạng chuẩn (1NF) Dạng chuẩn (2NF) • Định nghĩa: Một sơ đồ quan hệ R gọi dạng chuẩn tất miền giá trị thuộc tính R chứa giá trị nguyên tố – Giá trị nguyên tố giá trị mà khơng thể chia nhỏ • Một ộ q quan hệ ệ r xác định ị sơ đồ q quan hệ ệ dạng g chuẩn quan hệ dạng chuẩn • Ví dụ: Quan hệ khơng dạng chuẩn quan hệ sau chuẩn hóa dạng chuẩn • Định nghĩa: Một sơ đồ quan hệ R coi dạng chuẩn sname city product name price Blake London Nut 100 Bolt 120 Smith Paris Screw 75 sname city item Blake London Nut price 100 Blake London Bolt 120 Smith Paris Screw 75 – Sơ đồ quan hệ 1NF – Tất thuộc tính khơng khố phụ h thuộc h ộ hàm hà đầy đầ đủ vào khoá kh hí h (Lưu ý, A thuộc tính khố A thuộc khố tối thiểu R Ngược lại A thuộc tính khơng khố) 39 40 Phụ thuộc hàm đầy đủ Ví dụ • Định nghĩa: Cho lược đồ quan hệ R(U), F tập phụ thuộc hàm R X, Y U Y gọi phụ thuộc đầy đủ vào X nếu: • Sales(sid, sname, city, item, price) • F = {sid(sname,city), (sid,item)price} • Khố ((sid,item), , ), ta có sname,, city khơng phụ thuộc hàm đầy đủ vào khố => Quan hệ Sales khơng thuộc 2NF • S(sid, sname, city) Sales (sid, item, price) quan hệ thuộc 2NF - XY thuộc F+ - ! X’ X : X’Y F+ • Các phụ thuộc hàm khơng đầy đủ gọi phụ thuộc phận 41 42 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Dạng chuẩn (tiếp) Phụ thuộc bắc cầu • Định nghĩa: Một sơ đồ quan hệ R coi dạng chuẩn • Định nghĩa: Cho lược đồ quan hệ – Sơ đồ quan hệ 2NF – Mọi thuộc tính khơng khố khơng phụ h thuộc h ộ bắ bắc cầu ầ vào khoá kh hí h R(U) F tập phụ thuộc hàm R(U) X,Y,Z U Ta nói Z phụ thuộc bắc cầu vào X ta có XY , Y Z thuộc F+ Ngược lại, ta nói Z khơng phụ thuộc bắc cầu vào X 43 Ví dụ 44 Dạng chuẩn Boye Boye Codd • Ví dụ 1: Trong ví dụ tách dạng chuẩn ta có: S (sid, sname, city) Sales(sid, item, price) Xét quan hệ S, pth sid sname, city tồn S, sid khố chính, thuộc tính g khố sname,, city y p phụ ụ thuộc ộ trực ự không tiếp vào sid S thuộc 3NF Tương tự ta có Sales thuộc 3NF • Ví dụ 2: – ItemInfo(item, price, discount) F = {itemprice, pricediscount} Khố item, thuộc tính khơng khố discount phụ thuộc bắc cầu vào khố item Vậy quan hệ khơng 3NF – ItemInfo(item, price) Discount(price, discount) thuộc 3NF 45 • Định nghĩa: Một sơ đồ quan hệ R(U) với tập phụ thuộc hàm F gọi dạng chuẩn Boye-Codd (BCNF) với XA F+ – A thuộc tính xuất X – X chứa ộ khoá q quan hệ ệ R • Ví dụ – R = {A,B,C} ; F = {ABC , CB} – R BCNF CB, C khơng phải khố • Chú ý: – Một quan hệ thuộc 3NF chưa thuộc BCNF Nhưng quan hệ thuộc BCNF thuộc 3NF 46 Tách bảo tồn tập phụ thuộc hàm 3NF Ví dụ • Vào: R(U), F (giả thiết F phủ tối thiểu) • Ra: Phép tách bảo tồn tập phụ thuộc hàm 3NF • Thuật toán B1 Với Ai U, Ai F loại Ai khỏi R lập quan hệ cho Ai B2 Nếu f F, f chứa tất thuộc tính R (đã bỏ Ai bước trên) kết R B3 Ngược lại, với X A F, xác định quan hệ Ri(XA) Nếu XAi, XAj tạo quan hệ chung R’(XAiAj) Cho R = {A,B,C,D,E,F,G} F = {AB, ACDE, EFG} (đã tối thiểu) • Xác định phép tách bảo toàn tập phụ thuộc hàm 3NF B1 Không lập quan B1 q an hệ mới B2 ! f F: f chứa tất thuộc tính R B3 AB ACDE EFG R1(AB) R2(ACDE) R3(EFG) 47 48 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Tách không mát thông tin bảo tồn tập phụ thuộc hàm 3NF • Yêu cầu: – Bảo toàn tập phụ thuộc hàm (như thuật tốn trên) – Đảm bảo có lược đồ chứa khố lược đồ tách • Các bước tiến hành B1 Tìm khố tối thiểu lược đồ quan hệ R cho B2 Tách lược đồ quan hệ R theo phép tách bảo toàn tập phụ thuộc hàm B3 Nếu sơ đồ có chứa khố tối thiểu kết B2 kết cuối Ngược lại, thêm vào kết sơ đồ quan hệ tạo khố tối thiểu tìm 49 Ví dụ • Cho R(U) U = {A,B,C,D,E,F,G} F = {AB, ACDE, EFG} • Tìm khố tối thiểu R: K0 = ABCDEFG K1 = K0 loại A BCDEFG U khơng thuộc F+ K2 = K1 \{B} = ACDEFG ACDEFG U thuộc F+ K3 = K2 loại C ADEFG U không thuộc F+ K4 = K3 loại D ACEFG U khơng thuộc F+ K5 = K4 \{E} = ACDFG ACDFG U thuộc F+ K6 = K5 loại F ACDG U không thuộc F+ K7 = K6 \{G} = ACDF ACDF U thuộc F+ 50 • Vậy khố tối thiểu cần tìm ACDF Tách khơng mát thơng tin BCNF Ví dụ (tiếp) • Dùng kết ví dụ phần tách bảo tồn tập phụ thuộc hàm ta có phép tách R thành sơ đồ R1 = AB, R2= ACDE, R3 = EFG • Do khố ACDF khơng nằm sơ đồ sơ đồ trên, ta lập sơ đồ R4 = ACDF • Kết cuối ta có phép tách R thành sơ đồ {R1, R2, R3, R4} phép tách không mát thơng tin bảo tồn tập phụ thuộc hàm • Vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F • Ra: phép tách khơng mát thơng tin bao gồm tập sơ đồ BCNF với phụ thuộc hàm hình chiếu F lên sơ đồ • Cách tiến hành B1 KQ = {R}, B1 {R} B2.Với S KQ, S không BCNF, xét XA S, với điều kiện X khơng chứa khố S A X Thay S S1, S2 với S1=A X, S2 = S \ A B3 Lặp (B2) S KQ BCNF KQ gồm sơ đồ phép tách yêu cầu 51 52 Kết luận • Tầm quan trọng thiết kế CSDL – ảnh hưởng đến chất lượng liệu lưu trữ – Hiệu việc khai thác liệu • Mục đích thiết kế CSDL: – Tránh dư thừa liệu – Tránh dị thường liệu thêm/xoá/sửa đổi – Hiệu tìm kiếm Đưa dạng chuẩn – 2NF: giản ước dư thừa để tránh dị thuờng cập nhật – 3NF: tránh dị thường thêm/xoá 53 54 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Lời hay ý đẹp "Nếu anh thấy gia đình hạnh phúc, anh nên tin gia đình có người đàn bà biết qn mình." (René Bazin) 55 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... a1 a2 b31 b41 R2 b12 a2 b32 a4 R2 b12 a2 a3 a4 R3 a1 a2 a3 b43 R3 a1 a2 a3 b43 R4 b 14 a2 a3 a4 R4 b 14 a2 a3 a4 • Từ B C, ta có 33 Ví dụ (tiếp) • Từ C D, ta có 34 Phép tách bảo tồn tập phụ... R3=ABC, R4=BCD F = {AC, BC, CDB, CD} • B.1: Tạo bảng gồm hàng, cột A B C D R1 a1 a2 a3 b41 R2 b12 a2 b32 a4 R3 a1 a2 a3 b43 R4 b 14 a2 a3 a4 A B C D R1 a1 a2 a3 b41 A B C D R1 a1 a2 b31 b41 R2... U XU • Ra: X+ • Thuật tốn X0 = X B0 Bi Tính Xi từ Xi-1 Nếu YZ F Y Xi-1 A Z A Xi-1 Xi = Xi-1 A ngược lại, Xi = Xi-1 Nếu Xi Xi-1 lặp Bi ngược lai, chuyển Bn Bn X+ = Xi – Giả sử Y=A1