1NF so với 2NF so với 3NF
Chuẩn hóa là một quá trình được thực hiện để giảm thiểu các 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 phân chia các bảng lớn thành các bảng nhỏ hơn với số lượng dự phòng ít hơn. Các bảng nhỏ hơn sẽ liên quan với nhau thông qua các mối quan hệ được xác định rõ. Trong cơ sở dữ liệu được chuẩn hóa tốt, mọi thay đổi hoặc sửa đổi trong dữ liệu sẽ chỉ yêu cầu sửa đổi một bảng duy nhất. Dạng bình thường thứ nhất (1NF), Dạng bình thường thứ hai (2NF) và Dạng bình thường thứ ba (3NF) được giới thiệu 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.
1NF là gì?
1NF là hình thức bình thường đầu tiên, cung cấp tập hợp các yêu cầu tối thiểu để chuẩn hóa cơ sở dữ liệu quan hệ. Một bảng tuân thủ 1NF đảm bảo rằng nó thực sự đại diện cho một mối quan hệ (nghĩa là nó không chứa bất kỳ bản ghi nào đang lặp lại), nhưng không có định nghĩa được chấp nhận chung cho 1NF. Một thuộc tính quan trọng là một bảng tuân thủ 1NF không thể chứa bất kỳ thuộc tính nào có giá trị quan hệ (nghĩa là tất cả các thuộc tính phải có giá trị nguyên tử).
2NF là gì?
2NF là dạng bình thường thứ hai được sử dụng trong cơ sở dữ liệu quan hệ. Để một bảng tuân thủ 2NF, nó phải được tuân thủ với 1NF và bất kỳ thuộc tính nào không phải là một phần của bất kỳ khóa ứng cử viên nào (tức là các thuộc tính không chính) phải phụ thuộc hoàn toàn vào bất kỳ khóa ứng cử viên nào trong bảng.
3NF là gì?
3NF là dạng bình thường 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à ở 3NF, nếu và chỉ khi, 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 về khóa ứng viên, nên phụ thuộc trực tiếp trên mỗi khóa ứng cử viên của bảng đó. Năm 1982, Carlo Zaniolo đã đưa ra một định nghĩa được thể hiện khác nhau 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.
Sự khác biệt giữa 1NF và 2NF và 3NF là gì?
1NF, 2NF và 3NF là các 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 các bảng. 3NF được coi là một hình thức bình thường mạnh hơn 2NF và nó được coi là một hình thức bình thường mạnh hơn 1NF. Do đó, nói chung, để có được một bảng tuân thủ biểu mẫu 3NF sẽ yêu cầu phân tách một bảng trong 2NF. Tương tự, để có được một bảng tuân thủ 2NF sẽ yêu cầu phân tách một bảng trong 1NF. Tuy nhiên, nếu một bảng tuân thủ 1NF chứa các khóa ứng viên chỉ được tạo thành từ một thuộc tính duy nhất (nghĩa là các khóa ứng viên không tổng hợp), thì một bảng như vậy sẽ tự động tuân thủ 2NF. Việc phân tách các bảng sẽ dẫn đến các hoạt động nối bổ sung (hoặc các sản phẩm của Cartesian) khi thực hiện các truy vấn. Điều này sẽ tăng thời gian tính toán. Mặt khác, các bảng tuân thủ các hình thức bình thường mạnh hơn sẽ có ít dư thừa hơn các bảng chỉ tuân thủ các hình thức bình thường yếu hơn.