关系(员工,地址,电话)是否违反第3范式?

时间:2014-02-03 15:44:54

标签: database normalization

假设我们有像(employee, address, phone)之类的关系 - 或类似的东西 - 例如(userid, login_name, password) - 第一个字段是关键字。

感觉它不是“标准化”,因为我们可以将它分成两部分(员工,地址)和(员工,电话) - 如果某个员工没有电话(或者有两部电话),那就特别好。

据我了解,它并没有违反2NF并且符合1NF要求(至少在我们尝试为手机插入null之前) - 但我无法证明它是如何违反3NF的。

所以问题是 - 这种关系是否符合第三范式。或者它是否违反了我没想到的其他一些?

1 个答案:

答案 0 :(得分:0)

最后我明白问题在于在这个问题上弄乱了两种不同的关系:

  • 如果我们确定一名员工只能拥有一部电话,则employee是候选密钥且该关系满足第二和第三范式的要求;

  • 但如果员工可以拥有多部手机,那么employee就不再是一把钥匙了 - 相反,元组(employee, phone)会成为候选键 - 如果是,则会违反第二范式,因为address仅取决于候选键的一部分 - employee字段。

对不起,无论谁读到这个问题,我都会感到很不自在。