Bài giảng Cơ sở dữ liệu - Chương 8: Phụ thuộc hàm và dạng chuẩn (Functional Dependencies & Normal Form)- Phạm Nguyễn Cương

Đáp ứng các yêu cầu thông 
tin cho các người dùng và 
các ứng dụng cụ thể.
 Cung cấp kiến trúc lưu trữ 
dữ liệu đúng đắn, tự nhiên 
và dễ hiểu.
 Hỗ trợ một số yêu cầu về 
hiệu năng: thời gian hồi đáp, 
thời gian xử lý, không gian 
lưu trữ, … 
pdf 40 trang xuanthi 30/12/2022 1441
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 8: Phụ thuộc hàm và dạng chuẩn (Functional Dependencies & Normal Form)- Phạm Nguyễn Cương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_08_phu_thuoc_ham_va_dang_chua.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 8: Phụ thuộc hàm và dạng chuẩn (Functional Dependencies & Normal Form)- Phạm Nguyễn Cương

  1. Nội dung chi tiết . Các bước thiết kế CSDL quan hệ . Sự trùng lắp thông tin . Phụ thuộc hàm . Luật dẫn Armstrong . Các dạng chuẩn © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 2
  2. Các bước thiết kế CSDL quan hệ . Một lược đồ CSDL thiết kế tốt được thể hiện: - Ngữ nghĩa của quan hệ, thuộc tính được thể hiện rõ ràng - Các thuộc tính trên quan hệ không được trùng lắp - Giảm trùng lắp giữa các bộ trên một quan hệ (dư thừa thông tin) - Giảm giá trị rỗng (Null) trên các quan hệ. . Lược đồ thiết kế trùng lắp thông tin dẫn đến: - Tốn không gian lưu trữ - Dị thường khi thực hiện các phép cập nhật dữ liệu . Kiểm tra lược đồ tốt hay xấu? - Bằng kinh nghiệm - Bằng tiêu chuẩn dạng chuẩn © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 4
  3. Nội dung chi tiết . Các bước thiết kế CSDL quan hệ . Sự dư thừa thông tin . Phụ thuộc hàm . Luật dẫn Armstrong . Các dạng chuẩn © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 6
  4. Sự dư thừa thông tin . Các ảnh hưởng khi thực hiện thao tác cập nhật: - Thêm: Thêm 1 giáo viên thì phải thêm thông tin bộ môn hoặc phải để giá trị cho các thuộc tính liên quan đến bộ môn là Null. Không thể thêm 1 bộ môn mới mà chưa có giáo viên nào thuộc về bộ môn đó. - Sửa: khi sửa thông tin bộ môn, thì phải sửa đến tất cả các bộ liên quan nếu không sẽ dẫn tới trình trạng không nhất quán. - Xóa: có thể bị mất thông tin. Xem xét khi xóa giáo viên có mã 006? © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 8
  5. Sự dư thừa thông tin Nên thiết kế các lược đồ quan hệ sao cho hạn chế xảy ra các vấn đề bất thường khi cập nhật. © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 10
  6. Phụ thuộc hàm . Cho R (A1, A2, , An), r(R), ký hiệu R+ = {A1, A2, , An}. . Phụ thuộc hàm giữa 2 tập thuộc tính X, Y  R+. - Ký hiệu : X Y, X là vế trái, Y là vế phải. - Ý nghĩa: r R, t1, t2 r, nếu t1[X] = t2[X] thì t1[Y] = t2[Y]. - Ví dụ: MAGV TENGV,NGSINH,DCHI MABM MABM {TENBM, TRGBM} © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 12
  7. Phụ thuộc hàm . Nhận diện PTH: Việc nhận diện PTH dựa vào ý nghĩa của thuộc tính và mối quan hệ của chúng trong quan hệ. . Ví dụ: . Dựa vào dữ liệu trên : - MAGV → TENGV - TENGV → MAGV . Tuy nhiên, chỉ có pth: - MAGV → TENGV © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 14
  8. Phụ thuộc hàm . Luật dẫn khác: - Luật bac cau giả Nếu X Y và Y, W Z (FD4) Thì X, W Z - Luật hội Nếu X Y và X Z (FD5) Thì X Y, Z - Luật phân rã Nếu X Y và Z  Y (FD6) Thì X Z © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 16
  9. Nội dung chi tiết . Các bước thiết kế CSDL quan hệ . Sự trùng lắp thông tin . Phụ thuộc hàm . Các dạng chuẩn © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 18
  10. Dạng chuẩn 1 (DC1) . Một quan hệ ở dạng chuẩn 1 không có các trường lặp và các trường kép, còn được gọi là cấu trúc phẳng (tất cả các giá trị tại các thuộc tính phải là giá trị nguyên tố). . Nhận xét: - Mọi lược đồ quan hệ đều thuộc DC 1. - DC1 còn tình trạng trùng lắp dữ liệu cao, nên gây ra các bất thường về cập nhật dữ liệu. . Ví dụ: cho quan hệ THUENHA như sau MANT TENNT MANHA DCHI_NHA NGAYTHUE_BT NGAYTHUE_KT GIATHUE MACHUNHA TENCHUNHA CR76 L.V.Hùng PG4 125 Lê Vă n Sỹ, Q3 01/08/2012 01/09/2013 50tr CO40 N.T Lan PG16 432 CMT8, QTB 01/09/2007 01/10/2011 150tr CO72 B.T.Thanh CR56 H.V.Gia PG4 125 Lê Vă n Sỹ, Q3 01/08/2007 01/07/2012 50tr CO40 N.T.Lan PG16 432 CMT8, QTB 01//01/2012 01/01/2013 150tr CO72 B.T.Thanh Phi dạng chuẩn PG36 124 Tô Ký, Q12 01/01/2010 01/01/2014 200tr CO20 N.T.Phuong © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 20
  11. Biến đổi phi dạng chuẩn sang DC1 . Phương pháp 1: MANT TENNT MANHA DCHI_NHA NGAYTHUE_BT NGAYTHUE_KT GIATHUE MACHUNHA TENCHUNHA CR76 L.V.Hùng PG4 125 Lê Vă n Sỹ, Q3 01/08/2012 01/09/2013 50tr CO40 N.T Lan PG16 432 CMT8, QTB 01/09/2007 01/10/2011 150tr CO72 B.T.Thanh CR56 H.V.Gia PG4 125 Lê Vă n Sỹ, Q3 01/08/2007 01/07/2012 50tr CO40 N.T.Lan PG16 432 CMT8, QTB 01//01/2012 01/01/2013 150tr CO72 B.T.Thanh PG36 124 Tô Ký, Q12 01/01/2010 01/01/2014 200tr CO20 N.T.Phuong MANT TENNT MANHA DCHI_NHA NGAYTHUE_BT NGAYTHUE_KT GIATHUE MACHUNHA TENCHUNHA CR76 L.V.Hùng PG4 125 Lê Vă n Sỹ, Q3 01/08/2012 01/09/2013 50tr CO40 N.T Lan CR76 L.V.Hùng PG16 432 CMT8, QTB 01/09/2007 01/10/2011 150tr CO72 B.T.Thanh CR56 H.V.Gia PG4 125 Lê Vă n Sỹ, Q3 01/08/2007 01/07/2012 50tr CO40 N.T.Lan CR56 H.V.Gia PG16 432 CMT8, QTB 01//01/2012 01/01/2013 150tr CO72 B.T.Thanh CR56 H.V.Gia PG36 124 Tô Ký, Q12 01/01/2010 01/01/2014 200tr CO20 N.T.Phuong © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 22
  12. Dạng chuẩn 2 (DC2) . Một số khái niệm bổ sung - Thuộc tính khóa (không khóa): A là một thuộc tính khóa (không khóa) của Q nếu:  A Q+  A có (không có) tham gia vào một khóa của Q - Ví dụ 4.5: Q1(MNOPX) ; Q2(PY) M,N,O là các thuộc tính khóa của Q1, P là thuộc tính khóa của Q2 nhưng là thuộc tính không khóa của Q1 - Thuộc tính phụ thuộc đầy đủ (không phụ thuộc đầy đủ) vào một tập thuộc tính:  A là một thuộc tính phụ thuộc đầy đủ (không phụ thuộc đầy đủ) vào X nếu X A là một phụ thuộc hàm đầy đủ (không đầy đủ) © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 24
  13. Dạng chuẩn 2 (DC2) . Ví dụ: NHA_CHO_THUE (MANT, MANHA, DCHI_NHA, NGAYTHUE_BT, NGAYTHUE_KT, GIATHUE, MACHUNHA, TENCHUNHA) MANT MANHA DCHI_NHA NGAYTHUE_BT NGAYTHUE_KT GIATHUE MACHUNHA TENCHUNHA CR76 PG4 125 Lê Vă n Sỹ, Q3 01/08/2012 01/09/2013 50tr CO40 N.T Lan CR76 PG16 432 CMT8, QTB 01/09/2007 01/10/2011 150tr CO72 B.T.Thanh CR56 PG4 125 Lê Vă n Sỹ, Q3 01/08/2007 01/07/2012 50tr CO40 N.T.Lan CR56 PG16 432 CMT8, QTB 01//01/2012 01/01/2013 150tr CO72 B.T.Thanh CR56 PG36 124 Tô Ký, Q12 01/01/2010 01/01/2014 200tr CO20 N.T.Phuong Xét quan hệ NHA_CHO_THUE: PK = {MANT, MANHA} F = { MANHA → DCHI_NHA, GIATHUE, MACHUNHA, TENCHUNHA Vậy NHA_CHO_THUE có thỏa DC2? ► NHA_CHO_THUE: không thỏa DC2 → chỉ đạt DC1 © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 26
  14. Biến đổi DC1 sang DC2 DC1 NHA_CHO_THUE (MANT, MANHA, DCHI_NHA, NGAYTHUE_BT, NGAYTHUE_KT, GIATHUE, MACHUNHA, TENCHUNHA) MANT MANHA DCHI_NHA NGAYTHUE_BT NGAYTHUE_KT GIATHUE MACHUNHA TENCHUNHA CR76 PG4 125 Lê Vă n Sỹ, Q3 01/08/2012 01/09/2013 50tr CO40 N.T Lan CR76 PG16 432 CMT8, QTB 01/09/2007 01/10/2011 150tr CO72 B.T.Thanh CR56 PG4 125 Lê Vă n Sỹ, Q3 01/08/2007 01/07/2012 50tr CO40 N.T.Lan CR56 PG16 432 CMT8, QTB 01//01/2012 01/01/2013 150tr CO72 B.T.Thanh CR56 PG36 124 Tô Ký, Q12 01/01/2010 01/01/2014 200tr CO20 N.T.Phuong NHA_THUE (MANHA, DCHI_NHA, GIATHUE, MACHUNHA, TENCHUNHA) TT_THUE_NHA (MANT, MANHA, NGAYTHUE_BT, NGAYTHUE_K MANHA DCHI_NHA GIATHUE MACHUNHA TENCHUNHA MANT MANHA NGAYTHUE_BT NGAYTHUE_KT PG4 125 Lê Vă n Sỹ, Q3 50tr CO40 N.T Lan CR76 PG4 01/08/2012 01/09/2013 PG16 432 CMT8, QTB 150tr CO72 B.T.Thanh CR76 PG16 01/09/2007 01/10/2011 PG36 124 Tô Ký, Q12 200tr CO20 N.T.Phuong CR56 PG4 01/08/2007 01/07/2012 DC2 CR56 PG16 01//01/2012 01/01/2013 CR56 PG36 01/01/2010 01/01/2014 © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN DC2 28
  15. Dạng chuẩn 3 (DC3) . Khái niệm bổ sung: Thuộc tính phụ thuộc bắc cầu vào một tập thuộc tính . Ví dụ: Cho F = {MN OPRX; NO M; P RY} - P có phụ thuộc bắc cầu vào NO (NO P)? NO M  NO MN : thỏa (i) P không phụ thuộc MN P:thỏa (ii) bắc cầu vào NO MN O MN NO : không thỏa (iii) - R có phụ thuộc bắc cầu vào NO (NO R)? NO MN và MN P NO P (i) P R (ii) P NO F+ (iii) R phụ thuộc bắc cầu vào NO R NOP (iv) © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 30
  16. Biến đổi DC2 lên DC3 . Xác định thuộc tính khóa trong quan hệ đạt dạng chuẩn 2 NHA_THUE: PK = {MANHA} . Xác định phụ thuộc hàm trong quan hệ gây ra thuộc tính không khóa bắt cầu vào khóa MACHUNHA TENCHUNHA . Xóa pth gây ra tính chất bắt cầu bằng cách đưa nó vào quan hệ mới. - Xóa pth MACHUNHA TENCHUNHA từ quan hệ NHA_THUE và đưa vào quan hệ mới CHU_NHA(MACHUNHA,TEN CHUNHA) © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 32
  17. Dạng chuẩn 3 (DC3) . Nhận xét: . Mọi lược đồ quan hệ đạt DC3 cũng đạt DC2. . Phụ thuộc hàm bắc cầu là nguyên nhân dẫn đến trùng lắp dữ liệu và làm cho lược đồ không đạt DC3. . DC3 không đạt được là do sự xuất hiện của các thuộc tính không khóa trong lược đồ suy ra được lẫn nhau. . DC3 là dạng chuẩn tối thiểu trong thiết kế CSDL © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 34
  18. Dạng chuẩn BCK (Boyce Codd Ken) . Ví dụ: PHONGVAN(MAUV, NGAYPV, GIOPV, MANV, MAPHG) MAUV NGAYPV GIOPV MANV MAPHG CR76 13/05/2005 10:30 SG5 G101 CR56 13/05/2005 12:00 SG5 G101 CR74 13/05/2005 12:00 SG37 G102 CR56 1/07/2005 10:30 SG5 G201 F = { f1: MAUV, NGAYPV GIOPV, MANV, MAPHG f2: MANV, NGAYPV, GIOPV MAUV f3: MAPHG, NGAYPV, GIOPV MAUV, MANV f4: MANV, NGAYPV MAPHG } Khóa chính = {MAUV, NGAYPV} Khóa ứng viên = { (MANV, NGAYPV, GIOPV); (MAPHG, NGAYPV, GIOPV)} PHONGVAN: Không đạt DC BCK, do PTH f4 có vế trái không là khóa/khóa ứng viên. © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 36
  19. Biến đổi DC3 lên DC BCK . Ví dụ: NV_PHONG (MANV,NGAYPV, MAPHG) PHONGVAN(MAUV, NGAYPV, GIOPV, MANV, MAPHG) DC3 MANV NGAYPV MAPHG MAUV NGAYPV GIOPV MANV MAPHG SG5 13/05/2005 G101 CR76 13/05/2005 10:30 SG5 G101 SG5 13/05/2005 G101 CR56 13/05/2005 12:00 SG5 G101 SG37 13/05/2005 G102 CR74 13/05/2005 12:00 SG37 G102 SG5 1/07/2005 G201 CR56 1/07/2005 10:30 SG5 G201 PHONGVAN(MAUV,NGAYPV, GIOPV, MANV) F = { f1: MAUV, NGAYPV GIOPV, MANV, MAPHG f2: MANV, NGAYPV, GIOPV MAUV MAUV NGAYPV GIOPV MANV f3: MAPHG, NGAYPV, GIOPV MAUV, MANV CR76 13/05/2005 10:30 SG5 f4: MANV, NGAYPV MAPHG } CR56 13/05/2005 12:00 SG5 CR74 13/05/2005 12:00 SG37 CR56 1/07/2005 10:30 SG5 © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 38
  20. © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 40