Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Boyce-Codd Normal Form (BCNF) là gì? Chuẩn hóa cơ sở dữ liệu

Mục tiêu của BCNF

Boyce-Codd Normal Form (BCNF) nhằm tăng tính toàn vẹn dữ liệu bằng cách tổ chức cột và bảng trong cơ sở dữ liệu quan hệ (RDBMS) để đạt chuẩn hóa database. Chuẩn hóa xảy ra khi:

  • Các bảng có mối quan hệ rõ ràng.
  • Bảng tuân theo quy tắc định nghĩa giúp DB linh hoạt, bảo toàn dữ liệu.

Mục tiêu cốt lõi: Loại bỏ dữ liệu dư thừa và đảm bảo phụ thuộc dữ liệu hợp lý. DB được chuẩn hóa khi: cùng một dữ liệu không lưu ở 2 bảng, và mỗi bảng chỉ chứa dữ liệu liên quan.

Nguồn gốc BCNF

Quá trình chuẩn hóa tuân theo các dạng chuẩn (normal forms) số 1 đến 5. DB gọi là "chuẩn hóa" nếu đạt 1NF, 2NF, 3NF.

BCNF (còn gọi 3.5NF) được đề xuất năm 1974 bởi Raymond Boyce và Edgar Codd – mở rộng từ 3NF. Họ muốn thiết kế schema DB giảm thiểu dư thừa, giảm thời gian tính toán.

  • 3NF: Loại bỏ cột không phụ thuộc vào khóa chính + đạt 1NF, 2NF.
  • BCNF: Đạt mọi yêu cầu 3NF + yêu cầu mọi khóa ứng viên (candidate key) không phụ thuộc vào thuộc tính khác trong bảng.

Codd là cha đẻ mô hình quan hệ (relational model) – đơn giản hóa cấu trúc DB, truy vấn mạnh mẽ hơn. Ông định nghĩa 1NF, 2NF, 3NF. Boyce là nhà phát triển chính SEQUEL (sau thành SQL). Hai người hợp tác định nghĩa BCNF.

Khóa ứng viên (Candidate Keys) và BCNF

Khóa ứng viên: Cột hoặc nhóm cột xác định duy nhất một bản ghi trong bảng, không tham chiếu dữ liệu khác. Một bảng có thể có nhiều khóa ứng viên, nhưng chỉ có 1 khóa chính (primary key). Khóa ứng viên phải duy nhất.

Điều kiện BCNF: Mọi determinant (thuộc tính quyết định) đều phải là khóa ứng viên.

Ví dụ minh họa

Bảng Employees với các thuộc tính: Employee_Id, First_name, Last_name, Title.

Employee_IdFirst_nameLast_nameTitle
13133EmilySmithManager
13134JimSmithAssociate
13135EmilyJonesAssociate
  • Employee_Id quyết định First_name, Last_name.
  • Cặp (First_name, Last_name) quyết định Employee_Id (giả sử tên + họ duy nhất).

Khóa ứng viên: Employee_Id VÀ (First_name, Last_name) – cả hai đều xác định duy nhất bản ghi. Không thuộc tính nào khác quyết định chúng. Do đó bảng này đạt BCNF.

Câu hỏi thường gặp (FAQ)

Yêu cầu của BCNF là gì?

Bảng đạt BCNF khi: (1) Đã ở 3NF (đạt 1NF, 2NF, mọi cột phụ thuộc vào khóa chính), VÀ (2) Mọi determinant đều là khóa ứng viên.

Khác biệt giữa 4NF và BCNF?

4NF là cấp độ sau BCNF. Cả hai đều đạt 3NF. Khác biệt: 4NF không có phụ thuộc đa trị (multivalued dependencies) / quan hệ nhiều-một, trong khi BCNF có thể vẫn còn phụ thuộc đa trị.

Tóm tắt

BCNF là dạng chuẩn nâng cao (3.5NF) loại bỏ dư thừa do phụ thuộc hàm giữa các khóa ứng viên. Thiết kế DB đạt BCNF giúp dữ liệu nhất quán, truy vấn hiệu quả, dễ bảo trì.