数据库系统教程(第3版):第4章关系数据库的规范化设计_3

上传人:汽*** 文档编号:570143977 上传时间:2024-08-02 格式:PPT 页数:39 大小:284KB
返回 下载 相关 举报
数据库系统教程(第3版):第4章关系数据库的规范化设计_3_第1页
第1页 / 共39页
数据库系统教程(第3版):第4章关系数据库的规范化设计_3_第2页
第2页 / 共39页
数据库系统教程(第3版):第4章关系数据库的规范化设计_3_第3页
第3页 / 共39页
数据库系统教程(第3版):第4章关系数据库的规范化设计_3_第4页
第4页 / 共39页
数据库系统教程(第3版):第4章关系数据库的规范化设计_3_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《数据库系统教程(第3版):第4章关系数据库的规范化设计_3》由会员分享,可在线阅读,更多相关《数据库系统教程(第3版):第4章关系数据库的规范化设计_3(39页珍藏版)》请在金锄头文库上搜索。

1、第4章 关系数据库的规范化设计关系数据库的规范化设计是指面关系数据库的规范化设计是指面对一个现实问题对一个现实问题,如何选择一个比较如何选择一个比较好的关系模式集合。规范化设计理好的关系模式集合。规范化设计理论主要包括三个方面的内容:论主要包括三个方面的内容: 数据依赖数据依赖 范式范式 模式设计方法模式设计方法前 言(1)前 言(2)数据依赖起着核心的作用,数据依赖研数据依赖起着核心的作用,数据依赖研究数据之间的联系;究数据之间的联系;范式是关系模式的标准;范式是关系模式的标准;模式设计方法是自动化设计的基础。规模式设计方法是自动化设计的基础。规范化设计理论对关系数据库结构的设计范化设计理论

2、对关系数据库结构的设计起着重要的作用。起着重要的作用。4.1 关系模式的设计问题关系模式的设计问题4.1.1 关系模型的外延和内涵关系模型的外延和内涵外延就是通常所说的关系、表或当前值。外延就是通常所说的关系、表或当前值。内涵是对数据的定义以及数据完整性约束的定义。对内涵是对数据的定义以及数据完整性约束的定义。对数据完整性约束的定义主要包括以下两个方面:数据完整性约束的定义主要包括以下两个方面:静态约束,涉及到数据之间联系(称为静态约束,涉及到数据之间联系(称为“数据依赖,数据依赖,data dependences)、主键和值域的设计。)、主键和值域的设计。动态约束,定义各种操作(插入、删除、

3、修改)对动态约束,定义各种操作(插入、删除、修改)对关系值的影响。关系值的影响。4.1.2 关系模式的冗余和异常问题例4.1 S#S#C#C#CNAMECNAMETNAMETNAMES2S2C4C4PASCALPASCALWENWENS4S4C4C4PASCALPASCALWENWENS6S6C4C4PASCALPASCALWENWENS6S6C2C2ADAADALIULIUS4S4C2C2ADAADALIULIUS8S8C6C6BASICBASICMAMA数据冗余。数据冗余。如果一门课程有多个学生选如果一门课程有多个学生选修,那么在关系中要出现多个元组,也修,那么在关系中要出现多个元组,也就

4、是这门课程的课程名和任课老师姓名就是这门课程的课程名和任课老师姓名要重复多次。要重复多次。操作异常。由于数据的冗余,在对数据操作异常。由于数据的冗余,在对数据操作时会引起各种异常:操作时会引起各种异常:修改异常。修改异常。插入异常。插入异常。删除异常。删除异常。S#S#C#C#C#C#CNAMECNAMETNAMETNAMES2S2C4C4C4C4PASCALPASCALWENWENS4S4C4C4C2C2ADAADALIULIUS6S6C4C4C6C6BASICBASICMAMAS6S6C2C2S4S4C2C2S8S8C6C6(a)R1的实例的实例 (b)R2的实例的实例图图4.2 关系模式

5、实例关系模式实例4.1.3 关系模式的非形式化准则关系模式的非形式化准则准准则则4.1 4.1 关关系系模模式式的的设设计计应应尽尽可可能能只只包包含含有有直直接接联联系系的的属属性性,不不要要包包含含有有间间接接联联系系的的属属性性。也也就就是是,每每个个关系模式应只对应于一个实体类型或一个联系类型。关系模式应只对应于一个实体类型或一个联系类型。准准则则4.2 4.2 关关系系模模式式的的设设计计应应尽尽可可能能使使得得相相应应关关系系中中不不出出现现插插入入、删删除除和和修修改改等等操操作作异异常常现现象象。如如果果出出现现任任何何异异常常,则则要要清清楚楚地地加加以以说说明明,并并确确保

