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

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

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

Video: Sự khác biệt giữa 3NF và BCNF
Video: Agile vs Waterfall Methodology | Difference between Agile and Waterfall | What to choose? 2024, Tháng bảy
Anonim

3NF so với BCNF

Chuẩn 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 chủ yếu sẽ chia các bảng lớn thành các bảng nhỏ hơn với ít dư thừa hơn. Các 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õ. 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 nào trong dữ liệu sẽ chỉ yêu cầu sửa đổi một bảng duy nhất. Dạng chuẩn thứ ba (3NF) được giới thiệu vào năm 1971 bởi Edgar F. Codd, người cũng là người phát minh ra mô hình quan hệ và khái niệm chuẩn hóa. Boyce-Codd Normal Form (BCNF) được giới thiệu vào năm 1974 bởi Codd và Raymond F. Boyce.

3NF là gì?

3NF là dạng chuẩn thứ ba được sử dụng trong chuẩn hóa cơ sở dữ liệu quan hệ. Theo định nghĩa của Codd, một bảng được cho là ở dạng 3NF, nếu và chỉ khi, bảng đó ở dạng chuẩn thứ hai (2NF) và mọi thuộc tính trong bảng không thuộc về khóa ứng viên sẽ 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 được diễn đạt khác cho 3NF. Các bảng tuân thủ 3NF thường không chứa các bất thường xảy ra khi chèn, xóa hoặc cập nhật các bản ghi trong bảng.

BCNF là gì?

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

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

Cả 3NF và BCNF đều là dạng bình thường được sử dụng trong cơ sở dữ liệu quan hệ để giảm thiểu dư thừa trong bảng. Trong một bảng ở dạng chuẩn BCNF, với mọi phụ thuộc hàm không tầm thường có dạng A → B, A là một siêu khóa trong khi, một bảng tuân thủ 3NF phải ở dạng 2NF và mọi không nguyên tố thuộc tính trực tiếp phụ thuộc vào mọi khóa ứng viên của bảng đó. BCNF được coi là một dạng bình thường mạnh hơn 3NF và nó được phát triển để nắm bắt một số điểm bất thường mà 3NF không thể nắm bắt được. Để có được một bảng tuân theo biểu mẫu BCNF sẽ yêu cầu phân hủy một bảng có trong 3NF. Sự phân rã này sẽ dẫn đến các phép toán nối bổ sung (hoặc các tích Descartes) khi thực hiện các 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 sẽ có ít 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 tuân thủ 3NF mà không cản trở việc bảo toàn phụ thuộc và nối không mất dữ liệu. Nhưng điều này không phải lúc nào cũng khả thi với BCNF.

Đề xuất: