第5章 数据库设计与应用系统开发_第1页
第5章 数据库设计与应用系统开发_第2页
第5章 数据库设计与应用系统开发_第3页
第5章 数据库设计与应用系统开发_第4页
第5章 数据库设计与应用系统开发_第5页
已阅读5页,还剩196页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习目标学习目标n 了解关系模式规范化的提出背景及数据冗余带来的一系列问了解关系模式规范化的提出背景及数据冗余带来的一系列问题;题;n 掌握函数依赖的基本概念及涵义;掌握掌握函数依赖的基本概念及涵义;掌握Armstrong公理;公理;n 掌握第一范式、第二范式、第三范式和掌握第一范式、第二范式、第三范式和BCN范式的含义、联范式的含义、联系与区别;系与区别;n 掌握通过模式分解实现规范化的一般方法;掌握通过模式分解实现规范化的一般方法;n 掌握数据库设计的步骤及方法;掌握数据库设计的步骤及方法; n 掌握概念结构、逻辑结构和的物理结构的设计;掌握概念结构、逻辑结构和的物理结构的设计;n 了解数

2、据库应用开发的基本方法及工具。了解数据库应用开发的基本方法及工具。主要内容主要内容n 5.1 关系模式规范化关系模式规范化n 5.2 数据库系统设计数据库系统设计n 5.3 需求分析需求分析n 5.4 概念结构设计概念结构设计n 5.5 逻辑结构设计逻辑结构设计n 5.6 物理设计物理设计n 5.7 数据库实施和维护数据库实施和维护n 5.8 数据库应用开发数据库应用开发5.1 关系模式规范化关系模式规范化n 关系数据库的设计:关系模式的设计关系数据库的设计:关系模式的设计n 关系模式设计的好坏将直接影响到数据库设计的成败关系模式设计的好坏将直接影响到数据库设计的成败n 问题:如何评价关系模式

3、好和坏?问题:如何评价关系模式好和坏?5.1.1规范化问题的提出规范化问题的提出讨论:存在什么问题?讨论:存在什么问题?关系模式关系模式TC中存在的问题中存在的问题1. 1. 数据冗余太大数据冗余太大2. 2. 更新异常(更新异常(Update AnomaliesUpdate Anomalies)3. 3. 插入异常(插入异常(Insertion AnomaliesInsertion Anomalies)4. 4. 删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)关系模式关系模式TC中存在的问题中存在的问题n 结论:结论:uTC关系模式不是一个好的

4、模式。关系模式不是一个好的模式。n 原因:原因:由存在于模式中的某些数据依赖引起的由存在于模式中的某些数据依赖引起的n “好好”的模式:的模式:u元组的每个分量必须是不可分的数据项元组的每个分量必须是不可分的数据项 u数据冗余应尽可能少数据冗余应尽可能少u不会发生插入异常、删除异常、更新异常不会发生插入异常、删除异常、更新异常n 解决方法:解决方法:通过分解关系模式来消除其中不合适的数据依赖通过分解关系模式来消除其中不合适的数据依赖表表5.1分解成表分解成表5.2和表和表5.3讨论:以上异常问题是否解决?讨论:以上异常问题是否解决?数据依赖数据依赖n 一个关系内部属性与属性之间的约束关系一个关

5、系内部属性与属性之间的约束关系n 现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象n 数据内在的性质数据内在的性质n 语义语义的体现的体现u完整性约束完整性约束u函数依赖函数依赖、多值依赖等、多值依赖等5.1.2 函数依赖数据依赖函数依赖数据依赖n 函数依赖的定义函数依赖的定义n 函数依赖的逻辑蕴含函数依赖的逻辑蕴含n 函数依赖的分类函数依赖的分类u平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖u完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖u传递函数依赖传递函数依赖n 码的重新定义(基于函数依赖)码的重新定义(基于函数依赖)5.1.2 函数依赖函数依赖一、函数依赖的定

6、义一、函数依赖的定义设有关系模式设有关系模式R(A1,A2,An),简记为,简记为R(U),其中,其中U= A1,A2,An 。设。设X,Y是是U的子集,如果对的子集,如果对R的任一实例关的任一实例关系中的任意两个元组系中的任意两个元组s和和t,均满足以下性质:若它们在属性集,均满足以下性质:若它们在属性集X上取值相等上取值相等(即即sX = tX),则它们在属性集,则它们在属性集Y上取值也相等上取值也相等(即即sY = tY),则称,则称X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X,记为,记为XY。X称为称为决定因素决定因素,Y称为称为依赖因素依赖因素。一、函数依赖的定义一、函数依赖

7、的定义n 1)在一个关系中,如果属性在一个关系中,如果属性X、Y有有1 1联系,则联系,则X、Y相互相互函数依赖,即函数依赖,即XY、YX。记作。记作X Y。 n 2)如果属性如果属性X、Y是是1 m的联系,则存在函数依赖的联系,则存在函数依赖YX,即,即X函数依赖于函数依赖于Y。 n 3)如果属性如果属性X、Y是是m n的联系,则的联系,则X与与Y之间不存在任何函之间不存在任何函数依赖。数依赖。函数依赖例函数依赖例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) u SNO学生学号;学

8、生学号;u SNAME学生姓名;学生姓名;u SEX学生性别;学生性别;u AGE学生年龄;学生年龄;u DNO学生所在系编号;学生所在系编号;u DNAME-学生所在系名;学生所在系名;u DADDRESS系所在地址;系所在地址;u CNO学生所选课程号;学生所选课程号;u CNAME课程名;课程名;u GRADE学生成绩学生成绩 讨论:存在什么问题?讨论:存在什么问题?函数依赖例函数依赖例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 原因分析:属性间的依赖关系:原因分析:属性间的

9、依赖关系:uSNO SNAME;uSNO SEX, uSNO AGE;uSNO DNO;uDNO DNAME;uDNO DADDRESS;u (SNO,CNO) GRADE函数依赖例函数依赖例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 解决办法:分解解决办法:分解讨论:问题是否解决?讨论:问题是否解决?S(SNO,SNAME, AGE ,DNO);SC(SNO,CNO,GRADE);D(DNO, DNAME, DADDRESS);二、函数依赖的逻辑蕴含二、函数依赖的逻辑蕴含n 【定

10、义定义5.2】 设有关系模式设有关系模式R(A1,A2,An),简记为,简记为R(U),其中,其中U= A1,A2,An 。设。设X,Y是是U的子集,的子集,F为属性集为属性集U上的所有函数依赖的集合,如果从上的所有函数依赖的集合,如果从F能推出函数依能推出函数依赖赖XY,则称,则称F逻辑蕴涵逻辑蕴涵XY。n 例如例如:SNO DNO; DNO DNAME 推出推出: SNO DNAME n 【定义定义5.3】 设设F是函数依赖集,是函数依赖集,F及由及由F推出的所有函数依赖推出的所有函数依赖称为函数依赖集称为函数依赖集F的闭包,记为的闭包,记为F+。二、函数依赖的逻辑蕴含二、函数依赖的逻辑蕴

11、含n Armstrong公理系统公理系统 uA1.自反律自反律(Reflexivity rule):若:若 ,则,则F逻辑蕴涵逻辑蕴涵XY 。uA2.增广律增广律(Augmentation rule):若:若F逻辑蕴涵逻辑蕴涵XY,且,且, 则则F逻辑逻辑蕴涵蕴涵XZYZ。uA3.传递律传递律(Transitivity rule ):F逻辑蕴涵逻辑蕴涵XY、YZ,则,则F逻辑蕴逻辑蕴涵涵XZ。 二、函数依赖的逻辑蕴含二、函数依赖的逻辑蕴含n Armstrong公理的推理规则公理的推理规则u合并规则合并规则(Union rule):若:若XY、XZ,则,则XYZ。u伪传递规则伪传递规则(Pseu

12、do transitivity rule):若:若XY、WYZ,则,则XWZ。u分解规则分解规则(decomposition rule):若:若XYZ,则,则XY, XZ。 三、三、函数依赖的分类函数依赖的分类 平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖n 【定义定义5.4】 如果如果XY,并且,并且Y不是不是X的子集,记为,则称的子集,记为,则称XY是非平凡是非平凡(nontrivial)的函数依赖。的函数依赖。n 【定义定义5.5】 如果如果XY,并且,并且Y是是X的子集,记为,则称的子集,记为,则称XY是平凡是平凡(trivial)的函数依赖。的函数依赖。三、三、函数依赖的

13、分类函数依赖的分类 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖n 【定义定义5.6】 在关系模式在关系模式R(U)中,如果中,如果XY,并且对于,并且对于X的的任意一个真子集任意一个真子集X1,X1Y均不成立,则称均不成立,则称Y完全完全(full)函数函数依赖于依赖于X。n 【定义定义5.7】 在关系模式在关系模式R(U)中,如果中,如果XY,并且至少存在,并且至少存在X的真子集的真子集X1,使,使X1Y成立,则称成立,则称Y部分部分(partial)函数依赖函数依赖于于X。 函数依赖分类例函数依赖分类例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SE

14、X,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 属性间的依赖关系:属性间的依赖关系:uSNO SNAME;uSNO SEX, uSNO AGE;uSNO DNO;uDNO DNAME;uDNO DADDRESS;u (SNO,CNO) GRADE函数依赖分类例函数依赖分类例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 非平凡函数依赖、完全函数依赖:非平凡函数依赖、完全函数依赖:uSNO SNAMEuSNO AGEuSNO SEXuDNO DNAME u

15、DNO DADDRESSu(SNO,CNO) GRADE函数依赖分类例函数依赖分类例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 平凡函数依赖:平凡函数依赖:u(SNO,SNAME) SNAME 部分函数依赖:部分函数依赖:u(SNO,CNO) SNAME 三、三、函数依赖的分类函数依赖的分类 传递函数依赖传递函数依赖n 【定义定义5.8】 在关系模式在关系模式R(U)中,如果中,如果XY,并且,并且YZ,且,且YX,则,则XZ,称,称Z传递传递(Transitive)函数依赖于函数

16、依赖于X。 n 传递依赖例:传递依赖例:uSNODNOuDNO DNAMEu根据传递律得:根据传递律得:SNODNAME 四、用函数依赖重新定义关系模式的码四、用函数依赖重新定义关系模式的码 n 【定义定义5.9】设有关系模式设有关系模式R(U),F是是R上的函数依赖集,上的函数依赖集,K是是U的一个子集。若的一个子集。若F逻辑蕴涵逻辑蕴涵 KU,则,则K称为称为R的的超码超码;u如果如果KU,且不存在,且不存在K的任何真子集的任何真子集K1使得使得F逻辑蕴涵逻辑蕴涵 K1U,换句话,换句话说,如果说,如果U完全依赖于完全依赖于K,则称,则称K是是R的的候选码或候选键候选码或候选键。u当候选码

17、多于一个时,可以选中其中的一个作为当候选码多于一个时,可以选中其中的一个作为主码主码。n 【定义定义5.10】包含在任意一个候选码中的属性称为包含在任意一个候选码中的属性称为主属性主属性。不。不包含在任何候选码中的属性称为包含在任何候选码中的属性称为非主属性非主属性。函数依赖定义码例函数依赖定义码例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 属性间的依赖关系:属性间的依赖关系:uSNO SNAME;uSNO SEX, uSNO AGE;uSNO DNO;uDNO DNAME;uDN

18、O DADDRESS;u (SNO,CNO) GRADEn确定候选码、主码、主属性、非主属性?确定候选码、主码、主属性、非主属性?5.1.3 关系模式规范化关系模式规范化n 范式是符合某一种级别的关系模式的集合范式是符合某一种级别的关系模式的集合n 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式范式n 范式的种类:范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)n 各种范式之间存在联系:各种范式之

19、间存在联系:n 某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为RnNF。n 一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可以转换为若干个高一级范可以转换为若干个高一级范式的关系模式的集合,这种过程就叫式的关系模式的集合,这种过程就叫规范化规范化 NFNFBCNFNFNFNF543215.1.3 关系模式规范化关系模式规范化n 1NF的定义的定义如果一个关系模式如果一个关系模式R的所有属性都是的所有属性都是不可分的基本数据项不可分的基本数据项,则,则R1NFn 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式第一范式是对关系模式的最

20、起码的要求。不满足第一范式的数据库模式不能称为关系数据库不能称为关系数据库n 但是满足第一范式的关系模式并不一定是一个好的关系模式但是满足第一范式的关系模式并不一定是一个好的关系模式5.1.3 关系模式规范化范式关系模式规范化范式 1NF5.1.3 关系模式规范化范式关系模式规范化范式 2NFn 若关系模式若关系模式R1NF,且每一个,且每一个非主属性完全函数依赖非主属性完全函数依赖于关于关系系R的任意一个的任意一个候选码候选码,则关系,则关系R为第二范式,记为为第二范式,记为R2NFn 例:例:范式例范式例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AG

21、E, DNO, DNAME, DADDRESS, CNO,GRADE) 属性间的依赖关系:属性间的依赖关系:uSNO SNAME;uSNO SEX, uSNO AGE;uSNO DNO;uDNO DNAME;uDNO DADDRESS;u (SNO,CNO) GRADEn是否属于第是否属于第2范式?范式?范式例范式例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 候选码:候选码:u(SNO ,CNO);非主属性对码的部分依赖:非主属性对码的部分依赖:uSNO SEX, uSNO AGE

22、;uSNO DNO;uDNO DNAME;uDNO DADDRESS;n结论:不属于第结论:不属于第2范式范式范式例范式例例:教学管理系统关系模式例:教学管理系统关系模式 R(SNO,SNAME,SEX,AGE, DNO, DNAME, DADDRESS, CNO,GRADE) 解决办法:消除非主属性对码的部分依赖分解解决办法:消除非主属性对码的部分依赖分解uR1(SNO,SNAME,SEX, AGE, DNO, DNAME, DADDRESS)uR2(SNO,CNO, GRADE)5.1.3 关系模式规范化范式关系模式规范化范式 3NFn 若关系模式若关系模式R2NF,若每一个非主属性都不传

