I. Định nghĩa các dạng chuẩn
Dạng chuẩn 2NF
2NF là dạng chuẩn chặt hơn dạng chuẩn 1NF.
Một quan hệ là ở 2NF nếu và chỉ nếu nó ở dạng 1NF và mỗi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính.
Nhận xét: Nếu quan hệ ở 1NF và có khóa chỉ là một thuộc tính thì nó đã tồn tại ở 2NF.
Hoang Thi Ha
2NF
Vậy, vấn đề là khi quan hệ có khóa chính có nhiều hơn một thuộc tính.
Ví dụ: Trong quan hệ Diem có khóa chính là
2NF
Xét quan hệ Student với các thuộc tính sau:
Student (student_no, course_no, student_name, address, course_name, grade)
Hoang Thi Ha
2NF
Trong quan hệ trên ta nhận thấy:
student_no student_name, address
student_no không xác định course_name
course_no course_name, nhưng không xác định
student_name, và address.
Ta có thẻ biểu diễn các PTH bằng cách sử dụng sơ đồ PTH sau:
2NF
Sơ đồ trên cho thấy các thuộc tính không khóa của của quan hệ Student liên quan với các thuộc tính khóa. Một mũi tên áp dụng cho một PTH, ngược lại không áp
dụng cho PTHStudent
Student
student_no course_no student_name address course_name grade
Hoang Thi Ha
2NF
Vậy, quan hệ trên không ở 2NF.
Ta sẽ chia quan hệ trên thành 3 quan hệ:
Quan hệ Student_detail với các thuộc tính mà chỉ có thuộc tính student_no làm khóa chính.
Quan hệ thứ hai là Course bao gồm các thuộc tính chỉ PTH vào thuộc tính course_no, trong quan hệ này khóa chính là course_no.
Thuộc tính grade PTH vào cả hai thuộc tính là khóa của 2 quan hệ trên (student_no, course_no), vì vậy tách
thành quan hệ riêng bao gồm các thuộc tính student_no, course_no và grade.
2NF
Student_details
Course
student_no student_name address
course_no course_name
student_no course_no grade Student
Hoang Thi Ha
2NF
Với cách chia trên ta nhận thấy, trong các quan hệ mới tất cả các thuộc tính sẽ PTH đầy đủ vào khóa chính. Vì xậy, các quan hệ này đều là ở 2NF.