资源描述:
《关系数据库的设计理论课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章关系数据库的设计理论6.1问题提出6.2函数依赖6.3关系模式的规范化本章内容1.理解函数依赖的内涵3.掌握关系模式规范化的方法学习要求2.理解各种范式的内涵6.1问题提出前面已经讲了关于数据库设计的一般概念,那么针对一个具体问题,如何构造一个适合于它的数据库模式(关系模式的集合),即某一个具体问题,应该构造几个关系模式,每个关系模式都有哪些属性构成?这是数据库设计的问题。在讨论如何构建好的数据库模式之前,先看看不好的数据库模式可能带来的问题。6.1问题提出例:建立一个描述学校教务的数据库。属性包括:学生的学号(Sno)、所在系(Sde
2、pt)、系主任姓名(Mname)、课程号(Cno)、成绩(Grade)。用一个单一的关系模式表示:StudentU={Sno,Sdept,Mname,Cno,Grade}属性组中,码是(Sno,Cno)。各个属性间存在函数依赖关系,记作FF={Sno→Sdept,Sdept→Mname,(Sno,Cno)→Grade,Sno→Mname,(Sno,Cno)→Sdept,(Sno,Cno)→Mname}6.1问题提出关系模式Student中存在的问题:6.1问题提出6.1问题提出6.1问题提出6.1问题提出结论Student
3、关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。原因是:存在于模式中的某些属性间有数据依赖关系。解决方法:将关系模式的规范化。即通过分解关系模式来消除其中不合适的数据依赖。6.2函数依赖数据依赖:是一个关系内部属性与属性之间的一种约束关系。例:在student表中,sno确定了,则sdept就确定。有两种最重要的数据依赖:函数依赖和多值依赖。函数依赖:属性间这种依赖关系类似于数学函数中的y=f(x),自变量x确定之后,相应的函数值y也就确定;例:sdept=f(sno),即sno->sdept
4、;sname=f(sno),即sno->sname;函数依赖的数学定义:设R(U)是一个属性集U上关系模式,X和Y是U子集;若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。6.2函数依赖函数依赖的一般定义说明:1.函数依赖和其他数据依赖一样,是一个语义范畴的概念;只能根据语义来确定一个函数依赖;如:2.函数依赖是指关系模式R(U)的所有关系都要满足的约束的条件;所有关系实例均要满足,并不是R的某些关系实例满足的约束条件;(如:CS系学生
5、,IS系学生)6.2函数依赖函数依赖相关类型:完全函数依赖与部分函数依赖定义:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖(Fully)。记作:若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖(Partially)。记作:6.2函数依赖例:在上例中,(Sno,Cno)→Grade是完全函数依赖;(Sno,Cno)→Sdept是部分函数依赖;因为Sno→Sdept成立,且Sno是(Sno,Cno)的真子集;2.传递函数依赖定义:在R(U)中,如果X→Y,(YX),Y→X,Y→Z,则称Z对
6、X传递函数依赖。记为:X→Z注:如果Y→X,即X←→Y,则Z直接函数依赖于X。例:在上例中,有:Sno→Sdept,Sdept→Mname,Sdept→SnoMname传递函数依赖于Sno6.2函数依赖利用函数依赖来定义码:设K为R中的属性或属性组合。若,则K称为R的侯选码(CandidateKey)。若候选码多于一个,则选定其中的一个做为主码。包含在任何一个候选码中的属性,称为主属性(Primeattribute);不包含在任何候选码中的属性称为非主属性(Nonprimeattribute)或非码属性(Non-keyattribu
7、te)。例:关系模式S(Sno,Sdept,Sage)中,Sno->(Sno,Sdept,Sage),则属性Sno是码;SC(Sno,Cno,Grade)中,(Sno,Cno)->(Sno,Cno,Grade),则(Sno,Cno)是码。FF6.3关系模式的规范化设计关系模式时,应满足的基本要求:(1)元组的每个分量必须是不可再分的数据项。(2)数据库中的数据冗余应尽可能少。(3)关系数据库不能因为数据更新操作而引起数据的不一致问题。(4)当执行数据插入操作时,数据库中的数据不能产生插入异常现象。(5)数据库中数据不能产生删除操作异常问题。(
8、6)数据库设计应考察查询要求,数据组织应合理。6.3关系模式的规范化为了使数据库设计的方法走向完备,人们研究了规范化理论,对关系模式进行规范化。满足不同规范化程度要