为什么要有范式

消除数据冗余、防止数据库操作异常(新增异常,删除异常,修改异常)

第一范式 1NF

所有的属性都不可再分,数据表的原子性

第二范式 2NF

某数据库关系模式R在属于第一范式的基础上,非主属性完全依赖于任何一个候选码。
规范化:消除非主属性对候选码的部分依赖。

分解为三个模式

第三范式 3NF

某关系模式R在属于第二范式的基础上,每个非主属性不传递依赖于R的每个关系键则属于第三范式,即不存在传递依赖
上述员工关系中,工资对员工编号传递依赖所以不属于3NF

关系R的候选键为S#,是单属性,不存在部分依赖,属于第二范式,但有传递依赖,所以R不属于第三范式
员工关系中,将关系模式E_S分解为两个关系模式

BC范式 BCNF

关系模式R属于第一范式,且所有的函数依赖 X—>Y (X∉Y),决定因素X都包含了R的一个候选键,则R属于BC范式
R∈3NF,且R只有一个候选码,那么R是BCNF
R∈3NF,R不一定是BCNF

 posted on 2020-03-20 16:19  whiplasher  阅读(224)  评论(0编辑  收藏  举报