1 / 87

Chương 8

Chương 8. PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN. Nội dung chi tiết. Chất lượng của một lược đồ csdl quan hệ Phụ thuộc hàm Các dạng chuẩn. Chất lượng của một lược đồ csdl quan hệ. Ngữ nghĩa của các quan hệ Thể hiện sự dư thừa thông tin Những khó khăn(Anomalies) trong vấn đề: Thêm Xóa

lev
Download Presentation

Chương 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 8 PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN

  2. Nội dung chi tiết • Chất lượng của một lược đồ csdl quan hệ • Phụ thuộc hàm • Các dạng chuẩn

  3. Chất lượng của một lược đồ csdl quan hệ • Ngữ nghĩa của các quan hệ • Thể hiện sự dư thừa thông tin • Những khó khăn(Anomalies) trong vấn đề: • Thêm • Xóa • Cập nhật • Thể hiện giá trị NULL trong các bộ

  4. Chất lượng của một lược đồ csdl quan hệ • Thiết kế một lược đồ quan hệ tốt và xấu? • Đánh giá(không theo chuẩn) một lược đồ quan hệ dựa trên tiêu chí: • Ngữ nghĩa của các thuộc tính. • Giảm giá trị trùng lắp trong các bộ. • Giảm giá trị Null trong các bộ. • Không cho phép các bộ dữ liệu sai(không xác định) • Định nghĩa các dạng chuẩn được xem là cách đánh giá(theo chuẩn) • Được giới hạn trên chuẩn của lược đồ quan hệ

  5. Ngữ nghĩa của thuộc tính • Làm thế nào để hiểu được giá trị thuộc tính được lưu trữ trong một bộ? • Thiết kế một lược đồ để dễ dàng giải thích nghĩa của nó. • Giữ cho các thuộc tính trên quan hệ hoặc thực thể không được trùng lắp.

  6. Sự trùng lắp dữ liệu • Khi một phần của dữ liệu có thể suy ra từ một số phần dữ liệu khác thì ta nói có sự trùng lắp dữ liệu.

  7. Khó khăn trong việc thiết kế dữ liệu quan hệ • Thiết kế dữ liệu quan hệ đòi hỏi chúng ta hướng tới việc thu thập một tập các lược đồ quan hệ tốt. • Việc thế kế “tồi” có nguy cơ dẫn tới việc trùng lắp thông tin. Lending-schema Lending-schema là một sự thiết kế tốt hay tồi ?

  8. Khó khăn trong việc thiết kế dữ liệu quan hệ • Tại sao Lending-Schema là một sự thiết kế tồi? • Sự trùng lắp dữ liệu: branch-name, branch-city,assets • Tốn không gian • Cập nhật dữ liệu phức tạp • Làm thế nào để chuyển đổi lược đồ Lending thành một một lược đồ tốt: • Phân rã lược đồ

  9. Sự phân rã lược đồ • Sự phân rã là chia quan hệ gốc thành một vài quan hệ nhỏ hơn. Mục đích của sự phân rã này là làm giảm sự trùng lắp thông tin. • Hai đặc tính quan trọng cần phải duy trì trong suốt quá trình phân rã: • Sự bảo toàn thông tin: có thể tìm được bất kỳ thể hiện nào của quan hệ gốc từ các quan hệ được phân rã. • Bảo toàn phụ thuộc: các ràng buộc trên quan hệ gốc phải được đảm bảo còn giữ trên các quan hệ được phân rã.

  10. Sự phân rã • Phân rã Lending-schema thành 2 lược đồ: • Branch-schema = (branch-name, branch-city,assets) • Loan-info-schema = (customer-name, loan-number,branch-name, amount) • Luật bảo toàn: tất cả các thuộc tính trong lược đồ gốc phải được tìm thấy trong các lược đồ phân rã.

  11. Cập nhật khó khăn • Thêm: phải thêm chính xác dữ liệu, nếu không sẽ dẫn đến sự mâu thuẩn với các dữ liệu đã nhập. • Xóa: có khả năng sẽ làm mất thông tin. • Sửa: phải sửa luôn các giá trị của các bộ liên quan.

  12. Bỏ sót cập nhật Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên Xóa luôn phim Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Esteves Wayne’s World 1992 95 color Paramount Dana Carvey Wayne’s World 1992 95 color Paramount Mike Meyers Ví dụ • Xét quan hệ Phim Thêm chính xác Giải pháp: các thao tác thêm, xóa, sửa phức tạp cần được nghiêm cấm

  13. Giá trị Null trong các bộ • Có thể có các thuộc tính không áp dụng cho các bộ của quan hệ. Vì thế: • Nhiều giá trị Null được lưu trong nhiều bộ. • Tốn nhiều không gian lưu trữ. • Không chắc chắn cho ra kết quả mong muốn khi sử dụng chúng trong hàm Sum, Count • Giá trị NULL có thể xảy ra ở các trường hợp: • Thuộc tính không được áp dụng. • Giá trị tại thuộc tính chưa xác định. • Giá trị xác định, nhưng chưa nhập. ►Giải pháp: Tránh đặt các thuộc tính mà có giá trị NULL ở một quan hệ cơ sở.

  14. Phụ thuộc hàm(PTH) • PTH (Functional dependencies) là một loại RBTV rất quan trọng để phát hiện các thiết kế CSDL tốt. • Có thể biểu diễn RBTV bằng PTH • PTH biểu diễn mối liên hệ giữa các thuộc tính trong cùng một quan hệ. • Định nghĩa: Nếu A, B là hai thuộc tính của R, B phụ thuộc hàm trên A(ký hiệu A→B), nếu mỗi giá trị tại A trong R xác định duy nhất một giá trị của B trong R.

  15. Ví dụ

  16. Đặc trưng của PTH • PTH có hiệu lực về ngữ nghĩa(về nghĩa) của các thuộc tính trong một quan hệ. • Biểu diễn bằng đồ thị: • Yếu tố quyết định cho một pth liên quan đến một thuộc tính hoặc một tập các thuộc tính ở bên trái mũi tên.

  17. Ví dụ • Tìm tổng số PTH có thể là bao nhiêu?

  18. 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ệ. • Dựa vào dữ liệu trên Staff: • staffNo → sName • sName → staffNo • Tuy nhiên, chỉ có pth: • staffNo → sName

  19. Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Esteves Wayne’s World 1992 95 color Paramount Dana Carvey Wayne’s World 1992 95 color Paramount Mike Meyers Ví dụ • Xét lược đồ quan hệ • Và thể hiện Phim(Tênphim, Nămsx, Thờilượng, Loạiphim, Xưởngsx, Diễnviên)

  20. Ví dụ (tt) • Tìm được nhiều PTH Tênphim Nămsx  Thờilượng Tênphim Nămsx  Loại Tênphim Nămsx  Xưởngsx Tênphim Nămsx  Diễnviên Không là phụ thuộc hàm

  21. Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Esteves Wayne’s World 1992 95 color Paramount Dana Carvey Wayne’s World 1992 95 color Paramount Mike Meyers Chú ý • Xét thể hiện r1 Tênphim  Loại

  22. Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill Star Wars 1977 124 color Fox Harrison Ford Mighty Ducks 1991 104 color Disney Emilio Esteves Kingkong 1993 120 color Paramount Fay Wray Kingkong 1993 120 Black/white Paramount Robert Amstrong PTH phải được định nghĩa trên lược đồ quan hệ Thỏa với mọi thể hiện của quan hệ Chú ý (tt) • Xét thể hiện r2 Tênphim  Loại

  23.  Y X, X Y  W Nếu X  Y và Z Thì X, W  Y, Z Nếu X  Y và Y  Z Thì X  Z Luật dẫn Armstrong • Luật phản hồi • Luật cộng • Luật bắc cầu (FD1) (FD2) (FD3)

  24. Nếu X  Y và Y, W  Z Thì X, W  Z Nếu X  Y và X  Z Thì X  Y, Z  Nếu X  Y và Z Y Thì X  Z Luật dẫn khác • Luật bắc cầu giả • Luật hội • Luật phân rã (FD4) (FD5) (FD6)

  25. Hệ quả từ tập PTH • Cho F là tập các PTH định nghĩa trên R • Nếu có 1 PTH f khác cũng được thỏa với mọi thể hiện của R • Thì ta gọi f là hệ quả của F

  26. Ví dụ • Xét lược đồ R(A, B, C, G, H, I) • Và PTH F định nghĩa trên R • f6 là phụ thuộc hàm hệ quả từ F F = { f1: A  B f2: A  C f3: CG  H f4: CG  I f5: B  H } f6: A  H

  27. Bao đóng của PTH(Closure of a Set of Functional Dependencies) • Cho F là tập các PTH định nghĩa trên R • Tập hợp các PTH hệ quả từ F được gọi là bao đóng của F • Ký hiệu F+ F  F+

  28. Tìm bao đóng của F • Từ tập F ban đầu ta sử dụng định nghĩa hình thức của PTH để tìm bao đóng F+ • Nếu F quá lớn, tìm F+ sẽ khó khăn và tốn thời gian

  29. Suy dẫn từ tập PTH • Cho trước một tập PTH trên 1 quan hệ • Có thể suy luận “quan hệ phải thỏa một tập PTH khác nào đó” • Khả năng suy dẫn nhằm khám phá thêm tập PTH là rất cần thiết để thiết kế các lược đồ quan hệ đạt chất lượng tốt

  30. Ví dụ • Xét lược đồ R(A,B,C) thỏa tập PTH • Ta có thể suy diễn R còn thỏa PTH F = { f1: A  B f2: B  C } f3: A  C

  31. Bao đóng của F (tt) • Cho F là tập các PTH định nghĩa trên R • Gọi f là một PTH được suy dẫn từ F • Áp dụng luật dẫn cho các PTH trong F để có được f • Tập hợp các PTH suy dẫn từ F ký hiệu F’ • Ta muốn F’ = F+

  32. Tìm bao đóng của F (tt) • Từ tập F ban đầu ta sử dụng các luật dẫn để tìm bao đóng F+ • Áp dụng luật dẫn vào F cho đến khi không không thể áp dụng được nữa Tập F+ rất lớn

  33. Thuật toán tính F+ • Để tính F+ dựa trên F ta làm như sau: Bước 1: F+ = F Bước 2: Repeat - Với mỗi pth f trong F+: Áp dụng tính phản xạ và tính tăng trưởng trên f và thêm các pth kết quả vào F+- Với mỗi cặp pthf1ivà f2 trong F+Nếuf1 và f2 có thể kết nối lại bằng cách sử dụng luật bắt cầu thì thêm pth kết quả vào F+ Until F+ không thể thay đổi được nữa

  34. Ví dụ • Xét lược đồ R(A, B, C, G, H, I) • Và PTH F định nghĩa trên R • Tìm được nhiều PTH trong F+ F = { f1: A  B f2: A  C f3: CG  H f4: CG  I f5: B  H }

  35. Ví dụ • A  B, B  H : A  H • CG  H, CG  I: CG  HI • A  C, CG  I : AG  I

  36. Nhận xét • Bài toán thực tế • Cho một PTH f: X  Y • Xác định f có thuộc bao đóng F+ hay không • Giải quyết • Tìm bao đóng F+ • Kiểm tra f có nằm trong F+ không • Tìm bao đóng F+ có hiệu quả ???

  37. Nhận xét (tt) • Chuyển sang bài toán thành viên • Ta chỉ cần tìm bao đóng của tập thuộc tính X dựa trên F • Kiểm tra Y có thuộc bao đóng của X hay không

  38. X+F  { Y | X  Y được suy dẫn từ F } Là tập hợp những VP của các PTH có VT là X nằm trong F X  X+F X  R+ Bao đóng của tập thuộc tính X • Ký hiệu X+F • Định nghĩa • Ta thấy X+F dùng để xem f có được suy dẫn từ F hay không?

  39. Tìm bao đóng của X B1. X+F X Tìm các PTH trong F có VT là các thuộc tính nằm trong X+Fcó VP không nằm trong X+F B2. Lặp { Nếu (có f : U  V thuộc F) và (U  X+F) Thì X+F = X+F  V } cho đến khi (X+F = R+) hoặc (không còn thay đổi được nữa)

  40. Ví dụ • R(A, B, C, D, E, F) • F = { ABC, BCAD, DE, CFB } • Tìm AB+F • AB+F = AB • ABC: ABC • BCAD: ABCD • DE: ABCDE • Ngừng AB+F = {A, B, C, D, E}

  41. Ví dụ (tt) • R(A, B, C, D, E, F) • F = { ABC, BCAD, DE, CFB } • Kiểm tra PTH ABD có suy dẫn từ F không? • AB+F = {A, B, C, D, E} • Có D trong bao đóng • Kết luận ABD suy dẫn từ F

  42. Ví dụ (tt) • R(A, B, C, D, E, F) • F = { ABC, BCAD, DE, CFB } • Kiểm tra PTH DA có suy dẫn từ F không? • D+F = {D, E} • Không có A trong bao đóng • Kết luận DA không suy dẫn từ F

  43. Mọi thể hiện của quan hệ thỏa F1 Mọi thể hiện của quan hệ thỏa F2  Một số tính chất (tt) • Tương đương • Hai tập PTH F1 và F2 gọi là tương đương • Bổ đề F1  F2  F1+  F2+ F1  F2  F1 là hệ quả của F2 và F2 là hệ quả của F1

  44. Ví dụ • R(A, B, C, D, E) • F1 = { ABC, AD, CDE } • F2 = { ABCE, AABD, CDE } • F1  F2 ? • Chứng minh • F1 là hệ quả của F2  F1 được suy dẫn từ F2 • F2 là hệ quả của F1  F2 được suy dẫn từ F1

  45. Ví dụ (tt) • {ABCE, AABD, CDE }  {ABC, AD, CDE } • Ta thấy F1  F2, hiển nhiên F1 là hệ quả của F2 • {ABC, AD, CDE }  {ABCE, AABD, CDE } • Xét F2 có AE, tìm xem F1 có AE ?

  46. Ví dụ • R(A, B, C, D, E) • F1 = { ABC, AD, CDE } • F2 = { ABCDE } • F1  F2 ? • Chứng minh • F1 là hệ quả của F2  F1 được suy dẫn từ F2 • F2 là hệ quả của F1  F2 được suy dẫn từ F1

  47. Ví dụ • {ABCDE}  {ABC, AD, CDE} • Xét CDE không thuộc trong F2 • F1 không được suy dẫn từ F2 • F1 không là hệ quả của F2 • {ABC, AD, CDE}  {ABCDE} • Xét F2 có AE

  48. G là phủ nếu G  F tương đương Phủ • Cho F là tập các PTH định nghĩa trên R • Xét một tập PTH G định nghĩa trên R

  49. Một số khái niệm (tt) • PTH đầy đủ Xét X  Y Nếu X’  X sao cho F  F – {XY}  {X’Y} Thì Y phụ thuộc đầy đủ vào X Y phụ thuộc hàm vào X và không phụ thuộc hàm vào tập con nào của X

  50. Ví dụ • R(A, B, C, D, E, I) • F = { ABCD, BCDE, CDEI } • BCDE là phụ thuộc hàm đầy đủ không?

More Related