如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第6章关系数据库规范化理论6.1问题的提出6.2关系模式的规范化6.3多值依赖及关系的第四范式6.4关系规范化小结6.5函数依赖公理和模式分解6.6关系模式设计实例6.7本章小结1存在的问题2解决方法1.存在的问题1.存在的问题1.存在的问题1.存在的问题1.存在的问题2.解决方法6.2关系模式的规范化1.基本概念属性间的联系可分为3类。1)一对一联系(1∶1)设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一值与之对应;反之亦然,则称X、Y两属性间是一对一联系。例如,在关系模式S中,如果学生无重名,则属性sno和sname之间是一对一联系,一个学号唯一地决定一个姓名,一个姓名也唯一地决定一个学号。3)多对多联系(m∶n)设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中有m(m≥0)个值与之对应,而Y中的一个值也可以和X中的n个值(n≥0)相对应,则称Y对X是多对多联系。在关系模式S中,cname和score两属性间是多对多联系。一门课程对应多个成绩,而一个成绩也可以在多门课程中出现。Sno和cname、sno和score之间也是多对多联系。数据依赖是指通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质。在数据依赖中,函数依赖是最基本、最重要的一种依赖,它是属性之间的一种联系,假设给定一个属性的值,就可以唯一确定(查找到)另一个属性的值。例如,知道某一学生的学号,可以唯一地查询到其对应的系别,如果这种情况成立,就可以说系别函数依赖于学号。这种唯一性并非指只有一个记录,而是指任何记录。(1)X→Y,但YX,则称X→Y是非平凡的函数依赖。(2)X→Y,但YX,则称X→Y是平凡的函数依赖。因为平凡的函数依赖总是成立的,所以若不特别声明,本书后面提到的函数依赖,都不包含平凡的函数依赖。(3)若X→Y,Y→X,则称XY。(4)若Y不函数依赖于X,则记作XY。在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'Y,则称Y对X完全函数依赖,记作XY。若X→Y,如果存在X的某一真子集X'(X'X),使X'→Y,则称Y对X部分函数依赖,记作XY。前面讨论的属性间的3种联系,并不是每种联系中都存在函数依赖。(1)1∶1联系:如果两属性集X、Y之间是1:1联系,则存在函数依赖:XY。如学生关系模式S中,如果不允许学生重名,则有:snosname。(2)1∶n联系:如果两属性集X、Y之间是n∶1联系,则存在函数依赖:X→Y,即多方决定一方。如sno→sdept,sno→sage、sno→mname等。(3)m∶n联系:如果两属性集X、Y之间是m∶n联系,则不存在函数依赖。如sno和cname之间、cname和score之间就是如此。【例6-1】设有关系模式S(sno,sname,sage,ssex,sdept,mname,cname,score),判断以下函数依赖的对错。(1)sno→sname,sno→ssex,(sno,cname)→score。(2)cname→sno,sdept→cname,sno→cname。【例6-2】设有关系模式:学生课程(学号,姓名,课程号,课程名称,成绩,教师,教师年龄),在该关系模式中,成绩要由学号和课程号共同确定,教师决定教师年龄。该关系模式中包含的函数依赖有哪些?关系模式的完整表示是一个五元组:R(U,D,Dom,F)其中:R:关系名,代表一个关系模式;U:关系模式R的属性集合(属性组);D:属性集合U的数据域;Dom:属性到域的映射关系;F:属性集合U上的一组数据依赖的集合。由于D和Dom对设计关系模式的作用不大,在讨论关系规范化理论时可以把它们简化为三元组:R(U,F)从上式可以看出,数据依赖是关系模式的重要因素。设K是关系模式R(U,F)中的属性或属性集合,K'是K的任一真子集。若K→U,而不存在K'→U(K'U),则K为R的候选码(CandidateKey),简称码。例如:在关系模式S(sno,sdept,sage)中,sno是单码。在关系模式SC(sno,cno,score)中,属性组合(sno,cno)是码。在关系模式“签约(演员名,制片公司名,电影名)”中,由于一个制片公司可以为一部电影和多个演员签约,一个演员可以和多个制片公司签约饰演多部电影中的角色,一部电影可由不同的制片公司制作,所以此关系模式的码为(演员名,制片公司名,电影名),即为全码。关系模式R(U,F)中属性或属性集合X并非R的码,但X是另一个关系模式的码,则称X是R的外码(Foreignkey),也称外在码。当一个关系中存在还可以再分的数据项时,这