关系数据库(RDB)规范化设计理论

上传人:宝路 文档编号:47590820 上传时间:2018-07-03 格式:PPT 页数:47 大小:820.61KB
返回 下载 相关 举报
关系数据库(RDB)规范化设计理论_第1页
第1页 / 共47页
关系数据库(RDB)规范化设计理论_第2页
第2页 / 共47页
关系数据库(RDB)规范化设计理论_第3页
第3页 / 共47页
关系数据库(RDB)规范化设计理论_第4页
第4页 / 共47页
关系数据库(RDB)规范化设计理论_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《关系数据库(RDB)规范化设计理论》由会员分享,可在线阅读,更多相关《关系数据库(RDB)规范化设计理论(47页珍藏版)》请在金锄头文库上搜索。

1、 第4章 关系数据库(RDB)规范化理论 4.1 关系模式规范化的必要性 4.2 数值依赖 4.3 范式与规范化 、关系分解原则 nRDB规范化理论的目的是要设计“好的”RDB 模式。n要设计好的关系模式,必须是关系满足一定 的约束条件,此约束形成了规范。n范式(Normal Form):衡量DB规范的层 次或深度,DB规范化层次由范式来决 定。简记作NF.n根据关系模式满足的不同性质和规范 化的程度,将关系模式分为第一范式 (1NF)、第二范式(2NF)、第三范式 (3NF)、BC范式、第四范式(4NF)、第 五范式(5NF),范式越高规范化程度越 高。n规范化:低级关系模式通过模式分解 转

2、换为若干高级范式的关系模式集合 的过程。n规范化是在RDB中减少数据冗余的过程 。4.1 关系模式规范化的必要性1. 关系模式应满足的条件 2. 关系规范化可能出现的问题 3. 模式分解是关系规范化的主要方 法1.关系模式应满足的条件 元组每个分量必是不可再分的数据项nRDB特别强调,关系中的属性不能是组合属性, 必须是基本项。否则,会使关系结构变为多层 次的混合结构,增加关系操作的表达、优化即 执行的复杂度。如: n 教师( 姓名,工资,所授课程名,课程号); 职务工资 津贴 课时补贴 DB中的数据冗余应尽量少“数据冗余”会使:nDB中的数据量巨增,系统负担过重,并浪费大量存储空间 ;n造成

3、数据的不完整,增加数据维护的代价。n造成数据查询和统计困难,导致错误结果。教师师 姓名住址课课 程 号课课程名李林安徽省合肥市梅山路78号C1N1李林安徽省合肥市梅山路78号C2N2李林安徽省合肥市梅山路78号C3N3汪佳安徽省合肥市梅山路59号C4N4吴仪仪安徽省合肥市梅山路79号C5N5师师帆安徽省合肥市梅山路76号C6N6 RDB不能因为数据更新操作而引起数据不一致性 即更新异常n对于“数据冗余大”的RDB,当执行数据修改时, 系统要付出很大代价来维护数据库的完整性。否则 会面临数据不一致的危险。影响了数据的完整性, 使得DB中数据的可信度降低。如:某教师从78号宿 舍搬到76号,修改量

4、较大.教师师 姓名住址课课 程 号课课程名李林安徽省合肥市梅山路78号C1N1 李林安徽省合肥市梅山路78号C2N2 李林安徽省合肥市梅山路78号C3N3 汪佳安徽省合肥市梅山路59号C4N4 吴仪仪安徽省合肥市梅山路79号C5N5 师师帆安徽省合肥市梅山路76号C6N6当执行数据插入时,DB中的数据不能产生插 入异常现象n所谓“插入异常”是指希望插入的信息由于 不能满足数据完整性的某种要求而不能正常 地被插入到DB中的异常问题。n比如:上例中插入一个尚未安排授课的新进教 师信息. 原因:n因多种信息混合放在一个表中,可能造成因 一种信息被捆绑在其他信息上而产生的信息 之间相互依附存储的问题,

5、使得信息不能独 立插入。 DB中数据不能在执行删除操作时产生“删除 异常”问题n“删除异常”是指在删除某种信息的同时把其 它信息也删除了。n比如: 上例取消T3教师的教学任务,要删除其授 课元组,则在删除其授课信息的同时将其地址和 姓名信息一并删除掉了.n“删除异常”是DB结构不合理产生的问题。若 关系中多种信息捆绑在一起,当被删除信息中 含有关系的主关键字时,因关系要满足实体完 整性,整个元组将全部从DB中被删除,即出现 “删除异常”。 为解决这几个问题可将关系模式 教师 分解为两个模式 R,S。这样数据冗余度变小,不存在插入、更新和删除异 常情况了。教师师 姓名住址课课程号课课程名李林78

