第4讲 关系规范化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


学生基本信息(Sno,Sname,Ssex,Dname) 课程信息(Cno,Cname,Tname) 学生成绩(Sno,Cno,Grade)
关系系统当中数据冗余产生的重要原因就在于对 数据依赖的处理,从而影响到关系模式本身的结 构设计。
实体间的联系有两类,一类是实体与实体之间的联
系; 另一类是实体内部各属性间的联系。
关系数据库中的关系必须满足一定的规范化要求,对
于不同的规范化程度可用范式来衡量。
范式( Normal Form )是符合某一种级别的关系模
式的集合,是衡量关系模式规范化程度的标准,达到 的关系才是规范化的。
目前主要有 6种范式:第一范式、第二范式、第三范
式、 BC 范式、第四范式和第五范式。满足最低要求

几种特定的函数依赖
1、非平凡函数依赖和平凡函数依赖 设关系模式R(U), X、 Y⊆ U: 如果X→Y, 且Y ⊆ X, 则称X→Y为平凡的函数依赖。 如果X→Y, 且Y不是X的子集, 则称X→Y为非平凡的 函数依赖。
例: 在学生课程(学生号,课程号,成绩)关系中,若 存在函数依赖为: (学生号,课程号)→成绩;非平凡的函数依赖 (学生号,课程号)→ 课程号;平凡的函数依赖
Sname 张三恺 张三恺 张三恺 张三恺 王薇薇 王薇薇
Ssex 男 男 男 男 女 女
Dname 计算机系 计算机系 计算机系 计算机系 计算机系 计算机系
Cname 高等数学 英语 数字电路 数据结构 高等数学 英语
Tname 李刚 林弗然 周斌 陈长树 李刚 林弗然
Grade 83 71 92 86 79 94
(1)主关键字只有一个属性的关系是第二范式。 例4-6:在关系R(学号,姓名,出生日期,成绩)中 主属性为学号,姓名、出生日期、成绩为非主属性,存 在下列函数依赖关系: 学号→姓名 学号→性别 学号→出生日期,学号→成 绩
由于每个非主属性都完全依赖于码 ,所以R∈2NF。
(2)主关键字是属性的组合,这样的关系模式可能不
学期
1 2
数据冗余
学生选课表,不是1NF, 因为课程一列包含多门课, 不是原子值。 规范为下表,是1NF。 学生选课表
姓名
张三 王五 张三 张三 王五
课程
高数 离散数学 普物 英语 程序设计
学期
1 2 1 1 2
2、第二范式 定义:如果关系模式R是第一范式,且每个非主属性都 完全依赖于码 ,则称R为满足第二范式的模式,记为: R∈2NF模式。 在一个关系中,包含在任何候选关键字中的各个属性称 为主属性;不包含在任何候选码中的属性称为非主属性 。
第4讲
关系规范化基础
问题导读
关系模式规范化的目的。
非规范化的关系中存在哪些问题?
数据依赖
关系规范化
问题的提出
设有一个关于教学管理的关系模式:
教学(Sno,Sname,Ssex,Dname,Cname,
Tname,Grade)
选定此关系的主键为(Sno,Cname)。
Sno 0450301 0450301 0450301 0450301 0450302 0450302
总学分 50 50
50 50 50
学生情况表对应的关系模式可描述为:
学生情况(学号,姓名,专业名,性别,出生时间,总
学分)
其中,学号为关键字,则存在如下的函数依赖关系:
学号→姓名 ; 学号→专业名; 学号→性别 ;学号
→出生时间;学号→总学分
函数依赖与属性间的联系类型的关系
在一个关系模式中,如果属性X与Y有1:1联系时, 则存在函数依赖X→Y,Y→X,即X ↔ Y。 例如,当学生没有重名时,SNO ↔ SN; 如果属性X与Y有m:1的联系时,则只存在函数依赖 X→Y。 例如,SNO与AGE,DEPT之间均为m:1联系,所以有 SNO→AGE ,SNO→DEPT; 如果属性X与Y有m:n的联系时,则X与Y之间不存在 任何函数依赖关系。 如 sno与cno
2、 完全函数依赖和部分函数依赖
定义: 设关系模式R(U), X, Y⊆U:
如果X→Y, 并且对于X的任何一个真子集Z, Z→Y都
不成立, 则称Y完全函数依赖于X。
若X→Y, 但对于X的某一个真子集Z, 有Z→Y成立
, 则称Y部分函数依赖于X。
例: 在关系SC(Sno, Cno, Grade)中, Sno, Cno是主码。 Sno →Grade不成立,Cno → Grade也不成立 只有 (Sno, Cno)→ Grade 因此:Grade 完全函数依赖于(Sno, Cno) ; 若sc(sno,cno,tname,grade) ? (sno,cno)→tname cno→tname

