2NF là gì?
Bước thứ hai trong Chuẩn hóa là 2NF.
Một bảng ở 2NF, chỉ khi một quan hệ ở 1NF và đáp ứng tất cả các quy tắc, và mọi thuộc tính non-key (không phải khóa) phụ thuộc đầy đủ vào khóa chính.
Dạng chuẩn thứ hai loại bỏ các phụ thuộc một phần trên khóa chính.
Ví dụ:
Ví dụ (Bảng vi phạm 2NF)
<StudentProject>
| StudentID | ProjectID | StudentName | ProjectName |
| S89 | P09 | Olivia | Geo Location |
| S76 | P07 | Jacob | Cluster Exploration |
| S56 | P03 | Ava | IoT Devices |
| S92 | P05 | Alexandra | Cloud Deployment |
Trong bảng trên, chúng ta có phụ thuộc một phần; hãy xem cách thức:
Các thuộc tính khóa chính là StudentID và ProjectID.
Như đã nêu, các thuộc tính non-prime là StudentName và ProjectName nên phụ thuộc hàm vào một phần của khóa ứng viên, để thành Phụ thuộc một phần.
StudentName có thể được xác định bởi StudentID, làm cho quan hệ thành Phụ thuộc một phần.
ProjectName có thể được xác định bởi ProjectID, làm cho quan hệ thành Phụ thuộc một phần.
Do đó, quan hệ <StudentProject> vi phạm 2NF trong Chuẩn hóa và được coi là thiết kế cơ sở dữ liệu kém.
Ví dụ (Bảng chuyển sang 2NF)
Để loại bỏ Phụ thuộc một phần và vi phạm 2NF, phân rã các bảng trên:
<StudentInfo>
| StudentID | ProjectID | StudentName |
| S89 | P09 | Olivia |
| S76 | P07 | Jacob |
| S56 | P03 | Ava |
| S92 | P05 | Alexandra |
<ProjectInfo>
| ProjectID | ProjectName |
| P09 | Geo Location |
| P07 | Cluster Exploration |
| P03 | IoT Devices |
| P05 | Cloud Deployment |
Bây giờ quan hệ ở dạng chuẩn thứ 2 của Chuẩn hóa cơ sở dữ liệu.
