Bài giảng Lý thuyết cơ sở dữ liệu - Chương 5: Chuẩn hóa cơ sở dữ liệu (Data normalization) cung cấp cho học viên những kiến thức về phép tách lược đồ quan hệ; phép tách - kết nối không mất mát thông tin; phụ thuộc hàm đầy đủ; phụ thuộc hàm bắc cầu; kiểm tra phép tách - kết nối không mất thông tin;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
CHƯƠNG V: CHUẨN HỵA CSDL Data normalization I Một số kh‡i niệm ¡ Phép tách lược đồ quan hệ R= {A1, A2, An} việc thay lược đồ quan hệ R tập lược đồ {R1, R2, , Rk}, Ri Ì R, i = 1, ,k - R! lược đồ (R! gồm số thuộc tính từ R) R = R1 È R2 È È Rk Khơng địi hỏi Ri phải phân biệt Mục đích: Loại bỏ dị thường liệu Cơ sở liệu V’ dụ MSKH TÊNKH TP PVC MSMH TÊNMH ĐG SL S1 An HCM 01 P1 Táo 650 300 S1 An HCM 01 P2 Cam 500 200 S1 An HCM 01 P3 Chanh 450 400 S2 Hòa HN 02 P1 Táo 650 100 S2 Hoà HN 02 P3 Chanh 450 300 S3 Thanh NT 03 P2 Cam 500 200 S4 Trang NT 03 P2 Cam 500 210 MSKH TÊNKH TP S1 An HCM S2 Hồ HN S3 Bình NT TP S4 Trang NT MSKH MSMH TÊNMH ĐG P1 Táo 650 P2 Cam 500 P3 Chanh 450 Cơ sở liệu MSMH S1 P1 SL 300 PVC S1 P2 200 HCM 01 S1 P3 400 HN 02 S2 P1 100 NT 03 S2 P3 300 S3 P2 200 S4 P2 210 PhŽp t‡ch-Kết nối kh™ng m‡t th™ng tin ¡ Nói phép tách R thành lược đồ R1, R2, …, Rk phép tách - kết nối không mát thông tin F với quan hệ r R thoả F r = PR1(r) * P R2 (r) * * P Rk(r) tức r tạo nên từ phép kết nối tự nhiên hình chiếu Ri, i= ,k Cơ sở liệu Phụ thuộc hˆm đầy đủ ¡ Cho lược đồ quan hệ (U,F) tập X, U ¡ PTH X ® Y gọi PTH đầy đủ không tồn X’ tập thực X mà X’ ® Y, tức là: - X®Y - "X’ Ì X X’ /® Y, tập thực X xác định hàm Y ¡ VD: F = { A ® BCD; BCD ® E; CD ® EI } BCD®E phụ thuộc hàm khơng đầy đủ CD® E A ® BCD CD ® EI phụ thuộc đầy đủ Cơ sở liệu Phụ thuộc hˆm bắc cầu ¡ Cho lược đồ quan hệ a = (U,F), X Í U, A Ỵ U ¡ Thuộc tính A gọi phụ thuộc hàm bắc cầu vào tập thuộc tính X $ Y Í U để: - X ® Y, Y ® A - Nhưng Y /à X với A Ï XY ¡ VD: R(ABCDE), F = {ABàCD, DàE}, khố: AB - Ta có: AB E pth bắc cầu vì: $D Ì R: AB D D /à AB Cơ sở liệu DàE E Ï ABD II Kiểm tra phŽp t‡ch-kết nối kh™ng th™ng tin ¡ Input: - R = {A1, A2, , An} – n thuộc tính tập pth F - Phép tách p = (R1, R2, , Rk) – k lược đồ ¡ Output: Kiểm tra phép tách có mát thơng tin hay khơng ? Cơ sở liệu Thuật to‡n Bước 1: Lập bảng với n+1 cột k+1 hàng -Cột thứ j (j = ® n ) ó thuộc tính thứ j lược đồ (Aj) -Hàng thứ i ( i = 0® k)ó lược đồ Ri -Tại (i,j) điền kí hiệu aj Aj Ỵ Ri, ngược lại điền kí hiệu bij Bước 2: thay đổi giá trị cho bảng (Lặp liờn tc) -Ln lt xột cỏc pth (XđY) ẻ F -Nếu tồn hai hàng mà tất cột ứng với thuộc tính X có giá trị thay đổi cho thuộc tính Y Nguyên tắc: có giá trị aj cột tương ứng với thuộc tính Y thay hết thành aj, không thay hết ký hiệu bij -Lặp lại bước (kể lặp lại phụ thuộc hàm áp dụng) không làm thay đổi giá trị bảng Bước 3: Đánh giá kết -Nếu xuất hàng gồm tồn kí hiệu a1, a2, , an phép tách-kết nối không mát thông tin, -ngược lại phép tách-kết nối mát thông tin Cơ sở liệu BËI TẬP ¡ Cho lược đồ quan hệ R(ABCDE) tập phụ thuộc hàm: G1= {AB®D, C®B, CB®E, E®DC} Kiểm tra phép tách lược đồ thành lược đồ có thơng tin khơng: R1(ABC), R2(CBE), R3(DE) BËI TẬP ¡ Cho lược đồ quan hệ HoaDon(MaHD, NgayLap, MaNV, TenNV, MaH, TenH, DG, SL) F= { MaHD ® NgayLap; MaH ® TenH; MaNV ® TenNV; MaHD,MaH ® DG, SL} Kiểm tra phép tách lược đồ thành lược đồ có thơng tin khơng: R1(MaNV, TenNV), R2(MaH,TenH), R3(MaHD, NgayLap, MaH, SL, DG) * Thuật to‡n ph‰n r‹ thˆnh c‡c BCNF ¡ Input: Quan hệ R tập PTH F ¡ Output: tách thành lược đồ BCNF ¡ Các bước: - Ban đầu phép tách S toàn R - Chọn pth XàA X khơng chứa khóa S ẠX ó PTH vi phạm BCNF - Thay S S1 S2 Trong đó: S1 = XA S2 = S \ A (loại thuộc tính A khỏi S) - Quá trình tiếp tục tất lược đồ quan hệ BCNF Cơ sở liệu 74 V’ dụ: Tách lược đồ dạng BCNF ¡ Cho lược đồ R(CTHRSG), đó: - C – Course; T – Teacher; H – Hour: Giờ học - R – Room; S – Student; G – Group ¡ PTH F = {CSàG; CàT; CHàR; HRàC; HTàR; } ¡ Khóa: HS C – Cource T – Teacher H – Hour R – Room S – Student G – Group CSDL Tâm 7h 21 N.V Hà CSDL.1 CSDL Tâm 7h 21 T.V Huy CSDL.1 CSDL Tâm 7h 21 Đ.T Lan CSDL.1 CTDL Xuân 9h 22 N.V Hà CTDL.1 CTDL Xuân 9h 22 Đ.T Lan CTDL.1 CTDL Xuân 9h 22 L.T Linh CTDL.1 TRR Linh 7h 23 T.V An TRR.1 TRR Linh 7h 23 Đ.V Hưởng TRR.2 ¡ Xét CSàG - Tách thành R1(CSG) R2(CTHRS) R1(CSG) C– Cource R2(CTHRS) S– Student G– Group CSDL N.V Hà CSDL.1 CSDL T.V Huy CSDL T– Teacher H– Hour CSDL Tâm 7h 21 N.V Hà CSDL.1 CSDL Tâm 7h 21 T.V Huy Đ.T Lan CSDL.1 CSDL Tâm 7h 21 Đ.T Lan CTDL N.V Hà CTDL.1 CTDL Xuân 9h 22 N.V Hà CTDL Đ.T Lan CTDL.1 CTDL Xuân 9h 22 Đ.T Lan CTDL L.T Linh CTDL.1 CTDL Xuân 9h 22 L.T Linh TRR T.V An TRR.1 TRR Linh 7h 23 T.V An TRR Đ.V Hưởng TRR.2 TRR Linh 7h 23 Đ.V Hưởng Cơ sở liệu C– Cource R– S – Student Room 76 ¡ Xét CàT - Tách thành R21(CT) R22(CHRS) R1(CSG) C– Cource R21(CT) R22(CHRS) S – Student G – Group C– Cource T– Teacher C– Cource H– Hour R– Room S – Student CSDL N.V Hà CSDL.1 CSDL Tâm CSDL 7h 21 N.V Hà CSDL T.V Huy CSDL.1 CTDL Xuân CSDL 7h 21 T.V Huy CSDL Đ.T Lan CSDL.1 TRR Linh CSDL 7h 21 Đ.T Lan CTDL N.V Hà CTDL.1 CTDL 9h 22 N.V Hà CTDL Đ.T Lan CTDL.1 CTDL 9h 22 Đ.T Lan CTDL L.T Linh CTDL.1 CTDL 9h 22 L.T Linh TRR T.V An TRR.2 TRR 7h 23 T.V An TRR Đ.V Hưởng TRR.2 TRR 7h 23 Đ.V Hưởng Cơ sở liệu 77 R221(CHR) ¡ Xét CHàR - Tách thành R221(CHR) R222(CHS) H– Hour R– Room CSDL 7h 21 CTDL 9h 22 TRR 7h 23 R222(CHS) R21(CT) R1(CSG) C– Cource S – Student G – Group C– Cource T– Teacher C– Cource H– Hour S – Student CSDL N.V Hà CSDL.1 CSDL Tâm CSDL 7h N.V Hà CSDL T.V Huy CSDL.1 CTDL Xuân CSDL 7h T.V Huy CSDL Đ.T Lan CSDL.1 TRR Linh CSDL 7h Đ.T Lan CTDL N.V Hà CTDL.1 CTDL 9h N.V Hà CTDL Đ.T Lan CTDL.1 CTDL 9h Đ.T Lan CTDL L.T Linh CTDL.1 CTDL 9h L.T Linh TRR T.V An TRR.2 TRR 7h T.V An TRR Đ.V Hưởng TRR.2 TRR 7h Đ.V Hưởng C– Cource Cơ sở liệu 78 V’ dụ ¡ Cho lược đồ R với U = {ABCDEFGH} F= {ABH C, AàDE, BGHà F, Fà ADH, BHà GE} ¡ Tìm FD vi phạm BCNF - (ABH)+ = U , ABH siêu khóa, ABH C khơng vi phạm BCNF - A+ ¹ U, AàDE vi phạm BCNF ¡ Chia R thành - R1 =( {ADE}, {AàDE} ) - R2 = ( {ABCFGH} , {ABHàC, BGHàF, Fà AH, BHàG}) 80 ¡ Sau phân rã, ý đến phụ thuộc hàm gốc Fà ADH, BHà GE - Chia FàADH thành {FàAH, FàD} - Chia BHàGE thành {BHàG, BHàE} ¡ FàD, BHàE chỗ phân rã (vì khơng có ràng buộc có đủ thuộc tính cho FD này) ¡ Nhưng - FàD suy diễn từ FàAH Ỵ R2 DE Ỵ R1 - BHà E suy diễn dựa vào (BH)+ từ R1,R2 è Phân rã R1,R2 bảo toàn phụ thuộc hàm 81 ¡ R1 BCNF ¡ Với R2: - ABHà C, BGH F không vi phạm BCNF (ABH, BGH siêu khóa) - Fà AH vi phạm BCNF è Phân rã R2 thành - R21=(FAH, {FàAH}) - R22= (FBCG, {}) R21, R22 BCNF FD ABHà C, BGH F BHàG mặt khơng thể suy dẫn từ FD R21, R22 R1 è Phân rã R2 khơng bảo tồn phụ thuộc hàm 82 Nhận xŽt ¡ Việc phân rã R thành R1, R21, R22 ¡ Nếu FD Fà ADH có R1= (FADH; {Fà ADH}) R2 = (FBCEG,{}) R1,R2 chuẩn BCNF số FD gốc bị mất, suy diễn 83 The End! Cơ sở liệu 88 HẠN NP BỗO CỗO BậI TP LN Ă Gi mail: trinhxuan@hou.edu.vn ¡ Subject: [CSDL] – ST3 – tên thành viên ¡ Đính kèm: - Word: báo cáo theo định dạng yêu cầu - Access (hoặc sql): kết cài đặt CSDL ¡ Hạn: Trước Cơ sở liệu 9h – ngày 7/4/2017 89 V’ dụ: X‰y dựng CSDL chuẩn 3NF ¡ Ví dụ:Tập pth F định nghĩa R sau: ¡ F= { MSKH TÊNKH,TP MSMH TÊNMH,ĐG MSKH, MSMH SL TP PVC} ¡ Khoá: MSKH, MSMH è đưa 3NF MSKH TÊNKH TP PVC MSMH TÊNMH ĐG SL S1 S1 An An HCM HCM 01 01 P1 P2 Táo Cam 650 500 300 200 S1 An HCM 01 P3 Chanh 450 400 S2 S2 Hịa Hồ HN HN 02 02 P1 P3 Táo Chanh 650 450 100 300 S3 Thanh NT 03 P2 Cam 500 200 S4 Trang NT 03 P2 Cam 500 210 Cơ sở liệu 101 Kết 2NF MSKH TÊNKH TP PVC MSKH S1 MSMH P1 SL 300 S1 An HCM 01 S1 P2 200 S2 Hoà HN 02 S1 P3 400 S2 P1 100 S3 Thanh NT 03 S2 P3 300 S4 Trang NT 03 S3 P2 200 S4 P2 210 FR1 = {MSKH TÊNKH, TP FĐH = {MSKH, MSMH SL} TP PVC} MSMH TÊNM ĐG H P1 Táo 650 P2 Cam 500 P3 Chanh 450 FMH = {MSMHà TÊNMH, ĐG} Cơ sở liệu 102 Kết 3NF MSKH TÊNKH TP TP PVC S1 An HCM HCM 01 S2 Hoà HN HN 02 NT 03 S3 Bình S4 NT Trang FVC = {TP PVC} NT FKH = {MSKH TÊNKH, TP} MSKH MSMH TÊNM ĐG H P1 Táo 650 P2 Cam 500 P3 Chanh 450 FMH = {MSMHà TÊNMH, ĐG} MSMH S1 P1 SL 300 S1 P2 200 S1 P3 400 S2 P1 100 S2 P3 300 S3 P2 200 S4 P2 210 FĐH = {MSKH, MSMH SL} Cơ sở liệu 103 V’ dụ: X‰y dựng CSDL chuẩn 3NF ¡ Ví dụ:Tập pth F định nghĩa R sau: ¡ F= { Mã SV Tên SV, Tỉnh Mã MH Tên MH, Số TC Mã SV, Mã MHà Điểm Tỉnh Khu vực} ¡ Khoá: Mã SV, Mã MH è đưa 3NF Mã SV Tên SV Tỉnh Khu vực Mã MH Tên MH Số TC Điểm SV1 An HN 01 MH1 Cấu trúc liệu SV1 An HN 01 MH2 Cơ sở liệu SV2 Hòa TB 02 MH1 Cấu trúc liệu SV3 Thanh HP 03 MH1 Cấu trúc liệu Cơ sở liệu 104 ... nếu: - Ở dạng 2NF - Mọi thuộc tính khơng khóa khơng phụ thuộc bắc cầu vào khóa quan hệ ¡ Hoặc Xét pth X A - Hoặc X siêu khóa R - Hoặc A thuộc tính khóa R ¡ Sơ đồ: R(A1,A2,A3, A4, A5) Cơ sở liệu. .. dạng chuẩn cao Cơ sở liệu 64 1NF R(A1,A2,A3, A4, A5) 2NF R(A1,A2,A3, A4, A5) 3NF R(A1,A2,A3, A4, A5) BCNF R(A1,A2,A3, A4, A5) * Qu‡ tr“nh chuẩn h—a Cơ sở liệu 66 IV Chuẩn h—a quan hệ ¡ Chuẩn hóa. .. 3: - pth X®A ỴF! có X khóa Q đạt chuẩn BCNF - ngược lại Q không đạt chuẩn BCNF ($ X → A mà X khơng khóa) ómọi pth có vế trái khóa đạt chuẩn BCNF ngược lại khơng Cơ sở liệu 63 ¡ Ví dụ 1: Cho R