数据库归一化为3NF或BCNF

时间:2016-06-13 01:15:47

标签: mysql database normalization database-normalization

我正在进行数据库规范化以使其最小化为3NF,但我不能只在最后一个中继续。

最后一张表我有以下按键。 ID,Organization_number和名称。 ID是主键。 ID可以确定ORG_NR和Name,ORG_NR也可以确定ID和名称。 我知道这违反了3NF。 所以我的问题是,我应该做些什么才能达到3NF甚至是BCNF。

如果我将它拆分为表格,那就会使关系一对一。

My table

1 个答案:

答案 0 :(得分:2)

功能依赖性确定候选键。主键只是你决定称之为PK的CK。除了作为CK之外,PK在正常化方面没有任何作用。大概你知道ID是唯一的(并且{}不是CK),所以它是CK,你已经做了PK。 (但你应该说清楚。)

由于{ID}和{ORG_NR}都确定了所有其他属性,并且每个属性都没有更小的子集,因此它们都是CK。据推测,唯一的FD是跟随这些的FD。 (但你应该说清楚。)因为所有非平凡的FK都不在超级密钥中,所以这是在BCNF(以及3NF)。

PS因为你(错误地)认为这不是在3NF中,找到3NF的定义并尝试显示它是否满足3NF。