数据依赖
一个关系内部属性与属性之间的一种约束关系。其中最重要的是函数依赖和多值依赖。
函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作
X
→
Y
X \rightarrow Y
X→Y 。
码
设K为R<U,F>中的属性或属性组合。若 K → U K \rightarrow U K→U,则K称为R的候选码。如果U部分函数依赖于K,即 K → P U K \overset P \rightarrow U K→PU,则K称为超码 。候选码是最小的超码,即K的任意真子集都不是候选码。
若关系模式R有多个候选码,则选定其中的一个做为主码。包含在任何一个候选码中的属性 ,称为主属性。不包含在任何码中的属性称为非主属性或非码属性。整个属性组是码,称为全码。
范式
关系数据库中的关系是要满足一定条件的,满足不同程度要求的为不同范式。
满足最低要求的就叫第一范式,简称1NF。一个低一级范式的关系模式通过模式分解,可以转化为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
2NF
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF。
3NF
设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z( Z ⊉ Y Z \nsupseteq Y Z⊉Y), 使得 X → Y X \rightarrow Y X→Y, Y → Z Y \rightarrow Z Y→Z成立, Y ↛ Z Y \not\rightarrow Z Y→Z不成立,则称R<U,F> ∈ 3NF。
BCNF
设关系模式R<U,F>∈1NF,若
X
→
Y
X \rightarrow Y
X→Y且
Y
⊈
X
Y \nsubseteq X
Y⊈XX必含有码,则R<U,F>∈BCNF。
也就是说,关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
由BCNF的定义可以得到以下结论,一个满足BCNF的关系模式有:
所有非主属性对每一个码都是完全函数依赖;
所有主属性对每一个不包含它的码也是完全函数依赖;
没有任何属性完全函数依赖于非码的任何一组属性
多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X → → Y X \rightarrow \rightarrow Y X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
4NF
关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖 X → → Y X \rightarrow \rightarrow Y X→→Y( Y ⊈ X Y \nsubseteq X Y⊈X),X都含有码,则R<U,F>∈4NF。
4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。
规范化小结
课后习题:
2.
(1)关系模式:
学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:Class(Cno,Pname,Dept,Cnum,Cyear)
系:Department(Dept,Dno,Office,Dnum)
学会:Corporation(Mname,Myear,Maddr,Mnum)
(2)
学生关系模式中存在传递函数依赖:
Sno→Class,Class→Dept,Dept→Rno,Class→Dept,Dept→Class,Dept→Rno,Class→Sno
班级关系模式中存在传递函数依赖:
Cno→Pname,Pname→Cno,Pname→Dept
系和学会系模式中不存在传递函数依赖。
(3)
关系模式 候选码 外部码 全码
Student Sno Dept,Class 无
Class Cno Dept 无
Department Dept,Dno 无 无
Corporation Mname 无 无
6
(1).
当属性组BC也是关系模式R的候选码时,R是BCNF
(2).
ACE,BCE,CDE
(3)。
不存在传递函数依赖,R是3NF
7
正确:1、2、3、5、6、7、
错误:4、
(1)正确
(2)正确
(3)正确
(4)错误
当且仅当函数依赖知
A
→
→
B
A\rightarrow \rightarrow B
A→→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接
(5)正确
(6)正确
(7)正确
(8)错误
8
(1)
假设R∈BCNF,所以
X
→
Y
X \rightarrow Y
X→Y且
Y
⊈
X
Y \nsubseteq X
Y⊈X时X必含有码
R中使得
X
→
Y
X \rightarrow Y
X→Y,
Y
→
Z
Y \rightarrow Z
Y→Z成立,
Y
↛
X
Y \nrightarrow X
Y↛X不成立,所以R∈3NF。
(2)
若R∈3NF,则每一个非主属性既不传递依赖于码,也不部分依赖于码,则必有R∈2NF.