文档介绍:课间休息
注意时间
第五章 关系数据理论
问题的提出
一 、关系模式
一个关系模式应当是一个五元组:
R(U, D, dom, F)
其中:
(1) 关系名R;
(2) 一组属性U;
(3) 属性组U中属性所来自的域D;
(4) 属性到域的映射dom;
(5) 属性组U上的一组数据依赖 F
由于(3),(4)队模式设计关系不大,因此本章把关系模式看作是一个三元组:
R <U, F>
二、 数据依赖的概念
比如描述一个学生的关系,可以有学号(SNO),姓名(SNAME),.系名(SDEPT)等几个属性.
称SNO函数决定SNAME和SDEPT,或者说SNAME、SDEPT函数依赖于SNO,记为:SNO→SNAME,SNO→SDEPT。
要建立一个数据库来描述学生的一些情况,面临的对象有:
学生,系,系负责人,课程和成绩。于是得到一组属性。
U={SNO, SDEPT, MN,CNAME, G}
由现实世界的已知事实,得到属性组U上的一组函数依赖:
F={SNO →SDEPT, STEPT → NM, (SNO,CNAME) → G}
描述学校的数据库模式: S<U, F>, 它是一个单一的关系模式,这个模式有三个“毛病”.
把上述单一的关系模式进行改造,分成三个关系模式:
S(SNO, SDEPT,SNO → SDEPT);
SG(SNO,CNAME,G,(SNO,CNAME) → G);
DEPT(SDEPT,MN,SDEPT → MN);
规 范 化
函数依赖
设R(U)是属性集U上的关系模式. X,Y是U的子集. 若对于R(U)的任意一个可能的关系r, r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X → Y.
在R(U)中,如果 X → Y,且对于X的任何一个真子集X, 都有X’ →Y,则称Y对X完全函数依赖,记作:
X → Y.
F
\
若 X → Y,但Y不完全函数依赖X,则称Y对X部分函数依赖,记作:
X → Y.
P
∪
在R(U)中,如果 X→Y,(Y X),Y→ X,Y→Z,则称Z对X传递函数依赖.
_
\
码
设K为R(U, F)中的属性或属性组合, 若K→U,则K为R的候选码(Candidate key)。
关系模式R中的属性或属性组X并非R的码, 但X是另一个关系模式的码,则称X是R的外部码(Foreign key)。也称外码。
范式
1NF
2NF
3NF
BCNF
4NF
5NF
各种范式之间的关系
2NF
若R∈1NF, 且每一个非主属性完全函数函数依赖于码, 则R∈2NF。
下面举一个不是2NF的例子:
关系模式S-L-C(SNO, SDEPT, SLOC, CNO, G)
这里码为(SNO, CNO). 函数依赖有:
(SNO, CNO) →G
SNO →SDEPT, (SNO, CNO) →SDEPT
SNO →SLOC, (SNO, CNO) →SLOC
F
P
P
一个关系模式R不属于2NF,就会产生以下三个问题.
解决的办法是用投影分解把关系模式S-L-C分解为两个关系模式.
SC(SNO, CNO,G)
S-L(SNO,SDEPT,CLOC)
∪
3NF
关系模式R <U, F>中若不存在这样的码X,属性组Y及非主属性Z(Z Y),使得X →Y,(Y →X) Y →Z成立,则称
R <U, F> ∈3NF
BCNF
BCNF 比 3NF 更进一步,其消除主属性对码的部分与传递依赖。
1. :