Bài giảng Hệ cơ sở dữ liệu - Chương 5: Chuẩn hóa cơ sở dữ liệu cung cấp cho người học các kiến thức: Giới thiệu chuẩn hóa cơ sở dữ liệu, phụ thuộc hàm, dạng chuẩn và quá trình chuẩn hóa CSDL. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương Chuẩn hóa sở liệu (phụ thuộc hàm & dạng chuẩn) Giáo trình & Tài liệu tham khảo: Ramez Elmasri, Shamkant B Navathe, 2011 Fundamentals of Database systems, 6th edition, Addison-Wesley Giáo trình Cơ sở liệu , Trần Đắc Phiến, ĐH Công nghiệp TPHCM Bộ slide giảng Nguyễn Minh Thư, Khoa CNTT, ĐH KHTN TPHCM Bộ slide giảng Trần Thị Kim Chi, Khoa CNTT, ĐH Công nghiệp TPHCM Gv Nguyễn Như Hoa Nội dung • Giới thiệu • Phụ thuộc hàm • Dạng chuẩn trình chuẩn hóa CSDL Giới thiệu • Một thiết kế DB tốt thiết kế – Đưa tập quan hệ chứa thuộc tính biểu diễn liệu mong muốn toán – Tối thiểu loại bỏ dư thừa liệu quan hệ Giới thiệu • Dư thừa liệu thiết kế dẫn tới – Tốn không gian lưu trữ – Sai liệu hay dị thường liệu (update anomalies) thực Insert/Update/Delete • Ví dụ: xét thiết kế DB Thiết kế Thiết kế Nhanvien( MaNV, Ten, Vitri, Luong, MaPB) Phongban(MaPB, TenPB) Nhanvien_PB(MaNV, Ten, Vitri, Luong, MaPB, TenPB) Giới thiệu Thiết kế không dư thừa liệu Thiết kế dư thừa liệu : TenPB lặp lại nhiều dòng Nhanvien MaNV TeNV 0111 Luong MaPB Nguyen An Manager 30000 B005 0112 Bui Liem Assistant 20000 B005 0201 Le Van Assistant 15000 B004 0202 Tran Mai Assistant 15000 B004 0203 Tran Tuan Manager 20000 B003 Nhanvien_PB Vitri Phongban MaPB TenPB B003 Dieu hanh B004 Nghien cuu B005 To chuc MaNV TeNV Vitri Luong MaPB TenPB 0111 Nguyen An Manager 30000 B005 To chuc 0112 Bui Liem Assistant 20000 B005 To chuc 0201 Le Van Assistant 15000 B004 Nghien cuu 0202 Tran Mai Assistant 15000 B004 Nghien cuu 0203 Tran Tuan Manager 20000 B003 Dieu hanh Giới thiệu Bất thường I/U/D liệu thiết kế • Thêm nhân viên (insert), phải đảm bảo TenPB tương ứng với MaPB, khớp với có Insert MaNV TeNV Vitri Luong MaPB TenPB 0111 Nguyen An Manager 30000 B005 To chuc 0112 Bui Liem Assistant 20000 B005 To chuc 0201 Le Van Assistant 15000 B004 Nghien cuu 0202 Tran Mai Assistant 15000 B004 Nghien cuu 0203 Tran Tuan Manager 20000 B003 Dieu hanh 0301 Pham Tin Assistant 20000 B005 TCHC Mâu thuẫn với MaPB, TenPB có • Thêm phịng ban khơng thể, MaNV khơng thể Null Insert MaNV TeNV Vitri Luong MaPB TenPB 0111 Nguyen An Manager 30000 B005 To chuc 0112 Bui Liem Assistant 20000 B005 To chuc 0201 Le Van Assistant 15000 B004 Nghien cuu 0202 Tran Mai Assistant 15000 B004 Nghien cuu 0203 Tran Tuan Manager 20000 B003 Dieu hanh B001 Ke toan Giới thiệu Bất thường I/U/D liệu thiết kế • Xóa nhân viên : nhân viên nhân viên phịng ban , thao tác xóa dẫn đến xóa ln phịng ban -> thơng tin MaNV TeNV Vitri Luong MaPB TenPB 0111 Nguyen An Manager 30000 B005 To chuc 0112 Bui Liem Assistant 20000 B005 To chuc 0201 Le Van Assistant 15000 B004 Nghien cuu 0202 Tran Mai Assistant 15000 B004 Nghien cuu 0203 Tran Tuan Manager 20000 B003 Dieu hanh Xóa nhân viên 0203 dẫn tới xóa ln phịng ban B003 Giới thiệu Bất thường I/U/D liệu thiết kế • Khi sửa tên phịng ban : phải đảm bảo sửa tên phòng ban tất tương ứng Nếu khơng tính qn liệu (sai liệu) MaNV TeNV Vitri Luong MaPB TenPB 0111 Nguyen An Manager 30000 B005 To chuc 0112 Bui Liem Assistant 20000 B005 Quan ly Nhan su 0201 Le Van Assistant 15000 B004 Nghien cuu 0202 Tran Mai Assistant 15000 B004 Nghien cuu 0203 Tran Tuan Manager 20000 B003 Dieu hanh Sửa Tên PB (hay sửa Mã PB) mà không sửa tât tương ứng dẫn đến tính quán Giới thiệu • Chuẩn hóa CSDL (normalization) ? – Chuẩn hóa kỹ thuật dựa “dạng chuẩn”, cho phép người thiết kế đánh giá lược đồ quan hệ điều chỉnh thiết kế để giảm thiểu loại bỏ dư thừa liệu – Chuẩn hóa dựa dạng chuẩn (normal form) 1NF, 2NF, 3NF, BCNF, … • Các dạng chuẩn cao giảm/loại bỏ dư thừa liệu mạnh Giới thiệu • Phụ thuộc hàm (functional dependency) – Mô tả mối quan hệ thuộc tính quan hệ – Là khái niệm tảng để hiểu “dạng chuẩn” 10 Dạng chuẩn BCNF • Lược đồ khơng đạt BCNF Xác định dạng chuẩn R ? Cho R(A,B,C,D) với tập F = {AB->CD, C->B} Giải : - R có khóa {AB} , {AC} (*)sử dụng thuật tốn tìm khóa - Tồn C-> B phụ thuộc hàm có vế trái khơng phải siêu khóa => R khơng đạt BCNF - Thuộc tính khơng khóa D : khơng phụ thuộc bắc cầu vào khóa => R đạt 3NF => kết luận : R đạt 3NF 40 Dạng chuẩn lược đồ CSDL • Nhận xét từ định nghĩa dạng chuẩn – Nếu lược đồ quan hệ đạt BCNF đạt 3NF, 2NF 1NF – Nếu lược đồ quan hệ đạt 3NF đạt 2NF 1NF – Nếu lược đồ quan hệ đạt dạng chuẩn 2NF đạt 1NF • Định nghĩa: Dạng chuẩn lược đồ sở liệu dạng chuẩn thấp dạng chuẩn lược đồ quan hệ 41 Thuật toán kiểm tra dạng chuẩn lược đồ quan hệ • • • • Vào: lược đồ quan hệ Q, tập phụ thuộc hàm F Ra: khẳng định Q đạt chuẩn gì? Bước 1: Tìm tất khóa Q, tách vế phải cịn thuộc tính Bước 2: Kiểm tra chuẩn BC – Xét tất phụ thuộc hàm phụ thuộc hàm có vế trái siêu khóa Q đạt BCNF, 3NF, 2NF, 1NF, kết thúc thuật toán – Ngược lại qua bước • Bước 3: Kiểm tra chuẩn – Xét tất phụ thuộc hàm phụ thuộc hàm có vế trái siêu khóa vế phải thuộc tính khóa Q đạt 3NF, 2NF, 1NF, kết thúc thuật toán – Ngược lại qua bước • Bước 4: Kiểm tra chuẩn – Với khóa K, tìm bao đóng tất tập thật khóa, tất bao đóng khơng chứa thuộc tính khơng khóa Q đạt 2NF, kết thúc thuật tốn 42 – Ngược lại Q đạt 1NF Quá trình chuẩn hóa CSDL • Mục tiêu : thay đổi thiết kế CSDL cho lược đồ quan hệ CSDL có dạng chuẩn BCNF 3NF • Q trình chuẩn hóa bao gồm số bước – Ở bước, lược đồ quan hệ đánh giá đạt dạng chuẩn – Thực biến đổi để lược đồ quan hệ đạt dạng chuẩn cao cách phân rã (tách) lược đồ quan hệ thành số lược đồ quan hệ có dạng chuẩn cao – Q trình phân rã phải đảm bảo bảo tồn thơng tin bảo tồn phụ thuộc 43 Nhanvien_PB(MaNV, TenNV, Vitri, Luong, MaPB, TenPB) Với F = {MANV TENNV, VITRI, LUONG, MAPB; MAPB TENPB; MAPB, VITRI LUONG } Có khóa {MANV} => đạt 2NF Nhanvien( MaNV, TenNV, Vitri, Luong, MaPB) với F = {MANV TENNV, VITRI, LUONG, MAPB ; MAPB, VITRI LUONG } Có khóa {MANV} => Đạt 2NF Nhanvien( MaNV, TenNV ) với F = {MANV TENNV} =>Đạt BCNF Phongban(MaPB, TenPB) với F = {MAPB->TENPB} Có khóa {MAPB} => Đạt BCNF Nhanvien_VT(MaNV, Vitri, MaPB) với F = { MANV VITRI, MAPB } =>Đạt BCNF PB_LUONG (MAPB, VITRI, LUONG) với F = {MAPB, VITRI LUONG } => đạt BNCF => kết : Lược đồ CSDL với lược đồ quan hệ đạt BCNF, bảo tồn thơngtin bảo toàn phụ thuộc Nhanvien( MaNV, TenNV ) với F = {MANV TENNV} Phongban(MaPB, TenPB) với F = {MAPB->TENPB} Nhanvien_VT(MaNV, Vitri, MaPB) với F = { MANV VITRI, MAPB } PB_LUONG (MAPB, VITRI, LUONG) với F = {MAPB, VITRI LUONG } 44 Tóm tắt - Dư thừa liệu - Làm để loại bỏ dư thừa liệu => chuẩn hóa CSDL - Phụ thuộc hàm - Phụ thuộc hàm suy dẫn từ F (Bao đóng tập phụ thuộc hàm F) - Bộ luật dẫn Armstrong - Bao đóng tập thuộc tính Thuật tốn tìm tất khóa R - Khái niệm dạng chuẩn => Nhận biết lược đồ quan hệ thuộc dạng chuẩn - Quá trình chuẩn hóa (khái niệm ví dụ) 45 Câu hỏi 46 Bài tập 1a • Nhận diện “dư thừa liệu” lược đồ quan hệ 2NF ? Detai(MaSV, TenDetai, TenGV , MaGV) đạt 2NF với F = { MaSV -> TenDetai, TenGV, MaGV ; MaGV -> TenGV } Lược đồ qh Có khóa {MaSV} MASV TENDETAI TENGV MAGV 0101 CS01 Nguyen Minh A001 0102 CS02 Nguyen Minh A001 0103 SE15 Le Tu A003 0104 SE21 Tran Anh A002 0105 SI50 Ha My A005 Dư thừa liệu thuộc tính ? Bất thường Thêm/Xóa/Sửa liệu ? 47 Bài tập 1b • Nhận diện “dư thừa liệu” lược đồ quan hệ 3NF ? SINHVIEN_HOC( MaSV, Monhoc, MaGV) đạt 3NF với F = { MaSV, Monhoc -> MaGV ; MaGV -> Monhoc } Lược đồ qh có khóa {MaSV, Monhoc}, {MaSV,MaGV} MASV MONHOC MAGV 0101 Ky thuat lap trinh A001 0101 Co so du lieu A015 0102 Ky thuat lap trinh A001 0103 Ky thuat lap trinh A001 0201 Toan roi rac A020 Dư thừa liệu thuộc tính ? Bất thường Thêm/Xóa/Sửa liệu ? 48 Bài tập • Xác định f có suy diễn từ F không ? (1) Cho F = { DB ; BC ; ADE ; CF} - Chứng minh D->F ; B->F ; AD->F; AB->F suy diễn từ F nhờ luật dẫn Armstrong ? - Tìm bao đóng tập thuộc tính AB AD ? (2) Cho F = { AB->C ; B->D ; CD->E ; CE->GH ; G->A } - Chứng minh AB->E; AB->G; CD->A; BC->AG suy diễn từ F nhờ luật dẫn Armstrong ? - Tìm bao đóng tập thuộc tính AB ? (3) Cho F = {A->D ; AB->E ; BI->E ; CD->I ; E->C} - Chứng minh AB->I ; AE->I suy diễn từ F nhờ luật dẫn Armstrong ? - Tìm bao đóng tập thuộc tính AE ? 49 Bài tập • Tìm tất khóa R ? (1) Cho R(A, B, C, D, E, F, G, H, I, J) tập F = { AB → C , A→DE, B→F , F→GH , D→IJ } Tìm tất khóa R ? (2) Cho R(A,B,C,D,E,H) tập F = { A->E; C->D; E->DH} Chứng minh K = {A,B,C} khóa R (3) Cho R(A,B,C,D) tập F = {AB->C; D->B; C->ABD} Tìm tất khóa R ? (4) Cho R(A,B,C,D,E,G) tập F = {AB->C; C->A; BC->D; ACD->B; D->EG; BE->C; CG->BD; CE->G} Tìm tất khóa R ? 50 Bài tập (tt) • Tìm tất khóa lược đồ quan hệ sau ? (5) (6) (7) 51 Bài tập • Xác định dạng chuẩn lược đồ quan hệ 1) 2) 3) 4) 5) 6) 7) 8) 9) 52 Bài tập (tt) • Xác định dạng chuẩn lược đồ quan hệ 10) 11) Q(S,I,D,M) 12) 53 Bài tập • Tìm phủ tối thiểu tập pth sau ? 1) 2) 3) 54 ... B->CDF+ thay cho AB->CD F => F {B->CD ; B->C ; C->D } • Bước : phân rã B->CD thành B->C B->D => F {B->D ; B->C ; C->D } • Bước : Thử loại B->D, có F’={B->C; C->D} suy dẫn B->D => loại B->D... AB->C ; B->D ; CD->E ; CE->GH ; G->A } - Chứng minh AB->E; AB->G; CD->A; BC->AG suy diễn từ F nhờ luật dẫn Armstrong ? - Tìm bao đóng tập thuộc tính AB ? (3) Cho F = {A->D ; AB->E ; BI->E ; CD->I... {B->C ; C->D } Thử loại B->C, có F’={B->D; C->D} khơng suy dẫn B->C => khơng loại B->D Thử loại C->D, có F’={B->D; B->C} không suy dẫn C->D => không loại C->D Kết luận : phủ tối thiểu F {B->C