关系数据库规范化(第二章重点部分)
关系数据库的设计一、关系数据库的规范化理论
二、关系数据库的设计过程
2013年7月29日星期一
2.4 关系数据库规范化理论2.4.1 关系模式规范化的必要性
2.4.2 数值依赖2.4.3 范式与规范化
2.4.4 关系分解原则
2013年7月29日星期一
关系数据库是以关系模型为基础的数据库,它利用关系描述现实 世界。一个关系即可用来描述一个实体及其属性,也可用来描述 实体间的一种联系。 关系模式是用来定义关系的,一个关系数据库包含一组关系,定 义这组关系的关系模式的全体就构成了该数据库的模式。 关系数据库的设计归根到底是如何构造关系,即如何把具体的客 观事物划分为几个关系,而每个关系又由哪些属性组成,就是要 构造“好的”、“合适”的关系模式,它涉及一系列的理论与方 法,形成了关系数据库的模式设计理论和技术。 由于合适的关系模式要符合一定的规范化要求,所以又称其为关 系数据库的规范化理论。2013年7月29日星期一
为了消除冗余和潜在的更新异常,关系数据库的规范化理论为关系模 式确定了多种范式。 所谓范式(Noranal Form)是指规范化的关系模式。由于规范化的程度 不同,就产生了不同的范式。 从1971年起,E.F.Codd相继提出了第一范式(1NF)、第二范式(2NF)、 第三范式(3NF),Codd与Boyce合作提出了Boyce-Codd范式(BCNF)。 在1976~1978年间,Fagin、Delobe以及Zaniolo又定义了第四范式。到 目前为止,已经提出了第五范式(5NF)。 满足最基本规范化的关系模式叫第一范式,第一范式的关系模式再满 足另外一些约束条件就产生了第二范式、第三范式、BC范式等等。 每种范式都规定了一些限制约束条件。 2013年7月29日星期一
2.4.1 关系模式规范化的必要性
1. 关系模式应满足的条件 2. 关系规范化可能出现的问题
2013年7月29日星期一
关系数据库的设计主要是关系模式的设计。关系模式设计 的好坏将直接影响到数据库设计的成败。 将关系模式规范化,使之达到较高的范式是设计好关系模 式的唯一途径。否则,所设计的关系数据库会产生一系列 的问题。
2013年7月29日星期一
1.关系模式应满足的条件关系数据库是根据关系模式设计的。好的关系模式除了能满 足用户对信息存储和查询的基本要求外,还应当使它的数据库满 足如下要求。 ⑴ 元组的每个分量必须是不可分的数据项 关系数据库特别强调,关系中的属性不能是组合属性,必须是基 本项,并把这一要求规定为鉴别表格是否为“关系”的标准。如 果表格结构的数据项都是基本项,则该表格为关系,它服从关系 模式的
第一范式,以后可以在此基础上进一步规范化。否则,如 果表格结构中含有组合项,必须先使之转换为基本数据项。因为 关系的一切数学理论都是基于关系服从于第一范式基础之上的。2013年7月29日星期一
⑵ 数据库中的数据冗余应尽可能少 数据冗余大是指数据库中重复的数据过多。“数据冗余”是数据 库最忌讳的毛病,数据冗余会使数据库中的数据量巨增,系统负 担过重,并浪费大量的存储空间。数据冗余还可能造成数据的不 完整,增加数据维护的代价。数据冗余还会造成数据查询和统计 的困难,并导致错误的结果。 尽管关系数据库是根据外键建立关系之间的连接运算的,外键数 据是关系数据库不可消除的“数据冗余”,但在设计数据库时, 应千方百计将数据冗余控制在最小的范围内,不必要的数据冗余 应坚决消除。
2013年7月29日星期一
⑶ 关系数据库不能因为数据更新操作而引起数据不一致问题
如果数据模式设计的不好,就可能造成不必要的数据冗余,一 个信息就会多次的在多地重复存储。对于“数据冗余大”的关 系数据库,当执行数据修改时,这些冗余数据就可能出现有些 被修改,有些没有修改,从而造成数据不一致问题。数据不一 致问题影响了数据的完整性,使得数据库中数据的可信度降低。
2013年7月29日星期一
⑷ 当执行数据插入操作时,数据库中的数据不能产生插入异 常现象 所谓插入异常是指希望插入的信息由于不能满足数据完整性的 某种要求而不能正常地被插入到数据库的异常问题。
出现数据插入异常问题的主要原因是数据库设计时没有按“一 事一地”的原则进行。由于多种信息混合放在一个表中,就可 能造成因一种信息被捆绑在其他信息上而产生的信息之间相互 依附存储的问题,这是使得信息不能独立插入的关键所在。
2013年7月29日星期一
⑸ 数据库中的数据不能在执行删除操作时产生删除异常问题删除异常是指在删除某种信息的同时把其他信息也删除了。 删除异常也是数据库结构不合理产生的毛病。和插入异常一样, 如果关系中多种信息捆绑在一起,当被删除信息中含有关系的 主属性时,由于关系要满足实体完整性,整个元组将全部从数 据库中被删除,即出现删除异常。
2013年7月29日星期一
⑹ 数据库设计应考虑查询要求,数据组织应合理
在数据库设计时,不仅要考虑到数据自身的结构完整性, 还要考虑到数据的使用要求。为了使数据查询和数据处理高效 简洁,特别是对那些查询实时性要求高、操作频度大的数据, 有必要
通过视图、索引和适当增加数据冗余的方法,来增加数 据库的方便性和可用性。
2013年7月29日星期一
2. 关系规范化可能出现的问题
在我们构造关系时,经常会发现数据冗余和更新异常等现象, 这是由关系中各属性之间的相互依赖性和独立性造成的。如果一 个关系没有经过规范化,可能会导致上述谈到的数据冗余大、数 据更新造成不一致、数据插入异常和删除异常问题。
例如,要求设计一个教学管理数据库,希望从该数据库中得到学 生学号、姓名、性别、年龄、所在系、系主任姓名、学生学习的 课程和该课程的成绩信息。若将此信息要求设计为一个关系,则 关系模式为:学生(学号,姓名,性别,年龄,所在系,系主任 姓名,课程名,成绩)。此关系模式的主键为(学号,课程名)。仅从关系模式上看,该关系 已经包括了需要的信息,如果按此关系模式建立关系,并对它进 行深入分析,就会发现其中的问题所在。 2013年7月29日星期一
该关系存在着如下问题: ⑴ 数据冗余大。每一个“所在系”和“系主任姓名”存储的次数等于该系 的学生人数乘以每个学生选修的课程门数。 ⑵ 插入异常。一个新系没有招生时,“所在系”和“系主任姓名”无法插 入到数据库中,因为在这个关系模式中,主键是(学号,课程名),而这时因 没有学生而使得学号无值,所以没有主属性值,关系数据库无法操作,因 此引起插入异常。 ⑶ 删除异常。当一个系的学生都毕业了而又没招新生时,删除了全部学生 记录,随之也删除了“所在系”和“系主任姓名”。这个系依然存在,而 在数据库中却无法找到该系的信息,即出现了删除异常。 ⑷ 更新异常。若某系更换系主任,数据库中该系的学生记录应全部修改。 如有不慎,某些记录漏改了,则造成数据的不一致出错,即出现了更新异 常。2013年7月29日星期一
由上述4条可见,学生关系尽管看起来很简单,但存 在的问题比较多,它不是一个合理的关系模式。
2013年7月29日星期一
2.4.2 数据依赖1. 函数依赖 2. 平凡函数依赖与非平凡函数依赖 3. 完全函数依赖 …… 此处隐藏:1576字,全部文档内容请下载后查看。喜欢就下载吧 ……
- 基于PLC控制的航空电镀生产线自动输送
- 中考预测课内外文言文对比阅读2
- 2018-2023年中国商业智能(BI)产业市场
- 中国金融体制改革研究2011new
- 外窗淋水试验方案
- 精益生产(Lean Production)
- 学校安全事故处置和信息报送制度
- Chapter 5 Human Resources Management
- 【小学数学】人教版小学六年级上册数学
- 初中数学解题方法与技巧
- 山东省创伤中心建设与管理指导原则(试
- 函数与数列的极限的强化练习题答案
- 10分钟淋巴按摩消脂
- 网络应急演练预案
- 服装设计入门基础知识
- 初二数学分式计算题练习
- (人教新课标)高二数学必修5第二章 数列
- 最新自主创业项目
- 北京大学 无机化学课件 4第4章 配合物
- 贸易公司业务管理制度




