数据库清华版章关系数据库设计理论课件
- 格式:pptx
- 大小:442.00 KB
- 文档页数:138


一,关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库。
简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系模型中常用的概念:
关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名
元组:可以理解为二维表中的一行,在数据库中经常被称为记录
属性:可以理解为二维表中的一列,在数据库中经常被称为字段
域:属性的取值范围,也就是数据库中某一列的取值限制
关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成
关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ...
,属性N),在数据库中成为表结构
关系型数据库的优点:
容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解
使用方便:通用的SQL语言使得操作关系型数据库非常方便
易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率
二, 范式, 英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对这三个范式的基本介绍:
第一范式(1NF):
数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。 通俗解释:一个字段只存储一项信息
例如: userInfo: '山东省烟台市 1318162008'
依照第一范式必须拆分成:
userInfo: '山东省烟台市'
userTel: '1318162008'两个字段
第二范式(2NF):
满足1NF后要求表中的所有列,都必需依赖于主键,而不能有 任何一列与主键没有关系(一个表只描述一件事情)。
数 据 模 型
2。1 练习题2及参考答案
1。 什么是关系?什么是关系框架?关系之间实现联系的手段是什么?什么是关系数据库?
答:关系是一张二维表,即元组的集合.关系框架是一个关系的属性名表。形式化表示为:R(A1,A2,…,An),其中:R为关系名,Ai为关系的属性名。关系之间实现联系的手段是通过关系之间的公共属性来实现联系。关系数据库是指对应于一个关系模型的所有关系的集合。
2. 某医院病房计算机管理中需如下信息:
科室:科名、科地址、科电话、医生姓名
病房:病房号、床位数、所属科室名
医生:姓名、职称、所属科室名、年龄、工作证号
病人:病历号、姓名、性别、诊断医生、病房号
其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只属于一个科室,但可负责多个病人的诊治;一个病人的主治医生只有一个。设计该计算机管理系统的E-R图.
答:对应的E—R图如图2。1所示. 第 章 2
病房
病人 医生 科室
入住
诊治 从属 组成
病历号 姓名 性别 工作证号 姓名 职称 年龄 病房号 床位号 科地址 科电话 科名
n 1
n 1
n 1 1
n
图2.1 E—R图
3。 学校有若干个系,每个系有若干名教师和学生;每个教师可以教授若干门课程,并参加多个项目;每个学生可以同时选修多门课程。请设计某学校的教学管理的E-R模型,要求给出每个实体、联系的属性。
答:该学校的教学管理E-R模型有以下实体:系、教师、学生、项目、课程。各实体属性如下:
系(系编号,系名,系主任)
教师(教师编号,教师姓名,职称)
学生(学号,姓名,性别,班号)
项目(项目编号,名称,负责人)
课程(课程编号,课程名,学分)
各实体之间的联系如下:
教师担任课程的1:n“任课”联系
教师参加项目的n:m“参加"联系
学生选修课程的n:m“选修"联系
系、教师和学生之间的所属关系的1:m:n“领导”联系
科技信息 0计算机与信息技术O SCIENCE&TECHNOLOGYINFORMATION 2007年第2l期
关系规范化理论及反规范化设计在数据库中的运用 李荣芳 (陕西邮电职业技术学院计算机系 陕西西安710000) 摘要:本文首先介绍了数据库设计中的关系规范化理论,然后从提高数据库性能的角度,介绍了反规范化设计技术和几种常用的反规范化 设计方法.并对这些方法的优缺点以及使用时的注意事项做了较为深入的论述。 关键词:数据库设计;规范化;反规范化 1.引言 在关系数据库设计中,规范化是一个很重要的概念。数据库的设 计是否合理.直接影响到数据库的性能。自20世纪7O年代首次提出 关系规范化理论以来,关系规范从第一范式提高到第五范式,但是从 关系模式的角度来看,只有满足第三范式或BCNF的表结构是最容易 维护的,而且可以基本满足实际应用的要求。对关系的规范化处理具 有很多优点:降低数据冗余,避免了数据库的修改异常,插入异常和删 除异常;而且也加快了单表查询的速度。 2.关系的规范化理论 关系数据库规范化理论是用来研究如何将一个“不好”的关系模 式转化为一个“好”的关系模式。其基本思想是通过合理的分解来消除 关系模式中不合适的数据依赖,以此消除存储异常,减少数据冗余,便 于数据的插入、删除和更新。规范化理论认为,关系数据库中的每张关 系都必须满足一定的约束条件,即必须是规范化的。满足较低范式的 关系模式可以通过关系的无损分解转化为若干较高级范式关系的集 合。从理论上来说,规范化的程度越高,关系模式就越好,但在实际应 用中要具体问题具体分析,通常对于一般数据库应用系统,只要将数 据库表规范到3NF或BCNF的标准就可以满足用户需求O 2.1第一范式(1NF)在一个关系中,如果属性是不可再分的最小 数据项,则称该关系满足1NF。1NF是从关系的基本性质而来的,任何 关系都必须遵守。然而1NF的关系存在许多缺点。比如要描述学生的 的一些情况,涉及的对象有:学生(用学号SNO,姓名SN描述),系(用 SDEPT描述),负责人(用MN描述),课程(用课程号CNO,成绩G,任 课教师代号TNO描述)。得到如下关系:S(SNO,SN,SDEPT,MN,CNO, TNO,G),由实际情况可知:一个系有若干学生,但一个学生只属于一 个系;一个系只有一名(正职)负责人;一个学生可以选修多门课程,每 门课程有若干学生选修;每个学生学习每门课程有一个成绩,每门课 程可以有多个老师来讲授,每个老师可以带多门课。于是可得关系R 的一组函数依赖: F={SNO-->SDEPT,SDEPT-->MN,(SNO,CN0)一>G} 如果只考虑函一种数据依赖,就得到一个描述学校的数据库模式 S(U,F),它由单一的关系模式构成。该模式存在以下问题: (1)插入异常:当一个系刚成立尚无学生,则无法把这个系及其负 责人的信息存人数据库。 (2)删除异常:如果某系的学生全部毕业,删除该系学生选课纪录 的同时,该系负责人的信息也被删除。 (3)冗余大.修改异常:系负责人的姓名与该系学生课程成绩出现 次数一样多;系负责人更换后,就必须逐个修改信息。 所以,1NF不是一个好的关系模式,其原因就是表结构不够规范。 2.2第二范式(2NF)若某关系模式满足1NF,且关系中每一个非 主属性都完全依赖于候选关键字.则称该关系满足2NF。将1NF转化 为2NF,其实质是采用投影分解法.将1NF的关系无损分解为几个 2NF。解决上例问题的方法就是将S分解为两个关系模式:。 S(SNO,SN,SDEPrr,MN) SC(SNO,CNO,TN0,G) 然而,分析一下SC,其中仍然存在以下问题: (1)数据冗余大。S中MN重复出现。 (2)修改麻烦。如果某个系更换负责人,则必须修改相关系每个学 生的MN.若漏改则造成数据矛盾。 (3)插入异常。如果新增一个系,因为未招生而不能插入相应信息。 (4)删除异常。若删除某个学生,则连同相关系的信息一并删掉。 存在以上问题的原因就是S关系中存在传递函数依赖: S O一>SDEPI’一>M 2,3第三范式(3NF)若某关系模式满足2NF.且关系中每一个非 主属性都直接函数依赖于侯选关键字,则称该关系满足3NF。要使S 满足3NF,只要去掉S中的传递函数依赖即可,将传递函数依赖单独 取出来,把表分解为S和SD两张关系,即:S(SNO,SN,DEPT),SD (DEPT,MN),两张关系通过S的外键DEPT来联接。 分析SC,虽满足3NF,但仍存在以下问题: (11数据冗余大。任课教师的信息重复出现。 (2)修改麻烦。如果要更换某个任课教师,则必须重复修改其所带 每个学生对应信息。 (3)插入异常。如果新来一个教师,会因无学生选课而不能插入其 信息。 f41删除异常。若删除某学生某门课的成绩,则连同该生的任课教 师的信息一并删掉,引起信息丢失。存在以上问题的原因是SC中存在 非码的TN0决定因素。 2.4BCNF若某关系模式满足3NF.且关系中每一个决定因素都 包含码,则称该关系满足BCNF。要想使SC满足BCNF,只要去掉表中 的非主码作为决定因素.即将TNO单独提出来,SC分解为:SC(SNO, CN0,G),CT(CNO,TNO)。通常认为BCNF是修正的3NF,也称为扩充 的3NF。 2.5关系模式分解原则关系模式的分解必须遵从概念单一化、 一事一地的原则.要求一个关系模式只能描述一个实体或实体间的一 种联系。尽管分解方法多样,结果不唯一,但最小冗余的要求必须以分 解后的数据库能表达原数据库所有信息为前提来实现。实际上,并不 一定要求全部模式都达到某一范式。有时故意保留部分冗余可能更方 便数据查询。 3.数据的反规范设计 关系的规范化处理既解决了数据库设计中的诸多问题,同时也带 来不少麻烦,比如需要进行更多表的联接、进行额外的I,0、占用大量 的CPU资源.降低了查询速度。而在实际应用中联接操作不会太大影 响数据库的效率。因此,在某些特殊情况下,为了特定目的,需要降低 规范化的程度.以数据的冗余和不规则性来换取联接的减少以提高访 问速度,这就是反规范化处理。 3.1反规范的好处从某种意义上说.数据库的规范化与反规范 化并不相互对立、非此即彼。因为“分解”越深,关系就越多,联接操作 就越频繁,最费时间,特别是以查询为主的数据库来说,频繁的联接会 影响查询速度。所以,关系有时故意保留成反规范化的,或者规范化以 后又反规范了,这样做通常是为了改进性能。 3.2常用的反规范化设计技术在进行反规范操作之前,要充分 考虑数据的存取需求、表的大小、一些特殊的计算(如合计)、数据的物 理存储位置等。常用的反规范化技术有以下几种: 1)分割表。如果一张表的数据量很大,可以将该表分割成若干个, 方法有以下三种: (1)水平分割:根据一列或多列的数据值把数据行放到两个独立 表中。水平分割通常在以下情况使用: ①表很大。分割后降低了查询时需读取的数据和索引的页数,同 时也降低索引的层数。 ②表中的数据本来就有独立性。例如表中分别记录各地区的数据 或不同时期的数据。 ③表中的数据需要存放到多个介质上。例如毕业学生成绩表和在 册学生成绩表。 水平分割会增加应用复杂度,它通常在查询时需(下转第99页)
1 第四章 关系数据库设计理论练习题
一、选择题
1、关系规范化中的删除操作异常是指 A ,插入操作异常是指 D
A、不该删除的数据被删除. B、不该插入的数据被插入;
C、应该删除的数据未被删除; D、应该插入的数据未被插入.
2、关系数据库规范化是为解决关系数据库中( )问题而引入的。
A、插入异常、删除异常和数据冗余; B、提高查询速度;
C、减少数据操作的复杂性;
D、保证数据的安全性和完整性。
3、假设关系模式R(A,B)属于3NF,下列说法中( )是正确的。
A、R一定消除了插入和删除异常; B、R仍可能存在一定的插入和删除异常;
C、R一定属于BCNF;
D、A和C都是.
4、关系模式的分解
A、唯一 B、不唯一.
5、设有关系W(工号,姓名,工种,定额),将其规范化到第三范式正确的答案是(
)
A、W1(工号,姓名),W2(工种,定额);
B、W1(工号,工种,定额),W2(工号,姓名);
C、W1(工号,姓名,工种),W2(工种,定额);
D、以上都不对.
6、设学生关系模式为:学生(学号,姓名,年龄,性别,平均成绩,专业),则该关系模式的主键是( )
A、姓名; B、学号,姓名; C、学号; D、学号,姓名,年龄.
7根据数据库规范化理论,下面命题中正确的是( )
A、若R∈2NF,则R∈3NF B、若R∈1NF,则R不属于BCNF
C、若R∈3NF,则R∈BCNF D、若R∈BCNF,则R∈3NF
8、关系数据库设计理论中,起核心作用的是
A、范式; B、模式设计;
C、函数依赖; D、数据完整性.