数据库范式
关键词:
数据库 规范化
(一周前看的数据库范式,今天回顾,不知效果怎样。)
最基本的数据库范式有三个,第一范式(1NF),第二范式(2NF)和第三范式(3NF),分别定义如下,
1NF:如果关系模式R中的每个属性都是单值的,则称R∈1NF。
2NF:如果关系模式R∈1NF,且所有的非主属性完全函数依赖于(每一个候选)码,则称R∈2NF。
3NF:如果关系模式R∈2NF,且不存在非主属性传递函数依赖于码的情况,则称R∈3NF。
其中一些辅助概念定义如下,
函数依赖:
R(U)是属性集U上的关系模式。X,Y都是U的子集。如果对于R(U)任何一个可能的关系r,不可能存在r的两个元组,它们在X上的值相等,而在Y上的值不相等,则称X函数确定Y,Y函数依赖X。
这是一个完全形式化的定义,它的意思是关系模式在某个属性组上的值决定在另一个属性组上的值。
完全函数依赖:
如果X函数确定Y,但是对X的任何真子集X'都没有X'函数确定Y,则称Y完全函数依赖X。
完全函数依赖就是要求X在函数确定Y时,不能包含多余的属性。
传递函数依赖:
如果X函数确定Y,Y不能函数确定X,Y函数确定Z,则称Z对X传递函数依赖。
候选码,主码,主属性,非主属性:
对关系模式R(U),K是U的子集,如果K完全函数确定U,则称K为R(U)的一个候选码。在候选码中选定一个做为主码。包含在任何一个候选码中的属性称为主属性,不包含在任何一个候选码中的属性称为非主属性。
从候选码的定义可以看出,候选码是决定所有属性的,并且决定时不包含多余属性。不过一个关系模式总是有候选码存在。
|----------------------------------------------------------------------------------------|
版权声明 版权所有 @zhyiwww
引用请注明来源 http://www.blogjava.net/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-06-13 11:23
zhyiwww 阅读(1197)
评论(0) 编辑 收藏 所属分类:
database