Chương 9: Phụ thuộc hàm (FunctonalD ependency)

Chia sẻ: Trần Công Chính | Ngày: | Loại File: PPT | Số trang:81

0
140
lượt xem
65
download

Chương 9: Phụ thuộc hàm (FunctonalD ependency)

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục đích của thiết kế CSDL là gom các thuộc tính thành các quan hệ sao cho giảm thiểu dư thừa dữ liệu. Hậu quả của dư thừa dữ liệu: Lãng phí không gian đĩa, Các bất thường khi cập nhật. Ba loại bất thường: Bất thường khi thêm vào, Bất thường khi xóa bỏ, Bất thường khi sửa đổi.

Chủ đề:
Lưu

Nội dung Text: Chương 9: Phụ thuộc hàm (FunctonalD ependency)

  1. Chương 9 PhỤ huỘc  t hàm (FunctonalD ependency) i   1
  2. Nội dung  Dư thừa dữ liệu  Phụ thuộc hàm  Hệ tiên đề Amstrong  Bao đóng của tập phụ thuộc hàm  Bao đóng của tập thuộc tính  Tìm khóa 2
  3. Dư thừa dữ liệu - (Data redundancy)  Mục đích của thiết kế CSDL là gom các thuộc tính thành các quan hệ sao cho giảm thiểu dư thừa dữ liệu  Hậu quả của dư thừa dữ liệu:  Lãng phí không gian đĩa  Các bất thường khi cập nhật  Ba loại bất thường:  Bất thường khi thêm vào  Bất thường khi xóa bỏ  Bất thường khi sửa đổi 3
  4. Ví dụ MaSv HoTen MaMH TenMH SoTC Điem 1111 Mai CSDL Cơ Sở Dữ Liệu 4 9 1111 Mai KTMT Kiến Trúc Máy Tính 4 8 5556 Long CSDL Cơ Sở Dữ Liệu 4 8 5556 Long KTMT Kiến Trúc Máy Tính 4 8 9876 Son CSDL Cơ Sở Dữ Liệu 4 7  Khóa chính của bảng KETQUA?  MaSv + MaMH  Thông tin cá nhân bị trùng lặp  Các bất thường:  Nếu đổi bản ghi thứ nhất tên Mai thành Nga  Không nhất quán dữ liệu  bản ghi 2 và 3 vẫn tên Mai  Nếu bổ sung thêm người mới tên là Hùng nhưng chưa thi  không thể tạo bản ghi mới được  vì khóa chính là MaSv + MaMH  Nếu xóa bản ghi cuối  thì thông tin về môn CSDL cũng mất4
  5. Phụ thuộc hàm (Functional Dependency)  Phụ thuộc hàm mô tả mối liên hệ giữa các thuộc tính  Dựa vào phụ thuộc hàm để thiết kế lại CSDL, loại bỏ các dư thừa dữ liệu  Có thể biểu diễn RBTV bằng phụ thuộc hàm.  Ứng dụng của phụ thuộc hàm là giải quyết các bài toán về : Tìm khóa. Tìm phủ tối thiểu. Chuẩn hoá cơ sở dữ liệu. 5
  6. Phụ thuộc hàm (Functional Dependency)  Cho lược đồ quan hệ R(U), r là 1 quan hệ bất kỳ trên R, X và Y là 2 tập thuộc tính con.  Định nghĩa: Phụ thuộc hàm (FD) f: X  Y trên lược đồ quan hệ R nếu và chỉ nếu mỗi giá trị X trong r có quan hệ chính xác với 1 giá trị Y trong r. Nghĩa là bất kể khi nào 2 bộ của r có cùng giá trị X thì cũng có cùng giá trị Y. ∀t1, t2 ∈ r(R): t1[X] = t2[X] ⇒ t1[Y]= t2[Y] 2 X là vế trái, ký hiệu left(f) hay còn gọi là determinant 2 Y là vế phải, ký hiệu right(f) hay còn gọi là dependent 6
  7. Phụ thuộc hàm (Functional Dependency -FD)  Phụ thuộc hàm là 1 đặc điểm ngữ nghĩa của các thuộc tính, được xem là 1 ràng buộc giữa các thuộc tính.  Ví dụ: Một nhân viên chỉ có 1 mức lương nhưng nhiều nhân viên có thể có cùng 1 mức lương Emp_ID  Salary Salary  Emp_ID  Phụ thuộc hàm được xác định dựa vào quy tắc nghiệp vụ được xác định trên lược đồ quan hệ 7
  8. Phụ thuộc hàm (Functional Dependency -FD)  Từ quy tăc bao toan thực thể  nếu X là 1 candidate key thì ́ ̉ ̀ tất cả các thuộc tính Y của lược đồ R sẽ phải phụ thuộc hàm vào X  Ví dụ: trong lược đồ PROFESSOR có ProfId là primary key nên: ProfId  Name, Qualification  Có 1 số FD trong lược đồ sẽ gây ra dư thừa dữ liệu. 8
  9. Phụ thuộc hàm (Functional Dependency -FD) Ví dụ FD và dư thừa dữ liệu  Xét lược đồ PERSON(SSN, Name, Address,Hobby) với quy tắc là 1 người có thể có nhiều sở thích (hobby)  SSN,Hobby  SSN, Name, Address,Hobby  Bất thường xảy ra khi một người có nhiều sở thích thay đổi địa chỉ 9
  10. Phụ thuộc hàm (Functional Dependency -FD)  Ví dụ : Cho quan hệ phancong sau : Phancong (Phicong, maybay, ngaykh, giokh) Tùng 83 9/8 10:15a Tùng 116 10/8 1:25p Minh 281 8/8 5:50a Minh 301 12/8 6:35p Minh 83 13/8 10:15a Nghia 83 11/8 10:15a Nghia 116 12/8 1:25p
  11. Phụ thuộc hàm (Functional Dependency -FD)  Quan hệ Phancong diễn tả phi công nào PC MB NKH GKH lái máy bay nào và máy bay khởi hành vào thời gian nào. Quan hệ trên phải tuân theo Tùng 83 9/8 10:15a các điều kiện ràng buộc sau :  Mỗi máy bay có một giờ Tùng 116 10/8 1:25p khởi hành duy nhất. Minh 281 8/8 5:50a  Nếu biết phi công, biết ngày Minh 301 12/8 6:35p giờ khởi hành thì biết được máy bay do phi công lái. Minh 83 13/8 10:15a  Nếu biết máy bay, biết ngày Nghia 83 11/8 10:15a giờ khởi hành thì biết phi Nghia 116 12/8 1:25p công lái chuyến máy bay ấy.
  12. Phụ thuộc hàm (Functional Dependency -FD)  Các ràng buộc này là các ví dụ về phụ thuộc hàm và được phát biểu lại như sau : PC MB NKH GKH  MAYBAY xác định GIOKH.  {PHICONG, NGAYKH, GIOKH} xác định Tùng 83 9/8 10:15a MAYBAY.  {MAYBAY, NGAYKH} xác định PHICONG Tùng 116 10/8 1:25p hay Minh 281 8/8 5:50a  GIOKH phụ thuộc hàm vào MAYBAY.  MABAY phụ thuộc hàm vào {PHICONG, Minh 301 12/8 6:35p NGAYKH, GIOKH} .  PHICONG phụ thuộc hàm vào {MAYBAY, NGAYKH}. Minh 83 13/8 10:15a Và được ký hiệu như sau : Nghia 83 11/8 10:15a  {MAYBAY} → GIOKH  {PHICONG, NGAYKH, GIOKH) → MAYBAY Nghia 116 12/8 1:25p  {MAYBAY, NGAYKH} → PHICONG
  13. Phụ thuộc hàm (Functional Dependency -FD) Ví dụ  Với quan hệ này, cho biết có các phụ thuộc hàm sau không? A B C 1. A→B 1 5 3 Không vì t1 [A] = t4 [A], but t1 2 6 4 [B] ≠ t4 [B]. 3 7 4 1. A→C 1 4 3 Có vì t1 [A] = t4 [A], and t1 [C] = t4 [C]. 1. AB → C
  14. Phụ thuộc hàm (Functional Dependency -FD) R  A  B  C  D  E  F  A B C D E F   a1  b1  c1  d1  e1  f1  a1 b1 c1 d1 e1 f1   a1  b1  c2  d1  e2  f3    a2  b1  c2  d3  e2  f3  a1 b1 c2 d1 e2 f3   a3  b2  c3  d4  e3  f2  a2 b1 c2 d3 e2 f3   a2  b1  c3  d3  e4  f4  a2 b1 c3 d3 e4 f4   a4  b1  c1  d5  e1  f1  a3 b2 c3 d4 e3 F2   a4 b1 c1 d5 e1 f1  Các phụ thuộc hàm của quan hệ R là: A → B A → D B,C → E,F  Các bộ của quan hệ r(R) có vi phạm các FD này không? 14
  15. Giải thuật kiểm tra phụ thuộc hàm  Thuật toán Satifies : Cho quan hệ r và X, Y là hai tập con của Q+. Thuật toán Satifies sẽ trả về giá trị True nếu X → Y ngược lại là False  Bài toán: cho quan hệ r và 1 phụ thuộc hàm f:X Y. Kiểm tra xem r thỏa mãn f hay không?  Function Satisfies(r,f:X Y)  Sắp thứ tự các bộ trong r theo các thuộc tính của X  If mỗi tập các bộ có cùng giá trị X thì có cùng giá trị Y then  Satisfies = true  Else  Satisfies = false 15
  16. Thuật toán Satifies Phancong (Phicong, maybay, ngaykh, giokh) Tùng 83 9/8 10:15a Minh 83 13/8 10:15a Nghia 83 11/8 10:15a Nghia 116 12/8 1:25p Tùng 116 10/8 1:25p MAYBAY →GIOKH Minh 281 8/8 5:50a Cho kết quả là True Nghia 281 98 5:50a Minh 281 13/8 5:50a Minh 301 12/8 6:35p
  17. Thuật toán Satifies SATIFIES (Phicong, maybay, ngaykh, giokh) Tùng 83 9/8 10:15a Minh 83 13/8 10:15a MAYBAY →GIOKH cho kết quả Nghia 83 11/8 10:15a là False Nghia 116 12/8 1:25p Tùng 116 10/8 1:25p Minh 281 8/8 5:50a Nghia 281 98 5:50a Minh 281 13/8 1:50a Minh 301 12/8 6:35p
  18. Bài tập 1: Cách nhận biết một phụ thuộc hàm thỏa trên 1 thể hịên của quan hệ Q ? Thuật toán Satifies Phụ thuộc hàm nào sau đây thỏa r (A, B, C, D, E )? A →D , AB→D , AB →B, AB E a1 b1 c1 d1 e1 a1 b1 c2 d1 d1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1
  19. Bài tập 2: Tìm phụ thuộc hàm thỏa trên 1 thể hịên của quan hệ R ? Thuật toán Satifies R  A  B  C  D  E  F  A B C D E F   a1  b1  c1  d1  e1  f1  a1 b1 c1 d1 e1 f1   a1  b1  c2  d1  e2  f3  a1 b1 c2 d1 e2 f3   a2  b1  c2  d3  e2  f3    a3  b2  c3  d4  e3  f2  a2 b1 c2 d3 e2 f3   a2  b1  c3  d3  e4  f4  a2 b1 c3 d3 e4 f4   a4  b1  c1  d5  e1  f1  a3 b2 c3 d4 e3 f2   a4 b1 c1 d5 e1 f1  Các phụ thuộc hàm của quan hệ R là:  A→B  A→D  B,C → E,F  Các bộ của quan hệ r(R) có vi phạm các FD này không? 19
  20. Thuật toán Satifies Phụ thuộc hàm nào sau đây thỏa r’ A →D , AB→D a1 b1 c1 d1 e1 a1 b2 c2 d2 d1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a1 b1 c1 d1 e1 a3 b2 c5 d1 e1 a2 b2 c2 d2 e2 a3 b1 c1 d1 e1 Phụ thuộc hàm nào sau đây thỏa q a4 b2 c2 d2 e2 BC→E , DE→C , A → BCDE a5 b1 c1 d3 e1

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản