sql三大范式

Posted John_leaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql三大范式相关的知识,希望对你有一定的参考价值。

一、第一范式:

必须有主键,列不可分。

 

二、第二范式:

当一个表是复合主键,非主键的字段不依赖于部分主键,

例如:

create table sci(

   sno int(32),cno int(32),grade int(32),credit int(32),

primary key sno,cno

)

非关键字属性credit仅函数依赖于cno,也就是credit部分依赖组合关键字(sno,cno)而不是完全依赖。

分成两个关系模式 sc1(sno,cno,grade),c2(cno,credit)。

 

 

 

三、第三范式:

关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递依赖

 

例----S1(SNO,SNAME,DNO,   DNAME, LOCATION)

 

关键字 SNO 对 LOCATION 函数决定是通过传递依赖 SNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。

 

解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)

以上是关于sql三大范式的主要内容,如果未能解决你的问题,请参考以下文章

Mysql的sql优化概念---三大范式

数据库☞“三大范式”

数据库的三大范式?

三大范式(小白视角,一看就懂)

三大范式

数据库设计三大范式