Chuẩn hóa Database (1NF → 3NF)
Quảng cáo • Advertisement
📢 Sponsor Ad
Google AdSense
lesson.content.title
lesson.content.subtitle
🎯 Mục tiêu bài học
Sau bài này, bạn sẽ hiểu tại sao cần chuẩn hóa, phân biệt 1NF/2NF/3NF, và áp dụng chuẩn hóa vào bảng — chủ đề ra thi FE rất nhiều.
1. Tại sao cần Chuẩn hóa?
🏠 Ví dụ: Dọn phòng cho gọn gàng
Tưởng tượng phòng bạn bày bừa: sách để chung với quần áo, đồ ăn để chung với tài liệu. Chuẩn hóa giống như dọn dẹp + phân loại: sách để kệ sách, quần áo vào tủ → dễ tìm, không trùng lặp!
Chuẩn hóa giải quyết 3 vấn đề:
| Vấn đề | Mô tả | Ví dụ |
|---|---|---|
| Update Anomaly | Sửa 1 chỗ nhưng quên chỗ khác | Đổi SĐT giáo viên → phải sửa 100 dòng |
| Insert Anomaly | Không thể thêm dữ liệu vì thiếu PK | Thêm GV mới nhưng chưa có lớp |
| Delete Anomaly | Xóa dữ liệu → mất luôn thông tin khác | Xóa lớp cuối → mất luôn thông tin GV |
2. Ba dạng chuẩn — BẮT BUỘC NHỚ! 🔥
| Chuẩn | Yêu cầu | Nghĩa dễ nhớ | Vi phạm khi |
|---|---|---|---|
| 1NF | Mỗi ô chỉ chứa 1 giá trị | "Không nhét nhiều thứ vào 1 ô" | Ô "MônHọc" chứa "Toán, Lý, Hóa" |
| 2NF | 1NF + không phụ thuộc bộ phận khóa | "Mọi cột phải phụ thuộc TOÀN BỘ PK" | TenSV chỉ phụ thuộc MaSV, không phụ thuộc MaMH |
| 3NF | 2NF + không phụ thuộc bắc cầu | "Không có A→B→C (bắc cầu)" | MaSV → MaKhoa → TenKhoa |
📌 Ví dụ chi tiết: Chuẩn hóa bảng ĐĂNG KÝ
Bảng ban đầu (chưa chuẩn hóa):
| MaSV | TenSV | MaKhoa | TenKhoa | MonHoc | Diem |
|---|---|---|---|---|---|
| SV01 | An | K01 | CNTT | Toán, Lý | 8, 7 |
❌ Vi phạm 1NF: ô "MonHoc" và "Diem" chứa nhiều giá trị.
Sau 1NF: Tách thành 1 giá trị/ô → mỗi môn 1 dòng.
Sau 2NF: Tách TenSV, MaKhoa ra bảng SinhVien (vì chúng chỉ phụ thuộc MaSV).
Sau 3NF: Tách TenKhoa ra bảng Khoa (vì MaSV→MaKhoa→TenKhoa là bắc cầu).
⚠️ Mẹo thi: Câu hỏi chuẩn hóa thường hỏi gì?
1. Bảng này đang ở dạng chuẩn mấy? → Kiểm tra từ 1NF lên.
2. Để đạt 3NF cần tách thành mấy bảng? → Tìm phụ thuộc bắc cầu.
📝 Tóm tắt nhanh
- 1NF: Mỗi ô = 1 giá trị duy nhất
- 2NF: 1NF + loại bỏ phụ thuộc bộ phận khóa
- 3NF: 2NF + loại bỏ phụ thuộc bắc cầu (A→B→C)
- Chuẩn hóa giúp tránh Update/Insert/Delete Anomaly
🎯 Câu hỏi ôn thi FE #3
Hỏi: Chuẩn hóa giải quyết vấn đề gì?
Đáp: Loại bỏ dư thừa dữ liệu và tránh 3 anomaly: Update, Insert, Delete.
Quảng cáo • Advertisement
📢 Ad Space
Google AdSense