假设我们有像(employee, address, phone)
之类的关系 - 或类似的东西 - 例如(userid, login_name, password)
- 第一个字段是关键字。
感觉它不是“标准化”,因为我们可以将它分成两部分(员工,地址)和(员工,电话) - 如果某个员工没有电话(或者有两部电话),那就特别好。
据我了解,它并没有违反2NF并且符合1NF要求(至少在我们尝试为手机插入null之前) - 但我无法证明它是如何违反3NF的。
所以问题是 - 这种关系是否符合第三范式。或者它是否违反了我没想到的其他一些?
答案 0 :(得分:0)
最后我明白问题在于在这个问题上弄乱了两种不同的关系:
如果我们确定一名员工只能拥有一部电话,则employee
是候选密钥且该关系满足第二和第三范式的要求;
但如果员工可以拥有多部手机,那么employee
就不再是一把钥匙了 - 相反,元组(employee, phone)
会成为候选键 - 如果是,则会违反第二范式,因为address
仅取决于候选键的一部分 - employee
字段。
对不起,无论谁读到这个问题,我都会感到很不自在。