传递函数依赖
非计算机应用专业教材 李 明 科学出版社 学习目标 了解不恰当的关系模式而导致的存储异常问题; 了解函数依赖的概念、平凡的函数依赖、非平凡的函数依 赖、完全函数依赖; 了解BCNF; 掌握部分依赖、传递依赖、函数依赖的概念; 掌握键码、封闭集等概念; 掌握关系范式的1NF、2NF、3NF 了解数据库应用系统的开发的设计过程的六个阶段; 掌握对实际简单系统的需求分析,画出数据流程图; 根据需求分析、概念设计、逻辑设计和物理设计进行 机器实现; 掌握实体、联系、属性、码等概念的含义; 熟练掌握E-R图的应用。 了解数据库设计方法、设计工具和了解设计原则; 3.1 规范化概述 在具体数据库系统实现之前,尚未录入实际数据时,组建较好的数据模型是关系到整个系统运行的效率,以致系统成败的关键。所以说,关系规范化的目的是控制冗余,避免插入和删除异常,从而增强数据库结构的稳定性和灵活性 有关指导数据库逻辑设计和关系数据库规范化理论 主要包括三方面的内容: 数据依赖 范式 模式设计方法 从函数依赖入手寻找设计一个好的关系模式的方法。其具 体思路是: 1.可从已知的函数依赖集,推出全部存在的函数依赖集;求封闭集,确定键码; 2.从函数依赖集中,再找出哪些是部分函数依赖或者传递函数依赖等; 3.消除部分函数依赖或者传递函数依赖等变成第二或第三范式。 4.如有需要,可根据规则转化更高的范式 学习思路 存储异常问题→函数依赖→部分函数依赖→传递函数 依赖→利用最小公理导出封闭集→确定候选码(键码) →分析有哪些函数依赖→消除部分函数依赖成第二范 式→消除传递函数依赖成第三范式→分解范式成第n范 式→建数据库 3.1.2存储异常问题 例3.1教师任课TDC (教师号,姓名,职称,家址,系号,系名称,系址,课程号,课程名,教学水平,学分)。 分析:一位教师可以讲授多门课程,同一门课程也可以有多位教师讲授。只能根据(教师号,课程号)才能确定哪位教师讲授哪门课程。该关系在使用过程中存在以下四方面的问题: 1.数据冗余太大 例如,每一个教师的姓名重复出现。 2.更新异常(Update Anomalies) 例如,某教师更换系地址后,系统必须修改与该 教师有关的每一个元组。 3.插入异常(Insertion Anomalies) 如果学校新调入一个教师,暂时未主讲任何课程。 关键字不允许出现空值,新教师就不能插入到此 关系中去。 4.删除异常(Deletion Anomalies) 如果某些教师不担任教学任务,就要从当前数据库中删除有关记录。那么关于这些教师的其它信息将无法记载。 一个关系模式之所以会产生上述问题,是由存在于模式中的某些数据依赖引起的。规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。 3.2 函数依赖 在数据库中的各关系之间以及关系内部的各属性之间存 在着相互依赖和制约的关系。因为关系是由属性构成的, 所以数据依赖的基础是属性之间的数据依赖,函数依赖 是最重要的数据依赖。 3.2.1 函数依赖 定义3.1设一个关系R(U),X和Y 为属性集U上的子 集,若对于元组中X的每个值都有Y上的一个唯一的具 体值与之对应.则称Y函数依赖于X,或X函数决定Y, 记作别X→Y,X称作决定因素。 若Y函数不依赖于X,记作:X 属性间的三种关系 并不是每种关系中都存在着函数依赖。 如果X、Y间是1:1关系, 则存在相互函数依赖 : X← → Y ; 如果X、Y间是n:1关系, 则存在函数依赖: X→Y或Y→X(n方为决定因素); 如果X、Y间是m:n关系, 则不存在函数依赖。 3.2.2 非平凡的函数依赖规则和平凡的函数依赖 定义:如果X→Y,并且Y不是X的子集,则称X→Y是非 平凡的函数依赖。我们讨论的总是非平凡的函数依赖。 全体总是能够决定部分的,若Y是X的子集,则称X→Y 是平凡的函数依赖。若Y中没有一个属性在X中,则称 完全非平凡的函数依赖。 3.2.3 完全和部分函数依赖 定义: 设X→Y是关系模式R的一个函数依赖,如果存在X的真子集X’,使得X’→Y 成立,则称Y部分依赖于X,记作 。否则,称Y完全依赖于X,记作 。 例3.5 :从例3.1中TDC(TNO,TNAME,TITLE,ADDR,DNO,DNAME,LOC,CNO,CNAME,LEVEL,CREDIT)。通过分析函数依赖,可得出如下示意图3.1: 3.2.4 传递函数依赖 函数依赖的传递定义:在同一关系模式中,如果存在非 平凡的函数依赖X→Y,Y→Z,而Y X,则称Z传递依
原创力文档

文档评论(0)