数据库依赖及范式
部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
例如:通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。
完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
例如: 通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB.
传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
例如: 通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么成C传递依赖于A
1、第一范式(1NF):一个关系模式R的所有属性都是不可分的基本数据项。
2、第二范式(2NF):满足第一范式,然后消除部分依赖。
3、第三范式(3NF): 满足第二范式,消除传递依赖。
若关系模式属于第一范式,且每个属性都不传递依赖于键码,则R属于BC范式。
通常BC范式的条件有多种等价的表述:每个非平凡依赖的左边必须包含键码;每个决定因素必须包含键码。BC范式既检查非主属性,又检查主属性。当只检查非主属性时,就成了第三范式。满足BC范式的关系都必然满足第三范式。还可以这么说:若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式。
一般,一个数据库设计符合3NF或BCNF就可以了。在BC范式以上还有第四范式、第五范式。
第四范式:要求把同一表内的多对多关系删除。
第五范式:从最终结构重新建立原始结构。