关系模式规范化的方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个关系模式R不属于2NF,以下几 个问题就会非常严重:
插入异常 删除异常 修改复杂
第三范式(3NF)
如果关系模式R满足第二范式,且每一个非关键字属 性不传递依赖于任一候选关键字,则称R满足第三范 式。
传递依赖
对于属性A、B、C,如果B依赖于A,C依赖于B,则 称C传递依赖于A。
函数依赖不是指二维表(关系模式)的某个或某些 记录满足的约束条件,而是指表中一切记录均要满 足的约束条件。 例:R1(姓名,学号,出生日期,课程编号,课程名), 学号是候选关键字。请分析该关系数据库是否满足 第二范式。
我们可以先根据给出的关系模式构建二维表;根 据实际情况构建数据。得出如下表:
水 电
12 …
发
803
860 陈
805 20
平
… …
…
…wk.baidu.com
…
第二范式(2NF)
如果关系模式R满足第一范式,且它的任意非关键字 属性都函数依赖于任一候选关键字,则称R满足第二 范式。
函数依赖
如果对于属性A,有且只有一个属性B与之对应,也 就是说,A决定了B,我们就说B函数依赖于A。 只能根据现实需求来确定一个函数依赖。例如姓名 确定年龄这个函数依赖只有在该学校没有同名人的 条件下成立。如果允许有同名人,则年龄就不再函 数依赖于姓名了。当然这些也是设计者对现实世界 作强制的规定而已。例如规定不允许同名人出现, 因而使姓名确定年龄函数依赖成立。
关系模式规范化的方法
什么是关系模式的规范化
所谓关系模式的规范化,就是对关系模式进行某种 处理,使它满足一定的规范化要求。
关系模式规范化的形式划分
关系模式规范化的形式可以分成六级,每一级称为 一个范式,记为XNF,其中X表示级别,NF就是范式 (Normal Form)。
第六级范式 第五级范式 第四季范式 第三级范式 第二级范式
分析关系数据库是否满足第三范式 的方法
同样可以使用构建数据表和记录的方式进行具体分 析。首先分析该二维表(关系模式)是否满足第一、 第二范式。最后再根据第三范式的定义判断是否存 在传递依赖现象。
满足第三范式要求的关系模式中都不存在传递依赖 现象,消除了数据冗余。
姓名
陈军 陈军
学号
001 001
年龄
15 15
课程编 号 C101
C102
课程名
数据管 理技术 多媒体 技术应 用 人工智 能初步 …
陈军 …
001 …
15 …
C105 …
上表每个属性都是单纯值,满足第一范式 对应一个“学号”(001),有且只有一个“姓名” (陈军)、“年龄”(15)与之对应。所以“姓名” 、 “年龄”函数依赖于“学号”。 对应一个“学号”,并不是有且只有一个“课程编号” 与之对应。例如学号001,我们发现有的记录以c101与 之对应;有的记录却又以C102与之对应,也就是说不是 表中一切满足学号是001的记录均满足有且只有唯一的 一个课程编号与之 对应,所以“课程编号”并不依赖 于“学号”。 我们可以用同样的方法分析出“课程名”并不依赖于 “学号” 因为存在非关键字属性不依赖于候选关键字的情况,所 以R1不满足第二范式。
第一级范式
第一范式(1NF)
如果一个关系模式R的每个属性的域都只包含单纯值, 而不是一些值的集合,则称R满足第一范式。
第一范式其实就是一张二维表作为关系的一个最起码的要求。 不满足第一范式的要求就不能称为关系,例如下表
职 工 号
姓
职
工
资
扣
除
实
名
称
讲 师 …
基 本
工 龄
职 务
50 …
房 租
60 …