Xem mẫu

  1. Chương 5 Chuẩn hóa cơ sở dữ liệu (phụ thuộc hàm & dạng chuẩn) Giáo trình & Tài liệu tham khảo: 1. Ramez Elmasri, Shamkant B. Navathe, 2011. Fundamentals of Database systems, 6th edition, Addison-Wesley. 2. Giáo trình Cơ sở dữ liệu , Trần Đắc Phiến, ĐH Công nghiệp TPHCM 3. Bộ slide bài giảng của Nguyễn Minh Thư, Khoa CNTT, ĐH KHTN TPHCM 4. Bộ slide bài giảng của Trần Thị Kim Chi, Khoa CNTT, ĐH Công nghiệp TPHCM Gv. Nguyễn Như Hoa 1
  2. Nội dung • Giới thiệu • Phụ thuộc hàm • Dạng chuẩn và quá trình chuẩn hóa CSDL 2
  3. Giới thiệu • Một thiết kế DB tốt là một thiết kế – Đưa ra tập các quan hệ chứa các thuộc tính biểu diễn được các dữ liệu mong muốn của bài toán – Tối thiểu hoặc loại bỏ sự dư thừa dữ liệu trong mỗi quan hệ 3
  4. Giới thiệu • Dư thừa dữ liệu trong thiết kế sẽ dẫn tới – Tốn không gian lưu trữ – Sai dữ liệu hay dị thường dữ liệu (update anomalies) khi thực hiện Insert/Update/Delete • Ví dụ: xét 2 thiết kế DB Thiết kế 1 Nhanvien( MaNV, Ten, Vitri, Luong, MaPB) Phongban(MaPB, TenPB) Thiết kế 2 Nhanvien_PB(MaNV, Ten, Vitri, Luong, MaPB, TenPB) 4
  5. Giới thiệu Thiết kế 1 không dư thừa dữ liệu Thiết kế 2 dư thừa dữ liệu : TenPB lặp lại ở nhiều dòng Nhanvien MaNV TeNV Vitri Luong MaPB Phongban 0111 Nguyen An Manager 30000 B005 MaPB TenPB 0112 Bui Liem Assistant 20000 B005 B003 Dieu hanh 0201 Le Van Assistant 15000 B004 B004 Nghien cuu 0202 Tran Mai Assistant 15000 B004 B005 To chuc 0203 Tran Tuan Manager 20000 B003 MaNV TeNV Vitri Luong MaPB TenPB Nhanvien_PB 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 5 0203 Tran Tuan Manager 20000 B003 Dieu hanh
  6. Giới thiệu Bất thường khi I/U/D dữ liệu trong thiết kế 2 • Thêm một nhân viên mới (insert), phải đảm bảo TenPB tương ứng với MaPB, khớp với các bộ đã có MaNV TeNV Vitri Luong MaPB TenPB 0111 Nguyen An Manager 30000 B005 To chuc 0112 Bui Liem Assistant 20000 B005 To chuc Mâu thuẫn với 0201 Le Van Assistant 15000 B004 Nghien cuu MaPB, TenPB 0202 Tran Mai Assistant 15000 B004 Nghien cuu của các bộ đã có 0203 Tran Tuan Manager 20000 B003 Dieu hanh Insert 0301 Pham Tin Assistant 20000 B005 TCHC • Thêm một phòng ban mới là không thể, vì MaNV không thể Null 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 Insert bộ này là không thể 0203 Tran Tuan Manager 20000 B003 Dieu hanh B001 Ke toan 6
  7. Giới thiệu Bất thường khi I/U/D dữ liệu trong thiết kế 2 • Xóa một nhân viên : nếu nhân viên này là nhân viên duy nhất của một phòng ban , thao tác xóa sẽ dẫn đến xóa luôn phòng ban -> mất 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 Xóa nhân viên 0203 0202 Tran Mai Assistant 15000 B004 Nghien cuu sẽ dẫn tới xóa luôn 0203 Tran Tuan Manager 20000 B003 Dieu hanh phòng ban B003 7
  8. Giới thiệu Bất thường khi I/U/D dữ liệu trong thiết kế 2 • Khi sửa tên một phòng ban : phải đảm bảo sửa tên phòng ban ở tất cả các bộ tương ứng. Nếu không sẽ mất tính nhất quán dữ liệu (sai dữ liệu) MaNV TeNV Vitri Luong MaPB TenPB Sửa Tên PB (hay sửa 0111 Nguyen An Manager 30000 B005 To chuc Mã PB) mà không 0112 Bui Liem Assistant 20000 B005 Quan ly Nhan su sửa trên tât cả các bộ 0201 Le Van Assistant 15000 B004 Nghien cuu tương ứng sẽ dẫn 0202 Tran Mai Assistant 15000 B004 Nghien cuu đến mất tính nhất 0203 Tran Tuan Manager 20000 B003 Dieu hanh quán 8
  9. Giới thiệu • Chuẩn hóa CSDL (normalization) ? – Chuẩn hóa là kỹ thuật dựa trên “dạng chuẩn”, cho phép người thiết kế đánh giá một lược đồ quan hệ và điều chỉnh thiết kế để giảm thiểu hoặc loại bỏ dư thừa dữ liệu – Chuẩn hóa dựa trên các dạng chuẩn (normal form) 1NF, 2NF, 3NF, BCNF, … • Các dạng chuẩn cao hơn thì giảm/loại bỏ dư thừa dữ liệu mạnh hơn 9
  10. Giới thiệu • Phụ thuộc hàm (functional dependency) – Mô tả mối quan hệ giữa các thuộc tính trong một quan hệ – Là khái niệm nền tảng để có thể hiểu “dạng chuẩn” 10
  11. Phụ thuộc hàm Nội dung • Khái niệm & Ví dụ • Định nghĩa khóa • Bao đóng của tập phụ thuộc hàm • Luật dẫn Amstrong • Bao đóng của tập thuộc tính • Thuật toán tìm tất cả các khóa • Phủ tối thiểu 11
  12. Phụ thuộc hàm- Khái niệm • Định nghĩa Cho R(A1, A2, …, An ) là lược đồ quan hệ X, Y là hai tập thuộc tính của R r là quan hệ bất kỳ trên R t1, t2 là hai bộ bất kỳ trên r Phụ thuộc hàm X xác định Y : ( hay Y phụ thuộc hàm vào X ) XY  ( t1.X = t2.X  t1.Y = t2.Y ) 12
  13. Phụ thuộc hàm - Khái niệm • Lưu ý : – X -> Y khi và chỉ khi : t1, t2r , t1.X = t2.X  t1.Y = t2.Y nhưng không có chiều ngược lại – (*) Nếu phụ thuộc hàm X -> Y tồn tại trong một lược đồ quan hệ R, hay được xác định như thuộc tính của R, thì X -> Y phải thỏa trên mọi thể hiện của R – Các phụ thuộc hàm được nhận diện dựa vào các qui tắc nghiệp vụ , hay ngữ nghĩa của các thuộc tính => Phụ thuộc hàm là một loại ràng buộc toàn vẹn – Ta bỏ qua các phụ thuộc hàm hiển nhiên (luôn luôn đúng) • MaNV, TenNV -> TenNV • MaNV, TenNV -> MaNV • MaNV, Vitri -> MaNV …. 13
  14. Phụ thuộc hàm - Ví dụ • Các phụ thuộc hàm được nhận diện dựa vào các qui tắc nghiệp vụ , hay ngữ nghĩa của các thuộc tính – Mỗi mã phòng ban xác định duy nhất một tên phòng ban MAPB  TENPB – Mỗi mã NV xác định duy nhất một tên nv, một vị trí, tiền lương và phòng ban MANV  TENNV, VITRI, LUONG, MAPB, TENPB – Mỗi vị trí của một phòng ban xác định một mức lương MAPB, VITRI  LUONG NHANVIEN 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 14 0203 Tran Tuan Manager 20000 B003 Dieu hanh
  15. Phụ thuộc hàm - Ví dụ • Vd(tt) : Xác định có là phụ thuộc hàm không ? Tại sao ? • LUONG  MAPB, VITRI • VITRI  MANV • TENPB  MAPB • TENPB, VITRI  LUONG NHANVIEN 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 15
  16. Phụ thuộc hàm - Ví dụ Ví dụ - xác định các phụ thuộc hàm dựa trên các qui tắc nghiệp vụ sau : • Mỗi máy bay có một giờ khởi hành duy nhất • Một máy bay và ngày khởi hành sẽ xác định một phi công • Một phi công và một ngày, giờ khởi hành sẽ xác định được máy bay CHUYENBAY PhiCong Maybay NgayKH GioKH MAYBAY -> GIOKH MAYBAY, NGAYKH -> PHICONG PHICONG, NGAYKH, GIOKH -> MAYBAY Kiểm tra trên dữ liệu ? 16
  17. Định nghĩa khóa • Siêu khóa/Khóa dự tuyển/ khóa chính : là một loại phụ thuộc hàm Cho R(A1, A2, … , An) , với Q+ là tập thuộc tính của R, K là tập con của Q+ K là khóa dự tuyển nếu thỏa : – Tồn tại pth K-> Q+ trên R – Không tồn tại K’ K mà K’ -> Q+ là một phụ thuộc hàm trên R Siêu khóa S là tập thuộc tính thỏa K  S • Cho NHANVIEN(MANV, TenNV, Vitri, Luong, MaPB, TenPB) và 2 pth f1 : MANV, TENNV  MANV, TENNV, VITRI, LUONG, MAPB, TENPB f2 : MANV  MANV, TENNV, VITRI, LUONG, MAPB, TENPB  {MANV} là khóa dự tuyển  {MANV, TENNV} là siêu khóa 17
  18. Bao đóng của tập phụ thuộc hàm • Dựa trên ngữ nghĩa của các thuộc tính của R, ban đầu ta xác định được tập pth F • Ta gọi f là pth được suy dẫn từ tập F, nếu với mọi r(R) thỏa các pth thuộc F thì cũng thỏa f • Tập phụ thuộc hàm chứa tất cả các phụ thuộc hàm f suy dẫn từ tập F gọi là bao đóng của tập phụ thuộc hàm F , ký hiệu F+ • Qui tắc suy dẫn ? 18
  19. Bộ luật dẫn Armstrong • Bộ luật dẫn Armstrong Cho quan hệ R(Q+) . X,Y,Z,W là các tập con của Q+. Rule 1. Phản xạ : Nếu X  Y thì XY Rule 2. Gia tăng: XY  XZ YZ Rule 3. Bắc cầu : XY và YZ  X Z Rule 4. Hợp : XY và XZ  X YZ Rule 5. Chiếu/phân rã: XYZ  X Y và X Z Rule 6. Bắc cầu giả: XY và YZW  XZ W 19
  20. Bộ luật dẫn Armstrong • Cho R(A,B,C,D) và tập phụ thuộc hàm trên R F = {AB, AC, BCD} Hãy chứng minh các pth sau được suy dẫn từ F : AD, ACBCD ? (hay chứng minh {AD, ACBCD}  F+ ) F+ Chứng minh A  D  F+ : AB và AC => A  BC (luật hợp) F AD A  BC và BCD => A  D (bắc cầu) Chứng minh AC  BCD  F+ : AB ACBCD AC A  B => AC  BC (luật tăng) BCD … AC  BC và BCD => AC  D (luật bắc cầu) AC  D => AC  BCD (luật tăng) 20
nguon tai.lieu . vn