【教学课件】第四章关系数据库设计理论.ppt
《【教学课件】第四章关系数据库设计理论.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章关系数据库设计理论.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 关系数据库设计理论前面介绍了关系数据库的基本概念、关系模型的三个组成部分,以及关系数据库的标准语言SQL。我们已知关系DB是由一组关系组成的,那么针对一个具体问题,应该如何构造一个适合于它的数据模式(即应构造几个关系,每个关系由哪些属性组成的等)?这就是关系数据库的模式设计问题。规范化理论正是指导我们进行设计的指南和有力工具。0第四章 关系数据库设计理论4.1 数据依赖4.2 范式4.3 关系模式的规范化14.1 数据依赖1.关系模式中的数据依赖关系DB是以关系模式为基础的DB,它利用关系描述现实世界。一个关系即可用来描述实体及其属性,也可用来描述实体间的联系。关系模式是用来定义关系的
2、,是对关系的描述。要清楚地刻画关系,关系模式应该是五元组:R(U,D,DOM,F)F F是属性间数据的依赖关系集合是属性间数据的依赖关系集合(既是描述关系的元组语义,限定组成关系的各个元组必须满足的约束条件)24.1 数据依赖在实际中,这些约束条件有些是通过对属性取值范围的限定反映出来,有些是通过属性间的相互关联反映出来。后者称为“数据依赖”。在关系模式中,对DB模式设计影响最大的是U和F。我们把五元组简化为三元组R(U,F),对F的理解应该是:一个关系模式上的数据依赖,必须是这个关系模式的所有关系都应满足的数据依赖。即:当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系。
3、34.1 数据依赖2.数据依赖对关系模式的影响数据依赖是通过关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。在数据依赖中,最重要的是函数依赖和多值依赖。函数依赖普遍存在于现实生活中,下面来看一个例子:44.1 数据依赖数据依赖对关系模式的影响我们建立一个数据库,用以描述某图书馆的一些情况,面临的对象有:借书证,读者,读者单位,联系电话,书号,书名,出版社,出版社地址,借阅日期。于是得到一组属性:U=U=借书证号,读者姓名,读者单位,单位电话,书号,书名,出版社,出版社地址,借阅日期 对这些属性有下面一些语义规定:每个读者只属于
4、一个单位 每个读者可借多本书 不同的书可有相同的书名 一个单位只设一个联系电话 不同的单位不能有相同的电话号码 一个出版社有一个地址,不同出版社可以在同一个地址4.1 数据依赖数据依赖对关系模式的影响由此得到属性组U上的一组函数依赖:F=F=借书证号读者姓名,借书证号读者单位,借书证号单位电话,读者单位单位电话,书号书名,书号出版社,书号出版社地址,出版社出版社地址,(借书证号,书号)借阅日期 借书证号借书证号书书 号号读者姓名读者姓名书书 名名借阅日期借阅日期读者单位读者单位单位电话单位电话出版社出版社出版社地址出版社地址函数依赖图64.1 数据依赖数据依赖对关系模式的影响如果只考虑函数依赖
5、这一种数据依赖,就得到一个描述图书馆的数据库模式Borrow(U,F),它由一个单一的关系模式构成:Borrow(借书证号,读者姓名,读者单位,单位电话,书号,书名,出版社,出版社地址,借阅日期)这个关系模式存在四个问题:数据冗余太大 一个读者可以借多本书,有关这个读者的信息就要在关系中出现多次;而一个单位有许多读者,每个读者都有相同的信息;同时图书馆又要面对许多单位,由此可见,在这个关系模式中,数据的冗余度非常可观。74.1 数据依赖数据依赖对关系模式的影响 修改复杂 如果某个读者更换了单位,他若借了10本书,有关他所在单位的信息在Borrow中重复存放10次,当数据更新时必须无遗漏地修改1
6、0个元组中全部的信息。由于数据冗余,DBMS要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。这就造成了修改的复杂性。84.1 数据依赖数据依赖对关系模式的影响 插入异常 如果刚买进一批新书,因为还没有读者借阅,就无法把有关新书的信息存入Borrow中,这就是插入异常。删除异常 如果某个读者把他借的所有的书都还给了图书馆,那么随着这些书的相关信息的删除,这个读者的信息也丢失了。这就产生了删除异常,即不该删除的信息也删除了。94.1 数据依赖数据依赖对关系模式的影响结论:Borrow不是一个好的关系模式,原因是由存在于关系模式中的某些函数依赖引起的,规范化理论正是用来改造关系模式
7、的指南。104.1 数据依赖3.有关概念函数依赖函数依赖在规范化理论中起着核心作用,它普遍存在于现实生活中,专门讨论一个关系的属性间不同的依赖情况(即不同的函数依赖)。由于属性间依赖情况不同,可使一些关系明显地存在某些不好的性质,因此,要设计一个较佳的、能反映现实世界的关系模式,首先就要深刻理解函数依赖的有关理论,并据此来分析和判断关系是否具有某些不好的性质,然后才能清除关系中这些不合适的部分。114.1 数据依赖有关概念 定义4.1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性
8、值不同,则称“X函数决定Y”或“Y函数依赖于X”,记作XY。对当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应。124.1 数据依赖有关概念几点说明:函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。函数依赖是语义范畴的概念。设计者可对现实世界作强制规定。134.1 数据依赖有关概念术语和记号:XY,但YX,则称XY是非平凡函数依赖。XY,但YX,则称XY是平凡函数依赖。若XY,则X叫做决定因素。若XY,YX,则记作XY。若Y不函数依赖于X,则记作XY。144.1 数据依赖有关概念完全函数依赖与部分函
9、数依赖定义4.2 在R(U)中,如果XY,并且对于X的任意一个真子集X,都有XY,则称Y完全函数依赖于X,记作 。若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作 。传递函数依赖 定义4.3 在R(U)中,如果XY(YX),YZ,且 YX,则称Z传递函数依赖于X,记作 。154.1 数据依赖有关概念【例】码 定义4.4 设K为R(U,F)中的属性或属性组,若 ,则称K为R的候选码,若候选码多于一个,则选定其中一个为主码。函数依赖图p借书证号借书证号书书 号号读者姓名读者姓名书书 名名借阅日期借阅日期读者单位读者单位单位电话单位电话出版社出版社出版社地址出版社地址fpppppttt1
10、6第四章 关系数据库设计理论4.1 数据依赖4.2 范式4.3 关系模式的规范化174.2 范式范式是衡量数据模式优劣的标准,范式级别越高,其数据冗余和操作异常现象就越少。范式有1NF,2NF,3NF,BCNF,4NF,5NF。范式之间存在的联系:1NF2NF3NFBCNF4NF5NF一个低一级范式的关系模式通过模式分解可转化成若干个高一级范式的关系模式集合,这个过程就叫做规范化。184.2 范式1.第一范式(1NF)定义4.5 若一个关系模式R的所有属性都是不可再分的基本数据项,则R 1NF。例:Borrow 1NF,但不是一个好的关系模式。Borrow(借书证号,读者姓名,读者单位,单位电
11、话,书号,书名,出版社,出版社地址,借阅日期)为什么会有数据冗余,插入异常,删除异常,修改复杂?因为存在部分函数依赖。194.2 范式2.第二范式(2NF)定义4.6 若关系模式R 1NF,并且每一非主属性都完全函数依赖于R的码,则R 2NF。我们将Borrow转化为2NF,即要消除非主属性对码的部分函数依赖。方法:投影分解法204.2 范式 2NF2NF把Borrow分解为三个关系模式:ReaderReader(借书证号,读者姓名,读者单位,单位电话)BookBook(书号,书名,出版社,出版社地址)BORRBORR(借书证号,书号,借阅日期)p借书证号借书证号书书 号号读者姓名读者姓名书书
12、 名名借阅日期借阅日期读者单位读者单位单位电话单位电话出版社出版社出版社地址出版社地址fpppppttt214.2 范式 2NF2NF它们的函数依赖分别如下图所示:这三个关系都属于2NF,联合起来共同表达了原来一个关系所表达的内容,且原来关系不能表达的,它们也能表达。因此,第二范式比第一范式有更强的表达能力,是对现实世界更准确的描述。读者姓名读者姓名借书证号借书证号读者单位读者单位单位电话单位电话书书 号号出版社出版社书书 名名出版社地址出版社地址借阅日期借阅日期书号书号借书证号借书证号224.2 范式 2NF2NFb一个属于2NF的关系模式还会存在某些问题,如:ReaderReader(借书
13、证号,读者姓名,读者单位,单位电话)BookBook(书号,书名,出版社,出版社地址)b原因:存在传递函数依赖冗余消失仍有冗余冗余消失仍有冗余234.2 范式3.第三范式(3NF)定义4.7 若关系模式R中不存在候选码X,属性组Y以及非主属性Z(Z Y),使得XY,YZ和 Y X成立,则R3NF。b要消除关系模式中非主属性对码的传递函数依赖,用投影分解法。读者姓名读者姓名借书证号借书证号读者单位读者单位单位电话单位电话书书 号号出版社出版社书书 名名出版社地址出版社地址244.2 范式 3NF3NF Reader1Reader1(借书证号,读者姓名,读者单位)UnitphoneUnitphon
14、e(读者单位,单位电话)Book1Book1(书号,书名,出版社)PublishPublish(出版社,出版社地址)BorrBorr(借书证号,书号,借阅日期)b它们的函数依赖分别如下图所示:读者姓名读者姓名借书证号借书证号读者单位读者单位读者单位读者单位单位电话单位电话出版社出版社书书 号号书书 名名出版社出版社出版社地址出版社地址书书 号号借书证号借书证号借阅日期借阅日期254.2 范式 3NF3NF一个属于3NF的关系模式一般可令人满意。局部依赖和传递依赖是模式产生冗余和异常的两个重要原因。由于3NF中不存在非主属性对码的局部和传递函数依赖,因此消除了很大一部分异常现象,具有较好的性能。
15、264.2 范式4.BC范式(BCNF)例:设有关系模式 STC(学生,教师,课程)若规定:每一教师只教一门课,每门课由若干教师教 某一学生选定某门课,就确定了一个固定的教师。F=F=教师 课程,(学生,课程)教师,(学生,教师)课程274.2 范式 BC范式STC的候选码为:(学生,课程),(学生,教师)函数依赖图为:关系模式STC的属性都是主属性,不存在非主属 性,所以STC没有任何非主属性对码的传递或 部分依赖,STC3NF。3NF的STC关系模式也存在一些诸如插入异常,删除异常,数据冗余等问题。教师学生课程课程学生教师284.2 范式 BC范式bSTC出现问题的原因:主属性课程依赖于教
16、师,即课程部分依赖于码(学生,教师)。b解决这一问题同样可用投影分解法,将STC分解为两个关系模式:ST(学生,教师),TC(教师,课程)定义4.8 关系模式R 1NF,若XY,且YX时,X必含有码,则R BCNF。b即:在R中,若每个决定因素都包含码,则R BCNF。294.2 范式 BC范式由定义可知:STC(学生,教师,课程)不属于BCNF。因为教师课程,但教师即不是候选码,也不包含候选码。而ST(学生,教师)和 TC(教师,课程)都属于BCNF。BCNF即检查非主属性,又检查主属性,显然比3NF限制更严格。304.2 范式 BC范式由BCNF的定义可看到,每个BCNF的关系模式都具有如
17、下三个性质:所有非主属性都完全函数依赖于每个码;所有主属性都完全函数依赖于每个不包含它的码;没有任何属性完全函数依赖于非码的任何一组属性。若RBCNF,则R3NF。若R3NF RBCNF,若R只有一个候选码,则R3NFRBCNF。314.2 范式 BC范式【例1 1】S(S#S(S#,SNSN,SESE,SASA,SD)SD)解:解:SNSN有可能重名,则KEYKEYS#S#,没有任何属性对S#S#部分和传递函数依赖,S S 3NF3NF。同时S#S#是唯一决定因素,S S BCNFBCNF。【例2 2】C(C#C(C#,CNCN,PC#)PC#)解:解:设CNCN具有唯一性,则KEYKEYC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 关系 数据库 设计 理论
限制150内