范式_函数依赖

定义:

函数依赖:

通过某属性(集)能确定另外一个属性;

(X,Y)--->Z

完全函数依赖:

在函数依赖的基础上,该属性(集)的任意真子集不能确定另一个属性(单属性必定完全函数依赖);

(X,Y)--->Z 并且X!--->Z, Y!--->Z

部分函数依赖:

在函数依赖的基础上,该属性(集)的某真子集能确定另一个属性;

(X,Y)--->Z 并且X--->Z或者 Y--->Z

传递函数依赖:

假如 Z 函数依赖于 Y,且 Y 函数依赖于 X (『Y 不包含于 X,且 X 不函数依赖于 Y』这个前提),那么我们就称 Z 传递函数依赖于 X ;

(X,Y)--->Z , Z--->A, 则A传递函数依赖于(X,Y)

码:

设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K(这个“完全”不要漏了),那么我们称 K 为候选码,简称为

非主属性:不包含在任何一个码中的属性。(否则为主属性)

 

范式(NF):

第一范式(1NF):

指数据库表的每一列(即每个属性)都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。简而言之,第一范式就是无重复的列。

 

第二范式(2NF):

在关系理论中的严格定义我这里就不多介绍了(因为涉及到的铺垫比较多),只需要了解2NF对1NF进行了哪些改进即可。其改进是,2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖

第三范式(3NF):

3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。

 

BCNF范式:

在 3NF 的基础上消除主属性对于码的部分与传递函数依赖。

posted @ 2019-03-26 21:33  沼泽森林  阅读(390)  评论(0编辑  收藏  举报