Nâng caoHiểu sâu ~10 phút
Chuẩn hóa (Normalization)
Chuẩn hóa là quá trình tách dữ liệu thành các bảng liên kết để tránh lặp và mâu thuẫn.
Lý thuyết
Vấn đề khi không chuẩn hóa
Nếu lưu tên phòng ban trực tiếp trong mỗi dòng users, đổi tên phòng ban sẽ phải sửa nhiều dòng — dễ sai lệch.
Các dạng chuẩn (tóm tắt)
- 1NF: mỗi ô một giá trị nguyên tử, không lặp nhóm.
- 2NF: 1NF + mọi cột phụ thuộc toàn bộ khóa chính.
- 3NF: 2NF + không phụ thuộc bắc cầu (cột không khóa không phụ thuộc cột không khóa khác).
Vì vậy ta tách departments riêng và chỉ lưu department_id trong users — đúng tinh thần 3NF.
Đánh đổi: chuẩn hóa giảm trùng lặp nhưng cần JOIN khi đọc; đôi khi ta 'phi chuẩn hóa' để tăng tốc.
Thuật ngữ (di chuột để xem giải thích)
Dữ liệu mẫu
Đang tải dữ liệu mẫu…
Lý thuyết
Vấn đề khi không chuẩn hóa
Nếu lưu tên phòng ban trực tiếp trong mỗi dòng users, đổi tên phòng ban sẽ phải sửa nhiều dòng — dễ sai lệch.
Các dạng chuẩn (tóm tắt)
- 1NF: mỗi ô một giá trị nguyên tử, không lặp nhóm.
- 2NF: 1NF + mọi cột phụ thuộc toàn bộ khóa chính.
- 3NF: 2NF + không phụ thuộc bắc cầu (cột không khóa không phụ thuộc cột không khóa khác).
Vì vậy ta tách departments riêng và chỉ lưu department_id trong users — đúng tinh thần 3NF.
Đánh đổi: chuẩn hóa giảm trùng lặp nhưng cần JOIN khi đọc; đôi khi ta 'phi chuẩn hóa' để tăng tốc.
Thuật ngữ (di chuột để xem giải thích)
Dữ liệu mẫu
Đang tải dữ liệu mẫu…
Khu vực thực hành
Đang tải trình soạn thảo…
Chạy truy vấn để xem kết quả tại đây.
Bài tập (0/1)
1
Ghép users (alias u) và departments (alias d) lấy u.name và d.name AS department.
Đang tải trình soạn thảo…
Checklist hoàn thành
- Chạy thử truy vấn mẫu
- Hoàn thành bài tập (0/1)
Trình mô phỏng thực thi SQL
Đang khởi tạo cơ sở dữ liệu…