关系是
Student(StdNo,StdName,appointNo,timing,advisor)
和功能依赖性是:
StdNo->StdName
StdNo,appointNo->Timing,advisor
Timing->appointNo
通过标准化为2NF,我得到:
R1(stdNo,appointNo,Timing,advisor)
R2(stdNo,StdName)
我认为这已经在3NF了。但是我很难减少到BCNF。
对于BCNF,我认为R1关系违反了BCNF作为Timing-> appointmentNo和Timing不是超级密钥。我怎样才能减少到BCNF?
答案 0 :(得分:1)
考虑到R1
,R2
中的分解是3NF而不是BCNF,你是正确的,因为你指定的原因(timing → appointNo
违反了正常形式)。< / p>
所以你应该在R2
和R3(timing, appointNo)
中分解R4(StdNo, advisor, timing)
,最后的分解是R1, R3, R4
。
请注意,通过此分解,不会保留依赖项StdNo,appointNo → timing,advisor
。