定义属性值间的相互关连,这就是数据依赖,它
是数据库模式设计的关键。

数据依赖是现实世界属性间相互联系的抽象,是
世界内在的性质。
4.1 数据依赖
数据依赖共有三种: 函数依赖(Functional Dependency,简称 FD) 多值依赖(Multivalued Dependency,简 称MVD) 连接依赖(Join Dependency,简称JD), 其中最重要的是函数依赖和多值依赖。
4.2 关系规范化
设有一描述学校的数据库:
学生的学号(Sno)、所在系(Sdept)
系主任姓名(Mname)、课程名(Cname)成绩(
Grade)
关系模式 :学生信息表 (Sno, Sdept, Mname,
Cname, Grade )
关系模式规范化的目的
关系模式规范化的目的是解决关系模式中存在的数据 冗余、插入和删除异常以及更新异常等问题。其基本 思想是消除数据依赖中的不合适部分,使各关系模式 达到某种程度的分离,使一个关系描述一个概念、一 个实体或实体间的一种联系。因此,规范化的实质是 概念的单一化。
1NF是规范化最低的范式,它要求无重复记录;字段
ቤተ መጻሕፍቲ ባይዱ
不可分解。
在任何一个关系数据库系统中, 关系至少应该是第一
范式。
不满足第一范式的数据库模式不能称为关系数据库。
注意, 第一范式不能排除数据冗余和异常情况的发生
例如:分析下表描述的职工情况。 职工情况表
工资 职工号 姓名 基本工资 职务工资 工龄工资 20017 20013 李岚 王晓江 890 900 300 300 30 40


怎样建立一个合理的数据库模式?
什么样的模型是合理的模型,什么样的模型是不合
理的模型?

关系数据库设计理论,即规范化理论。

根据现实世界存在的数据依赖而进行的关系模式的
规范化处理,从而得到一个合理的数据库设计效果。
解决办法
将教学关系分解为三个关系模式来表达:

教学(Sno,Sname,Ssex,Dname,Cname,Tname, Grade)
S1∈2NF;S2∈2NF。
例4-8:关系职工信息P(职工号,姓名,职称,项目 号,项目名称,项目排名) 主码为(职工号,项目号),非主属性为(姓名,职称 ,项目名称,项目排名)关系P中存在函数依赖如下: (职工号,项目号)→ 项目名称;职工号→姓名;( 职工号,项目号)→ 项目排名;职工号→职称;项目 号→项目名称。
例4-1
学 号 001101 001102
001103 001104 001106
学生情况表
专业名 计算机 计算机
计算机 计算机 计算机
姓 名 王林 程明
王燕 韦严平 李方方
性别 男 男
女 男 男
出生时间 1980-02-10 1981-02-01
1979-10-06 1980-08-26 1980-11-20
由于表中工资一项包括三部分,不满足每个属性 不能分解,是非规范化表,不是第一范式。可规 范为: 职工情况表
职工号 姓名 基本工资 职务工资 工龄工资
20017 20013
李岚 王晓江
890 900
300 300
30 40
例如:学生选课情况表:
学生选课表
姓名
张三 王五
课程
高数 普物 英语 离散数学 程序设计
函数依赖
定义: 函数依赖是指在关系R中,X、 Y为R的两个属性或属 性组,如果对于R的所有关系r都存在: 对于X的每 一个具体值,Y都只有一个具体值与之对应,则称属 性Y函数依赖于属性X。记作X→Y。 函数依赖简单表述:如果属性X的值决定属性Y的值 ,那么属性Y函数依赖于属性X。 如果知道X的值,就可以获得Y的值。
分配来一位教师或新成立一个系,则这位教师及新系名就无法 插入 ⑵ 修改异常:如果一个学生转系,则对应此学生的所有元组 都必须修改,否则,也出现数据的不一致性。
⑶ 删除异常:如果某系的所有学生全部毕业,又没有在读及
新生,当从表中删除毕业学生的选课信息时,则连同此系的信
息将全部丢失。
结论:上述的教学管理关系尽管看起来能满足一定的 需求,但存在的问题太多,从而它并不是一个合理的 关系模式。
的叫第一范式,简称为1NF。在第一范式基础上进一 步满足一些要求的为第二范式,简称为2NF。其余以 此 类 推 。 显 然 各 种 范 式 之 间 存 在 联 系: 1NF⊃2NF⊃3NF⊃BCNF ⊃4NF⊃5NF。
通常把某一关系模式R为第n范式简记为R∈nNF。
在这些范式中,最重要的是3NF和BCNF,它们是进行
函数依赖。
码的函数依赖表示
候选码:设K为关系模式R(U)的属性或属性集合。若 K→U,则K称为R的一个候选码(Candidate Key)。
若关系模式R有多个候选码,则选定其中一个作为主码 (Primary Key)。
码的函数依赖表示
外码:关系模式R中属性或属性组X并非R的码,但X是 另一个关系模式的码,则称X是R的外部码(Foreign Key),也称为外码。
74
68 „ 97 79 93 88
不难看出,该关系存在着如下问题:
1. 数据冗余(Data Redundancy)