6、号C1N1李林78号C2N2李林78号C3N3汪佳59号C4N4吴仪仪79号C5N5师师帆76号C6N6教师师姓名 住址 李林78号汪佳59号吴仪仪79号师师帆76号关系R教师师姓名课课程号课课程名 李林C1N1 李林C2N2 李林C3N3 汪佳C4N4 吴仪仪C5N5 师师帆C6N6关系S关系 教师 DB设计应考虑查询要求,数据组织应合理n在DB设计时,不仅要考虑到数据自身的结构 完整性,还要考虑到数据的使用要求。n为使数据查询和数据处理高效简洁,特别是 对查询实时性要求高、操作频度大的数据, 有必要通过视图、索引和适量增加数据冗余 的方法,增加DB的方便性和可用性。2. 关系规范化可能出现

7、的问题n如果一个关系没有经过规范化,可能会出现数据冗余大、数据更新 造成不一致、数据插入异常和删除异常。n例6:学生关系存在的问题:数据冗余(系主任名)、更新异常(换系 主任)、插入异常(系没有招生系主任名不能插入)、删除异常(学生 毕业)。3. 模式分解是关系规范化的主要方法n对于有问题的关系模式,可通过模式分解的方法使之规 范化。n原学生关系(学号,姓名,所在系,系主任姓名,课程 名,成绩)可分解为以下三个关系:学生(学号,姓名,所在系) 系(所在系,系主任姓名) 考试(学号,课程名,成绩)新关系克服了学生关系存在的问题,更加合理和实用 。学号姓名所在系所在系系主任姓名学号课程名成绩4.2

8、 数据依赖 1. 函数依赖 2. 平凡函数依赖与非平凡函数依赖 3. 完全函数依赖与部分函数依赖 4. 传递函数依赖 n在DB中,数据属性之间存在着密切的联系。在DB 技术中,把数据之间存在的联系称为“数据依赖 ”。 nDB中出现的数据异常现象与数据依赖有着紧密的 关联。在数据依赖中,函数依赖是最基本的一种 依赖形式。n认识和掌握函数依赖知识,对于DB的约束设计和 规范化设计具有重要意义。1. 函数依赖n假设R(A1,A2,An)是一个关系模式,X 和Y是A1,A2,An的子集,对于关系R中 的任意一个X的值,都只有一个Y值与之对 应,则称“X函数确定Y”或“Y函数依赖 于X”,记作XY。n例

9、如:学生(学号,姓名,所在系,课程 名,成绩)关系模式中,学号姓名 学号所在系 (学号,课程名)成绩 n注意:X和Y都是属性组,如果XY,表 示X中取值确定时,Y中的取值惟一确定 ,即X决定Y或Y函数依赖于X,X是决定因 素。n函数依赖类似于数学中的单值函数,函 数的自变量确定时,应变量的值惟一确 定。反映了关系模式中属性间的决定关 系,体现了数据间的相互关系。例7:学生(学号,姓名,性别,年龄,班级号 )存在以下的函数依赖:学号姓名学号性别学号年龄学号班级号说明: 函数依赖不是指关系模式R的某个或某些关 系实例满足的约束条件,而是指R的所有关 系实例均要满足的约束条件。 函数依赖是RDB用以

10、表示数据语义的机制。 人们只能根据数据的语义来确定函数依赖。 例:“姓名年龄”这个函数依赖只有在没有 相同姓名人的条件下成立。若有相同姓名的 人,则“年龄”就不再函数依赖于“姓名” 了。2. 平凡函数依赖与非平凡函数依赖n在关系模式R(U)中,对于U的子集X和Y,如果XY ,但Y X,则称XY是非平凡函数依赖。若Y X ,则称XY为平凡函数依赖。n例如:学号姓名 (学号,姓名)姓名n对于任一关系模式,平凡函数依赖都是必然成立 的,它不反映新的语义,因此若不特别声明,我 们总是讨论非平凡函数依赖。 3. 完全函数依赖与部分函数依赖完全函数依赖:n在关系模式R(U)中,如果XY,并且对于X的任何