23、递依赖于某,若每一个非主属性都不传递依赖于某个候选码,则关系个候选码,则关系R属于第三范式,记为:属于第三范式,记为:R3NF。 另一种定义:另一种定义:n 设有一个关系模式设有一个关系模式R1NF,若,若R的任一非平凡函数依赖的任一非平凡函数依赖XA满足以下两个条件其中之一,则满足以下两个条件其中之一,则R3NFu决定因素决定因素X是超码;是超码;u属于属于A但不属于但不属于X即即XA中的每个属性都包含在候选码中中的每个属性都包含在候选码中5.1.3 关系模式规范化例关系模式规范化例 3NF例:上例分解后的教学管理系统关系模式:例:上例分解后的教学管理系统关系模式: uR1(SNO,SNAM

24、E,SEX, AGE, DNO, DNAME, DADDRESS)uR2(SNO,CNO, GRADE)是否为第三范式?是否为第三范式?分析:分析:R2 中,主码为(中,主码为(SNO,CNO),不存在传递依赖,属于第),不存在传递依赖,属于第3范式;范式;R1 中,主码为中,主码为SNO, SNO DNO DNAME, 传递依赖,不属于第传递依赖,不属于第3范式范式解决办法:解决办法:5.1.3 关系模式规范化范式关系模式规范化范式 BCNFn 【定义定义5.14】设有一个关系模式设有一个关系模式R1NF,若,若R的任一非平凡的任一非平凡函数依赖函数依赖XA满足以下条件:决定因素满足以下条件

25、:决定因素X必是超码,则称必是超码,则称R属于属于BCNF,记为,记为RBCNF。n 一个满足一个满足BCNF必定满足如下条件:必定满足如下条件:u所有非主属性对每一个码都是完全函数依赖;所有非主属性对每一个码都是完全函数依赖;u所有的主属性对每一个不包含它的码,也是完全函数依赖;所有的主属性对每一个不包含它的码,也是完全函数依赖;u没有任何属性完全函数依赖于非码的任何一组属性。没有任何属性完全函数依赖于非码的任何一组属性。 5.1.3 关系模式规范化范式关系模式规范化范式 BCNF与与3NF对比对比n BCNF不仅强调其他属性对码的完全的直接的依赖,而且不仅强调其他属性对码的完全的直接的依赖

26、,而且强调主属性对码的完全的直接的依赖,即如果强调主属性对码的完全的直接的依赖,即如果RBCNF,则,则R排除了任何属性对码的传递依赖与部分依赖排除了任何属性对码的传递依赖与部分依赖, 所以所以R3NF。但是若。但是若R3NF,则则R未必属于未必属于BCNF。 n 3NF只强调非主属性对码的完全直接依赖,这样就可能出只强调非主属性对码的完全直接依赖,这样就可能出现主属性对码的部分依赖和传递依赖。现主属性对码的部分依赖和传递依赖。例例【例例5.6】关系模式关系模式STC(S,T,C)中,中,S表示学生,表示学生,T表示教师,表示教师,C表示课程。每一个教师只教一门课。每门课有若干个教师,某一表示

27、课程。每一个教师只教一门课。每门课有若干个教师,某一学生选定某门课,就对应一个固定的教师。确定学生选定某门课,就对应一个固定的教师。确定STC是否符合是否符合BCNF。分析:分析: 由语义可得到如下函数依赖:由语义可得到如下函数依赖: (S,C)T ; TC 可以推出:可以推出: (S,C),(S,T)都是候选码,即都是候选码,即S, T, C都是主属性都是主属性,因此不存在非主属性对码的传递依赖,因此不存在非主属性对码的传递依赖,STC是是3NF。 但但STC不是不是BCNF关系,因为在关系,因为在TC中,中,T是决定因素但是决定因素但T不不是超码。是超码。解决办法:解决办法:分解为分解为S

28、T(S, T)和和TC(T, C),则两者都达到了,则两者都达到了BCNF。n 规范化过程:模式分解规范化过程:模式分解n 在分解时我们关心的是分解后的关系模式是否能准确的反映在分解时我们关心的是分解后的关系模式是否能准确的反映原有关系模式的所有信息,并且不会增加不存在的信息。原有关系模式的所有信息,并且不会增加不存在的信息。 n 模式分解有两种准则:模式分解有两种准则:u只满足无损分解只满足无损分解(lossless decomposition)要求;要求;u既满足无损分解要求,又满足保持依赖既满足无损分解要求,又满足保持依赖(preserving dependencies)要求。要求。5.

29、1.3 关系模式规范化模式分解关系模式规范化模式分解n (1) 无损分解无损分解u无损分解就是要求分解前后的关系模式是等价的,即对任何相同的查无损分解就是要求分解前后的关系模式是等价的,即对任何相同的查询总是产生相同的查询结果。这实际上可通过询总是产生相同的查询结果。这实际上可通过“连接连接”分解后的诸关分解后的诸关系来重构原关系。否则就是有损分解。系来重构原关系。否则就是有损分解。n (2) 保持依赖分解保持依赖分解u保持依赖分解就是要求分解后的关系模式中的函数依赖仍然逻辑蕴涵保持依赖分解就是要求分解后的关系模式中的函数依赖仍然逻辑蕴涵原关系模式中的函数依赖。这是一种理想的模式分解。原关系模

30、式中的函数依赖。这是一种理想的模式分解。5.1.3 关系模式规范化模式分解关系模式规范化模式分解 无损分解与保持依赖分解无损分解与保持依赖分解5.1.3 关系模式规范化模式分解关系模式规范化模式分解 无损分解(例)无损分解(例)n 【例例5.7】关系模式关系模式S(SNO,SNAME,AGE,DNO,DNAME),其上的函数依赖为:其上的函数依赖为:F=SNOSNAME,SNOAGE,SNODNO,DNODNAME5.1.3 关系模式规范化模式分解关系模式规范化模式分解 无损分解(例)无损分解(例)n 分解:分解:5.1.3 关系模式规范化模式分解关系模式规范化模式分解 无损分解(例)无损分解

31、(例)n 分解后重构:分解后重构:无损分解无损分解有损分解例有损分解例n 原关系:原关系:F=A-B,B-C有损分解例有损分解例n 分解:分解:有损分解例有损分解例n 分解后重构:分解后重构:有损分解有损分解n 假设一个关系模式将假设一个关系模式将R(U, F) (其中其中U为为R的属性的集合,的属性的集合,F为为R的函数依赖集合的函数依赖集合)分解为分解为R1(U1, F1)和和R2(U2, F2),且,且U=U1U2,F1和和F2是是F在在R1和和R2上的投影,则判定该分解上的投影,则判定该分解为无损分解的规则或充分必要条件是:为无损分解的规则或充分必要条件是:uU1U2U1-U2或或U1

32、U2U2-U1。u以上分解中,如果以上分解中,如果F1, F2逻辑蕴涵逻辑蕴涵F, 则该分解为保持依赖分解。则该分解为保持依赖分解。5.1.3 关系模式规范化模式分解关系模式规范化模式分解 无损分解与保持依赖分解无损分解与保持依赖分解 如何判断如何判断n 分解具有无损连接性和保持函数依赖性是两个互相独立的分解具有无损连接性和保持函数依赖性是两个互相独立的分解标准。具有无损连接性的分解不一定保持函数依赖,保分解标准。具有无损连接性的分解不一定保持函数依赖,保持函数依赖的分解不一定具有无损连接性。持函数依赖的分解不一定具有无损连接性。n 若要求分解具有无损连接性,那么模式分解一定可以达到若要求分解

33、具有无损连接性,那么模式分解一定可以达到BCNF。n 若要求分解既保持无损连接又保持函数依赖,那么模式分若要求分解既保持无损连接又保持函数依赖,那么模式分解可以达到解可以达到3NF,但不一定能达到,但不一定能达到BCNF。5.1.3 关系模式规范化关系模式规范化 通过模式分解实现规范化通过模式分解实现规范化 n 如果一个分解具有无损连接性,则它能够保证不丢失信息如果一个分解具有无损连接性,则它能够保证不丢失信息n 如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况况n 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准分解具

34、有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。函数依赖的分解也不一定具有无损连接性。5.1.3 关系模式规范化关系模式规范化 通过模式分解实现规范化通过模式分解实现规范化 【例例5.10】有一商品供应的关系模式有一商品供应的关系模式SP(SNO,PNO,SCITY,STATUS,PRICE,QTY)其中各属性的含义如下:其中各属性的含义如下:SNO供应商编号;供应商编号;SCITY供供应商所在的城市;应商所在的城市;STATUS供应商的状态;

35、供应商的状态;PNO零件编号;零件编号;PRICE零件的价格;零件的价格;QTY零件的数量。其属性组上的函数依赖集零件的数量。其属性组上的函数依赖集F如下:如下: F=SNOSCITY,SCITYSTATUS,PNOPRICE, (SNO,PNO)QTY 判断判断SP属于第几范式,并将其通过无损连接和保持依赖分解为第三范式属于第几范式,并将其通过无损连接和保持依赖分解为第三范式5.1.3 关系模式规范化关系模式规范化 通过模式分解实现规范化通过模式分解实现规范化 (例)(例) 分析分析: 模式模式SP属于第一范式,根据属于第一范式,根据Armstrong推理规则,由推理规则,由F可以推出可以推

36、出: (SNO,PNO)(SNO,PNO,SCITY,STATUS,PRICE,QTY) SP的候选键是:的候选键是:(SNO,PNO) SP的非主属性为:的非主属性为:SCITY,STATUS,PRICE,QTY 非主属性非主属性SCITY,PRICE对候选码是部分函数依赖,对候选码是部分函数依赖,STATUS对候选码是对候选码是传递函数依赖,传递函数依赖,所以所以该关系模式满足第一范式。该关系模式满足第一范式。为除去部分函数依赖可将关系模式为除去部分函数依赖可将关系模式SP分解为:分解为:SP1(SNO,SCITY,STATUS)SP2(PNO,PRICE)SP3(SNO,PNO,QTY)

37、5.1.3 关系模式规范化关系模式规范化 通过模式分解实现规范化通过模式分解实现规范化 (例)(例) 在在SP1的候选码是的候选码是SNO,在其中存在着非主属性对候选键的传递函数依赖性,在其中存在着非主属性对候选键的传递函数依赖性,为除去传递函数依赖,可将,为除去传递函数依赖,可将SP1分解为:分解为:SP11(SNO,SCITY)SP12(SCITY,STATUS)所以关系模式分解为所以关系模式分解为3NF范式的结果为:范式的结果为:SP11(SNO,SCITY)SP12(SCITY,STATUS)SP2(PNO,PRICE)SP3(SNO,PNO,QTY)可以证明以上每次分解均符合无损连接

38、和保持依赖的条件。可以证明以上每次分解均符合无损连接和保持依赖的条件。5.1.3 关系模式规范化关系模式规范化 通过模式分解实现规范化通过模式分解实现规范化 (例)(例)主要内容主要内容n 5.1 关系模式规范化关系模式规范化n 5.2 数据库系统设计数据库系统设计n 5.3 需求分析需求分析n 5.4 概念结构设计概念结构设计n 5.5 逻辑结构设计逻辑结构设计n 5.6 物理设计物理设计n 5.7 数据库实施和维护数据库实施和维护n 5.8 数据库应用开发数据库应用开发5.2.1 数据库系统设计概述数据库系统设计概述n 数据库设计数据库设计u数据库设计是指对于一个给定的应用环境,构造(设计

39、)优化的数据数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。求和数据操作要求。u目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境环境数据库设计的特点数据库设计的特点n 数据库建设的基本规律数据库建设的基本规律u三分技术,七分管理,十二分基础数据三分技术,

40、七分管理,十二分基础数据 u管理管理 数据库建设项目管理数据库建设项目管理 企业(即应用部门)的业务管理企业(即应用部门)的业务管理 u基础数据基础数据 收集、入库收集、入库 更新新的数据更新新的数据n 结构(数据)设计和行为(处理)设计相结合结构(数据)设计和行为(处理)设计相结合 u将数据库结构设计和数据处理设计密切结合将数据库结构设计和数据处理设计密切结合数据库设计的特点(续)数据库设计的特点(续)现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明

41、功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试结构和行为分离的设计结构和行为分离的设计 5.1.2 数据库设计方法数据库设计方法n 传统数据库设计方法传统数据库设计方法u新奥尔良(新奥尔良(New Orleans)方法)方法将数据库设计分为若干阶段和步骤将数据库设计分为若干阶段和步骤 u基于基于E-R模型的数据库设计方法模型的数据库设计方法概念设计阶段广泛采用概念设计阶段广泛采用u3NF(第三范式)的设计方法(第三范式)的设计方法逻辑阶段可采用的有效方法逻辑阶段可采用的有效方法 uODL(Object Definition Language)方法)方法

42、面向对象的数据库设计方法面向对象的数据库设计方法数据库设计方法(续)数据库设计方法(续)n 计算机辅助设计计算机辅助设计(数据库建模工具数据库建模工具)uORACLE Designer 2000uSYBASE PowerDesigneruERWinuRational Rose5.2.3 数据库设计过程数据库设计过程 数据库运行和维护 需求分析 概念结构设计 逻辑结构设计 物理结构设计 需求描述 转换规则 DBMS 功能 应用需求 DBMS 特征 参数 性能评价与预测 符合要求? 物理实现 试运行 满意? 系统需求分析阶段 概念结构设计阶段 逻辑结构设计阶段 物理设计阶段 数据库实施阶段 数据库

43、运行与维护阶段 N N Y Y 5.2.3 数据库设计过程数据库设计过程n 数据库设计分数据库设计分6个阶段个阶段u需求分析需求分析u概念结构设计概念结构设计u逻辑结构设计逻辑结构设计u物理结构设计物理结构设计u数据库实施数据库实施u数据库运行和维护数据库运行和维护 n 需求分析和概念设计独立于任何数据库管理系统需求分析和概念设计独立于任何数据库管理系统 n 逻辑设计和物理设计与选用的逻辑设计和物理设计与选用的DBMS密切相关密切相关数据库设计过程(续)数据库设计过程(续)一、数据库设计的准备工作:一、数据库设计的准备工作:选定参加设计的人选定参加设计的人1.系统分析人员、数据库设计人员系统分

44、析人员、数据库设计人员 u 自始至终参与数据库设计自始至终参与数据库设计2. 用户和数据库管理员用户和数据库管理员 u 主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护3.应用开发人员(程序员和操作员)应用开发人员(程序员和操作员) u 在系统实施阶段参与进来,负责编制程序和准备软硬件环境在系统实施阶段参与进来,负责编制程序和准备软硬件环境 数据库设计过程(续)数据库设计过程(续)概念结构设计阶段概念结构设计阶段u整个数据库设计的关键整个数据库设计的关键u通过对用户需求进行综合、归纳与抽象,形成一个独立于具体通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概

