文档详情

数据库系统概论_第六章.ppt

发布:2017-04-27约1.58万字共148页下载文档
文本预览下载声明
数据库系统概论 An Introduction to Database System 第六章 关系数据理论;第六章 关系数据理论;6.1关系模式设计的问题;概念回顾 关系:描述实体、属性、实体间的联系。 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 关系模式:用来定义关系。 关系数据库:基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式:定义这组关系的关系模式的全体。;关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM:属性向域的映象集合 F: 属性间数据的依赖关系集合 关系模式R(U, D, DOM, F)简化为一个三元组:R(U, F) 当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系 有时候,更简写成R(U),即R(A1,A2,…,An)的形式;如何设计一个适合的关系数据库系统,关键是关系数据库模式的设计,一个好的关系数据库模式应该包括多少关系模式,而每一个关系模式又应该包括哪些属性,又如何将这些相互关联的关系模式组建一个适合的关系模型,这些工作决定了到整个系统运行的效率,也是系统成败的关键所在,这属于数据库设计的问题,确切地讲是数据库逻辑设计的问题(有关数据库设计的全过程将在第7章详细讨论)。 本章讲述关系数据库规范化理论,这是数据库逻辑设计的理论依据。;规范化理论主要包括三个方面的内容: 函数依赖 范式(Normal Form) 模式设计 其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。;关系模式的存储异常问题 数据库的逻辑设计为什么要遵循一定的规范化理论? 什么是好的关系模式? 某些不好的关系模式可能导致哪些问题? 下面通过例子进行分析:;描述教学管理数据库: 学号(sno),姓名(sname),年龄(age),所在系别(dept),所在系的系主任姓名(Mn),选修的课程号(cno),该课程的成绩(score) 用一个单一的关系模式来表达: SCD(Sno,Sname,Age,Dept,Mn,Cno,Score) 语义定义如下: 一个系有若干个学生,但一个学生只属于一个系; 一个系只有一名系主任; 一个学生可以选修多门功课,每门课程可有若干学生选修; 每个学生学习课程有一个成绩。;教学管理数据库的一个实例: ;关系模式SCD存在的问题: 1. 数据冗余 浪费大量的存储空间 例:每一个系主任的姓名重复出现 2. 更新异常(Update Anomalies) 数据冗余 ,更新数据时,维护数据完整性代价大。 例:某系更换系主任,或学生改名后;关系模式SCD存在的问题(续): 3. 插入异常(Insertion Anomalies) 该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。又如,学生未选课,则学生信息无法输入. (为什么?) 4. 删除异常(Deletion Anomalies) 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。;结论: 关系模式SCD不是一个好的模式。 “好”的模式应该满足: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 产生的原因:模式中的某些数据依赖引起的 解决方法:分解!!! 学生关系S(SNO,SN,AGE,DEPT) 选课关系SC(SNO,CNO,SCORE) 系关系D(DEPT,MN);分解后: (左上:S; 左下:Dept; 右: SC);分解后的关系模式是“好” 的。 不过,一个好的关系模式并不是在任何情况下都是最优的。 如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把“不好”的关系数据库模式转变为“好”的关系数据库模式,这就是关系的规范化。 规范化又可以根据不同的要求而分成若干级别。 数据库模式的好坏和关系中各属性间的依赖关系有关,因此,我们先讨论属性间的依赖关系,然后再讨论关系规范化理论。;;函数依赖 平凡函数依赖与非平凡函数依赖 完全函数依赖与部分函数依赖 传递函数依赖 ;1. 函数依赖 定义6.1 设R(U)是一个属性集U上的关系模式,X , Y ? U, r是R(U) 上的任意一个关系,如果成立 对?t , s ? r,若t[X] = s[X],则t[Y] = s[Y] 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作
显示全部
相似文档