2NF là gì?
Bước thứ hai trong Chuẩn hóa là 2NF.
Một bảng ở trong 2NF, chỉ khi một quan hệ nằm trong 1NF và đáp ứng tất cả các quy tắc và mọi thuộc tính không phải khóa đều hoàn toàn phụ thuộc vào khóa chính.
Biểu mẫu thông thường thứ hai loại bỏ sự phụ thuộc một phần vào khóa chính.
Hãy để chúng tôi xem một ví dụ -
Ví dụ (Bảng vi phạm 2NF)
StudentID | ProjectID | Tên sinh viên | Tên dự án |
S89 | P09 | Olivia | Vị trí Địa lý |
S76 | P07 | Jacob | Khám phá Cụm |
S56 | P03 | Ava | Thiết bị IoT |
S92 | P05 | Alexandra | Triển khai trên đám mây |
Trong bảng trên, chúng ta có phụ thuộc một phần; hãy để chúng tôi xem làm thế nào -
Các thuộc tính khóa chính là StudentID và ProjectID .
Như đã nêu, các thuộc tính không phải nguyên tố, tức là Tên sinh viên và ProjectName phải phụ thuộc về mặt chức năng vào một phần của khóa ứng viên, là Phụ thuộc một phần.
Tên sinh viên có thể được xác định bởi StudentID , điều này làm cho mối quan hệ Phụ thuộc một phần.
ProjectName có thể được xác định bởi ProjectID , điều này làm cho mối quan hệ Phụ thuộc một phần.
Do đó, < StudentProject > quan hệ vi phạm 2NF trong Chuẩn hóa và được coi là một thiết kế cơ sở dữ liệu xấu.
Ví dụ (Bảng được chuyển đổi thành 2NF)
Để loại bỏ Sự phụ thuộc một phần và vi phạm trên 2NF, hãy phân tích các bảng trên -
ID sinh viên | ProjectID | Tên sinh viên |
S89 | P09 | Olivia |
S76 | P07 | Jacob |
S56 | P03 | Ava |
S92 | P05 | Alexandra |
ProjectID | Tên dự án |
P09 | Vị trí Địa lý |
P07 | Khám phá Cụm |
P03 | Thiết bị IoT |
P05 | Triển khai trên đám mây |
Bây giờ quan hệ ở dạng Bình thường thứ 2 của Chuẩn hóa cơ sở dữ liệu