Một điều quan trọng cần lưu ý là các bảng được xét trong giai đoạn chuẩn hóa 2NF phải là các bảng chứa khóa chính kết hợp (khóa chính được tạo bởi hai hay nhiều cột). Như vậy, trong giai đoạn này chỉ có bảng HÓA ĐƠN_SẢN PHẨM được xét; bảng HÓA ĐƠN bỏ qua do khóa chính là khóa đơn (chỉ một cột hay một thuộc tính).
Một bảng đạt chuẩn 2NF nếu:
- Đạt 1 NF
- Các cột không là khóa phụ thuộc hàm đầy đủ vào khóa chính
Xét bảng HÓA ĐƠN_SẢN PHẨM:
- Đạt 1NF
- Kiểm tra lần lượt các cột không phải là khóa có phụ thuộc hàm đầy đủ vào khóa chính Mã hóa đơn (PK), Mã sản phẩm (PK)
- Cột Mô tả sản phẩm phụ thuộc hàm vào Mã sản phẩm vì luôn luôn chỉ có một giá trị tại cột Mô tả sản phẩm tương ứng với một giá trị cột Mã sản phẩm. Nhưng dễ dàng nhận thấy, Mô tả sản phẩm không liên quan gì đến Mã hóa đơn hay nói cách khác Mô tả sản phẩm không phụ thuộc hàm vào Mã hóa đơn và điều này vi phạm chuẩn 2NF vì cột Mô tả sản phẩm không phụ thuộc đầy đủ vào khóa chính (chỉ phụ thuộc hàm riêng phần).
- Cột Số lượng phụ thuộc hàm đầy đủ vào khóa chính vì giá trị cột Số lượng được hình thành khi sản phẩm được đặt hàng trong một hóa đơn.
- Cột Đơn giá có thể xét tương tự cột Mô tả sản phẩm nhưng đơn giá sản phẩm không phải là đại lượng bất biến mà phụ thuộc vào biến động thị trường hay các chính sách nhà nước (ví dụ thuế). Do đó, cột Đơn giá có thể được lưu trữ hai nơi, một nơi chứa Đơn giá bán và một nơi chứa Đơn giá hiện tại.
- Cột Thành tiền hình thành từ cột Số lượng và Đơn giá nên không cần xét chi tiết.
Như vậy, chúng ta đã xác định được các cột vi phạm chuẩn 2NF là Mô tả sản phẩm và Đơn giá vì chỉ phụ thuộc hàm vào cột Mã sản phẩm mà không phụ thuộc đầy đủ vào khóa chính. Giải pháp cho các thuộc tính này là di chuyển sang bảng mới kèm với cột khóa chính mà chúng phụ thuộc vào. Bảng mới này đặt tên là SẢN PHẨM.
Một chú ý là Đơn giá có hai hình thức là Đơn giá bán (thời điểm sản phẩm rao bán) và Đơn giá hiện tại (thời điểm xuất hóa đơn). Đơn giá bán phụ thuộc hàm vào Mã sản phẩm nên sẽ di chuyển sang bảng mới, Đơn giá hiện tại phụ thuộc hàm vào Mã hóa đơn và Mã sản phẩm nên sẽ được giữ lại. Lúc này chúng ta sẽ có các bảng như sau:
HÓA ĐƠN: Mã hóa đơn (PK), Mã khách hàng, Tên khách hàng, Địa chỉ khách hàng, Huyện khách hàng, Tỉnh khách hàng, Số điện thoại, Hình thức giao hàng, Ngày đặt hàng, Tổng tiền thanh toán
HÓA ĐƠN_SẢN PHẨM: Mã hóa đơn (PK), Mã sản phẩm (PK), Mô tả sản phẩm, Số lượng, Đơn giá hiện tại, Thành tiền
SẢN PHẨM: Mã sản phẩm (PK), Mô tả sản phẩm, Đơn giá bán