资源描述:
《[工学]第7章关系数据库设计理论ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章关系数据库设计理论4.1规范化问题的提出4.2函数依赖4.3范式4.4多值依赖与4NF4.5关系模式的分解在关系型数据库中,关系模型包括一组关系模式,并且各个关系不是完全独立的。要设计一个合适的关系数据库系统,必须进行数据库的规范化。规范化理论包括三个方面的内容:函数依赖、范式和模式设计。4.1规范化问题的提出4.1.1规范理论的主要内容4.1.2不合理的关系模式存在的存储异常问题例要求设计一教学管理数据库,其关系模式SCD如下SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)关系中
2、(SNO,SN)属性的组合能唯一标识一个元组,所以是该关系模式的主关键键。但进行数据库的操作时,会出现以下几方面的问题。1)数据冗余2)插入异常3)删除异常4)更新异常关系模式应满足的基本要求:1、元组的每一个分量必须是不可分的数据项;2、数据库中的数据冗余应尽可能的少;3、关系数据库不能因为数据更新操作而引起数据不一致问题4、当执行数据插入操作时,数据库中的数据不能产生插入异常现象5、数据库中的数据不能在执行删除操作时产生删除异常问题6、数据库设计应考虑查询要求,数据组织应合理。4.2.1函数依赖的定义
3、及性质关系模式中的各个属性之间相互依赖、相互制约的联系称为数据依赖。函数依赖、多值依赖是重要的数据依赖4.2函数依赖1、函数依赖定义设R〈U〉是属性集U上的关系模式,X、Y是U的子集。若对于R〈U〉的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等,则称X函数确定Y函数,或Y函数依赖于X函数,记作X→Y。我们称X为决定因素,Y为依赖因素,当Y不函数依赖于X时,记做XY。当X→Y且Y→X时,则记做X←→Y对于关系模式SCDU={SNO,SN,AGE,DEPT,MN,CNO,
4、SCORE}F={SNO→SN,SNO→AGE,SNO→DEPT}SNOSCORE但是(SNO,CNO)→SCORE说明:1)平凡的函数依赖与非平凡的函数依赖当属性集Y是属性集X的子集时,则必然存在着函数依赖关系X→Y,这种类型的函数依赖关系称为平凡的函数依赖。如果Y不是X的子集,则称X→Y为非平凡的函数依赖。2)函数依赖与属性之间的联系类型有关a、在一个关系模式中,如果属性X与Y有1:1的联系时,则存在函数依赖X→Y且Y→X,即X←→Y。(SNO、SN)b、如果属性X与Y有m:n的联系时,则不存在函
5、数依赖。(SNO、CNO)2、完全函数依赖和部分函数依赖在R〈U〉中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖,记作:X→Y;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X→Y。FPSNOSCORE,且CNOSCORE,有SCORE完全函数依赖于(SNO,CNO),SNO→AGE所以(SNO,CNO)部分函数依赖于AGE3、传递函数依赖SNO→DEPT,但DEPTSNO,而DEPT→MN,则有MN对SNO传递函数依赖在R〈U〉中,如果X→Y,(YX
6、),YX,Y→Z,则称Z对X传递函数依赖。传递函数依赖记作X→Z。T4、函数依赖可以保证关系分解的无损连接性设R(X,Y,Z),X,Y,Z为不相交的属性集合,如果X→Y或X→Z则有R(X,Y,Z)=R(X,Y)R(X,Z),其中R(X,Y)表示关系R在属性(X,Y)上的投影,即R等于其投影在X上的自然连接,这样就保证了关系R分解后不会丢失原有信息,称做关系分解的无损连接性。例如:对于关系模式SCD,有SNO→(SN,AGE,DEPT,MN),SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE
7、)=SCD[SNO,SN,AGE,DEPT,MN]SCD[SNO,CNO,SCORE]说明用其投影在SNO上的自然连接可复原关系模式SCD.5、码设K为关系模式R中的属性或属性组集合。若KU,则K称为R的一个候选码。若关系模式R有多个候选码,则选定其中一个作为主码。我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为范式(Normalform)。由于规范的程度不同,就产生了不同的范式。满足最基本规范化要求的关系模式叫第一范式,在第一范式中进一步满足一定要求的范式为第二范式,依次
8、类推就产生第三范式等概念。4.3范式4.3.1第一范式(1NF)定义:如果关系模式R所有属性均为简单属性,即每一个属性都是不可再分的,则称R属于第一范式,简称1NF.在任何一个关系数据库系统中,第一范式是关系模式的一个最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。关系模式SCD属于第一范式,但它具有大量的数据冗余,插入异常等弊端。出现问题的原因在SCD中的函数依赖关系。在SCD中既存在完全函数依赖,又存在部分函数