Boyce-Codd (BCNF). Ta gọi đó là dạng chuẩn Boyce-Codd có yếu tố thời gian (Temporal BCNF hay TBCNF). Dạng chuẩn TBCNF vẫn có đƣợc những đặc trƣng của BCNF. Nghĩa là TBCNF không cho phép bất kỳ dƣ thừa nào đƣợc đƣa vào bởi các TFDs. Phần tiếp theo sẽ trình bày một thuật toán tách TBCNF không mất thông tin với bất kỳ lƣợc đồ module thời gian cho trƣớc nào.
Trƣớc khi trình bày về TBCNF, ta phải định nghĩa một khái niệm khóa.
Định nghĩa: (Siêu khóa thời gian)[6]
Cho (R, ) là một lƣợc đồ module thời gian và F là tập các TFDs chỉ bao gồm các thuộc tính thuộc R. Một tập các thuộc tính X R đƣợc gọi là một siêu khóa thời gian của (R, ) nếu X→BBR là đƣợc suy dẫn logic bởi các TFDs thuộc F.
Nếu M là một module thời gian trên (R, ) và X là một siêu khóa của (R, ) thì với bất kỳ tB1B và tB2B là hai bộ với tB1B[X] = tB2B[X] đối với cùng một thời khắc thuộc thì tB1B = tB2B.
Một siêu khóa thời gian X của (R, ) đƣợc gọi là một khóa dự tuyển thời gian
(temporal candidate key) nếu với mỗi A thuộc X, X – {A} không phải là một siêu khóa thời gian của (R, ). Bây giờ ta sẽ phát biểu định nghĩa về TBCNF.
Định nghĩa(Temporal BCNF): [6]
Một lƣợc đồ module thời gian (R, ), với một tập F các TFDs, đƣợc gọi là ở dạng TBCNF nếu với mỗi TFD X→BBY mà đƣợc suy dẫn logíc bởi F, trong đó:
(a)XYR
(b)Y ⊈ X và
(c)ít nhất một thời khắc của đƣợc phủ bởi một thời khắc nào đó của , các điều kiện sau đây là đúng:
(i) X→BBR đƣợc suy dẫn từ F; nghĩa là: X là một siêu khóa của (R, ), và
(ii) Với mọi thời khắc không rỗng iB1B và iB2 Bcủa, với iB1B ≠ iB2 B,
) ( ) , (1 2 F Y X i i
Mặc dù điều kiện thứ nhất là tƣơng tự thời gian của định nghĩa truyền thống về BCNF, điều kiện thứ hai không cho phép dƣ thừa do các phụ thuộc hàm thời gian. Thực vậy, ta có sự dƣ thừa mỗi khi có tồn tại một TFD với kiểu thời gian là sao cho có hai thời khắc với kiểu thời gian của module là đƣợc phủ bởi cùng một thời khắc của . Trong trƣờng hợp này, nếu ta có hai bộ tách biệt trên hai thời khắc này, thì một trong chúng có thể có thông tin dƣ thừa. Do vậy hai điều kiện của TBCNF loại bỏ mọi khả năng dƣ thừa dữ liệu mà chúng có thể sinh ra bởi sự có mặt của các TFDs.
Ví dụ 6:U Lƣợc đồ module thời gian (KHOA_HOC, ngay) trong Ví dụ 1 là không phải ở dạng chuẩn TBCNF vì: chẳng hạn ta có F ⊨ #KHOA_HOC →BtuanB
GIANG_VIEN. Tuy nhiên, bốn lƣợc đồ kết quả của phép tách đƣợc minh họa trong Ví dụ 4 là ở dạng TBCNF.
2.5.1 Tách các lƣợc đồ module thời gian về dạng TBCNF: