当前位置: 代码迷 >> 综合 >> 范式(1NF、2NF、3NF、BCNF)
  详细解决方案

范式(1NF、2NF、3NF、BCNF)

热度:48   发布时间:2023-11-07 07:45:50.0

候选码:集合(元组)中的属性或属性组,能唯一决定集合(元组)(可以子集亦可决定)。

传递依赖 :A->B->C,则C传递依赖A。

函数依赖:字段之间的对应关系。

EG:

(A,B,C,D,E),
其函数依赖关系:F={ABC->DE,BC->D,D->E}。 
其候选码为:ABC。         
而非BC的原因是:BC为候选码不包括A,元组不完整,而ABC为候选码,决定DE,一共ABCDE与元组相符合。     

EG2:

R(S,Y,Z) ,F={Y->Z,XZ->Y}  
候选码:XY(吵码) , XZ
3NF

 

 

第一范式(1NF): 列原始不可再分;第一行就可再分,第二行不可再分。

数据库

文章
Oracle数据库 MySQL数据库 博客 随笔

 

 

第二范式(2NF):属性完全依赖于主键;(要有主键,且若是联合主键不能存在部分依赖:(S,T)作为主键,S或T不能决定其它属性,否则就是部分依赖)。

第三范式(3NF):非主属性完全依赖于码;(不可存在传递依赖,即将A->B->C,变成两张表:A->B , B->C 可联表查询)。

BC范式(BCNF):在第三范式的基础上,所有的函数依赖中决定因素都包含码,即主属性和非主属性都依赖于码(消除函数依赖和部分依赖)。也就是说2、3NF消除的是非主属性的部分依赖和传递依赖,BCNF是消除所有(主和非主)属性的部分依赖和传递依赖。