2017-04-08 65 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不會保留。