5. Các chuẩn khác

Chuẩn BCNF (Boyce-Codd Normal Form)

BCNF là phiên bản mạnh hơn một chút của dạng chuẩn 3 (3NF). BCNF được phát triển vào năm 1975 bởi Raymond F. Boyce và Edgar F. Codd để giải quyết một số loại dị thường không được xử lý bởi 3NF như được định nghĩa ban đầu.

Một quan hệ đạt chuẩn BCNF nếu mọi phụ thuộc hàm A -> B thì A luôn là một khóa ứng viên.

Để hiểu về chuẩn BCNF, xét bảng (quan hệ) SINH VIÊN sau:

Mã sinh viênMôn họcGiảng viên
10001Kế toánAn
10001ToánBình
10022ToánĐông
10333Kinh tế họcKhang
10333Quản trị họcHạnh
14444Kế toánAn

Một số quy định nghiệp vụ được áp dụng:

  • Mỗi sinh viên có thể đăng ký học một hay nhiều môn học
  • Mỗi giảng viên chỉ đảm nhiệm một môn học
  • Mỗi môn học có thể được dạy bởi một hay nhiều giảng viên

Như vậy, Mã sinh viên không thể là khóa ứng viên vì giá trị của nó không duy nhất nhưng nếu kết hợp Mã sinh viên và Môn học hay kết hợp Mã sinh viên và Giảng viên có thể tạo thành các khóa ứng viên cho quan hệ SINH VIÊN. Mặc khác, theo quy định 2 ở trên, tồn tại một phụ thuộc hàm giữa giảng viên và môn học. Tóm lại, chúng ta có 3 phụ thuộc hàm sau:

  • Mã sinh viên, Môn học -> Giảng viên
  • Mã sinh viên, Giảng viên -> Môn học
  • Giảng viên -> Môn học

Quan hệ SINH VIÊN là 3NF nhưng tồn tại phụ thuộc hàm Giảng viên->Môn học với thuộc tính Giảng viên không phải là khóa ứng viên và điều này vi phạm chuẩn BCNF. Giải quyết vi phạm trên bằng cách tách thành hai bảng (quan hệ) như sau

SINH VIÊN

Mã sinh viênMôn học
10001Kế toán
10001Toán
10022Toán
10333Kinh tế học
10333Quản trị học
14444Kế toán

GIẢNG VIÊN

Môn họcGiảng viên
Kế toánAn
ToánBình
ToánĐông
Kinh tế họcKhang
Quản trị họcHạnh
Kế toánAn

Lúc này các quan hệ SINH VIÊN và GIẢNG VIÊN đạt chuẩn BCNF.

Dựa trên ví dụ trên, thử kiểm tra các quan hệ (bảng) từ hóa đơn có đáp ứng chuẩn BCNF hay không.

Các chuẩn cao hơn như 4NF, 5NF sẽ không đề cập trong tài liệu này.