Tôi gặp vấn đề với dạng bình thường thứ hai (2NF) và tôi đã không thể giải quyết nó bằng cách sử dụng Google. Nó làm tôi phát điên vì tôi là giáo viên và tôi không muốn dạy những thứ sai cho học sinh của mình.
Hãy có một bảng với 5 trường.
Gradings = {StudentName, SubjectCode, SubjectName, #Exam, Lớp}
Phụ thuộc theo cách này:
StudentName, SubjectCode, #Exam -> Lớp
Mã chủ đề -> Tiêu đề
Tên chủ đề -> Tiêu đề mã
Do đó, khóa ứng viên 1 là {StudentName, SubjectCode, #Exam} và khóa ứng viên 2 là {StudentName, SubjectName, #Exam} .
Các thuộc tính nguyên tố là {StudentName, SubjectCode, SubjectName, #Exam} và các thuộc tính không chính là Lớp
Theo định nghĩa của dạng thông thường thứ hai, một thuộc tính không phải là số nguyên tố có thể phụ thuộc vào một phần của khóa ứng viên. Thuộc tính không nguyên tố duy nhất (Lớp) không phụ thuộc vào một phần của khóa ứng viên nên bảng này có vẻ như trong 2NF.
Vấn đề là tôi nghĩ có gì đó không ổn (và tôi có thể sai). Tôi nghĩ các đối tượng nên có bảng riêng của họ.
Điểm số = {Tên sinh viên, Mã môn học, #Exam, Lớp}
Đối tượng = {Mã chủ đề, Tên chủ đề}
Nhưng 2NF không tạo ra điều này. 3NF là về sự phụ thuộc giữa các thuộc tính không phải là số nguyên tố nên nó cũng không tạo ra điều này. Nhưng dường như đây là kết quả đúng đắn, bởi vì nó không có sự dư thừa.
Tôi đoán nếu thuộc tính không phải là số nguyên tố được định nghĩa là "thuộc tính không phải là khóa ứng cử viên", 2NF sẽ tạo ra kết quả mong muốn. Nhưng tôi đã kiểm tra điều này nhiều lần và thuộc tính không phải là số nguyên tố được định nghĩa là "thuộc tính không BẮT ĐẦU cho khóa ứng viên".
Tôi đang làm gì sai?