Các dạng chuẩn hóa dữ liệu
Chuẩn hoá là quá trình tách bảng (phân rã) thành các bảng nhỏ hơn dựa vào các phụ thuộc hàm. Các dạng chuẩn là các chỉ dẫn để thiết kế các bảng trong CSDL. Mục đích của chuẩn hoá là loại bỏ các dư thừa dữ liệu và các lỗi khi thao tác dư ...
- Chuẩn hoá là quá trình tách bảng (phân rã) thành các bảng nhỏ hơn dựa vào các phụ thuộc hàm.
- Các dạng chuẩn là các chỉ dẫn để thiết kế các bảng trong CSDL.
- Mục đích của chuẩn hoá là loại bỏ các dư thừa dữ liệu và các lỗi khi thao tác dư thừa và các lỗi khi thao tác dữ liệu (Insert, Delete, Update).
- Nhưng chuẩn hoá làm tăng thời gian truy vấn
Các dạng chuẩn hoá
(Normal Form)
Định nghĩa:
Một bảng (quan hệ) được gọi là ở dạng chuẩn 1NF nếu và chỉ nếu toàn bộ các miền giá trị của các cột có mặt trong bảng (quan hệ) đều chỉ chứa các giá trị nguyên tử (nguyên tố)
Ví dụ:
Một bảng (quan hệ) chưa ở 1NF:
MASV | HOTEN | DIACHI | MAMON | TENMON | DIEM |
A01 | Lê Na | 12 Thái Hà | M01M02 | CSDLAnh | 89 |
A02 | Trần An | 56 Mã Mây | M01 | CSDL | 8 |
A03 | Hà Nam | 24 Cầu Gỗ | M01M02M03 | CSDLAnhToán 1 | 689 |
Cách chuyển sang dạng 1NF:
Điền đủ dữ liệu vào các cột khác. Như sau:
MASV | HOTEN | DIACHI | MAMON | TENMON | TENGV | PHONG | DIEM |
A01 | Lê Na | 12 Thái Hà | M01 | CSDL | Mai | P401 | 8 |
A01 | Lê Na | 12 Thái Hà | M02 | Anh | Hương | P405 | 9 |
A02 | Trần An | 56 Mã Mây | M01 | CSDL | Mai | P401 | 8 |
A03 | Hà Nam | 24 Cầu Gỗ | M01 | CSDL | Mai | P401 | 6 |
A03 | Hà Nam | 24 Cầu Gỗ | M02 | Anh | Hương | P405 | 8 |
A03 | Hà Nam | 24 Cầu Gỗ | M03 | Toán 1 | Hoa | P406 | 9 |
Định nghĩa
Một quan hệ ở dạng chuẩn 2NF nếu quan hệ đó:
+ Là 1NF
+ Các thuộc tính không khoá phải phụ thuộc hàm đầy đủ vào khoá chính
Ví dụ
- Ví dụ1: Cho quan hệ R = (ABCD) , khoá là AB và tập phụ thuộc hàm F = {AB -> C, AB -> D}là quan hệ đạt chuẩn 2NF.
- Ví dụ2: Cho quan hệ R = (ABCD) , khoá là AB và tập phụ thuộc hàm
F = {AB -> C, AB -> D, B -> DC} là quan hệ không đạt chuẩn 2NF vì có phụ thuộc hàm
B -> DC là phụ thuộc hàm bộ phận (phụ thuộc hàm không đầy đủ) vào khoá. Khi đó ta đưa về dạng chuẩn 2NF như sau:
Nhận xét
Một quan hệ ở dạng chuẩn 2NF nếu thoả mãn 1 trong các đièu kiện sau:
- Khoá chính chỉ gồm một thuộc tính
- Bảng không có các thuộc tính không khoá
- Tất cả các thuộc tính không khoá phụ thuộc hoàn toàn vào tập các thuộc tính khoá chính
Dạng chuẩn 3 – 3NF
Định nghĩa
Một quan hệ ở dạng chuẩn 3NF nếu quan hệ đó:
+ Là 2NF
+ Các thuộc tính không khoá phải phụ thuộc trực tiếp vào khoá chính
Ví dụ
- Ví dụ1: Cho quan hệ R = (ABCDGH, khoá là AB và tập phụ thuộc hàm F = {AB -> C, AB -> D, AB -> GH} là quan hệ đạt chuẩn 3NF.
- Ví dụ2: Cho quan hệ R = (ABCDGH) , khoá là AB và tập phụ thuộc hàm
F = {AB -> C, AB -> D, AB -> GH, G -> DH} là quan hệ không đạt chuẩn 3NF vì có phụ thuộc hàm G ® DH là phụ thuộc hàm gián tiếp vào khoá. Khi đó ta đưa về dạng chuẩn 3NF như sau:
Định nghĩa
Một quan hệ ở dạng chuẩn BCNF nếu quan hệ đó:
+ Là 3NF
+ Không có thuộc tính khoá mà phụ thuộc hàm vào thuộc tính không khoá.
Ví dụ
- Ví dụ1: Cho quan hệ R = (ABCDGH, khoá là AB và tập phụ thuộc hàm F = {AB -> C, AB -> D, AB -> GH} là quan hệ đạt chuẩn BCNF.
- Ví dụ2: Cho quan hệ R = (ABCDGH) , khoá là AB và tập phụ thuộc hàm
F = {AB -> C, AB -> D, AB -> GH, H -> B} là quan hệ không đạt chuẩn BCNF vì có thuộc tính khoá B phụ thuộc hàm vào thuộc tính không khoá H. Khi đó ta đưa về dạng chuẩn BCNF như sau: