- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 关系数据库设计理论 设计数据库时,如果不遵循一定的原则,将会带来许多问题。本章从一个例子入手,研究不合理的数据库设计会带来哪些问题,并分析导致这些问题的原因,从而引入关系数据库设计的规范化理论。 关系数据库规范化理论是指导关系数据库逻辑设计的理论,是数据库逻辑设计的一个有力工具。本章介绍关系数据库设计理论中三个方面的内容:函数依赖、范式和关系模式的规范化。 第4章的章节安排 4.1 规范化问题 4.2 函数依赖 4.3 关系范式 4.4 关系模式的规范 4.1 规范化问题 假设为学校的选课管理建立了一个学生选课关系模式,记作: S-SC-C(SNO,SNAME,AGE,SEX,CNO,CNAME,GRADE,TEACHER) 这个关系模式存在如下问题: 1. 数据冗余 2. 修改异常 3. 插入异常 4. 删除异常 利用规范化理论,可以把以上的学生选课关系模式分解为以下三个关系模式: 学生关系模式S(SNO,SNAME,AGE,SEX) 课程关系模式C(CNO,CNAME,TEACHER) 选课关系模式SC(SNO,CNO,GRADE) 4.2 函数依赖 关系数据库设计理论,是从关系内部属性与属性之间的联系入手,分析所发现的问题,并提出解决问题的方法,形成关系模式设计所必须满足的规范化要求。 函数依赖反映了关系内部属性之间的联系。函数依赖是数据依赖的一种。 4.2.1 数据依赖 4.2.2 函数依赖 4.2.3 关键字 4.2.1 数据依赖 实体内部属性间的联系一般分为三类: (1)一对一联系(1:1) (2)一对多联系(1:m) (3)多对多联系(m:n) 一个关系中属性值之间的相互依赖又相互制约的联系称为数据依赖。数据依赖是语义(实际含义)的体现。 4.2.2 函数依赖 设有一个关系模式为: S-SC-C(SNO,SNAME,AGE,SEX,CNO,CNAME,GRADE,TEACHER) 有了这样的一个关系模式,并不等于可以随便输入元组值,下表所示的关系中就有语义错误。 S-SC-C的一个关系 4.2.2 函数依赖(续1) 在一个关系模式中,属性值不能随意输入,必须符合语义。按照语义,在S-SC-C关系模式中,当学号确定后,学生姓名和性别也就被唯一确定了,我们称姓名和性别依赖于学号。属性间的这种依赖关系类似于数学中的单值函数Y=F(X)。自变量X的值唯一决定Y值。X不同,Y值可以相同,也可以不同。这时,我们说X通过函数F确定Y值,简称X函数确定Y;我们说Y通过函数F依赖于X,简称Y函数依赖于X。 4.2.2 函数依赖(续2) 在S-SC-C关系模式中,SNO函数确定SNAME、AGE和SEX,或者说SNAME、AGE和SEX函数依赖于SNO,记作: SNO→SNAME, SNO→AGE, SNO→SEX。 设R(U)是属性集U上的关系模式,X与Y是U上的子集,若对R(U)上所有的具体关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”。记作:X→Y。 4.2.2 函数依赖(续3) 如果属性X、Y之间是1:1的联系,那么,则存在着X与Y相互函数依赖(X←→Y)。 如果属性X、Y之间是1:m的联系,那么,则存在着Y→X的函数依赖,但是,X\→Y。 属性X、Y之间是n:m的联系,那么,在X与Y之间则不存在任何函数依赖。 4.2.2 函数依赖(续4) 非平凡函数依赖与平凡函数依赖 设关系模式R(U)中有函数依赖X→Y,并且Y不是X的子集,则称X→Y是非平凡的函数依赖;相反,若Y是X的子集,则称X→Y是平凡的函数依赖。 平凡函数依赖的例子是(SNO,CNO)→SNO,(SNO,CNO)→CNO。 完全函数依赖与部分函数依赖 设关系模式R(U)中有函数依赖X→Y;若存在X的真子集X’ ,使得X’ →Y成立,则称Y部分依赖于X,记作: 4.2.2 函数依赖(续5) 4.2.3 关键字 4.2.3 关键字(续) 3.外部关键字 在关系模式R(U)中,若属性或属性组X不是关系R的关键字,但X是其它关
文档评论(0)