第7章关系数据库理论教案分析.ppt
文本预览下载声明
第7章 关系数据库理论 关系数据库的规范化设计是指面对一个应用问题,如何选择一个比较好的关系模式集合。 关系模式设计引论 在某校信息管理系统中要建立一个数据库来描述学生和选课 的一些信息,面临的对象有:学号、姓名、系名、系主任、课 号、成绩。 由已知事实可以得知上述对象之间有如下对应关系: (l)一个系有若干学生,但一个学生只属于一个系; (2)一个系只有一名系主任; (3)一个学生可选修多门课程,每门课程有若干学生选修; (4)每个学生学习每一门课程有一个成绩。 如何设计一个合理的关系数据库模式? 方案1:采用一个总的关系模式,将这些对象都放在SA中。 SA(学号,姓名,系名,系主任,课号,成绩) (1)数据冗余 每个学生的系主任信息多次重复出现,导致数据冗余太大,既 浪费存储空间,又容易造成数据的不一致性。 (2)插入异常 插入异常指的是应该插入的信息不能正常插入,例如,一个新建系,如果还没有招生就无法把该系及相应系主任信息插入到数据库。 (3)删除异常 删除异常指的是不该删除的信息被删除了,例如,当一个系 的全部学生毕业了,在删除该系学生信息时就会将该系及系主 任信息也删除了。 结论: 该关系模式不是一个好的模式。 “好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。 原因:在该例中系主任属性不仅函数依赖于系名,而且还依赖于学号。正是由于属性间约束关系太强才造成了上述异常现象。 解决方法:通过分解关系模式来消除其中不合适的依赖。 如:将SA分解为三个关系模式: S(学号,姓名,系名)、D(系名,系主任)、 SC(学号,课号,成绩) 由此可见: 关系模型中用关系来描述实体集及其联系,对同一现实世界可用不同的关系模式来描述,但不同的关系模式的效果却有很大差异。 判断是否存在插入异常、删除异常和更新异常以及是否存在数据冗余是一种直观的判断一个关系模式设计质量的方法。 如何消除不合理的数据依赖,将一个“不好”的关系模式改造为一个“好”的关系模式,这就是关系数据库设计过程中要讨论的规范化理论问题。 函数依赖 关系模式通常简记为:R (U,F),其中F为数据依赖集,数据 依赖是同一关系中属性间的相互依赖和相互制约。而规范化 (Normalization)是指定义一组关系模式应该符合标准(范式). 1.函数依赖(Functional Dependencies,简写为FD) 定义:设R(U)是一个属性集U上的关系模式,X和Y是U的 子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X” ,记作 X→Y(读作X决定Y)。 X称为这个函数依赖的决定因素。 例: Student(Sno, Sname, Ssex, Sage, Sdept) 假设不允许重名,则有: Sno → Ssex,Sno → Sage,Sno → Sdept, Sno → Sname, Sname → Sno,Sname → Ssex, Sname → Sage,Sname → Sdept 函数依赖的说明: 函数依赖指R的所有关系实例均要满足的约束条件。 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立 数据库设计者可以对现实世界作强制的规定。例如函数依赖“姓名→年龄”成立,则所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。 几种特殊的函数依赖: 在关系模式R(U)中,对于U的子集X和Y, ⑥在关系模式R(U)中,如果X→Y,(Y ? X),Y→X, Y→Z,则称Z传递函数依赖于X,记为: X T Z。 例:在SA(学号,姓名,系名,系主任,课号,成绩)中,有: 学号 → 系名,系名 → 系主任,则学号 T 系主任 范式(Normal Form)是满足一定要求的关系模式的集合。关系数据库中的关系必须满足一定的要求,依照要求的不同程度分为不同范式。 1NF 如果一个关系模式R的所有属性都是不可分的基本数据项, 则称关系R为第一范式的关系模式(First Normal Form),简称关系R属于一范式,记为:R∈1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。(由关系属性的原子性得出)。 但是满足第一范式的关系模式并不一定是一个好的关系模式。仍然存在数据冗余度大 、插入异常 、修改和删除异常。
显示全部