1、*,数据库原理及应用,电子科技大学,-,陆鑫,数据库系统原理与开发,4.4-1,数据库规范化设计,函数依赖,理解,数据库规范化设计的意义,理解非规范关系在数据操作中出现,的,问题,理解,函数依赖与关系属性,【,本节学习目标,】,减少数据库中的,冗余数据,,尽量使,同一数据在数据库中仅保存一份,有效降低维护数据一致性的工作量。,设计合理的表间依赖关系和约束关系,便于实现数据完整性和一致性。,设计合理的数据库结构,便于系统对数据高效访问处理。,一、为什么需要,规范化数据库设计,?,二、非规范化关系表的数据操作问题,雇员,(,雇员编号,,姓名,职位,工资,所属部门,部门地址),例,“雇员”关系表,的
2、模式语句及其数据如下所示:,1.,“雇员”关系表,数据插入操作,例,1,新入职的雇员“李青”分配到“产品部”,。对雇员关系表执行如下插入数据,SQL,语句。,Insert Into Employee Values(E0015,李青,工程师,,8500,产品部,E,区,3,栋,),;,问题,:产品部的地点信息出现不一致。,例,2,从表,4-4,所示的雇员关系表中,删除雇员编号为“,E0005,”的,雇员,数据,。,问题,:,在该关系表中,“质检部”信息就再也没有了,。,2.,“雇员”关系表,数据删除操作,例,3,在,表,4-4,所示的雇员关系表中,,修改“萧静”雇员所在财务部的地址,为“,A,幢
3、,201,”,。,问题,:,在该关系表中,“,财务,部”,地址数据不一致。,3.,“雇员”关系表,数据修改操作,同一关系中存在多个主题信息,如“雇员信息”、“部门信息”,关系表中存储冗余数据,如多个雇员数据记录中有相同部门信息,5.,“雇员”关系表,数据访问操作异常的原因,4.,“雇员”关系表,数据访问操作存在的异常,插入数据异常,删除数据异常,修改数据异常,结论,:,不,规范的关系表,可能存在数据冗余,引出数据,访问,操作异常现象,,,难以,使数据库,保持数据的一致性。,三、,函数依赖理论,定义,:设有一关系模式,R,(,U,),,U,为关系,R,的属性集合,,X,和,Y,为属性,U,的子集
4、。设,t,,,s,是关系,R,中的任意两个元组,如果,tX=sX,,则,tY=sY,。那么称,Y,函数依赖于,X,,表示为,XY,。,1.,函数依赖的,数学,定义,函数依赖的左部称为,决定因子,,右部称为,依赖,函数,。决定因子和依赖,函数,都是属性的集合。,说明:,函数依赖反映属性或属性组之间相互依存、互相制约的关系,即,关系表中属性之间的依赖关系。,2.,函数依赖,的类型,完全函数依赖,部分函数依赖,属性传递依赖,多值函数依赖,定义,1,:设X、Y是某关系的不同属性集,如,XY,,且不存在,X,X,,使,XY,,则Y称,完全函数依赖,,否则称Y,部分函数依赖,。,例,1,对于关系,R,(,
5、X,Y,N,O,P,),其中(,X,,,Y,)为复合主键,若其它属性,N,O,P,都完整依赖于该复合主键,则称关系,R,为完全函数依赖。反之,其它属性,N,O,P,仅依赖于,X,,或仅依赖于,Y,,则称,R,为部分函数依赖。,定义,2,:设X、Y、,Z,是某关系的不同属性集,有,XY,,,,,YZ,,若,XZ,,称,Z,对,X,存在,函数传递依赖,。,例,2,对于关系,R,(,X,N,O,P,),其中,X,为主键,若属性,N,依赖于,X,,而,X,不依赖于,N,,属性,O,依赖于,N,。则属性,O,函数传递依赖于,X,。,定义,3,:设,U,是关系模式,R,的属性集,,X,和,Y,是,U,的子集,,Z=U-X-Y,,,xyz,表示属性集,XYZ,的值。对于,R,的关系,r,,在,r,中存在元组(,x,y1,z1,)和(,x,y2,z2,)时,也存在元组(,x,y1,z2,)和(,x,y2,z1,),那么在模式,R,上存在,多值函数依赖,。,例,3,对于教学关系,R,(课程,教师,课程参考书),,一门课程可以有多个任课教师,也可以有多本参考书;每个任课教师可以任意选择他的参考书,。该关系存在多值函数依赖。,本节学习结束!,