Bao đóng tập thuộc tính là một trong những khái niệm cơ bản của phụ thuộc hàm. Phần này sẽ trình bày khái niệm về bao đóng tập thuộc tính cùng một số tính chất quan trọng. Thuật toán xác định bao đóng tập thuộc tính cũng được trình bày lại ở đây.
Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X trong U.
Bao đóngtập thuộc tính X, ký hiệu X+ là tập thuộc tính,
X+= {AU | XA F+}
Việc xác định bao đóng tập thuộc tính giữ vai trò quan trọng khi tính toán, tìm kiếm các đối tượng khóa, phản khóa và xác định dạng chuẩn trong LĐQH. Chúng ta xét một số tính chất cơ bản của bao đóng sau đây,
Cho LĐQH a = (U, F). Khi đó X,YU, ta có (i) Tính phản xạ:XX+
(ii) Tính đồng biến: XY X+ Y+
(iii) Tính lũy đẳng: (X+)+ = X+
Từ ba tính chất trên của bao đóng, ta có thể suy ra thêm các tính chất sau, (iv) (XY)+X +Y +
(v) (X+Y)+ = (XY+)+= ( XY)+ (vi) XY khi và chỉ khi Y+X+
(vii) XX+ và X+X
(viii) X+ = Y+ khi và chỉ khi XY và YX
Thuật toán Closure trong [35] trình bày cách xác định bao đóng của tập thuộc tínhX đối với tập phụ thuộc hàm F trên U như sau,
24
Thuật toán 1.1
AlgorithmClosure
Format:Closure(X, F)
Input: - Tập PTH F trên U
- Tập con thuộc tính X của U
Output: - Y = X+ = {AU|XAF+} Begin Y := X; repeat Z:= Y; for each FD L R in Fdo ifLYthen Y:= Y R; Endif; Endfor; untilY=Z; returnY; EndClosure.
Thuật toán Closure trên có độ phức tạp tính toán cỡ O(mn2), trong đó n là số lượng thuộc tính trong U,m là số lượng PTH trong F.