关系是
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的时序-> appointNo,并且时序不是超级密钥。我怎样才能减少到BCNF?
发布于 2017-04-08 16:22:28
您正确地认为R1
、R2
中的分解是在3NF中,而不是在BCNF中,因为您指定的原因(timing → appointNo
违反了正常形式)。
因此,您应该在R2
和R4(StdNo, advisor, timing)
中对其进行分解,最后的分解是R1, R3, R4
。
请注意,通过这种分解,依赖关系StdNo,appointNo → timing,advisor
不会被保留。
https://stackoverflow.com/questions/43295273
复制相似问题