Các tập phụ thuộc hàm tƣơng đƣơng

Một phần của tài liệu Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015) (Trang 116 - 117)

22. PHỦ CỦA TẬP PHỤTHUỘC HÀM

22.2. Các tập phụ thuộc hàm tƣơng đƣơng

Cho F và G là hai tập phụ thuộc hàm trên tập thuộc tính U, ta nói rằng tập phụ thuộc hàm F tƣơng đƣơng với tập phụ thuộc hàm G nếu và chỉ nếu F+=G+

Nếu F+

=G+ thì ta nói F là phủ của G và ngƣợc lại G là phủ của F

Thuật toán kiểm tra sự tƣơng đƣơng của hai tập phụ thuộc hàm

Với mỗi phụ thuộc hàm XY của F kiểm tra xem XY có thuộc vào G+ hay không? bằng cách tính X+G ( bao đóng của X trong tập G) và xem Y  X+

G hay không?

Nếu Y  X+

G thì XY G+, nếu mọi phụ thuộc hàm trng F đều thuộc G+ hay đƣợc suy dẫn từ G+ thì mọi phụ thuộc hàm trong F+ cũng suy dẫn đƣợc từ G. Do vậy F+  G+

Tƣơng tự, nếu mọi phụ thuộc hàm trong G đều thuộc F+ thì G+F+ Cuối cùng, nếu F+G+

và G+  F+

thì F+=G+ tức là F và G là tƣơng đƣơng. Thuật toán xác định F và G có tƣơng đƣơng không?

Bƣớc 1: Với mỗi phụ thuộc hàm X Y của F ta xác định xem X Y đƣợc suy dẫn từ G không?

Bƣớc 2: Với mỗi phụ thuộc hàm X Y của G ta xác định xem X Y đƣợc suy dẫn từ F không?

Nếu cả hai bƣớc trên đều đúng thì F G

Ví dụ: Cho lược đồ quan hệ có:

 R(f) R(F)

F={A → BC, A → D, CD → E}, G={A → BCE, A → ABD, CD → E} a. F có tƣơng đƣơng với G không?

b. F có tƣơng đƣơng với G+= {A → BCDE} không? Giải:

a) Ta có A+G= ABCDE trong G+ có A→BC và A→D ⇒F G+ ⇒ F+ ⊂G+(1) A+F =ABCDE ⇒ trong F+có A→BCE và A→ABD ⟹ F+ ⊇ G ⟹ F+ ⊇ G+(2) Từ (1) và (2) ⟹F+

= G+ ⟹ F G. b) Do (CD)+G=CD suy ra G‟+

không chứa phụ thuộc hàm CDE Suy ra F không tƣơng đƣơng với G‟

Một phần của tài liệu Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015) (Trang 116 - 117)