2017-04-08 66 views
0

的关系是我怎样才能将这个标准化为BCNF?

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-> appointNo和Timing不是超级关键。我如何减少BCNF?

回答

1

您正确地考虑到R1,R2在3NF中的分解,但不在BCNF中,因为您指定的原因(timing → appointNo违反了标准形式)。

所以你应该分解R2R3(timing, appointNo)R4(StdNo, advisor, timing),最后的分解是R1, R3, R4

请注意,通过此分解,依赖项StdNo,appointNo → timing,advisor不会保留。