【第六章关系数据理论】数据库梳理&汇总
这一章会考关于函数依赖的证明以及Armstrong
关系模式存在的问题
- 数据冗余:不必要地重复存储某些属性的值;
- 更新异常:由于数据冗余,更新数据要花费很大代价维护数据库完整性,否则会面临数据不一致的风险
- 插入异常:应该插入的数据未被插入
- 删除异常:不该删除的数据被删除
数据依赖
通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是语义的体现。
函数依赖:
设R(U)是属性集U上的关系模式,X , Y 包含于U, r是R(U) 上的任意一个关系,如果成立对任何t , s 属于 r,若t[X] = s[X],则t[Y] = s[Y]
那么称“X函数决定Y”,或“Y函数依赖于X”,记作X->Y
称X为决定因素
如Sno->SN, (Sno,Cno)->G
- 平凡&非平凡的函数依赖
对任一关系模式,平凡函数依赖都是必然成立的
- 若不特别声明,总是讨论非平凡的函数依赖
- 若X->Y,则X称为这个函数依赖的决定属性组 /决定因素
- 若X->Y&Y->X,记作X<–>Y
- Y函数不依赖X
-
部分函数依赖
-
传递函数依赖
范式
范式:是对关系的不同数据依赖程度的要求
规范化:通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化
- 1NF:关系中每一分量不可再分。即不能以集合、序列等作为属性值
分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要进一步分割
- 2NF:
- 满足1NF
- 每个非主属性完全依赖于码(消除非主属性对码的部分依赖)
- 3NF
- 满足1NF
-
(消除非主属性对码的部分依赖消除非主属性对码的传递依赖)
- BCNF
- 比3范式更近一步,又称扩充的第三范式
- XY是非平凡函数时,X必有码
(4NF在多值函数中讲解)
多值依赖MVD
设R(U)是一个属性集合U上的一个关系模式,X, Y, 和Z是U的子集,并且Z=U-X-Y,多值依赖X->->Y 成立当且仅当对R的任一个关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。
若X->->Y,而Z=空集,则称X->->Y为平凡的多值依赖。否则,称X->->Y为非平凡的多值依赖。
形式定义:
多值依赖的性质:
- 4NF:就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。(允许非平凡的多值依赖实际是函数依赖–X->->Y则X含有候选码)
使用投影分解 的方法消去非平凡且非函数依赖的多值依赖。
4NF必定属于BCNF
数据依赖的公理系统–Armstrong公理系统
-
函数依赖的逻辑蕴涵:设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推导出X→Y(对R的任意一个r都成立),则称F逻辑蕴涵X→Y,或X→Y是F的逻辑蕴涵。
-
F+闭包:所有被F逻辑蕴含的函数依赖的集合称为F的闭包(Closure),记为F+。
F+的计算相当麻烦;
F不大,但F+可能很大(NP难度问题) -
公理的作用:
1.从已知的F出发,推出F+中的所有函数依赖。
2.已知F和X,Y,判断X→Y是否在F+中。