前提知识
- 什么是键码?
如果一个属性或多个属性的集合{A,B,C,D….}满足下面的条件,称为关系R的键码。 - 这些属性函数决定该关系的所有其它属性。
A,B,C,D….}的任何真子集都不能函数决定R的其它属性,也就是说{A,B,C,D….}必须是最小的。
什么是主属性?
键码所在的属性成为主属性。什么是非主属性?
非键码所在的属性称为非主属性。例子:
比如上图中,Sno
和Cname
就是主属性,其他的为非主属性。{Sno,Cname}
为键码。
四种范式
- 第一范式
如果一个关系模式中所有属性都是不可分割的基本属性
,则这个关系模式属于第一范式
- 第二范式
如果一个关系模式属于第一范式,其中所有非主属性都完全函数依赖于键码
,则属于第二范式
- 第三范式
如果一个关系模式属于第一范式,其中所有非主属性都不传递依赖于键码
,则属于第三范式
- BC范式
如果一个关系模式属于第一范式,其中所有属性都不传递依赖于键码
,则属于BC范式