我需要知道这个关系是否在3NF和BCNF中,为什么?

时间:2014-01-19 00:09:47

标签: database database-normalization functional-dependencies

这是我正在处理的数据库项目,我对与3NF和BCNF有关的部分感到困惑,我理解它们但不能将它们应用到我自己的关系中,并且希望如果它得到了回答对我而言,我可以自己继续其余的关系。

员工:( SID,Fname,MI,Lname,Position,Shift,Phone_number,DoB,DoE,Gender,Apt_Number,City,Zip_code)

FD1:(SID) - > (Fname,MI,Lname,Position,Shift,Phone_number,DoB,DoE,Gender,Apt_Number,City,Zip_code);

FD2 :( Fname,MI,Lname,DoB) - > (SID,Position,Shift,Phone_number,DoE,Gender,Apt_Number,City,Zip_code)

FD3:(Zip_code) - > (城市)

谢谢。

1 个答案:

答案 0 :(得分:0)

确定它很简单,我明白了。因为在FD3中,Zip_code不是主键,而城市可以有多个Zip_code,那么它不在3NF中并且必须被分解。制作另一个名为Zip_Locations的表:{Zip_code(主键),City} .Zip_Locations只有一个FD,它的非主要依赖于候选或主键,所以它自动满足3NF。工作人员看起来像这个工作人员:( SID,Fname,MI,Lname,Position,Shift,Phone_number,DoB,DoE,Gender,Apt_Number,Zip_code)然后我可以放心地说这些关系是在BCNF,因为所有非主键严格依赖候选人的钥匙。加上如果关系中只有一个主键并且它已经满足3NF那么它会自动满足BCNF。

这个网站帮助很多,http://www.tomjewett.com/dbdesign/dbdesign.php?page=subkeys.php