每一个系名对该系的学生人数乘以每个学生选修 的课程门数重复存储。

每一个课程名均对选修该门课程的学生重复存储。 每一个教师都对其所教的学生重复存储。
2. 更新异常
⑴ 插入异常:由于主键中元素的属性值不能取空值,如果新
3、传递函数依赖 设关系模式R(U), X ⊆ U, Y ⊆ U, Z ⊆ U。 如果 X→Y, Y→Z成立, 但Y→X不成立, 且Z-X、 Z-Y和 Y-X均不空, 则称X→Z为传递函数依赖。 例如: 关系模式R={A, B, C, D}, 其上的函数依赖
集F={A→B, B→C, A→C, AB→D}, 则A→C为传递
是第二范式。
例4-7:关系S(学号,姓名,性别,课程,学分),
其中学号和课程为主属性,姓名、性别、学分为非主
属性,关系S中存在下列函数依赖关系:
学号→姓名,学号→性别 ,学号→课程, (课程、
学号)→学分
对上述关系模式进行分解,分解为两个关系: S1(学号,姓名,性别); S2(学号,课程,学分);
例4-9:关系ST(学号,楼号,收费);其中包含的 函数依赖关系有: 学号→楼号 楼号→收费 则:学号→收费
对上述关系模式进行分解,分解为两个关系: st1(学号,楼号); st2(楼号,收费)
由于非主属性部分依赖于码 ,故关系P不属于 2NF。对上述关系模式进行分解,分解为三个 关系: 职工信息表(职工号,姓名,职称); 项目排名表(职工号,项目号,项目排名); 项目表(项目号,项目名称)
3、第三范式 定义:如果关系模式R是第二范式,且没有 一个非主属性是传递函数依赖于码 ,则称R 为满足第三范式的模式,记为:R∈3NF模 式。
规范化的主要目标。
一个低一级范式的关系模式,通过模式分解可以转换为
若干个高一级范式的关系模式的集合,这个过程称为规
范化。
通常实际情况下,规范化到3NF就可以了。
常用的三种范式
1、第一范式(1NF) 定义:设R是一个关系模式。 如果R的每个属性的 值域(更确切地说是R的每一个关系r的属性值域) 都是不可分的简单数据项(即是原子)的集合, 则 称这个关系模式属于第一范式, 简记作R∈1NF。
0450302
0450302 „ 0420131 0420131 0420131 0420131
王薇薇
王薇薇 „ 陈杰西 陈杰西 陈杰西 陈杰西

女 „ 男 男 男 男
计算机系
计算机系 „ 园林系 园林系 园林系 园林系
数字电路
数据结构 „ 高等数学 英语 植物分类学 素描
周斌
陈长树 „ 吴相舆 林弗然 花裴基 丰茹
相关文档
最新文档