Đăng nhập

Bài 24. Chuẩn hóa dữ liệu – các dạng chuẩn

Vì sao cần chuẩn hóa dữ liệu?

Khi hệ thống ngày càng lớn, việc thiết kế cơ sở dữ liệu đúng ngay từ đầu sẽ giúp tránh rất nhiều rắc rối về sau: dữ liệu bị trùng lặp, sai lệch, khó bảo trì, hoặc làm chậm hiệu suất truy vấn.
Đây là lúc ta cần đến chuẩn hóa dữ liệu – một quy trình có hệ thống để thiết kế cơ sở dữ liệu sạch, mạch lạc và hiệu quả.

Chuẩn hóa không chỉ là kiến thức học thuật. Nó là xương sống của mọi hệ thống thực tế: từ quản lý bán hàng, quản lý nhân sự, đến mạng xã hội hay ứng dụng ngân hàng.
Trong bài học này, bạn sẽ hiểu thế nào là chuẩn 1NF, 2NF, 3NF… và cách áp dụng từng chuẩn vào cơ sở dữ liệu của bạn.


Chuẩn hóa dữ liệu là gì?

Chuẩn hóa dữ liệu (Database Normalization) là quá trình tổ chức dữ liệu trong CSDL để:

  • Giảm thiểu trùng lặp dữ liệu
  • Tránh mâu thuẫn dữ liệu
  • Tăng tính linh hoạt và mở rộng

Quá trình này được thực hiện qua nhiều cấp độ gọi là các dạng chuẩn (Normal Forms).


Các dạng chuẩn phổ biến

1NF – First Normal Form (Chuẩn 1)

Điều kiện:

  • Mỗi cột phải chứa dữ liệu nguyên tử (atomic) – tức là không chứa danh sách hay mảng.
  • Không có nhóm lặp trong bảng.

Ví dụ vi phạm:

IDTênSĐT
1Linh0909…, 0912…

→ Cột SĐT chứa nhiều giá trị → vi phạm 1NF.

Sau chuẩn hóa 1NF:

IDTênSĐT
1Linh0909…
1Linh0912…

2NF – Second Normal Form (Chuẩn 2)

Áp dụng khi đã đạt 1NF.

Điều kiện:

  • Mọi cột không khóa (non-key) phải phụ thuộc hoàn toàn vào khóa chính (không phụ thuộc một phần nếu khóa chính là nhiều cột).

Ví dụ vi phạm:

Mã đơnMã spTên sản phẩmSố lượng
001A1Áo sơ mi2

Tên sản phẩm chỉ phụ thuộc Mã sp, không phụ thuộc toàn bộ khóa chính (Mã đơn, Mã sp).

Sau chuẩn hóa 2NF:

  • Tách bảng sản phẩm riêng:

Bảng Đơn hàng chi tiết:

Mã đơnMã spSố lượng
001A12

Bảng Sản phẩm:

Mã spTên sản phẩm
A1Áo sơ mi

3NF – Third Normal Form (Chuẩn 3)

Áp dụng khi đã đạt 2NF.

Điều kiện:

  • Mọi cột không khóa không phụ thuộc lẫn nhau, chỉ phụ thuộc vào khóa chính.

Ví dụ vi phạm:

Mã nhân viênTênMã phòngTên phòng
01LanP01Kế toán

Tên phòng phụ thuộc Mã phòng, không phụ thuộc trực tiếp Mã nhân viên.

Sau chuẩn hóa 3NF:

Bảng Nhân viên:

Mã nvTênMã phòng
01LanP01

Bảng Phòng:

Mã phòngTên phòng
P01Kế toán

Khi nào cần chuẩn hóa?

Trường hợpCó nên chuẩn hóa?
Hệ thống nhỏ, ít thay đổiKhông bắt buộc
Hệ thống lớn, có nhiều loại truy vấnRất nên
Dữ liệu thay đổi thường xuyênCần thiết
Cần hiệu năng truy vấn caoChuẩn hóa + Index

⚠️ Tuy nhiên, chuẩn hóa quá mức có thể gây khó truy vấn (JOIN nhiều bảng). Vì vậy, trong thực tế, có thể dùng chuẩn hóa kết hợp phi chuẩn hóa (denormalization) để cân bằng hiệu suất và tính ổn định.


Tổng kết

  • Chuẩn hóa giúp hệ thống gọn gàng, dễ bảo trì, tránh lỗi logic.
  • Ba chuẩn cơ bản bạn cần nhớ: 1NF, 2NF, 3NF.
  • Sau này, khi xây dựng các hệ thống thực tế như blog, e-commerce, bạn sẽ thấy rõ vai trò của chuẩn hóa.

👉 Tiếp theo: Trong Bài 25, chúng ta sẽ tìm hiểu các khái niệm quan trọng trong thiết kế CSDL: Primary key, Foreign key, Unique, Auto Increment – nền tảng của mọi quan hệ giữa các bảng.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.