Định nghĩa: Lược đồ quan hệ R ở dạng chuẩn thứ hai (2NF) nếu nó ở dạng chuẩn thứ nhất và nếu mỗi thuộc tính không khoá của R là phụ thuộc hàm đầy đủ vào khoá chính.
Lý do cần đưa về dạng chuẩn thứ 2: Xét ví dụ sau:
THI (MONTHI GIAOVIEN)
3 A
4 V
5 C
SINHVIEN (MONTHI MASV TEN TUOI DIACHI DIEM)
3 11 An 20 X 7
3 12 Hoa 21 Y 8
4 11 An 20 X 9
4 12 Hoa 21 Y 6
5 15 Lan 20 Z 7
- Trong quan hệ THI thì MONTHI là khoá; và MONTHI, MSSV là khoá của quan hệ SINHVIEN.
- Trong CSDL này tồn tại một số vấn đề sau:
+ Trong quan hệ SINHVIEN, việc lưu trữ thông tin một sinh viên ví dụ như An phải lặp lại 2 lần địa chỉ và 2 lần tuổi. Như vậy là quá dư thừa
+ Quá trình cập nhật dữ liệu gây một số cản trở:
Phép thay đổi: Khi cần thay đổi địa chỉ của An thì cần phải thay đổi 2
lần, gây tốn kém thời gian. Hơn nữa, khi sửa đổi thông tin về một sinh viên lại không liên quan gì tới thông tin về thi cử.
Phép chèn: Trong quan hệ SINHVIEN chỉ chứa thông tin về những
không được vì không rõ sinh viên đó đã thi chưa; khoá MONTHI, MSSV là không đầy đủ. Chỉ có thể khắc phục bất lợi này nếu loại bỏ những thông tin về thi cử ra khỏi quan hệ.
Phép loại bỏ: Giả sử khi cần loại bỏ môn thi thứ 5 mà danh sách sinh
viên vẫn giữ nguyên. Khi đó, ở quan hệ THI xoá bộ (5,c), còn nếu ở quan hệ SINHVIEN nếu xoá môn thi thứ 5 thì thông tin về sinh viên Lan sẽ bị mất.
Để khắc phục được những nhược điểm trên, quan hệ SINHVIEN có thể tách thành hai quan hệ SINHVIEN (MSSV, TEN, TUOI, DIACHI) và quan hệ KETQUA (MONTHI, MSSV, DIEM). Như vậy, CSDL lúc này thành ba quan hệ đã ở dạng chuẩn thứ 2.
Ví dụ: Xác định dạng chuẩn của lược đồ quan hệ sau:
R(GMVNHP)
F = {G→N; G→H; G→P; M→V; NHP→M}
Khoá của R là G; thuộc tính không khoá là M, V, N, H, P
Do các phụ thuộc hàm G→M; G→V; G→N; G→H; G→P là các phụ thuộc hàm đẩy đủ, nên lược đồ quan hệ R đạt dạng chuẩn 2.
Hệ quả:
- R đạt 2NF nếu R là 1NF và tập thuộc tính không khoá của Q bằng rỗng
- Nếu khoá của quan hệ có một thuộc tính thì quan hệ đó ít nhất đạt chuẩn thứ 2.
Ví dụ: R(ABCDEH) với F = {A→E; C→D; E→DH} Khoá của Q là K = {ABC}
D là thuộc tính không khoá và C→D, vì C là tập con thực sự của khoá nên R không đạt dạng chuẩn thứ 2.
Thuật toán kiểm tra dạng chuẩn 2
Input: Lược đồ quan hệ Q, tập phụ thuộc hàm F
Output: Khẳng định Q đạt chuẩn 2 hay không đạt chuẩn 2. Bước 1: Tìm tất cả khóa của Q
Bước 2: Với mỗi khóa K, tìm bao đóng của tất cả tập con thật sự S của K.
Bước 3: Nếu có bao đóng S+ chứa thuộc tính không khóa thì Q không đạt chuẩn 2
Ngược lại thì Q đạt chuẩn 2