欢迎来到天天文库
浏览记录
ID:50047249
大小:497.00 KB
页数:71页
时间:2020-03-08
《数据库基础与应用 教学课件 作者 王珊 李盛恩 第07章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第7章关系数据库设计理论7.1数据依赖对关系模式的影响7.2函数依赖7.3范式7.4多值依赖与第4范式(4NF)7.5关系模式的规范化7.6数据依赖的公理系统退出7.1数据依赖对关系模式的影响关系数据库规范化理论中的重要概念是数据依赖。数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性值之间的依赖关系来体现的。数据依赖中最重要的是函数依赖(FunctionalDependency,FD)和多值依赖(MultivaluedDependency,MVD)。属性间的这种依赖关系类似于数学中的函数y=f(x),自变量x确定之后,相应的函数值y也就惟一地确定了。现在
2、我们建立一个描述学校教务的数据库,该数据库涉及的对象包括学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)和成绩(Grade)。假设我们用一个单一的关系模式Student来表示,则该关系模式的属性集为:U={Sno,Sdept,Mname,Cname,Grade}现实世界的已知事实(语义)告诉我们:(1)一个系有若干学生,但一个学生只属于一个系。(2)一个系只有一名主任。(3)一个学生可以选修多门课程,每门课程有若干学生选修。(4)每个学生所学的每门课程都有一个成绩。从上述事实我们可以得到属性集U上的一组函数依赖F(如图7.1所示):F={
3、Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}如果只考虑函数依赖这一种数据依赖,我们就得到了一个描述学生的关系模式:Student1.数据冗余太大例如,每一个系主任的姓名重复出现。2.更新异常(UpdateAnomalies)例如,某系更换系主任后,系统必须修改与该系学生有关的每一个元组。3.插入异常(InsertionAnomalies)如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。4.删除异常(DeletionAnomalies)如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其系主任
4、的信息也丢掉了。一个关系模式之所以会产生上述问题,是由存在于模式中的某些数据依赖引起的。规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。7.2函数依赖7.2.1函数依赖定义7.1设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系实例r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。对于函数依赖,需要说明以下几点:(1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满
5、足的约束条件。(2)函数依赖和别的数据之间的依赖关系一样,是语义范畴的概念。我们只能根据数据的语义来确定函数依赖。例如,“姓名→年龄”这个函数依赖只有在没有同名人的条件下成立。如果有相同名字的人,则“年龄”就不再函数依赖于“姓名”了。(3)X→Y,但YX则称X→Y是非平凡的函数依赖。(4)X→Y,但YX则称X→Y是平凡的函数依赖。对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。若不特别声明,总是讨论非平凡的函数依赖。(5)若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。(6)若X→Y,并且Y→X,则记为X←→Y。(7)若Y函
6、数不依赖于X,则记为XY。(8)若X→Y,并且对于X的任何一个真子集X',都有X'Y,则称Y完全函数依赖于X,记作XY,否则称Y部分函数依赖于X,记作XY。(9)若X→Y,Y→Z,且Y∈X,YX,则称Z传递函数依赖于X。加上条件YX,是因为如果Y→X,则X←→Y,实际上是X→Z,即是直接函数依赖而不是传递函数依赖。属性集U上的关系模式R(U)常常表示为R,F是属性集U上的一组函数依赖。7.2.2码码是关系模式中一个重要概念。下面我们用函数依赖的概念来定义码。定义7.2设K为关系模式R中的属性或属性组合,若KU,则K称为R的一个候选码(CandidateKey)
7、。若关系模式R有多个候选码,则选定其中的一个作为主码(Primarykey)。主码用下横线(_)显示出来。包含在任何一个候选码中的属性,叫作主属性(Primeattribute)。不包含在任何码中的属性称为非主属性(Nonprimeattribute)或非码属性(Non-keyattribute)。最简单的情况,单个属性是码。最极端的情况,全部属性是码,称为全码(All-key)。例如,在关系模式S(Sno,Sdept,Sage)中Sno是码。关系模式R(P,W,A),属性P表示
此文档下载收益归作者所有