2009-12-12 33 views

回答

2

如果您符合1NF,2NF和3NF的规则,则您的数据库位于3NF中。

作为粗略指南。

  1. 在单行中没有重复的数据。

  2. 消除被重复多次(I认为这是“参考”的数据,例如查找。等CustomerRelationshipType事情)

  3. 删除任何数据子集(其中,相同的数据被以不同的方式显示的列)与表格的键不直接相关的数据(这是一个检查,以确保你没有不必要地携带任何东西或可能将某些东西存储在错误的表格中)。

3

是否有任何非关键字段依赖于不属于关键字的另一个字段?如果是这样,那么架构不在3NF。

+1

这仍然是1NF。如果它取决于整个密钥,它只是2NF –

+0

不,他是正确的,从维基百科复制:“要求非密钥属性依赖于”整个密钥“确保一个表在2NF;进一步要求非密钥属性取决于“只有关键”,确保表格在3NF中。“ –

+0

对不起,我假设2NF。 –

1

如果所有非关键属性依赖于键,整个键,不过按键的话,那应该是第三范式。

当然,原子性已经被假定了。

0

您的数据库是3NF,当且仅当它遵循任何一个或两个以下规则:

规则1:对于每一个给定的FD的,FD的左手边(LHS)应超密钥对任何表数据库。

OR

规则2:对于每个给定的FD的,FD的右手边(RHS)应该是蚂蚁关系/表主属性。

有关超密钥更详细,主属性等等,请参考:Detailed explanation of Normal forms and Database.