- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 关系数据库的规范化理论 本章内容 1、问题的提出 2、函数依赖 3、 关系范式 4、 函数依赖理论 5、 关系分解原则 4.1 问题的提出 学号 姓名 年龄 性别 系名 系主任 课程名 成绩 011121 王强 19 男 计算机 王金喜 操作系统 87 011132 李琳 18 女 信息 刘成 数据结构 90 020923 刘过 19 男 信息 刘成 C语言 97 021206 张克 20 男 数学 刘国民 高等数学 88 021511 吴雯 18 女 计算机 王金喜 软件工程 76 出现的问题: 1、数据冗余 2、修改异常 3、插入异常 4、删除异常 例:教学关系--S1实例 出现问题的原因: 有太多相互之间相联系的属性保存在了同一个关系模式中,这就造成因一种信息被捆绑在其他信息上而产生的信息之间相互依附存储的问题——数据依赖 解决问题的方法:将相互之间有太多依赖关系的属性分别存放在不同的关系中。 分解后的三个关系 学号 姓名 年龄 性别 系名 011121 王强 19 男 计算机 011132 李琳 18 女 信息 020923 刘过 19 男 信息 021206 张克 20 男 数学 021511 吴雯 18 女 计算机 系名 系主任 计算机 王金喜 信息 刘成 信息 刘成 数学 刘国民 计算机 王金喜 学号 课程名 成绩 011121 操作系统 87 011132 数据结构 90 020923 C语言 97 021206 高等数学 88 021511 软件工程 76 学生 S1 系 S2 选修 S3 4.2关系模式的函数依赖 4.2.1 函数依赖的相关定义 (1)函数依赖 定义4.1 设一个关系为R(U),X、Y是属性集U的子集。若对于元组中X上的每个值都有Y上的一个唯一值与之对应, 则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,记作X?Y,称X为决定因素。(同书上的概念p106) 例1:设一个职工关系为(职工号,姓名,性别,年龄,职称) 职工号为决该函数依赖的决定因素 例2: U=(学号,姓名,性别,班级,系,课程号,成绩) 则其函数依赖情况是: F={学号?姓名,学号?性别,学号?班级,学号?系,班级?系,(学号,课程号)?成绩 } 注意:几点说明 4.2.2 函数依赖的类型 (1)平凡函数依赖与非平凡函数依赖 定义4.3 对于函数依赖X?Y,如果满足 ,则称此函数依赖为非平凡函数依赖, 否则称之为平凡函数依赖。 例如:学号?姓名,学号?性别,(学号,课程号)?成绩 等都是非平凡函数依赖。 例如: (学号,课程号)?学号,(学号,课程号)?课程号 是平凡函数依赖 对于任一关系模式,平凡函数依赖必然是成立的。 通常讨论的都是非平凡函数依赖。 (2)完全函数依赖与部分函数依赖 定义4.4 对于函数依赖X?Y,若Y函数依赖于X,但不依赖于X的任意一个真子集 ,则称Y完全函数依赖于X。记作: 例:(学号,课程号) 成绩 定义4.4 若Y函数依赖于X,但并非完全依赖于X,则称Y部分函数依赖于X,或称Y函数依赖于X的某个真子集。 记作: 例:(学号,课程号)?姓名 (学号,课程号) ?姓名,而对于每个学生都有唯一的学号值,所以 学号?姓名。因此(学号,课程号) 姓名 是部分函数依赖。 (3)传递函数依赖 定义4.5 如果X?Y,( ), , Y?Z,则称Z传递依赖于X。记作: 例:学号?班级,班级?系,学号 系 例:有以下班级关系: 班级(班号,专业名,系名,人数,入学年份) 其中,主码是班号。 经分析,有:班号?专业名,班号?人数,班号?入学年份,专业名?系名。 又因为:班号?专业名,专业名 班号,专业名?系名,所以有:班号 系名。 4.2.3 关键字的相关定义 1、关键字 定义:在关系模式R(U)中,若 ,且满足 ,则称K为R的候选键或候选关键字。 2、候选关键字、主关键字 3、主属性、非主属性、主属性集、非主属性集 4.2.4 函数依赖的推理规则 1、函数依赖的逻辑蕴涵 2、Armstrong 公理系统 3、函数依赖推理规则的完备性 4、闭包的计算 4.2 函数依赖理论 一个关系模式可能存在很多个函数依赖,它们构成了该关系模式的函数依赖集。 该集合是很大的,如果仅依靠语义分析的方法去找出一个关系模式的所有函数依赖是一件很不 容易的事情,实际上也没有必要。 1,逻辑蕴涵:用推理的方法,从一个已知的函数依赖集
文档评论(0)