-
数据依赖
-
数据依赖的类型
- 函数依赖(Functional Dependency,简记为FD)
- 多值依赖(Multivalued Dependency,简记为MVD)
- 其他
-
数据依赖对关系模式的影响
-
"好"的模式:
- 不会发生插入异常、删除异常、更新异常,
- 数据冗余应尽可能少
- 原因:由存在于模式中的某些数据依赖引起的
- 解决方法:通过分解关系模式来消除其中不合适的数据依赖
-
-
函数依赖
- 定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 "X函数确定Y" 或 "Y函数依赖于X",记作X→Y。
-
在关系模式R(U)中,对于U的子集X和Y,
- 如果X→Y,但Y Í X,则称X→Y是非平凡的函数依赖
- 若X→Y,但Y Í X, 则称X→Y是平凡的函数依赖
- 若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。
- 若X→Y,Y→X,则记作X←→Y。
- 若Y不函数依赖于X,则记作X→Y。
-
完全函数依赖与部分函数依赖
- 定义6.2 在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X' Y, 则称Y对X完全函数依赖,记作X→F Y 。 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X→P Y。
-
传递函数依赖
- 定义6.3 在R(U)中,如果X→Y,(Y ÍX) ,Y→X Y→Z, 则称Z对X传递函数依赖。记为:X →传递 Z
- 注: 如果Y→X, 即X←→Y,则Z直接依赖于X。
-
码
- 定义6.4 设K为R<U,F>中的属性或属性组合。若K U, 则K称为R的侯选码(Candidate Key)。若候选码多于一个,则选定其中的一个做为主码(Primary Key)。
-
主属性与非主属性
- 包含在任何一个候选码中的属性 ,称为主属性(Prime attribute)
- 不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)
-
全码
- 整个属性组是码,称为全码(All-key)
-
外部码
- 定义6.5 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码
-
-
范式
- 范式是符合某一种级别的关系模式的集合
- 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式
-
范式的种类:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- BC范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF)
- 各种范式之间存在联系:
- 某一关系模式R为第n范式,可简记为R∈nNF。
- 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化
-
1NF
-
1NF的定义
- 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
- 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库
- 但是满足第一范式的关系模式并不一定是一个好的关系模式
-
-
2NF
-
2NF的定义
- 定义6.6 若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。
-
-
3NF
-
3NF的定义
- 定义6.7 关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z Í Y), 使得X→Y,Y→Z成立, Y → X,则称R<U,F> ∈ 3NF。
- 若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。
-
-
BC范式(BCNF)
- 定义6.8 关系模式R<U,F>∈1NF,若X→Y且Y Í X时,X必含有码,则R<U,F> ∈BCNF。
- 等价于:每一个决定属性因素都包含码
-
若R∈BCNF
- 所有非主属性对每一个码都是完全函数依赖
- 所有的主属性对每一个不包含它的码,也是完全函数依赖
- 没有任何属性完全函数依赖于非码的任何一组属性
- R ∈BCNF
R ∈3NF
-
多值依赖
-
定义6.9
- 设R(U)是一个属性集U上的一个关系模式, X、 Y和Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关
-
多值依赖的另一个等价的形式化的定义:
- 在R(U)的任一关系r中,如果存在元组t,s 使得t[X]=s[X],那么就必然存在元组 w,vÎ r,(w,v可以与s,t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交换s,t元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为X→→Y。 这里,X,Y是U的子集,Z=U-X-Y。
-
平凡多值依赖和非平凡的多值依赖
- 若X→→Y,而Z=φ,则称X→→Y为平凡的多值依赖
- 否则称X→→Y为非平凡的多值依赖
-
多值依赖的性质
- (1)多值依赖具有对称性。若X→→Y,则X→→Z,其中Z=U-X-Y
- (2)多值依赖具有传递性。若X→→Y,Y→→Z, 则X→→Z –Y
- (3)函数依赖是多值依赖的特殊情况。若X→Y,则X→→Y。
- (4)若X→→Y,X→→Z,则X→→YÈ Z。
- (5)若X→→Y,X→→Z,则X→→Y∩Z。
- (6)若X→→Y,X→→Z,则X→→Y-Z,X→→Z -Y。
-
多值依赖与函数依赖的区别
- (1) 多值依赖的有效性与属性集的范围有关
-
(2)
- 若函数依赖X→Y在R(U)上成立,则对于任何Y' Ì Y均有X→Y' 成立
- 多值依赖X→→Y若在R(U)上成立,不能断言对于任何Y' Ì Y有X→→Y' 成立
-
4NF
- 定义6.10 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y Í X),X都含有码,则R∈4NF。
-
如果R ∈ 4NF, 则R ∈ BCNF
- 不允许有非平凡且非函数依赖的多值依赖
- 允许的非平凡多值依赖是函数依赖
-
5NF
- 定义 如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称R∈5NF。
-
数据库中的范式
最新推荐文章于 2025-02-10 07:00:00 发布