Saya memiliki masalah dengan bentuk normal kedua (2NF) dan saya tidak dapat menyelesaikannya dengan menggunakan Google. Itu membuat saya gila karena saya seorang guru dan saya tidak ingin mengajarkan hal-hal yang salah kepada murid-murid saya.
Mari kita punya tabel dengan 5 bidang.
Gradings = {StudentName, SubjectCode, SubjectName, #Exam, Grade}
Ketergantungan seperti ini:
StudentName, SubjectCode, #Exam -> Grade
SubjectCode -> SubjectName
SubjectName -> SubjectCode
Karenanya, kunci kandidat 1 adalah {StudentName, SubjectCode, #Exam} dan kunci kandidat 2 adalah {StudentName, SubjectName, #Exam} .
Atribut prima adalah {StudentName, SubjectCode, SubjectName, #Exam} dan atribut non-prime adalah Grade
Menurut definisi bentuk normal kedua, atribut non-prima tidak dapat bergantung pada bagian dari kunci kandidat. Satu-satunya atribut non-prima (Kelas) tidak bergantung pada bagian dari kunci kandidat sehingga tabel ini tampak di 2NF.
Masalahnya adalah saya pikir ada sesuatu yang salah (dan saya bisa saja salah). Saya pikir subyek harus memiliki meja sendiri.
Gradings = {StudentName, Code Subject, #Exam, Grade}
Subjects = {Kode Subjek, SubjectName}
Tetapi 2NF tidak menghasilkan ini. 3NF adalah tentang ketergantungan antara atribut non-prima sehingga tidak menghasilkan ini juga. Tetapi bagi saya tampaknya ini adalah hasil yang tepat, karena tidak memiliki redundansi.
Saya kira jika atribut non-prima didefinisikan sebagai "atribut yang bukan kunci kandidat", 2NF akan menghasilkan hasil yang diinginkan. Tapi saya telah memeriksa ini berulang-ulang dan atribut non-prima didefinisikan sebagai "atribut yang TIDAK MENDAPAT kunci kandidat".
Apa yang saya lakukan salah?