- 1、本文档共139页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章主要内容 4.1 关系模式的设计问题 4.2 函数依赖 4.3 关系模式的分解特性 4.4 关系模式的范式 SQL数据库的体系结构 4.1关系模式的设计问题 对于一个现实问题,它有一个属性集U,其中每个属性Ai对应一个值域DOM(Ai),它由属性集U和U上成立的数据完整性约束集组成。关系r是关系模式R(U)的当前值,是一个元组的集合。这里的关系模式和关系一般称为泛关系模式和泛关系。 什么是好的数据库设计 体现客观世界的信息 无过度的冗余 无插入异常 无更新复杂 无删除异常 4.1关系模式的设计问题 4.1关系模式的设计问题 对数据库操作时,会出现以下问题 1、数据冗余:(数据重复存储:浪费存储空间,数据库维护困难) 如一名教师教多门课程,他的地址要重复多次 2、更新异常:如果一个教师教了三门课程,则如果他的地址变了,三个元组的地址信息都要变。若有一个没变,就会造成地址不唯一,产生错误信息。 3、插入异常:主键为空的记录不能存在于数据库,导致不能进行插入操作 如教师没有分配教学任务,就不能插入数据库。 4. 删除异常:删除操作后,会引起一些信息的丢失。 如一个原有教学任务的教师教师现在没有教学任务,要把这个教师的所有元组都删去。这样就把这个教师的姓名和地址也从数据库中删去了,不合理。 4.1关系模式的设计问题 4.1关系模式的设计问题 考虑为学生的选课信息而设计一个关系模式。 4.2 函数依赖 (FD, Function Dependence) y=f(x) y=3x 4.2.1 函数依赖定义 设有关系模式R(A1,A2,...An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系, 如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X, 记为X→Y。X→Y为模式R的一个函数依赖。 如S# ? Sname, (S#,C#)? Grade ?? 该定义理解如下:有一张设计好的二维表,X,Y是表的某些列(可以是一列,也可以是多列),若在表中的第t1行,和第t2行上的X值相等, 那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X。 比如,有如下二维表 在表中,凡成绩相同的,对应的“成绩等级”也必是相同的,因此,“成绩等级”函数依赖于成绩。 但是反过来则不成立。 Notice: (1)在这张表中,任何一行的关系均应符合函数依赖的条件,如果有一行不符合函数依赖的条件,则函数依赖对于这个关系就不成立。 (2)函数依赖是否成立是不可证明的,只能通过属性的含义来判断. 表例 举例: 职工号(A) 基本工资(B) 奖金(C) 051 390 50 052 420 50 053 390 80 A B A C B A C A 4.2.2 函数依赖-几点说明 1. 函数依赖是语义范畴的概念.它反映了一种语义完整性约束,只能根据语义来确定一个函数依赖.例如,“姓名”-“年龄”这个函数依赖只有在没有同名人的条件下成立,否则,此函数依赖不成立。 2. 函数依赖是指关系R模式的所有关系元组均应满足的约束条件,而不是关系模式中的某个或某些元组满足的约束条件。 4.2.2 函数依赖-几点说明 3. 函数依赖与属性间的联系类型有关 (1)若属性X和Y之间有“一对一”的联系, 则X Y,Y X,X Y.(如不存在同名的学号和姓名) (2)若属性X和Y之间有“多对一”的联系, 则X Y,但Y X. (3)若属性X和Y之间有“多对多”的联系, 则X与Y之间不存在任何函数依赖. 当确定函数依赖关系时,可从属性间的联系入手 函数依赖 (FD, Function Dependence) y=f(x) 4.2.2 函数依赖-几点说明 4. 如果X → Y,并且Y不是X的子集,则称X → Y是非平凡的函数依赖;如果Y是X的子集,则称X→Y是平凡的函数依赖; 我们讨论的是非平凡的函数依赖. 例如:(S#,SN)? SN是平凡的函数依赖 5. 函数依赖的存在,决定了自然连接的特性 设关系模式R(X,Y,Z),X,Y,Z为不相交的属性集合,若X→Y,X → Z, 则有R(X,Y,Z)=R(X,Y) R(X,Z) 即用它们的自然连接可复员原关系模式 举例:关系模
文档评论(0)