(08)+第3课+规范化理论和表创建

上传人:j7****6 文档编号:61965456 上传时间:2018-12-15 格式:PPT 页数:39 大小:277KB
返回 下载 相关 举报
(08)+第3课+规范化理论和表创建_第1页
第1页 / 共39页
(08)+第3课+规范化理论和表创建_第2页
第2页 / 共39页
(08)+第3课+规范化理论和表创建_第3页
第3页 / 共39页
(08)+第3课+规范化理论和表创建_第4页
第4页 / 共39页
(08)+第3课+规范化理论和表创建_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《(08)+第3课+规范化理论和表创建》由会员分享,可在线阅读,更多相关《(08)+第3课+规范化理论和表创建(39页珍藏版)》请在金锄头文库上搜索。

1、数据库技术及应用 Access,梁 玉 强,第3课,关系模型 关系规范化 Access表创建,第1节 关系模型,数据库的逻辑模型类型 l 层次模型 l 网状模型 l 关系模型 l 面向对象模型 按照三类数据模型设计和实现: (关系、层次、网状) DBMS (关系、层次、网状) 数据库系统,1.1 关系模型,在关系模型中,数据的逻辑结构是一张二维表。在数据库中,满足下列条件的二维表称为关系模型: 1、每一列中的分量是类型相同的数据; 2、列的顺序可以是任意的; 3、行的顺序可以是任意的; 4、表中的分量是不可再分割的最小数据项,即表中不允许有子表: 5、表中的任意两行不能完全相同。,1.2关系数

2、据库的基本概念 关系数据库采用了关系模型作为数据的组织方式,这就涉及到关系模型中的一些基本概念。另外,对关系数据库进行查询时,若要找到用户关心的数据,就需要对关系进行一定的关系运算。 关系:一个关系就是一张二维表,每个关系有一个关系名。在Access 中,一个关系就是一个表对象。 属性:二维表中垂直方向的列称为属性。在Access 中,被称为字段。,域:一个属性的取值范围叫做一个域。 元组:二维表中水平方向的行称为元组。在Access 中,被称为记录。 码(又称为关键字):二维表中的某个属性,若它的值唯一地标识了一个元组,则称该属性为侯选码。若一个关系有多个侯选码,则选定其中一个为主码,这个属

3、性称为主属性。 关系模式:是对关系的描述,它包括关系名、组成该关系的属性名、属性到域的映像。通常简记为: 关系名(属性名1,属性名2,属性名n) 学生基本情况表的关系模式可记为: Student(StudentID,Name,Sex,Birthday,Entrancescore),主码,整数,字符串,1,2,3,4,5,域,属性名,元组(行),关系,属性列,关系名:学生登记表 关系模式:学生(学号,姓名,年龄.),第2节 关系模式设计理论,1、“不好”的数据库设计 2、数据的函数依赖 3、关系数据库的规范化理论,2.1 “不好”的数据库设计,示例: 考虑为管理职工的工资信息而设计一个关系模式。

4、 把单位所具有的工资级别信息和职工工资信息进行保存。,关系数据库设计中存在的问题,问题:麻烦! 麻烦! 好麻烦! 插入异常:如果没有职工具有8级工资,则8级工资的工资数额就难以插入。 删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。 数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。 更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。,关系数据库设计中存在的问题,解决之道:分解! 分解! 再分解!,示例2: 为学校设计一个关系数据库。,对数据库操作时,会出现以下问题 1. 数据冗余(系主任

5、名的存储次数) 数据重复存储:浪费存储空间,数据库维护困难(更新异常) 2. 插入异常(一个系刚成立) 主码为空的记录不能存在与数据库,导致不能进行插入操作 3. 删除异常(一个系的学生全部毕业) 删除操作后,一些相关信息无法保存在数据库中 4.更新异常(修改系主任的名称) 需要逐一修改多次。,要消除以上的“弊病”,把上面的关系数据库模式分解为三个关系模式: 学生系别(学号,系别) 学生成绩(学号,课程,成绩) 系部信息(系别,系主任) 用以上三个结构简单的关系代替了原来的结构复杂的关系,从而得到的了“好的”关系数据库模式 “好的”关系数据库模式并不是在任何情况下都是最优的,要从实际的设计目标

6、出发,定义属性值间的相互关连,这就是数据依赖,它是数据库模式设计的关键。 是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,类似于变量之间的单值函数关系。 Y=F(X),其中自变量X的值,决定一个唯一的函数值Y 在一个关系模式里的属性,由于它在不同元组里属性值可能不同,由此可以把关系中的属性看作变量 一个属性与另一属性在取值上可能存在制约关系, 这种逻辑依赖关系就是属性间的函数依赖。,2.2 数据的函数依赖,函数依赖,定义: 对于()任意可能的关系r,r中不能存在两个元组在上的属性相等,而在属性上的属性不等,则称函数确定或依赖于函数 记作:X Y 当Y不函数依赖与X,则记作:X Y

