《第5章关系模式的规范化设计.ppt》由会员分享,可在线阅读,更多相关《第5章关系模式的规范化设计.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 关系模式的规范化设计关系模式的规范化设计 主要内容主要内容:本章讨论关系模式的规范化设计。这章将从数据库逻辑设计中如何构造一个好的数据库模式这一问题出发,阐明了关系规范化理论研究的实际背景,介绍关系内部属性与属性之间的一种约束关系即函数依赖的各种形式。介绍规范化理论,讨论各种范式及可能存在的插入、删除等问题,并直观地描述解决办法。重点与难点重点与难点:在这章中,进一步讨论了关系数据理论和函数依赖的推理规则,最后给出模式等价的不同定义及模式分解算法。1/6/202325.1 问题提出 前面的章节已经介绍了数据库当中涉及到的基本概念,关系模型的三个部分(关系数据结构、关系操作集合和关系
2、完整性)以及关系数据库的标准语言。但是还有一个很基本的问题没有提及,就是针对一个具体的问题,应该构造几个关系模式,每个关系由哪些属性组成,各属性之间的依赖关系及其对关系模式性能的影响等。这就是关系数据库逻辑设计的问题。本章主要来讨论实体内部属性与属性之间的数据关联,目标就是要设计一个“好”的数据库。1/6/20233 关系模型原理的核心内容就是规范化概念,规范化是把数据库组织成在保持存储数据完整性的同时最小化冗余数据的结构的过程。规范化的数据库必须符合关系模型的范式规则。范式可以防止在使用数据库时出现不一致的数据,并防止数据丢失。关系模型的范式有第一范式、第二范式、第三范式和范式等多种。1/6
3、/202345.2 数据依赖 数据依赖是关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间值的相等与否体现出来的数据间的相关联系,它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。1/6/202355.2.1属性间联系 讨论属性之间的联系,谈论函数依赖问题的意义是什么呢?假设有这样一个关系:现在建立一个描述仓库管理的数据库,该数据库涉及到的对象包括仓库编号,地点,设备号码,设备名称,库存数量。假设用一个单一的关系模式库存来表示:库存(仓库编号,地点,设备编号,设备名称,库存数量)现实世界已知事实可以了解到:一个地点可以有多个仓库,一个仓库只能在一个地点;一个设备编号
4、对应着一个设备名称;一个仓库编号和一个设备编号对应着一个库存数量。于是得到属性组上的一组函数依赖。1/6/202365.2.2 函数依赖 函数依赖(function dependency)是最基本的一种数据依赖,也是设计关系模式时应着重考虑的因素.1.函数依赖 定义5.1 设R(U)是属性集U上的一个关系模式。X和Y是U的子集。若对于R(U)中任意一个可能关系r,r中不存在有两个元组,它们在X上的属性值相等,而在Y上的属性值不等,则称“X函数决定Y”,或称Y函数依赖于X。记作XY。一个关系模式应当描述为:R(U,D,dom,F)。1/6/20237其中:(1)R是关系名;(2)U是一组属性,即
5、组成R的全部属性的集合;(3)D为域的集合,即属性取值范围的集合;(4)dom为U与D之间的映象;(5)F是属性组U上的一组函数依赖。由于域的定义对关系模式设计关系不大,(3)和(4)往往可以忽略。1/6/202381/6/202391/6/2023101/6/2023111/6/2023125.2.2多值依赖 对数据的增删改很不方便,数据冗余也十分明显。仔细考察这类关系模式,发现它具有一种称之为多值依赖(MVD)的数据依赖。定义5.4 设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖XY成立,当且仅当对R(U)的任一关系r,给定的一对
6、(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。1/6/2023131/6/2023141/6/2023151/6/2023161/6/2023175.2.3 键 本节用函数依赖的概念来定义键。定义5.5 设K为RU,F中的属性或属性组合,若K U则K为R的候选键。若候选键多于一个,则选定其中的一个为主键(Primary key)。含在任何一个候选键中的属性,叫做主属性(Prime attribute)。不包含在任何键中的属性称为非主属性(Nonprime attribute)。最简单的情况:单个属性是键。最极端的情况:整个属性组是键,称为全键(All-key).定义5.6 关系
7、模式R中属性或属性组X并非R的键,但X是另一个关系模式的键,则称 X是R的外部键(Foreign key)也称外键。主键与外部键提供了一个表示关系间联系的手段。1/6/2023185.3 规范化的关系模式1/6/2023195.3.1 第一范式 1/6/202320 出现以下三个问题:1.在供应商未供应零件时,不能登记某供应商位于某一城市的信息,其原因是主属性P#出现了空值;2.当删除某一供应商时,若该供应商仅出现在一个元组中,那么不仅删除了该供应商该供应零件的信息,而且也删除了该供应商位于某一城市的信息;3.如果要修改某一供应商的城市值,通常需要修改多个元组,这就容易产生不一致。1/6/20
8、23215.3.2 第二范式 1/6/2023221/6/2023231/6/2023241/6/2023255.3.3 第三范式 1/6/2023265.3.4 BCNF范式 1/6/2023271/6/2023281/6/202329每个BCNF的关系模式都具有如下3个性质:1.所有非主属性都完全函数依赖于每个候选键;2.所有主属性都完全函数依赖于每个不包含它的候选键;3.没有任何属性完全函数依赖于非键的任何一组属性。1/6/2023305.3.5 第四范式 1/6/2023311/6/2023325.3.6 规范化小结o关系数据库的规范化理论是数据库逻辑设计的工具。一个关系只要其分量都是
9、不可分的数据项,它就是规范化的关系,但这只是最基本的规范化。规范化程度可以有多个不同的级别o关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式。这种分解不是唯一的。1/6/2023331/6/202334 规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题。一个低一级范式的关系模式,通过模式分解(投影)方法可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。规范化的方式是进行模式分解,模式分解的原则是与原模式等价,模式分解的标准有:1.模式分解具有无损连接性;2.模式分解能
10、够保持函数依赖。1/6/2023355.4 数据依赖的公理系统 1/6/2023361/6/2023371/6/2023381/6/2023391/6/2023401/6/2023411/6/2023421/6/2023431/6/2023441/6/2023455.5 模式分解 把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的。只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义。人们从不同的角度去观察问题,对“等价”的概念形成了三种不同的定义:1分解具有无损连接性。(数据的完整性)2分解要保持函数依赖。(语义的完整性)3分解既要保持函数依赖,又具有无损连接性。1/
11、6/2023461/6/2023471/6/202348分解的无损连接性和保持函数依赖性可以参考如下:1无损连接性分解所得到的各个关系模式经过自然连接可以还原成被分解的关系模式,既不增加原来没有的元组也不丢失原有的元组。2依赖保持性分解所得到的各个关系模式上的函数依赖的集合与被分解关系模式原有的函数依赖集等价,没有被丢失的。对于分解,有四种结果:具有无损连接性,不具有依赖保持性;不具有无损连接性,具有依赖保持性;既有无损连接性,又有依赖保持性;既没有无损连接性,又没有依赖保持性。1/6/2023491/6/2023501/6/2023511/6/2023521/6/2023535.6本章小结 本章主要在函数依赖、多值依赖的范畴内讨论了关系模式的规范化。在本章整个讨论过程中,只采用了两种关系运算投影和自然连接。并且总是从一个关系模式出发,而不是从一组关系模式出发实行分解。规范化理论为数据库设计提供了理论的指南和工具,也仅仅是指南和工具。并不是规范化程度越高,模式就越好,必须结合应用环境和现实世界的具体情况合理地选择数据库模式。1/6/202354