BCNF là phần mở rộng của Dạng chuẩn thứ ba (3NF) và mạnh hơn 3NF một chút.
Một quan hệ R nằm trong BCNF, nếu P -> Q là một phụ thuộc hàm nhỏ và P là một siêu khóa cho R.
Nếu một mối quan hệ nằm trong BCNF, điều đó có nghĩa là phần dư thừa dựa trên sự phụ thuộc vào hàm đã bị loại bỏ, nhưng một số phần dư thừa vẫn còn đó.
Hãy để chúng tôi xem một ví dụ -
Mặt đất | Begin_Time | End_Time | Gói |
G01 | 07:00 | 09:00 | Vàng |
G01 | 10:00 | 12:00 | Vàng |
G01 | 10:30 | 11:00 | Đồng |
G02 | 10:15 | 11:15 | Bạc |
G02 | 08:00 | 09:00 | Bạc |
Quan hệ trên là 1NF, 2NF, 3NF, nhưng không phải trong BCNF. Đây là lý do -
Sự phụ thuộc vào chức năng {Gói-> Mặt đất}
Nó có thuộc tính quyết định Gói mà Ground phụ thuộc vào, không phải là Khóa ứng cử viên cũng không phải là tập hợp lớn của khóa ứng viên.
Gói | Mặt đất |
Vàng | G01 |
Bạc | G02 |
Đồng | G01 |
Mặt đất | Begin_Time | End_Time |
G01 | 07:00 | 09:00 |
G01 | 10:00 | 12:00 |
G01 | 10:30 | 11:00 |
G02 | 10:15 | 11:15 |
G02 | 08:00 | 09:00 |
Bây giờ các bảng trên ở trong BCNF.
Khóa ứng viên cho
Khóa ứng viên cho
Sự bất thường đã được loại bỏ vì chúng tôi đã sử dụng Gói làm khóa trong