6、保更更新新数数据据库库的的程序正确操作。程序正确操作。准准则则4.3 4.3 关关系系模模式式的的设设计计应应尽尽可可能能使使得得相相应应关关系系中中避避免放置经常为空值的属性。免放置经常为空值的属性。准准则则4.4 4.4 关关系系模模式式的的设设计计应应尽尽可可能能使使得得关关系系的的等等值值连连接接在在主主键键和和外外键键的的属属性性上上进进行行,并并且且保保证证连连接接以以后后不不会生成额外的元组。会生成额外的元组。4.1.4 本章的符号规定本章的符号规定为了便于阅读,本章对使用的符号有如下规定:为了便于阅读,本章对使用的符号有如下规定: 英英文文字字母母表表首首部部的的大大写写字字母

7、母“A A,B B,C C,”表表示示单单个的属性。个的属性。 英英文文字字母母表表尾尾部部的的大大写写字字母母“,U U,V V,W W,X X,Y Y,Z”Z”表示属性集。表示属性集。 大大写写字字母母R R表表示示关关系系模模式式,小小写写字字母母r r表表示示其其关关系系。为为叙叙述述方方便便,有有时时也也用用属属性性名名的的组组合合写写法法表表示示关关系系模模式式。若模式有若模式有A A、B B、C C有三个属性,就用有三个属性,就用ABCABC表示关系模式。表示关系模式。 属属性性集集A A1 1,A An n简简写写为为A A1 1AAn n。属属性性集集X X和和Y Y的的并并

8、集集XYXY简写为简写为XYXY。XXA A简写为简写为XAXA或或AXAX。4.2.1 函数依赖的定义函数依赖的定义定义4.1 设有关系模式R(U),X和Y是属性集U的子集,函数依赖(Functional Dependency,简记为FD)是形为XY的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有tX=sX蕴涵tY=sY,那么称FD XY在关系模式R (U)中成立。例例4.2A AB BC CD DA AB BC CD Da1a1b1b1c1c1d1d1a1a1b1b1c1c1d1d1a1a1b1b1c2c2d2d2a1a1b2b2c2c2d2d2a2a2b2b2c3c3d3

9、d3a2a2b2b2c3c3d3d3a3a3b1b1c4c4d4d4a3a3b2b2c4c4d4d4AB AB例4.3 有一个关于学生选课、教师任课的关系模式: R R(S#S#,SNAMESNAME,AGEAGE,SEXSEX,C#C#,CNAMECNAME,SCORESCORE,T#T#,TNAMETNAME,TITLETITLE) 如果规定,每个学号只能有一个学生姓名,每个课程如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列号只能决定一门课程,那么可写成下列FD形式:形式: S#SNAME C#CNAME每个学生每学一门课程,有一个成绩,那么可写出下每个学

10、生每学一门课程,有一个成绩,那么可写出下列列FD: (S#,C#)SCORE还可以写出其他一些还可以写出其他一些FD: S#(AGE,SEX) C#T# T#(TNAME,TITLE)R(S#,SNAME,AGE,SEX,C#,CNAME,SCORE,T#,TNAME,TITLE)R(S#,SNAME,AGE,SEX,C#,CNAME,SCORE,T#,TNAME,TITLE)例例4.4 设关系模式设关系模式R(ABCD)。)。解:从解:从A值与值与B值有一对多联系,可写出函数依赖值有一对多联系,可写出函数依赖 BA。从从C值与值与D值有一对一联系,可写出两个函数依赖值有一对一联系,可写出两个

11、函数依赖 CD 和和 DC。定义定义4.2 如果如果XY和和YX同时成立,则可记为同时成立,则可记为XY。也就是在关系中,也就是在关系中,X值和值和Y值具有一一对应关系。值具有一一对应关系。4.2.3 FD的推理规则设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集。FD的推理规则有以下三条:A1(自反性,Reflexivity):若YXU,则XY在R上成立。A2(增广性,Augmentation):若XY在R上成立,且ZU,则XZYZ在R上成立。A3(传递性,Transitivity):若XY和YZ在R上成立,则XZ在R上成立。FD的其他五条推理规则的其他五条推理规则A4(

12、合并性,Union): XY,XZ XYZ。A5(分解性,Decomposition): XY,ZY XZ 。*以下规则不做要求A6(伪传递性): XY,WYZ WXZ。A7(复合性,Composition): XY,WZ XWYZ。A8 XY,WZ X(WY)YZ。FD的推理规则定义4.5 对于FD XY,如果YX,那么称XY是一个“平凡的FD”,否则称为“非平凡的FD”。定理4.3 如果A1An是关系模式R的属性集,那么XA1An成立的充分必要条件是XAi(i=1,n)成立。4.2.4 FD和关键码的联系(一)定义定义4.6 设关系模式R的属性集是U,X是U的一个子集。如果XU在R上成立,

13、那么称X是R的一个超键。如果XU在R上成立,但对于X的任一真子集X1都有X1U不成立,那么称X是R上的一个候选键。本章的键都是指候选键。FD和关键码的联系(二)例例4.6对于例对于例4.34.3中的关系模式:中的关系模式:R R(S#S#,SNAMESNAME,AGEAGE,SEXSEX,C#C#,CNAMECNAME,SCORESCORE,T#T#,TNAMETNAME,TITLETITLE) 根据根据FD,可以知道(,可以知道(S#,C#)能函数决定)能函数决定R的的全部属性,并且是一个候选键。全部属性,并且是一个候选键。虽然(虽然(S#,SNAME,C#,TNAME)也能函数也能函数决定

14、决定R的全部属性,但相比之下,只能说是一个超键,的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。而不能说是候选键,因为其中含有多余属性。4.4 关系模式的范式关系模式的好与坏,用什么标准衡量?这个标准就是模式的范式(Normal Forms,简记为NF)。范式的种类与数据依赖有着直接的联系,基于FD的范式有1NF、2NF、3NF、BCNF等多种。在不提及FD时,关系中是不可能有冗余的问题,但是当存在FD时,关系中就有可能存在数据冗余问题。1NF是关系模式的基础;2NF已成为历史,一般不再提及;在数据库设计中最常用的是3NF和BCNF。第一范式(1NF)(一)定

15、义4.16 如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(first normal form,简记为1NF)的模式。第一范式(1NF)(二)满足1NF的关系称为规范化的关系,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。例如关系模式R(NAME,ADDRESS,PHONE),如果一个人有两个电话号码(PHONE),那么在关系中至少要出现两个元组,以便存储这两个号码。1NF是关系模式应具备的最起码的条件。第二范式(2NF)(一)定义4.17 对于FD WA,如果存在X W有XA成立,那么称WA是局部依赖(A局部依赖于W);否则称WA是完全依赖。完全依赖

16、也称为“左部不可约依赖”第二范式(2NF)(二)定义4.18 如果A是关系模式R的候选键中属性,那么称A是R的主属性;否则称A是R的非主属性。定义4.19 如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式。如果数据库模式中每个关系模式都是2NF,则称数据库模式为2NF的数据库模式。违反违反2NF2NF的局部依赖的情况示意图:的局部依赖的情况示意图:属性集属性集X非主非主属性属性A键键第二范式(2NF)(三)例4.14 R(S#,C#,SCORE,T#,TITLE)R上有两个上有两个FD:(S#,C#) (T#,TITLE) C# (T#,TITLE

17、),因此前一个因此前一个FD是局部依赖,是局部依赖,R不是不是2NF模式。模式。此时此时R的关系就会出现冗余和异常现象。的关系就会出现冗余和异常现象。譬譬如如某某一一门门课课程程有有100个个学学生生选选修修,那那么么在在关关系系中中就就会会存存在在100个元组,因而教师的个元组,因而教师的工号和工号和职称称就会就会重复重复100次。次。第二范式(2NF)(四)模式:模式:R R(S#S#,C#C#,SCORESCORE,T#T#,TITLETITLE) 如果把如果把R分解成分解成R1(C#,T#,TITLE) 和和R2(S#,C#,SCORE)后,后,局部依赖局部依赖(S#,C#)(T#,T

18、ITLE)就消就消失了。失了。R1和和R2都是都是2NF模式。模式。 算法4.4 分解成2NF模式集的算法设关系模式R(U),主键是W,R上还存在FD XZ,并且Z是非主属性和XW,那么WZ就是一个局部依赖。此时应把R分解成两个模式R1(XZ),主键是X;R2(Y),其中Y=U-Z,主键仍是W,外键是X(REFERENCES R1)。利用外键和主键的联接可以从R1和R2重新得到R。如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。第三范式(3NF)(一)定义4.20 如果XY,YA,且Y!X和 A!Y,那么称XA是传递依赖(A传递依赖于X)。定义4.2

19、1 如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。如果数据库模式中每个关系模式都是3NF,则称其为3NF的数据库模式 。第三范式(3NF)(二)例4.15 在例4.14中,R2是2NF模式,而且也已是3NF模式。但R1(C#,TNAME,TADDR)是2NF模式,却不一定是3NF模式。如果R1中存在函数依赖C#TNAME和TNAMETADDR,那么C#TADDR就是一个传递依赖,即R1不是3NF模式。此时R1的关系中也会出现冗余和异常操作。譬如一个教师开设五门课程,那么关系中就会出现五个元组,教师的地址就会重复五次。如果把R2分解成R21(

20、TNAME,TADDR)和R22(C#,TNAME)后,C#TADDR就不会出现在R21和R22中。这样R21和R22都是3NF模式。 算法4.5 分解成3NF模式集的算法设关系模式R(U),主键是W,R上还存在FD XZ。并且Z是非主属性,Z!X,X不是候选键,这样WZ就是一个传递依赖。此时应把R分解成两个模式:R1(XZ),主键是X;R2(Y),其中Y=U-Z,主键仍是W,外键是X(REFERENCES R1)。利用外键和主键相匹配机制,R1和R2通过联接可以重新得到R。如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。 第三范式(3NF)(三)定

21、理4.9如果R是3NF模式,那么R也是2NF模式。1NF与2NF一般不宜作为数据库模式,通常需要将它们变换成3NF或更高级范式,这种变换过程称为“关系的规范化处理”。第三范式(3NF)(四)定理4.10 设关系模式R,当R上每一个FD XA满足下列三个条件之一时:AX(即XA是一个平凡的FD);X是R的超键;A是主属性。关系模式R就是3NF模式。图4.15 违反3NF的传递依赖的三种情况 第三范式(3NF)(五) 3NF还有下面一个等价的定义,如下所述。定义4.18 设F是关系模式R的FD集,如果对F中每个非平凡的FD XY,都有X是R的超键,或者Y的每个属性都是主属性,那么称R是3NF的模式

22、。 这个定义表明,如果非平凡的FD XY中Y是主属性,则XY不违反3NF条件;如果Y是非主属性,且X不包含超键,则必存在着关键码W有WX,此时就有WY是一个传递依赖,即R不是3NF模式。BCNF(BoyceCodd NF)定义4.19 如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。如果数据库模式中每个关系模式都是BCNF,则称为BCNF的数据库模式。图4.16 主属性对候选键的传递依赖 BCNF (二)例4.16 设关系模式R(B#,BNAME,AUTHOR)的属性分别表示书号、书名和作者名。(AUTHOR,BNAME)B# 和 B#BNAMER的关键码

23、为(BNAME,AUTHOR)或(B#,AUTHOR),因而模式R的属性都是主属性,R是3NF模式。但从上述两 个 FD, 可 知 属 性 BNAME传 递 依 赖 于 关 键 码(AUTHOR,BNAME),因此R不是BCNF模式。如 果 把 R分 解 成 R1( B#, BNAME) 和 R2( B#,AUTHOR),能解决上述问题,且R1和R2都是BCNF。但有可能引起新的问题,譬如这个分解把(AUTHOR,BNAME)B#丢失了,数据语义将会引起新的矛盾。BCNF (三)定理4.11 如果R是BCNF模式,那么R也是3NF模式。定义4.19 设F是关系模式R的FD集,如果对F中每个非平凡的FD XY,都有X是R的超键,那么称R是BCNF的模式。分解成BCNF模式集的算法基本和算法4.5一样,只是FD XZ中,Z也可以是主属性。各范式之间的关系1NF2NF3NF要求会判断1NF、2NF、3NF、 BCNF并给出理由要求会将指定关系模式分解为2NF、3NF 、 BCNF4NF、5NF不做要求BCNF作业P1444.26-4.29

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号