关系数据库设计理论与范式

版权声明:转载请注明出处 https://blog.csdn.net/qq_39385118/article/details/86295059

1. 引言

关系数据库设计理论主要包括三个方面的内容:函数依赖、范式和模式设计。

2. 规范化

2.1 函数依赖

设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任何一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X函数决定Y,或Y函数依赖于X,记作X -> Y。称X为决定因素,Y为依赖因素。
例如关系模式学生成绩
U={sno,sn,age,dept,mn,cno,score}
F={sno->sn,sno->age,sno->dept,dept->mn,sno->mn,(sno,cno)->score}
(1)函数依赖与属性间的联系类型有关:
在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖X->Y,Y->X。
如果属性X与Y有m:1的联系时,则只存在函数依赖X->Y,例如SNO->AGE。
如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。

2.2 完全/部分函数依赖和传递/非传递函数依赖

设有关系模式R(U),U是属性全集,X和Y是U的子集,X->Y,并且对于X的任何一个真子集都不能推出Y,则称Y对X完全函数依赖(Full Function Dependency),反之为部分函数依赖(Partial Functional Dependency)。

设有关系模式R(U),U是属性全集,X,Y,Z是U的子集,若X->Y(Y不属于X),Y不能推出X,又Y->Z,则成Z对X传递函数依赖(Transitive Functional Dependency)。

3. 范式

规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中不合适的部分,解决数据插入、删除和修改时发生的异常现象。关系数据库的规范化过程中为不同程度的规范化要求设立的不同的标准或准则称为范式。一个低一级的范式的关系模式,通过模式分解可以转换为若干个高一级的范式的关系模式的集合,这种过程叫做规范化。

范式关系

各范式之间的关系
在下面的讨论中我们以学生成绩表SDC(SNO,CNO,AGE,DEPT,MN)为例进行逐级标准化。

3.1 第一范式

如果关系模式R所有属性均为简单属性,即每个属性都是不可再分的,则称R为第一范式。

3.2 第二范式

如果关系模式属于第一范式,R(U,F)中的所有非主属性都完全函数依赖于任意一个候选关键字,则称关系R属于第二范式。即不存在某非主属性对某候选关键字存在部分函数依赖。

第二范式规范化:由于(SNO,CNO)->AGE,SNO->AGE,所以存在AGE对(SNO,CNO)部分函数依赖。分解时遵循的原则是“一事一地”,让一个关系只描述实体或实体间的关系。如果多于一个实体或联系,则进行投影分解。
SD(SNO,SN,AGE,DEPT,MN),描述学生实体
SC(SNO,CNO,SCORE),描述学生与课程的联系

分解之后SD与SC都属于第二范式,他们通过SC中的外键SNO相联系,需要时进行自然连接就能恢复成原来的关系。

3.3 第三范式

如果关系模式R属于第二范式,R(U,F)中的所有非主属性对任何候选关键字都不存在传递函数依赖,则称R是属于第三范式。
第三范式规范化:第三范式规范化是指把第二范式通过投影分解,消除非主属性对候选关键字的传递函数依赖。,同样遵循“一事一地”原则。
由于第二范式中,SD表中SNO->DEPT,DEPT->MN,所以存在传递函数依赖,将关系模式SD可分解为
S(SNO,SN,AGE,DEPT)描述学生实体
D(DEPT,MN)描述系的实体

3.4 BC范式

如果关系模式R属于第一范式,且所有的函数依赖X->Y(Y不包含于X),决定因素X都包含了R的一个候选码,则称R属于BC范式。其特点如下:
(1)所有非主属性对每一个候选码都是完全函数依赖
(2)所有的主属性对每一个不包含他的候选码都是完全函数依赖
(3)没有任何属性完全函数依赖于非码的任何一组属性
(4)若R属于第三范式,R未必属于BC范式,下面举例说明。
设有关系模式SCS(SNO,SN,CNO,SCORE)并假设学生不重名。唯一非主属性SCORE对键不存在部分函数依赖,也不存在传递函数依赖,所以SCS是第三范式,但是由于(SNO,CNO)->SN,SNO->SN,所以他不属于BC范式。
BC范式的规范化:是指把第三范式通过投影分解成BCNF关系模式集合。由于SCS中冗余的原因是存在两个实体:学生实体和选课实体,将他们分解为如下关系
S(SNO,SN)描述学生实体
SC(SNO,CNO,SCORE)描述学生与课程的联系

另外还有第四范式和第五范式,等需要的时候再总结。

猜你喜欢

转载自blog.csdn.net/qq_39385118/article/details/86295059