7、 当X Y,且Y X,则记作:X Y,举例: 职工号(A) 基本工资(B) 奖金(C) 051 390 50 052 420 50 053 390 80 A B A C B A C A,几点说明: 1:函数依赖是指关系模型中所有的元组都要满足的约束条件,而不仅仅是某个或某些元组的特例 2: 函数依赖与属性间的联系类型有关 若属性X和Y之间有“一对一”的联系, 则X Y,Y X,X Y. 若属性X和Y之间有“多对一”的联系, 则X Y,但Y X. 若属性X和Y之间有“多对多”的联系, 则X与Y之间不存在任何函数依赖. 当确定函数依赖关系时,可从属性间的联系入手,2 传递函数依赖,定义:设X,Y,

8、Z为关系模式R的互不相同的属性集合,如果X Y,而Y X,但Y Z,则称Z传递函数依赖与X,记作X t Z. 例:学生信息(学号,课程,成绩,系别,系主任) 学号 系别,系别 学号,系别 系主任 则有学号 t 系主任,3 完全函数依赖与部分函数依赖,定义:设X Y是关系模式R(U)的一个函数依赖,当对X的每一个真子集X,都有X Y,则Y对X的函数依赖是完全的,记作X f Y;如果对X某个真子集X有X Y,则称Y对X的函数依赖是部分的,记作X p Y. 例:学生信息(学号,课程,成绩,系别,系主任) (学号,课程) f 成绩 (学号,课程) p 系别,2.3 关系数据库模式的规范化理论,用几个简

9、单的关系去取代原来结构复杂的关系的过程叫做关系规范化。研究如何把一个不好的关系模式转化为好的关系模式的理论 规范化理论是数据库设计过程中的一个非常有用的辅助工具,关系模式规范化设计,规范化理论是围绕着范式建立的. 满足不同程度要求的约束集则称为不同的范式. 如果一个关系满足某个指定的约束集,则称它属于某个特定的范式. 一个低一级范式的关系模式,通过投影运算可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化. 如果一个关系满足某个范式要求,则它也会满足较其级别低的所有范式的要求,范式层次,2 第一范式,定义 如果一个关系模型R的每个属性的域都只包含单一的值,则称R满足第一范式. 第一

10、范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式。,例: 关系模式 学生信息(学号, 系别, 住址, 课程, 成绩),假设每个系的学生住在同一个地方。 函数依赖包括: (学号, 课程) f 成绩 学号 系别 (学号, 课程) P 系别 学号 住址 (学号, 课程) P 住址 系别 住址,3 第二范式,“学生信息”的码为(学号, 课程) “学生信息”满足第一范式。 非主属性系别和住址部分函数依赖于码(学号, 课程),(1) 插入异常 假设学号95102,系别信息,住址N 的学生还未选课,因课程号是主属性,因此该学

11、生的信息无法插入表中。 (2) 删除异常 假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连3号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。 (3) 数据冗余度大 如果一个学生选修10门课程,那么他的”系别”和”住址”值就要重复存储了10次。 (4) 修改复杂 例如学生转系,在修改此学生元组的”系别”值的同时,还可能需要修改“住处”。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全部“系别”、”住址”信息。,原因 ”系别”和”住址”部分函数依赖于码。 解决方法 表分解为两个关系模式,以消除这些部分函数依赖 学生课程(学号, 课程, 成绩) 学

12、生住址(学号, 系别, 住址),函数依赖图:,定义: 如果关系范式R满足第一范式,而且它的所有非主关键字属性完全依赖于整个关键字(也就是说,不存在部分依赖),则R满足第二范式,即R2NF 例: 学生信息(学号, 系别, 住址, 课程, 成绩) 1NF 学生信息(学号, 系别, 住址, 课程, 成绩) 2NF 学生课程(学号,课程,成绩) 2NF 学生住址(学号,系别,住址) 2NF,4 3NF,例:2NF关系模式:学生住址(学号,系别,住址)中 函数依赖: 学号系别 系别住址 学号住址 “住址”传递函数依赖于“学号”,即学生住址中存在非主属性对码的传递函数依赖。,函数依赖图:,解决方法 采用投

13、影分解法,把SL分解为两个关系模式,以消除传递函数依赖: 学生系别(学号, 系别) 系别住址(系别, 住址) “学生系别”的码为”学号”, “系别住址”的码为”系别”。,“学生系别”的码为”学号”, “系别住址”的码为”系别” 。,定义: 如果某关系模式满足第二范式,而且它的任何一个非主属性都不传递依赖于任何关键字,则R满足第三范式。 例 学生住址(学号,系别,住址) 2NF 学生住址(学号,系别,住址) 3NF 学生系别(学号, 系别) 3NF 系别住址(系别, 住址) 3NF,若R3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。 如果R3NF,则R也是2NF。

14、 采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。,5 规范化,关系数据库的规范化理论是数据库逻辑设计的工具。,规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化,规范化,关系模式规范化的基本步骤 1NF 消除非主属性对码的部分函数依赖 消除决定属性 2NF 集非码的非平 消除非主属性对码的传递函数依赖 凡函数依赖 3NF,第3节 创建Access表,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学研究

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号