数据库原理(第三章)
- 格式:pdf
- 大小:721.27 KB
- 文档页数:32
15
15
3.3
关系规范化
关系数据库中的每个关系都需要进行规范化,使之达到一 定的规范化程度,从而提高数据的结构化、共享性、一致性和 可操作性。 规范化级别:第一范式 第二范式 第三范式 BC范式 第四范式 第五范式 高 低
16
16
第 一 范 式(1NF)
定义8 设一个关系为R(U),若U中的每个
3
3
3.2
数据依赖
数据依赖体现的是关系内部各属性之间的相互关 系,是现实世界事物内部的各特征之间相互联系的抽 象,是数据内在的性质,是语义的体现。 函数依赖 数据依赖 多值依赖
4
4
数 据 依 赖(续)
例:学生(学号,姓名,所在系,……) 一个学号对应一名学生,一名学生只能属于一个 系,因而当“学号”的值确定后,姓名以及所在系的值 也就被唯一确定了。属性间的这种依赖关系类似于数 学中的函数。 因此说“学号”函数决定“姓名”和“所在系”,或者说 “姓名”和“所在系”函数依赖于“学号”。
非规范化的关系 第一范式的关系 方法一:在属性上展开
借阅证号 姓名 性别 图书号1 书名1 图书号2 书名2 图书号3 书名3
18
18
第 一 范 式(1NF 举例 续)
方法二:在元组上展开
借阅证号 姓名 性别 图书号 书名
方法三:模式分解
借阅证号 姓名 性别 归还日期
借阅证号 图书号 书名 借阅日期
31
31
32
32
6
6
关系模式的设计举例
例:建立一个描述学校的数据库,该数据库涉及的对象包括学生 的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、 课程名(Cname)和成绩(Grade)。假设学校的数据库模式由 一个单一的关系模式Student构成,则该关系模式的属性集合U为: U={ Sno,Sdept,Mname,Cname,Grade } 现实世界的已知事实如下: (1)一个系有若干名学生,但一个学生只能属于一个系; (2)一个系只能有一名系主任; (3)一名学生可选修多门课程,每门课程可由若干学生选修; (4)每名学生所选的每门课程都有一个成绩。
数据库原理
The Principle of Database
主 讲: 马 进
1
3
第三章 关系规范化基础
3.1 3.2 3.3
引言 数据依赖 关系规范化
2
2
引言
一个关系数据库模式由一个面向具体应用所涉及的 若干个关系模式所组成,这些关系模式通过外码建 立相互联系,形成一个结构化的数据整体。 如何构造适合于具体应用的数据库模式,即应该构 造几个关系,每个关系由哪些属性组成等,是关系 数据库的逻辑设计问题。
定义6 设一个关系为R(U),X和Y为属性集U的子 集,若X Y,并且为完全非平凡函数依赖,同时Y 为单属性,则称X Y为R的最小函数依赖。 由R中所有最小函数依赖构成R的最小函数依赖 集,其中不含有冗余的传递函数依赖。
14
14
数 据 依 赖(续)
定义7 设一个关系为R(U),X为属性集U的子集, 若X能够函数决定U中的每个属性,并且X的任何真子 集都不能函数决定U中的每个属性,则称X为关系R的 一个候选码。
Y,则存在X Y。
10
10
数 据 依 赖(续)
定义3 设一个关系为R(U),X和Y为属性集U上的 子集,若X Y,同时X的一个真子集X‘也能够函数 决定Y,即X’ Y,则称X部分函数决定Y,或Y部分
Y,否则若不存在一个真 函数依赖于X,记作X
p
子集X‘,使得X’也能够函数决定Y,则称X完全函数决
8
8
数 据 依 赖(续)
根源: 一个关系模式之所以会产生上述问题,是由存在于 模式中的某些数据依赖引起的。 解决途径: 规范化理论正是用来优化关系模式,通过关系分解 来消除其中某些不合适的数据依赖,以解决更新异常和 数据冗余度大的问题。
9
9
数 据 依 赖(续)
定义2 设一个关系为R(U),X和Y为属性集U上的 子集,若X Y且X Y,则称X Y为非平凡函数 依赖,否则若X Y则必有X Y,称此X Y为平 凡函数依赖。 平凡函数依赖又称为函数依赖的自反性规则。 即若X
19
19
第 二 范 式(2NF)
定义9 设一个关系为R(U) R∈2NF 。 如何消除部分函数依赖?—— 通过关系分解 方法:逐层提取出具有完全函数依赖关系的属性 (组)
20
20
第 二 范 式(2NF 续)
例:学生关系S (S#,Sname,Class,C#,Tname,Tage,Address,Grade) 最小函数依赖集: { S#Sname,S#Class,C# Tname,Tname Tage,Tname Address,(S#,C#)Grade } 主码为:(S#,C#)
属性都是不可再分的,或者说都是不被其他属 性所包含的独立属性,则称R∈1NF。 若一个关系不满足第一范式,则称为非规范 化的关系,否则称为规范化的关系。
17
17
第 一 范 式(1NF 举例)
例:借阅图书关系
借阅证号 姓名 性别 借阅图书登记 图书号1 书名1 图书号2 书名2 图书号3 书名3
Y。 定Y,或Y完全函数依赖于X,记作X
f
11
11
数 据 依 赖(续)
定义4 一个关系为R(U),X、Y和Z为属性集U上 的子集,其中X Y ,Y Z,但Y X,X Y,
则存在X Z,称此为传递函数依赖,即X传递函数 决定Z,Z传递函数依赖于X。 函数依赖的分解性规则:若X Y,且Y Z,则 存在X Z。
27
27
BC 范 式(BCNF 续)
最小函数依赖集: { 职工号仓库号, (仓库号,商品号)职工号, (仓库号,商品号)商品数量 } 候选码: (仓库号,商品号) (职工号,商品号)
28
28
BC 范 式(BCNF 续)
问题: (1)存在非主属性商品数量对候选码(职工号,商品号)的传 递函数依赖; (2)存在主属性中的仓库号对候选码(职工号,商品号)的部 分函数依赖。 模式分解: (1)消除传递依赖 W1 =(仓库号,商品号,商品数量) T =(仓库号,商品号,职工号)
29
29
BC 范 式(BCNF 续)
(2)消除部分依赖 W2=( 职工号,仓库号) W3=(职工号,商品号) 注意:BCNF的分解过程可能破坏无损连接性和函数依 赖性。 例中:函数依赖 “(仓库号,商品号)职工号”消失了。
30
30
小 结
关系规范化:关系分解,概念单一化; 数据库规范化程度并非越高越好,需要根据具体情 况进行设计; 对于一般的数据库应用,通常规范化到第三范式。
12
12
数 据 依 赖(续)
定义5 设一个关系为R(U),X、Y和Z为属性集U 上的子集,若X Y,则存在XZ YZ和XZ Y。
函数依赖的增广性规则:若满足X Y,则存在 XZ YZ。 函数依赖的合并性规则:若X Y, X Z,则 存在X YZ。
13
13
数 据 依 赖(续)
23
23
第 三 范 式(3NF)
定义10 设一个关系为R(U),它是满足第一范式 的,若R中不存在非主属性对候选码的传递函数依 赖,则称R∈3NF 。
关系中的部分函数依赖也是一种传递依赖。 一个关系若达到了第三范式,则就达到了第二范式。
24
24
第 三 范 式(3NF 续)
如何消除传递函数依赖?—— 通过关系分解 方法:将具有传递函数依赖关系的属性(组)逐层提 取出来。 2NF例中,为克服CTA中存在的问题,将CTA分解为: CT(C#,Tname) TA(Tname,Tage,Address)
21
21
第 二 范 式(2NF 续)
模式分解结果: SI(S#,Sname,Class) CTA(C#,Tname,Tage,Address) SC(S#,C#,Grade)
达到2NF的关系是不是就不存在问题?
22
22
第 二 范 式(2NF 续)
无损连接性:进行关系分解后得到的关系按照外码 自然连接能够得到原来的关系。 函数依赖性:关系分解后每个关系的最小函数依赖 集是原关系的最小函数依赖集的子集,并且所有子集 的并等于原关系的最小函数依赖集。
25
25
BC 范 式(BCNF)
定义11 若一个关系为R(U),它是满足第一范式 的,当R中不存在任何属性对候选码的传递函数依赖 时,则称R∈BCNF 。
等价判定方法:R的最小函数依赖集中的所有函数依 赖的决定因素都是候选码。
26
26
BC 范 式(BCNF 续)
例:设某库存管理关系W(仓库号,商品号,职工号,商品数量), 假定: (1)一个仓库有多名职工,一个职工只能属于一个仓库; (2)每个职工负责管理该仓库内的多种商品,每种商品只能由 一人管理; (3)一种商品可以保存在多个仓库中,一个仓库可以保存多种 商品; (4)每个仓库中每种商品的数量由商品数量属性给出。
5
5
数 据 依 赖(续)
定义1 设一个关系为R(U),X和Y为属性集U上的子集,若 对于元组中X上的每个值都有Y上的一个惟一值与之对应,则 称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依 赖于X,记作X Y,称X为决定因素。
分析关系的函数依赖,只能根据关系模式的语义进行,绝 不能根据该关系的某个实例。
7
7
数 据 依 赖(续)
则可得到: Sno Sdept,Sdept Mname,(Sno,Cname) Grade 主要问题: (1)数据冗余大 (2)更新异常(插入异常、删除异常、修改异常) 结论: Student关系模式不是一个好的模式。一个“好”的模式应该不 会发生更新异常、数据冗余应尽可能少。