Bài 1: Giới thiệu về Trình quản lý quảng cáo

Bài giảng: Lý thuyết Cơ sở Dữ liệu - Chuẩn hóa Cơ sở Dữ liệu

1. Giới thiệu về Chuẩn hóa Cơ sở Dữ liệu

Chuẩn hóa cơ sở dữ liệu là quá trình tổ chức dữ liệu thành các bảng nhỏ hơn và loại bỏ dư thừa, nhằm cải thiện tính chính xác và hiệu quả của dữ liệu. Quá trình này giúp giảm thiểu sự trùng lặp, đảm bảo tính toàn vẹn và tối ưu hóa truy vấn.

2. Lợi ích của Chuẩn hóa

  • Giảm dư thừa dữ liệu: Tránh lặp lại dữ liệu trong nhiều bảng.
  • Đảm bảo tính toàn vẹn dữ liệu: Hạn chế lỗi cập nhật và xóa dữ liệu.
  • Tối ưu hóa truy vấn: Giảm kích thước bảng, tăng tốc độ truy xuất.
  • Dễ dàng mở rộng và bảo trì: Hệ thống linh hoạt hơn khi có thay đổi.

3. Các dạng chuẩn (Normal Forms - NF)

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

📌 Yêu cầu:

  • Mỗi ô trong bảng chỉ chứa một giá trị đơn (atomic value).
  • Không có nhóm giá trị lặp trong một cột.

📌 Ví dụ bảng chưa đạt 1NF:

Mã KH Tên KH SĐT Sản phẩm đã mua
001 A 0987654321 Laptop, Chuột
002 B 0976543210 Điện thoại

📌 Bảng chuẩn hóa thành 1NF:

Mã KH Tên KH SĐT Sản phẩm đã mua
001 A 0987654321 Laptop
001 A 0987654321 Chuột
002 B 0976543210 Điện thoại

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

📌 Yêu cầu:

  • Đạt 1NF.
  • Loại bỏ phụ thuộc một phần vào khóa chính (bảng có khóa chính tổng hợp phải tách bảng).

📌 Ví dụ bảng chưa đạt 2NF:

Mã đơn Mã SP Tên SP Giá SP Số lượng
1001 A1 Laptop 15tr 2
1001 B2 Chuột 500k 1
1002 A1 Laptop 15tr 1

👉 Vấn đề: Tên SP và Giá SP phụ thuộc vào Mã SP, không phải vào Mã đơn.

📌 Bảng chuẩn hóa thành 2NF:
Bảng Đơn hàng

Mã đơn Mã SP Số lượng
1001 A1 2
1001 B2 1
1002 A1 1

Bảng Sản phẩm

Mã SP Tên SP Giá SP
A1 Laptop 15tr
B2 Chuột 500k

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

📌 Yêu cầu:

  • Đạt 2NF.
  • Loại bỏ phụ thuộc bắc cầu (cột không khóa không phụ thuộc vào khóa chính qua một cột khác).

📌 Ví dụ bảng chưa đạt 3NF:

Mã KH Tên KH Mã TP Tên TP
001 A HN Hà Nội
002 B SG Hồ Chí Minh

👉 Vấn đề: Tên TP phụ thuộc vào Mã TP, không phụ thuộc trực tiếp vào Mã KH.

📌 Bảng chuẩn hóa thành 3NF:
Bảng Khách hàng

Mã KH Tên KH Mã TP
001 A HN
002 B SG

Bảng Thành phố

Mã TP Tên TP
HN Hà Nội
SG Hồ Chí Minh

4. Các dạng chuẩn cao hơn

  • BCNF (Boyce-Codd Normal Form): Khắt khe hơn 3NF, xử lý các quan hệ có nhiều khóa chính.
  • 4NF & 5NF: Xử lý dữ liệu phụ thuộc đa trị và ràng buộc phức tạp, ít dùng trong thực tế.

5. Kết luận

✅ Chuẩn hóa giúp cải thiện hiệu suất, bảo toàn dữ liệu, và tối ưu truy vấn.
✅ Thực tế, 3NF hoặc BCNF là đủ cho hầu hết hệ thống.
✅ Khi thiết kế CSDL, cần cân bằng giữa chuẩn hóa và hiệu suất (tránh quá nhiều bảng gây khó khăn khi truy vấn).

 

📌 Câu hỏi ôn tập:

  1. Mô tả mục đích của quá trình chuẩn hóa cơ sở dữ liệu.
  2. Giải thích sự khác biệt giữa 1NF, 2NF và 3NF với ví dụ.
  3. Tại sao một số hệ thống không áp dụng chuẩn hóa quá cao (4NF, 5NF)

📌 Bài tập thực hành:
👉 Yêu cầu: Chuẩn hóa bảng "Quản lý mượn sách" của thư viện về 3NF.

Dưới đây là bảng dữ liệu mẫu với 10 dòng để học viên dễ hình dung trước khi chuẩn hóa:

Mã phiếu Mã SV Tên SV Lớp Mã sách Tên sách Tác giả Ngày mượn Ngày trả
P001 SV01 Nguyễn Văn A K14A S001 Lập trình C++ John Smith 01/03/2024 15/03/2024
P002 SV02 Trần Thị B K14B S002 Cơ sở dữ liệu Nguyễn Văn Nam 02/03/2024 16/03/2024
P003 SV01 Nguyễn Văn A K14A S003 Toán rời rạc Alan Turing 03/03/2024 17/03/2024
P004 SV03 Lê Văn C K14C S001 Lập trình C++ John Smith 04/03/2024 18/03/2024
P005 SV04 Phạm Thị D K14A S004 Trí tuệ nhân tạo Andrew Ng 05/03/2024 19/03/2024
P006 SV02 Trần Thị B K14B S005 Học máy Geoffrey Hinton 06/03/2024 20/03/2024
P007 SV05 Hoàng Văn E K14C S002 Cơ sở dữ liệu Nguyễn Văn Nam 07/03/2024 21/03/2024
P008 SV01 Nguyễn Văn A K14A S004 Trí tuệ nhân tạo Andrew Ng 08/03/2024 22/03/2024
P009 SV06 Bùi Thị F K14B S006 Mạng máy tính Kurose & Ross 09/03/2024 23/03/2024
P010 SV03 Lê Văn C K14C S003 Toán rời rạc Alan Turing 10/03/2024 24/03/2024

Gợi ý:
- Xác định dữ liệu dư thừa, các lỗi có thể sảy ra nếu thay đổi thông tin lớp sinh viên

- Xác định quan hệ giữa Sinh viên, Sách, và Phiếu mượn để thiết kế các bảng hợp lý.

 Yêu cầu: Viết nội dung trả lời trực tiếp hoặc nộp file word