关系规范化基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 关系规范化基础
一、内容提要
关系数据库的设计中,一个非常重要的被视为理论问题的内容是如何构造合理的关系,使之能准确地反应现实世界,有利于应用和具体的操作。这一问题就是关系规范化要研究的问题。
通过本章的学习,应重点掌握:
(1)函数依赖及Armstrong 公理系统
(2)为什么要对模式进行分解,如何分解
(3)如何判断关系模式达到几范式
(4)如何求属性的闭包及如何求最小函数依赖集
(5)判断分解后的关系模式是不是无损连接或保持函数依赖
(6)判断分解后的关系模式既无损连接又保持函数依赖
(一)函数依赖及相关概念
定义 设R(U)是属性集U 上的关系模式,X ,Y 是U 的子集。若对R(U)的任何一个可能的关系r ,r 中不可能存在两个元组在X 上的属性值相等,而在Y 上的属性值不等,则称X 函数决定Y 或Y 函数依赖于X ,记作:X →Y 。
(1)完全函数依赖:在R(U)中,如果X →Y ,并且对于X 的任何一个真子集
X `,都有X `不能决定Y ,则称Y 对X 完全函数依赖,记作: X →Y
例 给定一个学生选课关系SC(Sno ,Cno ,G),我们可以得到 F={(Sno ,Cno) →G},对(Sno ,Cno)中的任何一个真子集Sno 或Cno 都不能决定G ,所
以,G 完全依赖于Sno ,Cno 。
(2)平凡的函数依赖:如果X →Y ,但Y 不完全函数依赖于X ,则称Y 对X
部分函数依赖,记作:X →Y
(3)传递依赖:在R(U)中,如果X →Y ,(Y ⊄X),Y →X ,Y →Z
则称Z 对X 传递依赖。
(4)码:设K 为R(U ,F)中的属性的组合,若K →U ,则K 为R 的候选码,
若有多个候选码,选一个作为主码。
注: 候选码也称候选关键字。 f
p
f
(5) 主属性和非主属性:包含在任何一个候选码中的属性叫做主属性,否则叫做
非主属性。
(6) 外码:若R(U)中的属性或属性组X非R的码,但是另一关系的码,则称X
为外码。
范式
在关系数据库中的一个非常重要的问题就是如何评价分解后的各个关系模式的好坏。通常可以通过判断分解后的模式达到几范式来评价模式的好坏。范式有:1NF、2NF、3NF、BCNF、4NF和5NF。这几种范式之间的关系如下:1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF
通过模式分解,将低一级范式的关系模式分解成了若干个高一级范式的关系模式的集合,这种过程叫做规范化。下面将给出各个范式的定义。
1.1NF(第一范式)
定义若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。
例供应者和它所提供的零件信息,关系模式如下:
FIRST (Sno,Sname,Status,City,Pno,Qty)并且有F={Sno→Sname,Sno→Status,Status→City,(Sno,Pno) →Qty}。
具体的关系如图5—l所示。
从图5—1中可以看出,每一个分量都是不可再分的数据项,所以是1NF。
但是,1NF带来四个问题:
(1)冗余度大:例如每个供应者的Sno,Sname,Status,City要与零件的种类一样多;
(2)引起修改操作的不一致性:例如供应者S1从“天津”搬到“上海”,若稍不注意,就会使一些数据被修改,另一些数据没有被修改,导致数据修改的不一致性;
(3)插入异常:若某个供应者的其它信息未提供时,如“零件号”,则不能进行插入操作;
(4)更新异常:若供应商S4的P2零件销售完了,删除后,在基本关系FIRST 找不到S4,可S4又是客观存在的。
正因为上述原因引入了2NF。
2.2NF(第二范式)
定义若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。
即当1NF消除了非主属性对码的部分函数依赖,则成为2NF。
例FIRST关系中的码是Sno、Pno,而Sno→Status,因此非主属性Status 部分函数依赖于码,故非2NF的。
若此时,将FIRST关系分解为:
FIRSTl(Sno,Sname,Status,City)∈2NF
FIRST2(Sno,Pno,Qty) ∈2NF
因为FIRSTl和FIRST2中的码分别为Sno和Sno,Pno每一个非主属性完全依赖于码。
3.3NF(第三范式)
定义若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性Z(Z⊆Y)使得X→Y,(Y→X)Y→Z成立,则关系模式R∈3NF。
即当2NF消除了非主属性对码的传递函数依赖,则成为3NF。
例FIRSTl∉3NF,因为在分解后的关系模式FIRSTl中有:
Sno→Status,Status→City,存在着非主属性City传递依赖于码Sno。
4.BCNF(巴克斯范式);
⊆
定义若关系模式R∈1NF,若X→Y且Y X时,X必含有码,则关系模式
R∈BCNF。
即当3NF消除了主属性对码的部分和传递函数依赖,则成为BCNF。
结论一个满足BCNF的关系模式,应有如下性质:
(1)所有非主属性对每一个码都是完全函数依赖;
(2)所有非主属性对每一个不包含它的码,也是完全函数依赖;
(3)没有任何属性完全函数依赖于非码的任何一组属性。
(三)多值依赖
1.多值依赖
定义若关系模式R(U)中,X、Y、Z是U的子集,并且Z=U—X—Y。当且仅当对R(U)的任何一个关系r,给定一对(x,z) 值,有一组Y的值,这组值仅仅决定于x值而与z值无关,则称“Y 多值依赖于X”或“X多值决定Y”成立。记为:X→→Y。
2.多值依赖的性质
多值依赖具有如下六条性质:
(1)多值依赖具有对称性。即若X→→Y,则X→→Z,其中Z=U—X—Y
(2)多值依赖的传递性。即若X→→Y,Y→→Z,则X→→Z—Y
(3)函数依赖可以看成是多值依赖的特殊情况
(4)若X→→Y,X→→Z,则X→→YZ
(5)若X→→Y,X→→Z,贝,X→→Y⋂Z;
(6)若X→→Y,X→→Z,则X→→Z—Y。
3.4NF(第四范式)
定义(4NF)若关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y ⊆
且Y X时,X必含有码,则关系模式R(U,F)∈4NF。
(四)函数依赖的公理系统
Armstrong公理系统:设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有如下推理规则:
(1)A1自反律:若Y⊆X⊆U,则X→Y为F所蕴涵;
(2)A2增广律:若X→Y为F所蕴涵,且Z⊆U,则XZ→YZ为F所蕴涵;
(3)A3传递律:若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵。