关系数据库的规范化设计.pptx

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
00:53 1 前 言 关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。 规范化设计理论主要包括三个方面的内容:数据依赖、范式和模式设计方法。 数据依赖起着核心的作用。它研究数据之间的联系, 范式是关系模式的标准, 模式设计方法是自动化设计的基础。 规范化设计理论对关系数据库结构的设计起着重要的作用。 第1页/共64页 00:53 2 4.1 关系模式的设计问题 4.1.1 关系模型的外延和内涵 外延就是通常所说的关系、表或当前值。由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不断变化。 内涵是对数据的定义以及数据完整性约束的定义。对数据的定义包括对关系、属性、域的定义和说明。内涵是与时间独立的,一般又把内涵称为关系模式。对数据完整性约束的定义涉及面较广,主要包括: 静态约束:涉及到数据之间联系(称为“数据依赖”,data dependences)、主键和值域的设计。 动态约束:定义各种操作(插入、删除、修改)对关系值的影响。 第2页/共64页 00:53 3 4.1.2 关系模式的冗余和异常问题(一) 数据冗余:指同一个数据在系统中多次重复出现的情况。 例:有关系模式R(TNAME,ADDRESS,C#,CNAME) TNAME ADDRESS C# CNAME t1 a1 c1 n1 t1 a1 c2 n2 t1 a1 c3 n3 t2 a2 c4 n4 t2 a2 c5 n2 t3 a3 c6 n4 图4.1 关系模式R的实例 第3页/共64页 00:53 4 4.1.2 关系模式的冗余和异常问题(二) 数据冗余:若一个教师教几门课程,则该教师的地址就会重复几次存储。 操作异常:由于数据的冗余,在操作时可能会引起各种异常情形: 修改异常:如教师t1教三门课程,在关系中对应于t1就会有三个元组。当其“地址”发生变化时,则三个元组中的“地址”全部要变。若某个地址未改,就会产生不一致现象。 插入异常:如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性C#和CNAME上就没有值(空值)。 删除异常:若要取消教师t3的教学任务,那么就要把这个教师的元组删去,同时也把t3的地址信息从表中删去了。 第4页/共64页 00:53 5 4.1.2 关系模式的冗余和异常问题(三) TNAME ADDRESS TNAME C# CNAME t1 a1 t1 c1 n1 t2 a2 t1 c2 n2 t3 a3 t1 c3 n3 t2 c4 n4 t2 c5 n2 t3 c6 n4 图4.2 关系模式分解的实例 (a) 关系模式R1的实例 (b ) 关系模式R2的实例 综上可以看出,R的设计并不是一个合适的设计。 将R“分解”为R1和R2,可有效地解决上述冗余与异常问题。 “关系模式有问题就分解它” 第5页/共64页 00:53 6 4.2. 函数依赖 (一) 现实世界的许多已有事实限定了关系模式中所有可能的关系必须满足一定的完整性约束条件。这些约束或者是通过对属性取值范围的限定、或者是通过属性值之间的相互关连(主要体现于值的相等与否)反映出来。 定义4.1 设有关系模式R(U),X和Y是属性集U的子集,函数依赖(Functional Dependency,简记为FD)是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD X→Y在关系模式R (U)中成立。 X→Y读作“X函数决定Y”或者“Y函数依赖于X” 对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定 第6页/共64页 00:53 7 4.2 函数依赖 (二) 例: A B C D A B C D a1 b1 c1 d1 a1 b1 c1 d1 a1 b1 c2 d2 a1 b2 c2 d2 a2 b2 c3 d3 a2 b2 c3 d3 a3 b1 c4 d4 a3 b2 c4 d4 图4.3 关系模式R 的两个关系 第7页/共64页 00:53 8 4.2 函数依赖 (三) 例:有一个学生选课、教师任课的关系模式: R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) 属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。 如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列FD形式: S#→SNAME C#→CNAME 每个学生每学一门课程,有一个成绩,那么可写出下列

文档评论(0)

kuailelaifenxian + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体太仓市沙溪镇牛文库商务信息咨询服务部
IP属地上海
统一社会信用代码/组织机构代码
92320585MA1WRHUU8N

1亿VIP精品文档

相关文档