45、念模型的概念模型数据库设计的基本步骤(续)数据库设计的基本步骤(续)逻辑结构设计阶段逻辑结构设计阶段u将概念结构转换为某个将概念结构转换为某个DBMS所支持的数据模型所支持的数据模型u对其进行优化对其进行优化数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库物理设计阶段数据库物理设计阶段u为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)和存取方法)数据库设计过程(续)数据库设计过程(续)数据库实施阶段数据库实施阶段u运用运用DBMS提供的数据库语言(如提供的数据库语言(如SQL)及宿主语言,根据逻辑设计

46、)及宿主语言,根据逻辑设计和物理设计的结果和物理设计的结果建立数据库建立数据库编制与调试应用程序编制与调试应用程序组织数据入库组织数据入库进行试运行进行试运行数据库设计过程(续)数据库设计过程(续)数据库运行和维护阶段数据库运行和维护阶段u数据库应用系统经过试运行后即可投入正式运行数据库应用系统经过试运行后即可投入正式运行u在数据库系统运行过程中必须不断地对其进行评价、调整与修改在数据库系统运行过程中必须不断地对其进行评价、调整与修改数据库设计过程(续)数据库设计过程(续) 设计一个完善的数据库应用系统往往是上述六个阶段的不断反复设计一个完善的数据库应用系统往往是上述六个阶段的不断反复(P10

47、3图图5.1)n 把数据库设计和对数据库中数据处理的设计紧密结合起来把数据库设计和对数据库中数据处理的设计紧密结合起来n 将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计互参照,相互补充,以完善两方面的设计数据库设计各个阶段的设计描述数据库设计各个阶段的设计描述数据库设计过程中的各级模式数据库设计过程中的各级模式数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式数据库的各级模式 主要内容主要内容n 5.1 关系模式关系模式规范化规范化n 5.2 数据库系统设

48、计数据库系统设计n 5.3 需求分析需求分析n 5.4 概念结构设计概念结构设计n 5.5 逻辑结构设计逻辑结构设计n 5.6 物理设计物理设计n 5.7 数据库实施和维护数据库实施和维护n 5.8 数据库应用开发数据库应用开发需求分析的任务需求分析的任务n 详细调查现实世界要处理的对象(组织、部门、企业等)详细调查现实世界要处理的对象(组织、部门、企业等)n 充分了解原系统(手工系统或计算机系统)充分了解原系统(手工系统或计算机系统)n 明确用户的各种需求明确用户的各种需求n 确定新系统的功能确定新系统的功能n 充分考虑今后可能的扩充和改变充分考虑今后可能的扩充和改变需求分析的重点需求分析的

49、重点n 调查的重点是调查的重点是“数据数据”和和“处理处理”,获得用户对数据库要求,获得用户对数据库要求u 信息要求信息要求u处理要求处理要求u安全性与完整性要求安全性与完整性要求需求分析的难点需求分析的难点n 确定用户最终需求确定用户最终需求u用户用户缺少计算机知识缺少计算机知识u设计人员设计人员缺少用户的专业知识缺少用户的专业知识n 解决方法解决方法u设计人员必须不断设计人员必须不断深入深入地与用户进行地与用户进行交流交流需求分析的方法需求分析的方法n调查需求调查需求n达成共识达成共识n分析表达需求分析表达需求调查用户需求的具体步骤调查用户需求的具体步骤 调查组织机构情况调查组织机构情况

50、调查各部门的业务活动情况。调查各部门的业务活动情况。 在熟悉业务活动的基础上,协助用户明确对新系统的各种要在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。求。 确定新系统的边界确定新系统的边界进一步分析和表达用户需求进一步分析和表达用户需求n 结构化分析方法(结构化分析方法(Structured Analysis,简称,简称SA方法)方法)u从最上层的系统组织机构入手从最上层的系统组织机构入手u 自顶向下、逐层分解分析系统自顶向下、逐层分解分析系统进一步分析和表达用户需求(续)进一步分析和表达用户需求(续)1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:数据流数据流数据流数据

51、流数据数据存储存储信息要求信息要求数据数据来源来源处理处理数据数据输出输出处理要求处理要求进一步分析和表达用户需求(续)进一步分析和表达用户需求(续)2分解处理功能和数据分解处理功能和数据 (1)分解处理功能分解处理功能将处理功能的具体内容分解为若干子功能将处理功能的具体内容分解为若干子功能 (2)分解数据分解数据处理功能逐步分解同时,逐级分解所用数据,形成处理功能逐步分解同时,逐级分解所用数据,形成若干层次的若干层次的数据流图数据流图 (3)表达方法表达方法 处理逻辑:用判定表或判定树来描述处理逻辑:用判定表或判定树来描述 数据:用数据字典来描述数据:用数据字典来描述3将分析结果再次提交给用

