Bao đóng của tập thuộc tính

Một phần của tài liệu nghiên cứu các phụ thuộc hàm theo thời gian, thông qua hai quan điểm của wang và wijsen (Trang 43 - 45)

- Nếu F├f X →tY thì t là cận dưới lớn nhất (glb) của một số các kiểu thờ

i Y Áp dụng T4, ta có: F├ X →tY Định lý được chứng mnh □

2.3.5. Bao đóng của tập thuộc tính

Cho F là tập các TFD. Để tìm tất cả các TFD được suy ra từ F ta phải tiến hành tìm F+. Với việc làm này thường phải mất rất nhiều thời gian vì thực tế cho thấy rằng tập F+ lớn hơn rất nhiều so với F.

Trên thực tế, chúng ta cũng khơng cần thiết phải tính tất cả các TFD được suy ra từ F mà chỉ cần biết một TFD X →tY nào đó có được suy ra từ F hay

không?

Định nghĩa 2.22. (Bao đóng của các thuộc tính)

Cho F là tập hữu hạn các TFD và X là tập hữu hạn các thuộc tính. Khi đó, bao đóng của X đối với F, ký hiệu là X+, được xác định như sau:

X+ = {(B, t) | X →tB ∈ F+ và X →t’B ∈ F+: t ≺ t’}

Nhận xét: Do F là hữu hạn nên X+ là hữu hạn.

Mệnh đề 2.1.

Cho F là tập hữu hạn các TFD, X là tập hữu hạn các thuộc tính. Khi đó, F╞ X →tB nếu và chỉ nếu:

∃{(B, t1), ..., (B, tm)} ⊆ X+ sao cho t ≼C{t1, ..., tm}

Theo mệnh đề 2.1, ta có thể kiểm tra được TFD X →tB có được suy ra từ F hay khơng. Điều này có thể thực hiện dễ dàng bằng cách kiểm tra xem (B, t) có

thuộc X+

F hay khơng, mà việc tính X+

F lại khơng phức tạp lắm, có thể được thực hiện bởi thuật tốn sau:

Thuật tốn 2.1. (Tính bao đóng của các thuộc tính)

Vào: + Tập hữu hạn các thuộc tính U.

+ Tập phụ thuộc hàm theo thời gian F. + X ⊆ U.

Ra: X+

F

Phương pháp:

+ Bước 1. X(0) = {(A, tTop) | A ∈ X}

+ Bước 2. Lần lượt tính X(i+1) dựa vào X(i) như sau:

Với mỗi TFD A1 ... Ak →t B1 ... Bm ∈ F sao cho {(A1, t1), ..., (Ak, tk)} ⊆ X(i) ta tính tập {(Bj, t’) | j = 1,m; t’ = glb(t1, ..., tk, t )}.

Cho f1, ..., fr là tất cả các TFD trong F thoả điều kiện trên và các tập Y1, ..., Yr là các tập ta tính được tương ứng, khi đó:

X(i+1) = X(i) ∪ Y1 ∪ ... ∪ Yr Bước 2 được lặp lại cho đến khi X(i+1) = X(i)

Kết quả: X+

F = X(i) \ {(B, t’) ∈ X(i) | ∃t’’ (B, t’’) ∈ X(i) với t’ ≺ t’’}

Nhận xét: Vì X = X(0) ⊆ X(1) ⊆ ... ⊆ U và do U là hữu hạn nên thuật toán 2.1 sẽ được dừng lại sau hữu hạn bước thực hiện.

Ví dụ 2.20. Cho M = (R, Ngày, φ) với R = (A, B, C)

F = {A →Ngày B, B →Ngày C, B →ThángC, B →Tháng A}

1. Với X = AB. Tính X+

F ?

X(0) = {(A, tTop), (B, tTop)}

X(1) = X(0) ∪ (B, Ngày) ∪ (C, Ngày) ∪ (C, Tháng) ∪ (A, Tháng)

= {(A, tTop); (B, tTop); (B, Ngày); (C, Ngày); (C, Tháng); (A, Tháng)} X(2) = X(1)∪ (A, Ngày) = {(A, tTop); (B, tTop); (B, Ngày); (C, Ngày);

(C, Tháng); (A, Tháng); (A, Ngày)} X(3) = X(2)

Vậy, X+

F = {(A, tTop); (B, tTop); (C, Tháng)}

Một phần của tài liệu nghiên cứu các phụ thuộc hàm theo thời gian, thông qua hai quan điểm của wang và wijsen (Trang 43 - 45)