Để hiểu dạng chuẩn thứ ba, trước tiên chúng ta phải hiểu phụ thuộc bắc cầu (transitive dependency). Một thuộc tính phụ thuộc vào một thuộc tính khác không phải là khóa chính của quan hệ được gọi là phụ thuộc bắc cầu. Ví dụ trong bảng HÓA ĐƠN, cột (thuộc tính) Tên khách hàng không chỉ phụ thuộc vào cột khóa chính Mã hóa đơn mà còn phụ thuộc vào cột Mã khách hàng là cột không phải khóa chính. Phụ thuộc Tên khách hàng và Mã khách hàng gọi là phụ thuộc bắc cầu.
Một quan hệ (bảng) là dạng chuẩn 3NF nếu:
- Đạt 2NF
- Không chứa phụ thuộc bắc cầu (nghĩa là các thuộc tính (cột) không khóa chỉ phụ thuộc vào khóa chính).
Nếu một bảng 2NF chứa các phụ thuộc bắc cầu, để đạt 3NF cần chuyển các cột (thuộc tính) phụ thuộc bắc cầu sang bảng mới. Thuộc tính (cột) mà các thuộc tính không khóa khác phụ thuộc sẽ đóng vai trò là khóa ngoại ở bảng cũ và là khóa chính bảng mới.
Xét bảng HÓA ĐƠN đạt dạng 2 NF nhưng chứa các thuộc tính 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 phụ thuộc vào Mã khách hàng nên chúng sẽ được di chuyển sang bảng mới gọi là KHÁCH HÀNG. Lưu ý bảng HÓA ĐƠN vẫn còn cột Mã khách hàng đóng vai khóa ngoại.
KHÁCH HÀNG: Mã khách hàng (PK), 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
Trong bảng HÓA ĐƠN_SẢN PHẨM, cột Thành tiền là kết quả của Đơn giá hiện tại nhân với Số lượng, nói cách khác, cột Thành tiền phụ thuộc vào hai thuộc tính Đơn giá hiện tại và Số lượng. Để xử lý chúng ta chỉ việc xóa cột Thành tiền khỏi bảng HÓA ĐƠN_SẢN PHẨM là xong.
Tương tự, cột Tổng tiền thanh toán từ bảngHÓA ĐƠNđược hình thành bằng cách lấy tổng (SUM) cácHÓA ĐƠN_SẢN PHẨMnên chỉ việc xóa cột Tổng tiền thanh toán khỏi bảng HÓA ĐƠN là xong.
*Chú ý: Trong một số các tài liệu khác về thiết kế cơ sở dữ liệu, các thuộc tính Thành tiền và Tổng tiền thanh toán có thể được xử lý (hay xóa) từ giai đoạn chuẩn 1NF. Tuy nhiên, trong chuẩn 3NF chủ yếu đề cập đến phụ thuộc bắc cầu nên việc xử lý trong giai đoạn này hợp lý hơn.
Lúc này, chúng ta sẽ có các bảng chuẩn 3NF
HÓA ĐƠN: Mã hóa đơn (PK), Mã khách hàng, Hình thức giao hàng, Ngày đặt hàng
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
SẢN PHẨM: Mã sản phẩm (PK), Mô tả sản phẩm, Đơn giá bán
KHÁCH HÀNG: Mã khách hàng (PK), 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