基础知识
关系模式
关系模式由五部分组成:R(U, D, DOM, F)
R是符号化的元组语义
U为一组属性
D为属性组U中的属性所来自的域
DOM为属性到域的映射
F为属性组U上的一组数据依赖
为什么有规范化理论
规范化的原因,低级别的范式可能有一下不便
(1)数据冗余
(2)更新异常
(3)插入异常
(4)删除异常
1 函数依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若
对于R(U)的任意一个可能的关系r,r 中不可能存在:
两个元组在X上的属性值相等,而在Y上的属性值不等,
则
称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
码
设K为R<U,F>中的属性或属性组合。若K → U,则K称为R的一个候选码(Candidate Key)。
如果U部分函数依赖于K,即K → U,则K称为超码 。
若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。
主属性与非主属性
包含在任何一个候选码中的属性 ,称为主属性
不包含在任何码中的属性称为非主属性
整个属性组是码,称为全码(All-key)
2多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
例子:你所大学学习的所有课程只和你选的专业有关,和教授你的老师没有关系。因为一门课可能有多个老师教。即课程多值依赖专业,即 专 业 → → 课 程 {专业 } \rightarrow\rightarrow 课程 专业→→课程
范式和规范化
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
1NF
二维表每个分量必须是不可分开的数据项。
2NF
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF
简记为不存在不完全函数依赖关系
3NF
设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立
简记为不存在传递关系
BCNF
设关系模式R<U,F>∈1NF,若X →Y且 Y ⊈ X Y \nsubseteq X Y⊈X时X必含有码,则R<U,F>∈BCNF。
换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
4NF
关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
在3NF上更近了一步
候选码的求解
闭包(记作X+ )就是由一个属性直接或间接推导出的所有属性的集合。
例如:
f={a->b,b->c,a->d,e->f};
由a可直接得到b和d,间接得到c,
则a的闭包就是{a,b,c,d}
还有几个重要的定理,重点是要会用就行了。
总结
这一章节的内容是偏理论和抽象的,但只要找到具体的例子就会相对的好理解一些,还是要多背和多刷题。
习题