《数据库范式课堂ppt课件》由会员分享,可在线阅读,更多相关《数据库范式课堂ppt课件(164页珍藏版)》请在金锄头文库上搜索。
1、An Introduction to Database System,广东工业大学 计算机学院,数据库系统概论 An Introduction to Database System 第六章 关系数据理论,An Introduction to Database System,内容概述 详细讲解关系数据理论,主要是关系数据库规范化理论。包括关系数据库逻辑设计可能出现的问题,数据依赖的基本概念(包括,函数依赖、平凡函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递函数依赖的概念;码、候选码、外码的概念;多值依赖的概念),范式的概念、1NF、2NF、3NF、BCNF、4NF的概念和判定方法。
2、数据依赖的Armstrong公理系统。本章内容分为基本要求部分(概论6.1-6.3)和高级部分(概论6.4)。前者是计算机大学本科学生应该掌握的内容。后者是研究生应该学习掌握的内容。,本章目标 关系数据理论既是关系数据库的重要理论基础也是数据库逻辑设计的理论指南和有力工具。要掌握规范化理论和优化数据库模式设计的方法。,An Introduction to Database System,重点:了解什么是一个“不好”的数据库模式。什么是模式的插入异常和删除异常。规范化理论的重要意义。牢固掌握数据依赖的基本概念,范式的概念,从1NF到4NF的定义,规范化的含义和作用。需要举一反三的:四个范式的理解
3、与应用,各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法。 难点:能够根据应用语义,完整地写出关系模式的数据依赖集合,并能根据数据依赖分析某一个关系模式属于第几范式。各个级别范式的关系及其证明。 本章内容的理论性较强。要通过具体例子和习题练习理解和掌握理论知识。,An Introduction to Database System,第六章 关系数据理论,6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解 6.5 小结,An Introduction to Database System,6.1 问题的提出,关系数据库逻辑设计 针对具体问题,如
4、何构造一个适合于它的数据模式 数据库逻辑设计的工具关系数据库的规范化理论,An Introduction to Database System,问题的提出,一、概念回顾 二、关系模式的形式化定义 三、什么是数据依赖 四、关系模式的简化定义 五、数据依赖对关系模式影响,An Introduction to Database System,一、概念回顾,关系 关系模式 关系数据库 关系数据库的模式,An Introduction to Database System,二、关系模式的形式化定义,关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的
5、属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合,An Introduction to Database System,三、什么是数据依赖?,1. 完整性约束的表现形式 限定属性取值范围:例如学生成绩必须在0-100之间 定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模式设计的关键,An Introduction to Database System,什么是数据依赖(续),2. 数据依赖 一个关系内部 属性与属性之间 的约束关系 现实世界,一个事物内部属性间相互联系的抽象 数据内在的性质 语义的体现,An I
6、ntroduction to Database System,什么是数据依赖(续),3. 数据依赖的类型 共有三种 : 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD) 连接依赖(Join Dependency,简记为JD),其中最重要的是函数依赖和多值依赖。,An Introduction to Database System,四、关系模式的简化表示,关系模式R(U, D, DOM, F) 简化为一个三元组: R(U, F) 当且仅当U上的一个关系r满足F时, r称为关系模式 R(U, F)的一个关系,
7、An Introduction to Database System,五、数据依赖对关系模式的影响,例1建立一个描述学校教务的表: 学生的学号(Sno)、所在系(Sdept)、 系主任姓名(Mname)、课程名(Cname)、成绩(Grade) 单一的关系模式 : Student U Sno, Sdept, Mname, Cname, Grade ,问题:什么样的关系模式是一个好的关系模式?,An Introduction to Database System,数据依赖对关系模式的影响(续),根据语义分析属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno
8、, Cname) Grade ,An Introduction to Database System,关系模式Student中存在的问题,1. 数据冗余太大 2. 更新异常(Update Anomalies) 3. 插入异常(Insertion Anomalies) 4. 删除异常(Deletion Anomalies),An Introduction to Database System,数据依赖对关系模式的影响(续),结论: Student关系模式不是一个好的模式。 “好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少 原因:由存在于模式中的某些数据依赖引起的 解决方法:
9、通过分解关系模式来消除其中不合适的数据依赖,An Introduction to Database System,分解关系模式,把这个单一模式分成3个关系模式: S(Sno,Sdept,Sno Sdept); SC(Sno,Cno,Grade,(Sno,Cno) Grade); DEPT(Sdept,Mname,Sdept Mname),An Introduction to Database System,第六章 关系数据理论,6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解 6.5 小结,An Introduction to Database System
10、,6.2 规范化,规范化理论 正是用来评价、改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。,An Introduction to Database System,6.2 规范化,6.2.1 函数依赖 6.2.2 码 6.2.3 范式 6.2.4 2NF 6.2.5 3NF 6.2.6 BCNF 6.2.7 多值依赖 6.2.8 4NF 6.2.9 规范化小结,An Introduction to Database System,6.2.1 函数依赖,函数依赖 平凡函数依赖 与 非平凡函数依赖 完全函数依赖 与 部分函数依赖 传递函数
11、依赖,An Introduction to Database System,引例,关系模式内部各属性间的依赖关系 在student (sno, sname, sex, dept)中,姓名可能重名。 属性sno、sname之间存在关系: sname=f(sno) 或 sno sname 此时,任意两个元组,如果在sno分量上的值不同,则在sname分量上的值也一定不相同。 类似的关系在其它元组中还存在,如sno sname、 sno dept等。,An Introduction to Database System,一、函数依赖,定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集
12、。 若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作XY。,即:由X上的值可以确定Y上的值。,思考:为什么概念不表述为“r中两个元组如果在X上的属性值相 等, 则在Y上的属性值也相等”?,An Introduction to Database System,说明,1. 关系模式需要满足的 即所有关系实例均要满足,而不是某一关系满足 2. 语义范畴的概念 3. 数据库设计者可以对现实世界作强制的规定 如规定:姓名不能重名等,An Introduction to Database Syst
13、em,二、平凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y, 如果XY,但Y X,则称XY是非平凡的函数依赖 若XY,但Y X, 则称XY是平凡的函数依赖 例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno,P173 约定: 若不特别声明,总是讨论非 平凡函数依赖。,An Introduction to Database System,平凡函数依赖与非平凡函数依赖(续),若XY,则X称为这个函数依赖的决定属性组,也称为决定因素(Determin
14、ant)。 若XY,YX,则记作XY。 若Y不函数依赖于X,则记作XY。,An Introduction to Database System,三、完全函数依赖与部分函数依赖,定义6.2 在R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y, 则称Y对X完全函数依赖,记作 X F Y。 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X P Y。,思考:平凡函数依赖与部分函数依赖之间的关系?,An Introduction to Database System,完全函数依赖与部分函数依赖(续),例1 中 (Sno,Cno)Grade是完全函数依赖, (Sno,Cno)S
15、dept是部分函数依赖: 因为Sno Sdept成立,且Sno是(Sno,Cno)的真子集,F,P,An Introduction to Database System,四、传递函数依赖,定义6.3 在R(U)中,如果XY,(Y X) ,YX ,YZ, Z Y则称Z对X传递函数依赖。记为:X Z 注: 1) Y X:强调是非平凡函数 依赖,进而排除了部分函数依赖。 2) YX :如果YX, 即XY,则Z直接依赖于X。 3) Z Y : 例: 在关系Std(Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno,传递,An Int
16、roduction to Database System,6.2 规范化,6.2.1 函数依赖 6.2.2 码 6.2.3 范式 6.2.4 2NF 6.2.5 3NF 6.2.6 BCNF 6.2.7 多值依赖 6.2.8 4NF 6.2.9 规范化小结,An Introduction to Database System,6.2.2 码,定义6.4 设K为R中的属性或属性组合。若K U, 则K称为R的侯选码(Candidate Key)。 若候选码多于一个,则选定其中的一个做为主码(Primary Key)。,F,An Introduction to Database System,码(续),主属性与非主属性 包含在任何一个候选码中的属性 ,称为主属性(Prime attribute) 不包含在任何码中的属性称为非主属性(N