首页 > 解决方案 > 单属性主键和第二范式(2NF)

问题描述

我不确定这句话是对还是错:“具有单个属性主键的表至少自动处于第二范式 (2NF)。”

我认为这是真的,但我无法证明为什么。

标签: databasedatabase-designprimary-keydatabase-normalization

解决方案


表格要符合第一范式,表格的一个属性不能有多个值

例如 ,

id   mobile_number   age
------------------------------
1    9xxx5xxxxx      25
     9xxx6xxxxx      
2    8xxxx5xxxx      26 
     7xxxx5xxxx      

这可以归一化为 1NF,如下所示,

id  mobile_number  age
------------------------------------
1   9xxx5xxxxx     25
1   9xxx6xxxxx     25
2   8xxxx5xxxx     26 
2   7xxxx5xxxx     26 

如果表处于第一范式并且没有非主属性依赖于任何候选键的适当子集,则称该表处于第二范式

这里候选键是 {id,mobile_number}

非主要属性是年龄

该表不在 2NF 中,因为非主要属性(年龄)仅取决于候选键(id)的适当子集。

为了将其标准化为 2NF,我们将表格拆分如下

id   mobile_number
------------------------------
1    9xxx5xxxxx
1    9xxx6xxxxx
2    8xxxx5xxxx
2    7xxxx5xxxx

id age
------
1  25
2  26  

推荐阅读