52、户,征得用户的认可将分析结果再次提交给用户,征得用户的认可需求分析过程需求分析过程需求分析过程 数据字典及其表示数据字典及其表示n 数据字典的用途数据字典的用途u 进行详细的数据收集和数据分析所获得的主要结果进行详细的数据收集和数据分析所获得的主要结果n 数据字典的内容数据字典的内容u数据项数据项u数据结构数据结构u数据流数据流u数据存储数据存储u处理过程处理过程 数据项数据项n 数据项是不可再分的数据单位数据项是不可再分的数据单位n 对数据项的描述对数据项的描述 数据项描述数据项描述 数据项名,数据项含义说明,别名,数据项名,数据项含义说明,别名, 数据类型,长度,取值范围,取值含义,数据类

53、型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的与其他数据项的逻辑关系,数据项之间的联系联系 数据结构数据结构n 数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。n 一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。,或由若干个数据项和数据结构混合组成。n 对数据结构的描述对数据结构的描述 数据结构描述数据结构名,含义说明,数据结构描述数据结构名,含义说明, 组成组成:数据项或数据结构数据项或数据结构 数据流数据流n 数据流是数据结构在系统内传输

54、的路径。数据流是数据结构在系统内传输的路径。n 对数据流的描述对数据流的描述 数据流描述数据流描述 数据流名,说明,数据流来源,数据流名,说明,数据流来源, 数据流去向,组成数据流去向,组成:数据结构,数据结构, 平均流量,高峰期流量平均流量,高峰期流量 数据存储数据存储n 数据存储是数据结构停留或保存的地方,也是数据流的来数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。源和去向之一。n 对数据存储的描述对数据存储的描述 数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号,输入的数据流输入的数据流 ,输出的数据流,输出的数据流 ,组成组成:数据结构,数据量,

55、存取频度,数据结构,数据量,存取频度,存取方式存取方式 处理过程处理过程n 具体处理逻辑一般用判定表或判定树来描述具体处理逻辑一般用判定表或判定树来描述n 处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入:数据流,数据流, 输出输出:数据流,处理数据流,处理:简要说明简要说明数据字典举例数据字典举例例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。 数据项数据项,以,以“学号学号”为例:为例: 数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号 类型:字

56、符型类型:字符型 长度:长度:8 取值范围:取值范围:00000000至至99999999取值含义:前两位标别该学生所在年级,取值含义:前两位标别该学生所在年级, 后六位按顺序编号后六位按顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:处理过程(续)处理过程(续)数据结构,数据结构,以以“学生学生”为例为例“学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构: 数据结构:学生数据结构:学生 含义说明:是学籍管理子系统的主体数据结构,含义说明:是学籍管理子系统的主体数据结构, 定义了一个学生的有关信息定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,所在系,年级组

57、成:学号,姓名,性别,年龄,所在系,年级处理过程(续)处理过程(续)数据流,数据流,“体检结果体检结果”可如下描述:可如下描述: 数据流:体检结果数据流:体检结果 说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流去向:批准 组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:处理过程(续)处理过程(续)数据存储,数据存储,“学生登记表学生登记表”可如下描述:可如下描述: 数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流: 流出数据流:流出数据流: 组成:

58、组成: 数据量:每年数据量:每年3000张张 存取方式:随机存取存取方式:随机存取 处理过程(续)处理过程(续)处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍输入:学生,宿舍输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。处理:在新生报到后,为所有新生分配学生宿舍。 要求同一间宿舍只能安排同一性别的学生,要求同一间宿舍只能安排同一性别的学生, 同一个学生只能安排在一个宿舍中。同一个学生只能安排在一个宿舍中。 每个学生的居住面积不小于每个学生的居住面积

59、不小于3平方米。平方米。 安排新生宿舍其处理时间应不超过安排新生宿舍其处理时间应不超过15分钟。分钟。 数据字典数据字典n 数据字典是关于数据库中数据的描述,是元数据,而不是数据本身数据字典是关于数据库中数据的描述,是元数据,而不是数据本身n 数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善完善 需求分析小结需求分析小结n 设计人员应充分考虑到可能的扩充和改变,使设计易于更改,系设计人员应充分考虑到可能的扩充和改变,使设计易于更改,系统易于扩充统易于扩充 n 必须强调用户的参与必须强调用户的参与六、数据流图举例六、

60、数据流图举例仓库管理系统数据流图仓库管理系统数据流图保管员保管员车间车间财务部财务部采购部采购部入库入库处理处理1入库单入库单领料单领料单采购单采购单材料金额表材料金额表材料消耗表材料消耗表出库出库处理处理2更新更新库存库存3产生产生报表报表4出库文件出库文件出库数据出库数据出库数据出库数据出库数据出库数据入库文件入库文件入库数据入库数据库存台帐库存台帐入库数据入库数据库存数据库存数据库存数据库存数据数据加数据加工名工名数据源数据源/终点名终点名车间车间库存台帐材料入库输入入库单材料出库输入出库单入库文件更新库存采购单出库文件开始财务部全天工作结束库存量少于临界值到月末生成采购单生成材料金额表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论