文档详情

第六章 关系数据理论-new.ppt

发布:2017-05-31约1.27万字共50页下载文档
文本预览下载声明
第六章 关系数据理论 问题的提出 规范化 数据依赖的公理系统 关系模式的分解 本章主要内容 本章讨论的核心问题 如何判断一个关系模式是否存在问题 如何构造一个好的数据库模式 6.1问题的提出 一个关系模式应当是一个五元组。 R(U,D,DOM,F) 这里: (1)关系名R,它是符号化的元组语义; (2)一组属性U; (3)属性组U中属性所来自的域D; (4)属性到域的映射DOM; (5)属性组U上的一组数据依赖F。 由于(3),(4)对模式设计关系不大,因此在本章中把关系模式看作是一个三元组: RU,F 6.1问题的提出 数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 6.1问题的提出 某一时刻关系模式Student的一个实例,即数据表。 S1 CS 李洪 C1 90 S2 CS 李洪 C1 90 S3 CS 李洪 C1 90 S4 CS 李洪 C1 90 S5 MA 张力 C1 90 S5 MA 张力 C1 90 存在的问题 冗余太大:每一个系的系主任姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同,这将浪费大量存储空间。 删除异常: 删除某系学生的选课将删除系信息 插入异常: 系刚成立, 无学生,就无法把这个系及其系主任的信息存入数据库。 更新异常:某系更换系主任后,必须修改与该系学生有关的每一个元组。 6.1问题的提出 结论: 关系模式Student(Sno, Sdept, Mname, Cno, Grade)不是好的关系模式, 好的关系模式不会发生插入异常、删除异常并且冗余尽可能少。 为什么会发生这些问题? 这是因为这个模式中的函数依赖存在某些不好的性质。 假如把这个单一的模式改造一下,分成3个关系模式: S(Sno,Sdept,Sno→Sdept) SC(Sno,Cno,Grade,(Sno,Cno)→Grade) DEPT(Sdept,Mname,Sdept→Mname) 这3个模式都不会发生插入异常、删除异常的毛病,数据的冗余也得到 了控制。 一个模式的数据依赖会有哪些不好的性质,如何改造一个不好的模式,这就是下一节规范化理论讨论的内容。 6.2规范化 根据属性间依赖情况来判定关系是否具有某些不合适的性质。通常按属性间依赖情况来区分关系规范化的程度分为第一范式、第二范式、第三范式和第四范式等。 6.2 规范化 定义6.1 函数依赖: 设RU是属性集U上的关系模式, X, Y是U的子集, 若对于RU的任意一个可能的关系r, r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”, 记作X?Y。 函数依赖和别的数据依赖一样是语义范畴的概念。 函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。 6.2 规范化 一些记号和术语: 若X?Y, 但Y X则称X→Y是非平凡的函数依赖。 若X?Y, 但Y X则称X→Y是平凡的函数依赖。对于任一关系模式,平凡函数依赖都是必然成立的,它不反应新的语义。若不特别声明,总是讨论非平凡的函数依赖。 若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素。 若X→Y,Y→X,则记作X←→Y。 若Y不函数依赖于X,则记作X Y 6.2 规范化 定义6.2 完全函数依赖: 在RU中, 如果X?Y, 并且对于 X 的任何真子集X’ , 都有X’ Y, 则称Y对X完全函数依赖, 记作X Y 部分函数依赖: 如果X?Y, 但Y不完全函数依赖于 X, 则称Y对X部分函数依赖, 记作X Y 定义6.3 函数传递依赖: 在RU中, 如果 X?Y, (Y X), Y X, Y?Z, 则称Z对X传递函数依赖。 记为X→Z。 6.2 规范化 6.2.2码 定义6.4 候选码: 设K为RU,F中的属性或属性组, 若K U, 则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。 包含在任何一个候选码中的属性,称为主属性。 不包含在任何码中的属性称为非主属性或非码属性。最简单的情况,单个属性是码。最极端的情况,整个属性组是码,称为全码。 定
显示全部
相似文档