11、一个真子集X,都有X Y,则称Y完全函数依赖 于X,记作X Y。 部分函数依赖:n若XY,但Y不完全函数依赖于X,则称Y部分函数 依赖于X,记作X Y。 f p例8:学生(学号,姓名,所在系,系主任姓名,课程号,成绩 )学生关系模式存在的部分函数依赖:(学号,课程号) 姓名(学号,课程号) 所在系(学号,课程号) 系主任姓名思考: 此关系模式中是否存在完全函数依赖?ppp4. 传递函数依赖n在关系模式R(U)中,如果XY,YZ,且Y X,Z Y,Y X,则称Z传递函数依赖于X。例9:学生(学号,姓名,所在系,系主任姓名,课程名, 成绩),存在如下的函数依赖:学号所在系所在系系主任姓名学号系主任

12、姓名传递4.3 范式与规范化1. 第一范式(1NF) 2. 第二范式(2NF) 3. 第三范式(3NF) 4. BC范式1. 第一范式(1NF)n若一个关系模式R的所有属性都是不可分的基 本数据项,则该关系属于1NF 。n在任何一个RDBS中,1NF是对关系模式的一个 必须的要求,不满足1NF的DB模式不能称为RDB 。n满足1NF的关系模式并不一定是好的关系模式 。例如:学生(学号,姓名,所在系,系主任姓名,课程名 ,成绩)n它显然满足1NF,但本身存在插入异常、删除异常、更 新异常和数据冗余问题,所以它不是一个好的关系模 式。n例如:教师(教师号,姓名,性别,年龄,家庭地址(城市 、街道、

13、门牌号)则非1NF,可将它改为n教师(教师号,姓名,性别,年龄, 城市,街道,门牌号 )n则为1NF 了2. 第二范式(2NF)n若关系模式R属于1NF,且每个非主属性都 完全函数依赖于主关键字,则R属于2NF 。n2NF不允许关系模式中的非主属性部分函 数依赖于主关键字。 例10:学生(学号,姓名,所在系,系主任姓名,课 程名,成绩)n学生关系模式存在部分依赖:(学号,课程名)姓名(学号,课程名)所在系(学号,课程名)系主任姓名n不满足“每个非主属性都完全函数依赖于主关键 字”的条件。故不属于2NF。n对学生关系模式进行分解,使其满足2NF的条件, 即要消除非主属性对主关键字的部分依赖。pp

14、p关系分解n把R的属性分开,以构成两个新的关系模式 ;n通过对R的元组进行投影而产生两个新的关 系。n学生关系模式分解成:学生-系(学号,姓名,所在系,系 主任姓名)考试(学号,课程名,成绩)学生-系、考试属于2NF。n学生关系模式:学生-系(学号,姓名,所在系,系 主任姓名)n存在:学号所在系所在系系主任姓名学号系主任姓名n仍有数据冗余(从学生-系关系模式的实例可以看出 ,当一个系有很多学生时,“系主任姓名”会大量 重复出现)和更新异常。所以应进一步对其进行规 范化。 传递n习题9: 关系模式R(ABCD),F是R上 成立的函数依赖集,F=AB-CD,A-Dn(1) 试说明R不是2NF的理由

15、n(2) 试把R分解成2NF模式集.nR1(ABC) R2(AD)3. 第三范式(3NF)n若关系模式R属于1NF,且每个非主属性都不传递依 赖于主关键字,则R属于3NF。n将学生-系(学号,姓名,所在系,系主任姓名)关系模式分解为:学生(学号,姓名,所在系)系(所在系,系主任姓名) n关系模式学生与系均已满足3NF。 n3NF是一个可用的关系模式应满足的最低范式。n一个关系模式如果不满足3NF,实际上是不能使 用的。n把关系模式分解到3NF,可在相当程度上减轻原 关系中的异常和信息冗余,但也不能保证完全 消除关系模式中的各种异常和信息冗余。n要想使DB性能得到进一步的改善,就要把关系 模式进

16、一步规范化。 n习题10: 设关系模式R(ABC),F是R上成 立的函数依赖集,F=C-B,B-An(1) 试说明R不是3NF的理由n(2) 试把R分解成3NF.nR1(CB) R2(BA)4. BC范式n若关系模式R属于第一范式,且每个非平凡 依赖的左边必须包含主关键字;或称每个决 定因素必须包含主关键字。则称R属于BC范 式。n分析如下关系是否属于BC 范式:n学生(学号,姓名,所在系);n系(所在系,系主任姓名)n成绩(学号,课程名,成绩);思考习题:n设有关系模式:R(职工名,项目名,工资,部 门号,部门经理)n如果规定每个职工可参加多个项目,每个项目 领一份工资;每个项目只属于一个部门管理;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

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