Sự khác biệt giữa 3NF và BCNF

Anonim

3NF và BCNF

Bình thường hóa là một quá trình được thực hiện để giảm thiểu sự dư thừa có trong dữ liệu trong cơ sở dữ liệu quan hệ. Quá trình này sẽ chủ yếu chia các bảng lớn thành các bảng nhỏ hơn với ít sự dư thừa. Những bảng nhỏ hơn này sẽ liên quan với nhau thông qua các mối quan hệ được xác định rõ ràng. Trong một cơ sở dữ liệu được chuẩn hóa tốt, bất kỳ thay đổi hoặc sửa đổi dữ liệu nào sẽ chỉ yêu cầu sửa đổi một bảng duy nhất. Mẫu thứ ba bình thường (3NF) được Edgar F. Codd giới thiệu vào năm 1971, người cũng là nhà phát minh ra mô hình quan hệ và khái niệm bình thường hóa. Mẫu bình thường Boyce-Codd (BCNF) được Codd và Raymond F. Boyce đưa ra vào năm 1974.

3NF là gì?

3NF là dạng bình thường Thứ ba được sử dụng trong chuẩn mực cơ sở dữ liệu quan hệ. Theo định nghĩa của Codd, một bảng được cho là trong 3NF, nếu và chỉ nếu, bảng đó ở dạng bình thường thứ hai (2NF), và mọi thuộc tính trong bảng không thuộc khóa ứng viên phải trực tiếp phụ thuộc vào mỗi khóa ứng viên của bảng đó. Năm 1982, Carlo Zaniolo đã đưa ra một định nghĩa khác về 3NF. Các bảng tuân theo 3NF nói chung không chứa các dị thường xảy ra khi chèn, xoá hoặc cập nhật các bản ghi trong bảng.

BCNF là gì?

BCNF (còn gọi là 3. 5NF) là một dạng bình thường khác được sử dụng trong chuẩn mực cơ sở dữ liệu quan hệ. Nó đã được giới thiệu để nắm bắt một số dị thường mà không được giải quyết bởi 3NF. Một bảng được gọi là trong BCNF, nếu và chỉ khi, cho mỗi phụ thuộc của các hình thức A → B là không nhỏ, A là một siêu chính. Việc phân tách một bảng không có trong biểu thức bình thường BCNF không bảo đảm việc sản xuất các bảng ở dạng BCNF (trong khi vẫn bảo vệ các phụ thuộc đã có trong bảng ban đầu).

Khác biệt giữa 3NF và BCNF là gì?

Cả 3NF và BCNF đều là các hình thức bình thường được sử dụng trong cơ sở dữ liệu quan hệ để giảm thiểu sự dư thừa trong bảng. Trong một bảng có dạng BCNF bình thường, cho mỗi phụ thuộc chức năng không tầm thường của dạng A → B, A là một siêu chính, trong khi đó một bảng phù hợp với 3NF nên nằm trong 2NF, và mỗi non-prime thuộc tính trực tiếp phải phụ thuộc vào mỗi khóa ứng cử viên của bảng đó. BCNF được coi là một hình thức bình thường mạnh mẽ hơn so với 3NF và nó được phát triển để nắm bắt một số dị thường mà không thể bị bắt bởi 3NF. Lấy bảng phù hợp với biểu mẫu BCNF sẽ yêu cầu phân rã một bảng trong 3NF. Sự phân hủy này sẽ dẫn đến các hoạt động bổ sung (hoặc các sản phẩm Cartesian) khi thực hiện truy vấn. Điều này sẽ làm tăng thời gian tính toán. Mặt khác, các bảng tuân thủ BCNF có ít sự dư thừa hơn các bảng chỉ tuân thủ 3NF.Hơn nữa, hầu hết thời gian, có thể có được một bảng phù hợp với 3NF mà không cản trở sự bảo vệ sự phụ thuộc và sự kết hợp không mất phí. Nhưng điều này không phải lúc nào cũng có thể thực hiện được với BCNF.