




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
返回 第3章 关系数据模型(关系 数据库库理论论) 花些时间设计你的数据库 能治疗你的头疼! 也不会在运行数据库的时候不断出现让你 头疼的问题! 1 返回 本章概要 前面已经讲述了关系数据库、关系模型的基本概念以 及E/R转换到关系模式。 如何使用关系模型设计关系数据库,也就是面对一个 现实问题,如何选择一个比较好的关系模式的集合,每 个关系又应该由哪些属性组成。这属于数据库设计的问 题,确切地讲是数据库逻辑设计的问题。 本节讲述关系数据库规范化理论,这是数据库逻辑设 计的理论依据。 要求了解规范化理论的研究动机及其在数据库设计中的作 用, 掌握函数依赖的有关概念, 第一范式、第二范式、第三范式的定义, 重点掌握并能够灵活运用关系模式规范化的方法和关系模 式分解的方法,这也是本章的难点。 2 返回 4.1 规范化问题的提出 4.1.1 规范化理论的主要内容 关系数据库的规范化理论最早是由关系数据库 的创始人E.F.Codd提出的, 后经许多专家学者对关系数据库理论作了深入 的研究和发展,形成了一整套有关关系数据库 设计的理论。 在该理论出现以前,层次和网状数据库的设计 只是遵循其模型本身固有的原则,而无具体的 理论依据可言,因而带有盲目性,可能在以后 的运行和使用中发生许多预想不到的问题。 3 返回 在关系数据库系统中,关系模型包括一组关系 模式,各个关系不是完全孤立的,数据库的设 计较层次和网状模型更为重要。 如何设计一个适合的关系数据库系统,关键是 关系数据库模式的设计,一个好的关系数据库 模式应该包括多少关系模式,而每一个关系模 式又应该包括哪些属性,又如何将这些相互关 联的关系模式组建一个适合的关系模型,这些 工作决定了到整个系统运行的效率,也是系统 成败的关键所在,所以必须在关系数据库的规 范化理论的指导下逐步完成。 4 返回 关系数据库的规范化理论主要包括三个方面的内容: 函数信赖 范式(Normal Form) 模式设计 其中,函数信赖起着核心的作用,是模式分解和模式 设计的基础,范式是模式分解的标准。 4.1.2 关系模式的存储异常问题 数据库的逻辑设计为什么要遵循一定的规范化理论? 什么是好的关系模式? 某些不好的关系模式可能导致哪些问题? 下面通过例子进行分析: 5 返回 例如,要求设计教学管理数据库,其关系模式SCD如下: SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE) 其中,SNO表示学生学号,SN表示学生姓名,AGE表示 学生年龄,DEPT表示学生所在的系别,MN表示系主任姓 名,CNO表示课程号,SCORE表示成绩。 根据实际情况,这些数据有如下语义规定: 1. 一个系有若干个学生,但一个学生只属于一个系; 2. 一个系只有一名系主任,但一个系主任可以同时兼几 个系的系主任; 3. 一个学生可以选修多门功课,每门课程可有若干学生 选修; 4. 每个学生学习课程有一个成绩。 在此关系模式中填入一部分具体的数据,则可得到SCD 关系模式的实例,即一个教学管理数据库,如图4.1所 示。 6 返回 图4.1 关系SCD SNOSNAGEDEPTMNCNOSCORE S1赵亦17计算机刘伟C190 S1赵亦17计算机刘伟C285 S2钱尔18信息王平C557 S2钱尔18信息王平C680 S2钱尔18信息王平C7 70 S2钱尔18信息王平C570 S3孙珊20信息王平C10 S3孙珊20信息王平C270 S3孙珊20信息王平C485 S4李思男自动化刘伟C193 7 返回 根据上述的语义规定,并分析以上关系中的数据,我们 可以看出:(SNO,CNO)属性的组合能唯一标识一个元组 ,所以(SNO,CNO)是该关系模式的主关系键。但在进行 数据库的操作时,会出现以下几方面的问题。 1. 数据冗余。每个系名和系主任的名字存储的次 数等于该系的学生人数乘以每个学生选修的课程门数 ,同时学生的姓名、年龄也都要重复存储多次,数据 的冗余度很大,浪费了存储空间。 2. 插入异常。如果某个新系没有招生,尚无学生 时,则系名和系主任的信息无法插入到数据库中。 因为在这个关系模式中,(SNO,CNO)是主关 系键。根据关系的实体完整性约束,主关系键的值不 能为空,而这时没有学生,SNO和CNO均无值,因此不 能进行插入操作。 另外,当某个学生尚未选课,即CNO未知, 实体完整性约束还规定,主关系键的值不能部分为空 ,同样不能进行插入操作。 8 返回 3. 删除异常。 某系学生全部毕业而没有招生时,删除全部学生 的记录则系名、系主任也随之删除,而这个系依然存 在,在数据库中却无法找到该系的信息。 另外,如果某个学生不再选修C1课程,本应该只 删去C1,但C1是主关系键的一部分,为保证实体完整 性,必须将整个元组一起删掉,这样,有关该学生的 其它信息也随之丢失。 4. 更新异常。 如果学生改名,则该学生的所有记录都要逐一修 改SN; 又如某系更换系主任,则属于该系的学生记录都 要修改MN的内容,稍有不慎,就有可能漏改某些记录 ,这就会造成数据的不一致性,破坏了数据的完整性 。 9 返回 由于存在以上问题,我们说,SCD是一个不好的关系模 式。产生上述问题的原因,直观地说,是因为关系中“ 包罗万象”,内容太杂了。 那么,怎样才能得到一个好的关系模式呢? 我们把关系模式SCD分解为下面三个结构简单的关系模 式,如图4.2所示。 学生关系S(SNO,SN,AGE,DEPT) 选课关系SC(SNO,CNO,SCORE) 系关系D(DEPT,MN) 10 返回 S SCS SC SNOSNAGEDEPTSNOCNOSCORE S1赵亦17计算机S1C190 S2钱尔18信息S1C285 S3孙珊20信息S2C557 S4李思21自动化S2C680 S2C7 D D S2C570 DEPTMNS3C10 计算机刘伟S3C270 信息王平S3C485 自动化刘伟S4C193 图4.2 分解后的关系模式 11 返回 在以上三个关系模式中,实现了信息的某种程度的分 离, S中存储学生基本信息,与所选课程及系主任无关; D中存储系的有关信息,与学生无关; SC中存储学生选课的信息,而与所学生及系的有关信息无 关。 与SCD相比,分解为三个关系模式后,数据的冗余度明 显降低。 当新插入一个系时,只要在关系D中添加一条记录。 当某个学生尚未选课,只要在关系S中添加一条学生记录 ,而与选课关系无关,这就避免了插入异常。 当一个系的学生全部毕业时,只需在S中删除该系的全部 学生记录,而关系D中有关该系的信息仍然保留,从而不会引起 删除异常。 同时,由于数据冗余度的降低,数据没有重复存储,也不 会引起更新异常。 12 返回 经过上述分析,我们说分解后的关系模 式是一个好的关系数据库模式。 从而得出结论,一个好的关系模式应该 具备以下四个条件: 1. 尽可能少的数据冗余。 2. 没有插入异常。 3. 没有删除异常。 4. 没有更新异常。 13 返回 但要注意,一个好的关系模式并不是在任何情况下都 是最优的, 比如查询某个学生选修课程名及所在系的系主任时,要通 过连接,而连接所需要的系统开销非常大,因此要以实际设计 的目标出发进行设计 如何按照一定的规范设计关系模式,将结构复杂的关 系分解成结构简单的关系,从而把不好的关系数据库模 式转变为好的关系数据库模式,这就是关系的规范化。 规范化又可以根据不同的要求而分成若干级别。 我们要设计的关系模式中的各属性是相互依赖、相互 制约的,这样才构成了一个结构严谨的整体。 因此在设计关模式时,必须从语义上分析这些依赖关 系。 数据库模式的好坏和关系中各属性间的依赖关系有关 ,因此,我们先讨论属性间的依赖关系,然后再讨论关 系规范化理论。 14 返回 4.2 函数依赖 4.2.1 函数依赖的定义及性质 关系模式中的各属性之间相互依赖、相互制约的联系 称为数据依赖。 数据依赖一般分为函数依赖、多值依赖和连接依赖。 其中,函数依赖是最重要的数据依赖。 函数依赖(Functional Dependency)是关系模式中属 性之间的一种逻辑依赖关系。 例如在上一节介绍的关系模式SCD中,SNO与SN、AGE、 DEPT之间都有一种依赖关系。 由于一个SNO只对应一个学生,而一个学生只能属于一个 系,所以当SNO的值确定之后,SN,AGE,DEPT的值也随之被唯 一的确定了。 这类似于变量之间的单值函数关系。设单值函数Y=F(X), 自变量X的值可以决定一个唯一的函数值Y。 在这里,我们说SNO决定函数(SN,AGE,DEPT),或者说 (SN,AGE,DEPT)函数依赖于SNO。 15 返回 下面给函数依赖的形式化定义。 4.2.1.1 函数依赖的定义 定义4.1 设关系模式R(U,F),U是属性全集,F是U上的 函数依赖集,X和Y是U的子集,如果对于R(U)的任意一 个可能的关系r,对于X的每一个具体值,Y都有唯一的 具体值与之对应,则称X决定函数Y,或Y函数依赖于X, 记作XY。我们称X为决定因素,Y为依赖因素。当Y不 函数依赖于X时,记作:X Y。当XY且YX时,则记 作:X Y。 对于关系模式SCD U=SNO,SN,AGE,DEPT,MN,CNO,SCORE F=SNOSN,SNOAGE,SNODEPT 一个SNO有多个SCORE的值与其对应,因此SCORE不能唯 一地确定,即SCORE不能函数依赖于SNO,所以有: SNO SCORE。 但是SCORE可以被(SNO,CNO)唯一地确定。所以可表 示为:(SNO,CNO)SCORE。 16 返回 有关函数依赖的几点说明: 1平凡的函数依赖与非平凡的函数依赖。 当属性集Y是属性集X的子集时,则必然存在着函数依赖 XY,这种类型的函数依赖称为平凡的函数依赖。 如果Y不是X的子集,则称XY为非平凡的函数依赖。 若不特别声明,我们讨论的都是非平凡的函数依赖。 2函数依赖是语义范畴的概念。 我们只能根据语义来确定一个函数依赖,而不能按照其形 式化定义来证明一个函数依赖是否成立。 例如,对于关系模式S,当学生不存在重名的情况下,可 以得到: SNAGE SNDEPT 这种函数依赖关系,必须是在没有重名的学生条件下才成 立的,否则就不存在函数依赖了。 所以函数依赖反映了一种语义完整性约束。 17 返回 3函数依赖与属性之间的联系类型有关。 (1)在一个关系模式中,如果属性X与Y有1:1联系时,则 存在函数依赖XY,YX,即X Y。 例如,当学生无重名时,SNO SN。 (2)如果属性X与Y有1:m的联系时,则只存在函数依赖 XY。 例如,SNO与AGE,DEPT之间均为1:m联系,所以有 SNOAGE,SNODEPT。 (3)如果属性X与Y有m: n的联系时,则X与Y之间不存在 任何函数依赖关系。 例如,一个学生可以选修多门课程,一门课程又可 以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。 由于函数依赖与属性之间的联系类型有关,所以在确 定属性间的函数依赖关系时,可以从分析属性间的联系 类型入手,便可确定属性间的函数依赖。 18 返回 4函数依赖关系的存在与时间无关。 因为函数依赖是指关系中的所有元组应该满足的 约束条件,而不是指关系中某个或某些元组所满足的 约束条件。 当关系中的元组增加、删除或更新后都不能破坏 这种函数依赖。 因此,必须根据语义来确定属性之间的函数依赖 ,而不能单凭某一时刻关系中的实际数据值来判断。 例如,对于关系模式S,假设没有给出无重名的 学生这种语义规定,则即使当前关系中没有重名的记 录,也只能存在函数依赖SNOSN,而不能存在函 数依赖SNSNO,因为如果新增加一个重名的学生 ,函数依赖SNSNO必然不成立。 所以函数依赖关系的存在与时间无关,而只与数 据之间的语义规定有关。 19 返回 5函数依赖可以保证关系分解的无损连接性。 设R(X,Y,Z),X,Y,Z为不相交的属性集合 ,如果XY或XZ,则有R(X,Y,Z)=RX,Y*RX, Z, 其中,RX,Y表示关系R在属性(X,Y)上的投 影,即R等于其投影在X上的自然连接,这样便保证了 关系R分解后不会丢失原有的信息,称作关系分解的 无损连接性。 例如,对于关系模式SCD,有SNO(SN,AGE, DEPT,MN),SCD(SNO,SN,AGE,DEPT,MN,CNO, SCORE)=SCDSNO,SN,AGE,DEPT,MN*SCDSNO, CNO,SCORE,也就是说,用其投影在SNO上的自然连 接可复原关系模式SCD。 这一性质非常重要,在后一节的关系规范化中要 用到。 20 返回 4.2.1.2 函数依赖的基本性质 1投影性。 根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子 集。 例如,在关系SCD中,(SNO,CNO)SNO和(SNO,CNO)CNO 。 2扩张性。 若XY且WZ,则(X,W)(Y,Z)。 例如,SNO(SN,AGE),DEPTMN,则有(SNO,DEPT)( SN,AGE,MN)。 3合并性。 若XY且XZ则必有X(Y,Z)。 例如,在关系SCD中,SNO(SN,AGE),SNO(DEPT,MN),则 有SNO(SN,AGE,DEPT,MN)。 4分解性。 若X(Y,Z),则XY且XZ。很显然,分解性为合并性的逆过 程。 由合并性和分解性,很容易得到以下事实: XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成 立。 21 返回 4.2.2 完全函数依赖与部分函数依赖 定义4.2 设关系模式R(U),U是属性全集,X和Y是U的子 集, 如果XY,并且对于X的任何一个真子集X,都有X Y, 则称Y对X完全函数依赖(Full Functional Dependency),记作 X Y。 如果对X的某个真子集X,有XY,则称Y对部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年项目管理人员安全培训考试试题含答案AB卷
- 中级经济师考试的国际经济政策解析与试题及答案
- 2024-2025职工安全培训考试试题带答案(新)
- 市政工程协调管理试题及答案2025
- 2025-2030年银行信息化产业市场发展分析及发展趋势与投资研究报告
- 2025-2030年证券行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年离心甩干机行业市场发展分析及投资前景研究报告
- 2025-2030年民办职业教育产业市场深度分析及发展趋势与投资战略研究报告
- 2025年工程经济关注的新议题试题与答案
- 明晰公共关系学的关键试题及答案
- Z20名校联盟(浙江省名校新高考研究联盟)2025届高三第一次联考数学试题卷
- 就业协议书范本(完整版)
- 英语漫谈中国故事智慧树知到答案2024年上海立达学院
- 7分析一个实际的环境问题课件科学五年级下册教科版
- 小学英语语法专题训练:名词所有格(含答案)
- 公司食堂外包项目投标方案(技术方案)
- 2023年全国职业院校技能大赛-直播电商赛项规程
- 事业单位的现金管理制度
- GB/T 35170-2024水泥窑协同处置的生活垃圾预处理可燃物
- 自动控制理论(哈尔滨工程大学)智慧树知到答案2024年哈尔滨工程大学
- DL∕T 5161.5-2018 电气装置安装工程质量检验及评定规程 第5部分:电缆线路施工质量检验
评论
0/150
提交评论