- 1、本文档共139页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章关系规范化理论与数据库设计.ppt
第8章 关系规范化理论与数据库设计 8.1 函数依赖 8.2 规范化和范式 8.2.1 引例 8.2.2 第一范式(1NF)及规范化 8.2.3 第二范式(2NF)与第三范式(3NF) 8.2.4 BC范式(BCNF) 8.2.5 关系模式的分解 8.3 数据库设计概述 8.4 需求分析 8.4.1 需求分析的任务 8.4.2 需求分析的方法 8.1 函 数 依 赖 建立一个关系数据库系统,首先要考虑怎样建立数据模式,即应该构造几个关系模式,每个关系模式中需要包含哪些属性等,这是数据库设计的问题。关系规范化主要讨论的就是建立关系模式的指导原则,所以有人把规范化理论称为设计数据库的理论。 数据依赖是通过一个关系中属性间值的依赖与否体现出来的数据间的相互关系,它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(FD,Functional Dependency)和多值依赖(MVD,Multivalued Dependency)。这里只讨论函数依赖,有关多值依赖的概念,有兴趣的读者可以参阅有关书籍。 函数依赖极为普遍地存在于现实生活中。比如描述一个学生的关系,可以有学号(SNO),姓名(SNAME)和系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习,因而当“学号”值确定以后,姓名和该生所在系的值也就被惟一的确定了。就象自变量x确定以后,相应的函数值f(x)也就惟一地确定了一样,称SNO函数决定SNAME和SDEPT,或者说SNAME和SDEPT函数依赖于SNO,记为 SNO→SNAME SNO→SDEPT 用形式化的方式表示,关系模式R可以记为 RU,F 其中U表示一组属性的集合,F表示属性组U上的一组数据依赖集合。对于上述的学生关系,可有 U = {SNO,SNAME,SDEPT} F = {SNO→SNAME,SNO→SDEPT} 对于关系模式RU,F,当且仅当U上的一个关系r满足F时,称r为关系模式RU,F的一个关系。 定义8-1 设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记为X→Y。 注意,函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均需要满足的约束条件。 函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如在没有同名的情况下,NAME→AGE,而在有同名的情况下,这个函数依赖就不成立了。 下面介绍一些术语和记号: ① 若X→Y,则X叫做决定因素。 ② 若X→Y,Y→X,则记为X←→Y。 ③ 若Y不函数依赖于X,则记为XY。 ④ 若X→Y,但Y X,则称X→Y是平凡的函数依赖。 ⑤ 若X→Y,但Y X,则称X→Y是非平凡的函数依赖。若不特别声明,下面总是指非平凡的函数依赖。 函数依赖可分为三类:完全函数依赖,部分函数依赖和传递函数依赖。这三类函数依赖定义如下: (1) 完全函数依赖。 定义8-2 在R(U)中,如果X→Y,并且对于X的任何一个真子集X?,都有XY,则称Y对X完全函数依赖,记为X Y。 可简写为 →。 例8-1 在关系S(SNO,SNAME,SDEPT)中,SNO→SNAME,SNO→SDEPT。用图解表示如图8-1所示。 若关系中没有同姓名的学生,则用SNO可以惟一确定SNAME,用SNAME也可惟一确定SNO,形成了两者的相互依赖关系,可以记作SNO←→SNAME。 (2) 部分函数依赖。 定义8-3 在R(U)中,如果X→Y,并且对于X的某个真子集X,有X→Y,则称Y对X部分函数依赖,记为X Y。 只有当X为属性组时,才有可能发生部分函数依赖的情况。因为如果X为单个属性,其子集X 就是X本身。 例8-2 若在关系SC(SNO,CNO,GRADE)中增加一个属性CLASS(学生所在班级),则在新关系SCNEW(SNO,CNO,GRADE,CLASS)中有 (SNO,CNO)→GRADE
文档评论(0)