Các Dạng Chuẩn Hoá Trong SQL

1. Dạng chuẩn thứ nhất (1NF – First Normal Form)

Yêu cầu:

  • Mỗi ô chỉ chứa một giá trị duy nhất.
  • Không có cột chứa danh sách hoặc tập giá trị.

Ví dụ:

Bảng chưa chuẩn hóa:

MaSVHọTênMônHọc
1Nguyễn Văn AToán, Lý
2Trần Thị BHóa, Sinh

Bảng sau khi chuẩn hóa (1NF):

MaSVHọTênMônHọc
1Nguyễn Văn AToán
1Nguyễn Văn A
2Trần Thị BHóa
2Trần Thị BSinh

2. Dạng chuẩn thứ hai (2NF – Second Normal Form)

Yêu cầu:

  • Đạt chuẩn 1NF.
  • Không có phụ thuộc hàm không đầy đủ (Partial Dependency).

Ví dụ:

Bảng chưa chuẩn hóa:

MaSVMaMHHọTênTênMônHọc
1101Nguyễn Văn AToán
2102Trần Thị B

Ở đây:

  • HọTên phụ thuộc vào MaSV.
  • TênMônHọc phụ thuộc vào MaMH.

Bảng sau khi chuẩn hóa (2NF):
Bảng SinhViên:

MaSVHọTên
1Nguyễn Văn A
2Trần Thị B

Bảng MônHọc:

MaMHTênMônHọc
101Toán
102

Bảng ĐăngKýHọc:

MaSVMaMH
1101
2102

3. Dạng chuẩn thứ ba (3NF – Third Normal Form)

Yêu cầu:

  • Đạt chuẩn 2NF.
  • Không có phụ thuộc bắc cầu (Transitive Dependency).

Ví dụ:

Bảng chưa chuẩn hóa:

MaNVHọTênMaPBTênPhòngBan
1Lê Văn C10Kế Toán
2Phạm Thị D20Nhân Sự

Ở đây:

  • TênPhòngBan phụ thuộc vào MaPB, nhưng MaPB lại phụ thuộc vào MaNV.

Bảng sau khi chuẩn hóa (3NF):
Bảng NhânViên:

MaNVHọTênMaPB
1Lê Văn C10
2Phạm Thị D20

Bảng PhòngBan:

MaPBTênPhòngBan
10Kế Toán
20Nhân Sự

4. Dạng chuẩn Boyce-Codd (BCNF – Boyce-Codd Normal Form)

Yêu cầu:

  • Mỗi phụ thuộc hàm đều có khóa ứng viên làm vế trái.

Ví dụ:

Bảng chưa chuẩn hóa:

MaGVMaLopTênGVTênLop
1101Nguyễn Văn E12A1
2102Trần Thị F12A2
  • Nếu TênLop chỉ phụ thuộc vào MaLop, nhưng TênGV phụ thuộc vào MaGV.

Bảng sau khi chuẩn hóa (BCNF):
Bảng GiáoViên:

MaGVTênGV
1Nguyễn Văn E
2Trần Thị F

Bảng LớpHọc:

MaLopTênLopMaGV
10112A11
10212A22

Lợi ích chuẩn hóa:

  1. Giảm trùng lặp dữ liệu (ít lỗi khi cập nhật).
  2. Tăng tính toàn vẹn dữ liệu (tránh mâu thuẫn).
  3. Cải thiện hiệu năng khi truy vấn (dữ liệu tổ chức tốt hơn).