关系数据库设计理论优秀课件.ppt
《关系数据库设计理论优秀课件.ppt》由会员分享,可在线阅读,更多相关《关系数据库设计理论优秀课件.ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关系数据库设计理论第1页,本讲稿共112页4.1 问题的提出 如何设计一个合适的关系数据库系统呢?如何设计一个合适的关系数据库系统呢?关键是关系数据库模式的设计,即应该构造几个关系模式,关键是关系数据库模式的设计,即应该构造几个关系模式,每个关系模式由哪些属性组成,又如何将这些相互关联的关系模每个关系模式由哪些属性组成,又如何将这些相互关联的关系模式组建成一个适合的关系框,这些都是决定了整个系统的运行的式组建成一个适合的关系框,这些都是决定了整个系统的运行的效率,也是应用系统开发设计成败的因素之一。效率,也是应用系统开发设计成败的因素之一。实际上,关系数据库的设计必须在实际上,关系数据库的设计
2、必须在关系数据库规范化理论关系数据库规范化理论的指导下进行。的指导下进行。第2页,本讲稿共112页4.1.1 4.1.1 规范化理论概述规范化理论概述 关系数据库设计理论主要包括三个方面的内容:函数依赖、范式(NormalForm)和模式设计。其中函数依赖起着核心作用,是模式分解和模式设计的基础,范式是模式分解的标准。BACK第3页,本讲稿共112页4.1.2 4.1.2 不合理的关系模式存在的问题不合理的关系模式存在的问题例例1要求设计学生-课程数据库,其关系模式SDC如下:SDC(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其中:SNO表示学生学号 SN表示学生姓名 AGE表
3、示学生年龄 DEPT表示学生所在的系别 MN表示系主任名 CNO表示课程号 SCORE表示成绩。第4页,本讲稿共112页根据实际情况,这些数据有如下语义规定:根据实际情况,这些数据有如下语义规定:1)一个系有若干个学生,但一个学生只属于一个系一个系有若干个学生,但一个学生只属于一个系;即即sno-dept.2)一个系只能有一个系主任,但一个系主任可以同时兼几个系的系一个系只能有一个系主任,但一个系主任可以同时兼几个系的系主任主任;即即dept-mn3)一个学生可以选修多门功课,每门课程可被若干个学生选一个学生可以选修多门功课,每门课程可被若干个学生选修修;4)每个学生学习每门课程有一个成绩。每
4、个学生学习每门课程有一个成绩。即即(sno,cno)-score第5页,本讲稿共112页SNO SN AGE DEPT MN CNO SCORE S1赵红20计算机 张文斌C190S1赵红20计算机 张文斌C285S2王小明17外语刘伟华C557S2王小明17外语刘伟华C680S2王小明17外语刘伟华C7S2王小明17外语刘伟华C470S3吴小林19信息刘伟华C175S3吴小林19信息刘伟华C270S3吴小林19信息刘伟华C485S4张涛22自动化 钟志强C193图4.1 关系SDC 第6页,本讲稿共112页 在进行数据库的操作时,会出现以下几方面的问题。(1)数据冗余。数据冗余。系名,学生姓
5、名、年龄等等都要重复存储多次(2)插入异常。插入异常。(SNO,CNO)是主键。缺少一个都无法插入数据另外,若学生未选课,同样也不能进行插入操作。(3)删除异常。删除异常。删去学生数据,导致课程及教师信息丢失。如果某个学生不再选修某课程,有关该学生的其他信息也随之丢失。(4)修改异常。修改异常。如果某学生改名,则该学生的所有记录都要逐一修改SN的值;稍有不慎,就有可能漏改某些记录。鉴于存在以上种种问题,我们可以得出这样的结论:鉴于存在以上种种问题,我们可以得出这样的结论:SDC关系模关系模式不是一个好的模式。一个式不是一个好的模式。一个“好好”的模式应当不会发生插入异常、的模式应当不会发生插入
6、异常、删除异常、更新异常、数据冗余应尽可能少。删除异常、更新异常、数据冗余应尽可能少。第7页,本讲稿共112页为什么会发生这些问题呢?为什么会发生这些问题呢?这这是是因因为为这这个个模模式式中中的的函函数数依依赖赖存存在在某某些些不不好好的的性性质质。假假设设把把这这个个单单一一的的模模式式改改造造一一下下,分分解解成成3 3个个关关系模式:系模式:学生关系学生关系 S(SNO,SN,SN,AGE,DEPT)系关系系关系 D(DEPT,MN)选课关系选课关系 SC(SNO,CNO,SCORE)第8页,本讲稿共112页SSNOSNAGEDEPTS1赵红20计算机S2王小明17外语S3吴小林19信
7、息S4张涛22自动化第9页,本讲稿共112页DDEPTMN计算机张文斌外语刘伟华信息刘伟华自动化钟志强第10页,本讲稿共112页图4.2关系SDC经分解后的三关系S、D与SCSCSNOCNOSCORES1C190S1C285S2C557S2C680S2C7S2C470S3C175S3C270S3C485S4C193第11页,本讲稿共112页 分解后的关系模式集是一个好的关系数据库模式。这三个关系模式都不会发生插入异常、删除异常的毛病,数据冗余也得到了尽可能地控制。但要注意,一个好的关系模式并不是在任何情况下都是最优的,比如查询某个学生选修课程名及所在系的系主任时,要通过连接操作来完成(即由图4
8、.2中的三张表,连接形成图4.1中的一张总表),而连接所需要的系统开销非常大,因此要以实际设计的目标出发进行设计。练习题:练习题:课后选择题课后选择题1第12页,本讲稿共112页4.2.1 4.2.1 函数依赖函数依赖 函数依赖函数依赖 定义定义4.14.1 设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称则称X函数决定函数决定Y,或,或Y函数依赖函数依赖于于X,记,记XY。我们称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作:XY。当XY且YX时,则记作:XY
9、。4.2 4.2 规范化规范化第13页,本讲稿共112页 对于关系模式SDC:U=SNO,SN,AGE,DEPT,MN,CNO,SCOREF=SNOSN,SNOAGE,SNODEPT,DEPTMN,SNOMN,(SNO,CNO)SCORE 一个SNO有多个SCORE的值与之对应,因此SCORE不能唯一地确定,即SCORE不能函数依赖于SNO,所以有:SNOSCORE,同样有:CNOSCORE。但是SCORE可以被(SNO,CNO)唯一地确定。所以可表示为:(SNO,CNO)SCORE。第14页,本讲稿共112页练习:练习:设有关系模式:商品设有关系模式:商品(商品编号,商品大类,商品小类,商品
10、名商品编号,商品大类,商品小类,商品名称,单价,数量,总价称,单价,数量,总价),试结合实际,分析该关系模式上可能,试结合实际,分析该关系模式上可能存在的函数依赖。存在的函数依赖。商品编号商品编号商品名称商品名称商品编号商品编号商品小类商品小类商品小类商品小类商品大类商品大类商品编号商品编号单价单价(单价,数量单价,数量)总价总价第15页,本讲稿共112页函数依赖有几点需要说明:(1 1)平凡的函数依赖与非平凡的函数依赖平凡的函数依赖与非平凡的函数依赖 当属性集Y是属性集X的子集时,则必然存在着函数依赖XY,这种类型的函数依赖称为平凡的函数依赖。也可表示为:也可表示为:X XY,但,但YX X
11、 则称则称X XY是平凡的函数依赖。是平凡的函数依赖。如:在关系SDC中,(SNO,CNO)SNO。如果Y不是X子集,则称XY为非平凡的函数依赖。也可表示为:X XY,但,但YX X 则称则称X XY是非平凡的函数依赖。是非平凡的函数依赖。如:(sno,cno)score 若不特别声明,我们讨论的都是非平凡的函数依赖。(2 2)函数依赖与属性间的联系类型有关函数依赖与属性间的联系类型有关 在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖XY,YX,即XY。例如,当学生没有重名时,例如,当学生没有重名时,SNOSN。第16页,本讲稿共112页 如果属性X与Y有m:1的联系时,则只存
12、在函数依赖XY。例如:SNO与AGE,DEPT之间均为m:1联系,所以有SNOAGE,SNODEPT。如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如:一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。由于函数依赖与属性之间的联系类型有关,所以在确定属性间的函数依赖时,可以从分析属性间的联系入手,便可确定属性间的函数依赖。练习题:练习题:课后选择题课后选择题2第17页,本讲稿共112页 (3)(3)函数依赖的语义范畴的概念函数依赖的语义范畴的概念 我们只能根据语义来确定一个函数依赖,而不能按照其形式化定义来证明一个函数依赖
13、是否成立。例如,对于关系模式S,当学生不存在重名的情况下,可以得到:SNAGE、SNDEPT 这种函数依赖关系,必须是在没有重名的学生条件下才成立,否则就不存在函数依赖了。所以函数依赖反映了一种语义完整性约束,是语义的要求。第18页,本讲稿共112页(4)函数依赖关系的存在与时间无关函数依赖关系的存在与时间无关函数依赖是指关系中所有元组应该满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件。例如:对于关系模式S,假设没有给出无重名的学生这种语义规定,则即使当前关系中没有重名的记录,也不能有“SN-AGE、SN-DEPT”,因为在后续的对表S的操作中,可能马上会增加一个重名的学生的,而
14、使这些函数依赖不能成立。所以函数依赖关系的存在与时间无关,而只与数据间的语义规定有关。第19页,本讲稿共112页(5)(5)函数依赖可以保证关系分解的函数依赖可以保证关系分解的无损连接性无损连接性 设R(X,Y,Z),X、Y、Z为不相交的属性集合,如果XY或XZ则有R(X,Y,Z)=RX,YRX,Z,其中RX,Y表示关系R在属性(X,Y)上的投影,即R等于两个分别含决定因素X的投影关系(分别是RX,Y与RX,Z)在X上的自然连接,这样便保证了关系R分解后不会丢失原有的信息,称作关系分解的无损连接性。第20页,本讲稿共112页 例如例如,对于关系模式,对于关系模式S(SNO,SN,AGE,DEP
15、T),有有SNO-SN,SNO-(AGE,DEPT)S(SNO,SN,AGE,DEPT)=S1(SNO,SN)S2(SNO,AGE,DEPT)也就是说,也就是说,S S的两个投影关系的两个投影关系S1S1、S2S2在在SNOSNO上的自然连上的自然连接可复原关系接可复原关系S S。这一性质非常重要,在后面的关系规范化中要用到。这一性质非常重要,在后面的关系规范化中要用到。第21页,本讲稿共112页 函数依赖的基本性质函数依赖的基本性质(1 1)投影性投影性 根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子集。例如,在关系SDC中,(SNO,CNO)SNO和(SNO,CNO)CNO。说明
16、:投影性产生的是平凡的函数依赖,需要时也能使用的。(2 2)扩张性扩张性 若XY且WZ,则(X,W)(Y,Z)。例如,SNO(SN,AGE),DEPTMN,则有(SNO,DEPT)(SN,AGE,MN)。说明:扩张性实现了两函数依赖决定因素与被决定因素的分别合并作用。第22页,本讲稿共112页(3)(3)合并性合并性 若XY且XZ则必有X(Y,Z)。例如,在关系SDC中,SNO(SN,AGE),SNODEPT,则有SNO(SN,AGE,DEPT)。说明:决定因素相同的两函数依赖,它们的被决定因素合 并后,函数依赖关系依然保存。(4)(4)分解性分解性 若X(Y,Z),则XY且XZ。很显然,分解
17、性为合并性的逆过程。说明:决定因素能决定全部,当然也能决定全部中的部分。由合并性和分解性,很容易得到以下事实:XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成立。第23页,本讲稿共112页3 3完全完全/部分函数依赖和传递部分函数依赖和传递/非传递函数依赖非传递函数依赖定定义义4.24.2 设有关系模式R(U),U是属性全集,X和Y是U的子集,XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作 X f Y。如果对X的某个真子集X,有XY,则称Y对X部分函数依赖(Partial Functional Dependency),记作 X p Y。例如,在关
18、系模式SDC中,因为SNO SCORE,且CNO SCORE,所以有:(SNO,CNO)f SCORE。而因为有SNOAGE,所以有(SNO,CNO)p AGE。第24页,本讲稿共112页 定定义义4.34.3 设有关系模式R(U),U是属性全集,X,Y,Z是U的子集,若XY,(Y X),但Y X,而YZ则称Z对X传递函数依赖(Transitive Functional Dependency),记作:X t Z。注意:如果有YX,则X Y,这时称Z对X直接函数依赖,而不是传递函数依赖。传递函数依赖传递函数依赖如:如:关系模式SDC中,SNO-DEPT,但DEPTSNO,而DEPTMN,则有SN
19、OtMN。当学生不存在重名的情况下,有SNOSN,SNSNO,SNOSN,SNDEPT,这时DEPT对SNO是直接函数依赖,而不是传递函数依赖。第25页,本讲稿共112页练习题:练习题:课后选择题课后选择题5由F=ABC,DCE,DB由投影性可知ABCACBCDCEDECEDB再由传递函数依赖关系可知AEDE再由合并性可知ADE练习题:练习题:课后选择题课后选择题8第26页,本讲稿共112页4.2.2 4.2.2 码码 在第2章中已给出有关码的概念。这里用函数依赖的概念来定义码。定义定义4.44.4 设K K为R(U,F)中的属性或属性集合,若K K f f U则K K为R R的候选码(或候选
20、关键字或候选键)候选码(或候选关键字或候选键)(Candidate key)。若候选码多于一个,则选定其中的一个为主码主码(或称主键,Primary key)。第27页,本讲稿共112页 包含在任何一个候选码中的属性,叫做主属性主属性。不包含在任何候选码中的属性称为非主非主属性属性或非码属性。在最简单的情况,单个属性是码。最极端的情况,整个属性组U是码,称为全码全码(All-key)。如在关系模式S(SNO,DEPT,AGE)中SNO是码,而在关系模式SC(SNO,CNO,SCORE)中属性组合(SNO,CNO)是码。第28页,本讲稿共112页 关系模式TCS(T,C,S),属性T表示教师,C
21、表示课程,S表示学生。一个教师可以讲授多门课程,一门课程可有多个教师讲授,一个学生可以选听多门课程,一门课程可 被多个学生选听。教师T,课程C,学生S之间是多对多关系,单个属性T、C、S或两个属性组合(T,C)、(T,S)、(C,S)等均不能完全决定整个属性组U,只有(T,C,S)U,所以这个关系模式的码为(T,C,S),即All-keyAll-key。下面举个全码的例子下面举个全码的例子:第29页,本讲稿共112页 找出已知关系模式找出已知关系模式R R(U U,F F)的所有候选)的所有候选键的方法:键的方法:1 1、查查看看函函数数依依赖赖集集F F中中的的每每个个形形如如X Xi iY
22、Yi i的的(i=1,ni=1,n)函函数数依依赖赖关关系系。看看哪哪些些属属性性在在所所有有Y Yi i(i=1,ni=1,n)中中没没有有出出现过,现过,设没出现过的属性集为设没出现过的属性集为P P(P=U-YP=U-Y1 1-Y-Y2 2-Y-Yn n)。)。则当则当P=P=(表示空集)时,转(表示空集)时,转4 4 当当PP时,转时,转2 2。2 2、根据候根据候选键选键的定的定义义,候,候选键选键中中应应必必含含P P(因(因为为没有其它属性能没有其它属性能决定决定P P)。考察)。考察P:P:若有若有P P f f U U成立,成立,则则P P为为候候选键选键,并且候,并且候选键
23、选键只有一个只有一个P,P,转转5 5结结束束若若P P f f U U不成立,不成立,则转则转3 3。第30页,本讲稿共112页 3 3、P P可以分别与可以分别与U-PU-P中的每一个属性合并,形成中的每一个属性合并,形成P P1 1,P P2 2,P Pm m。再分别判断。再分别判断P Pj j f f U U(j=1,mj=1,m)是否成立?能成立则找到了一个候选键,没有则放弃。是否成立?能成立则找到了一个候选键,没有则放弃。合并一个属性若不能找到或不能找全候选键,可进一步合并一个属性若不能找到或不能找全候选键,可进一步考虑考虑P P与与U-PU-P中的两个(或三个,四个,中的两个(或
24、三个,四个,)属性的)属性的所有组合分别进行合并,继续判断分别合并后的各属性所有组合分别进行合并,继续判断分别合并后的各属性组对组对U U的完全函数决定情况的完全函数决定情况;如此直到找出;如此直到找出R R的所有的所有候选键为止。转候选键为止。转5 5结束。(需要提醒的是:如若属性组结束。(需要提醒的是:如若属性组K K已有已有K K f f U U,则完全不必去考察含,则完全不必去考察含K K的其它属性组合了,的其它属性组合了,显然它们都不可能再是候选键了)。显然它们都不可能再是候选键了)。第31页,本讲稿共112页 4 4、若若P=P=,则则可可以以先先考考察察X Xi iYYi i(i
25、=1,ni=1,n)中中的的单单个个X Xi i,判判断断是是否否有有X Xi i f f U U?若若成成立立则则X Xi i为为候候选选键键。剩剩下下不不是是候候选选键键的的X Xi i,可可以以考考察察它它们们两两个个或或多多个个的的组组合合,查查看看其其是是否否能能完完全全函数决定函数决定U U,从而找出其它还有可能的候选键。转,从而找出其它还有可能的候选键。转5 5结束。结束。5 5、本方法结束。本方法结束。也可以用也可以用Armstrong公理来求候选码公理来求候选码第32页,本讲稿共112页4.3 4.3 数据依赖的公理系统数据依赖的公理系统*数据依赖的公理系统是模式分解算法的理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 设计 理论 优秀 课件
限制150内