Bài 5.1. Chuẩn hóa CSDL
Nội dung bài học
Tổng quan
- Một CSDL lớn được định nghĩa như một quan hệ đơn có thể dẫn tới việc trùng lặp dữ liệu. Việc lặp đi lặp lại của dữ liệu có thể dẫn đến các hệ quả:
- Làm cho bảng quá lớn.
- Khó quản lý, bảo trì, cập nhật vì phải tìm kiếm rất nhiều bản ghi trong bảng.
- Lãng phí và sử dụng kém hiệu quả các tài nguyên máy tính.
- Khả năng xảy ra sai sót và không nhất quán trong dữ liệu tăng lên.
- Do đó ta cần phân tích, chia nhỏ quan hệ với các dữ liệu dư thừa thành các phần nhỏ hơn, đơn giản hơn và cấu trúc tố hơn thỏa mãn các thuộc tính được yêu cầu.
- Chuẩn hóa là quá trình chia nhỏ quan hệ thành các quan hệ với ít thuộc tính hơn.
Chuẩn hóa là gì?
- Chuẩn hóa là quá trình tổ chức dữ liệu trong CSDL.
- Chuẩn hóa được sử dụng để tối thiểu hóa sự dư thừa từ một quan hệ hoặc tập quan hệ(bảng). Nó cũng được sử dụng để giới hạn các đặc điểm không mong muốn như chèn, cập nhật, xóa bất thường.
- Chuẩn hóa chia bảng lớn thành các bảng nhỏ và liên kết chúng lại qua các quan hệ giữa các bảng.
- Các dạng chuẩn hóa giúp giảm sự dư thừa từ các bảng trong CSDL.
- Tại sao cần chuẩn hóa?
- Mục đích chính của chuẩn hóa một quan hệ là xóa bỏ các dị thường. Sự thất bại trong việc hạn chế các dị thường dẫn tới dữ liệu dư thừa và có thể là nguyên nhân làm cho dữ liệu không nhất quán và các vấn đề khác xuất hiện.
- Chuẩn hóa bao gồm một chuỗi các hướng dẫn giúp bạn tạo một CSDL có cấu trúc tốt.
- Các thay đổi dữ liệu bất thường có thể chia làm 3 dạng:
- Chèn bất thường: là việc không thể chèn mới dữ liệu vào bảng do thiếu dữ liệu.
- Xóa bất thường: là trường hợp trong đó việc xóa dữ liệu dẫn tới mất không có chủ đích các dữ liệu quan trọng khác.
- Cập nhật bất thường: là khi một cập nhật của một giá trị dữ liệu đơn yêu cầu nhiều dòng dữ liệu cũng phải cập nhật theo.
Các dạng chuẩn hóa
- Quá trình chuẩn hóa diễn ra qua một loạt các pha gọi là các dạng chuẩn. Các dạng chuẩn áp dụng cho một bảng đơn. Một quan hệ gọi là trong dạng chuẩn thông thường nếu nó thỏa mãn các ràng buộc.

- Các dạng chuẩn và mô tả:
- 1NF: Một quan hệ ở dạng chuẩn 1 nếu nó các giá trị nguyên tử(không thể phân chia nhỏ hơn nữa).
- 2NF: Một quan hệ sẽ ở dạng chuẩn 2 nếu nó là chuẩn 1 và tất cả các thuộc tính không khóa phụ thuộc hàm đầy đủ vào thuộc tính khóa.
- 3NF: Một quan hệ sẽ ở dạng chuẩn 3 nếu nó thỏa mãn chuẩn 2 và không chứa phụ thuộc bắc cầu.
- BCNF: Một quan hệ ở dạng chuẩn BCNF nếu thỏa mãn chuẩn 3 và một số ràng buộc khác. Đây là dạng chuẩn mạnh hơn chuẩn 3NF còn gọi là chuẩn Boyce Codd.
- 4NF: Một quan hệ ở dạng chuẩn 4 nếu nó là chuẩn BCNF và không có phụ thuộc đa trị.
- 5NF: Một quan hệ ở dạng chuẩn 5 nếu thỏa mãn chuẩn 4 và không chứa bất kỳ phụ thuộc kết nối nào. Việc kết nối nên bị loại bỏ.
- Trong khóa học này ta chỉ tìm hiểu đến dạng chuẩn 4NF. Những dạng chuẩn cao hơn bạn có thể nghiên cứu thêm trong các tài liệu thu thập được hoặc từ trên internet.
Ưu nhược điểm của chuẩn hóa
- Ưu điểm:
- Chuẩn hóa giúp giảm thiểu dư thừa dữ liệu(data redundancy).
- Giúp dễ dàng tổ chức tổng thể CSDL.
- Dữ liệu nhất quán trong CSDL.
- Tạo thiết kế CSDL mềm dẻo linh hoạt.
- Triển khai khái niệm toàn vẹn quan hệ.
- Nhược điểm:
- Bạn không thể bắt đầu tạo một CSDL trước khi biết người dùng cần những gì.
- Hiệu năng sẽ giảm khi chuẩn hóa CSDL lên các chuẩn cao như 4NF, 5NF.
- Tốn thời gian và khó để chuẩn hóa quan hệ của bảng phứ tạp.
- Phân tích bất cẩn có thể dẫn tới thiết kế CSDL tồi và các hệ lụy nghiêm trọng khác.
