关系模式中的各关系属性之间相互依赖,相互制约的联系称为数据依赖。 闭包
是关系模式中属性之间的一种逻辑依赖关系。函数
(sn,age,dept)函数依赖于snospa
U={sno,sn,age,dept,mn,cno,score}blog
F={sno→sn,sno→age,sno→dept,(sno,cno)→score}io
设关系模式R(U,F) U是属性全集,F是由U上函数依赖所构成的集合。X,Y是U上的子集。class
对于R(U)的任意一个可能的关系r,对于X的每一各值,Y都有惟一的具体值与之对应,称X决定Y 记做:X→Y方法
当Y不依赖于X时 记做:X\→ Yim
当X→Y且Y→X时,记做X↔Y数据
函数依赖于属性之间的联系类型有关:规范化
定义:由一个属性直接或者间接的推导出全部属性的集合
属性集U为XYZW,函数依赖集为{X→Y,Y→Z,W→Y}
X+=XYZ , (XW)+=XYZW , (YW)+=YZW
定义:能决定全部属性
对于给定的关系模式R(A1,A2,A3,.....An)和函数依赖集F
设有关系模式R(A,B,C,D,E,P) 与它的函数依赖集F={A→D,E→D,D→B,BC→D,DC→A}求R的全部候选码
CEP是R的惟一候选码
主属性:全部候选码
非主属性:不存在于候选码
1NF
↓ 消除非主属性对主码的部分函数依赖
2NF
↓ 消除非主属性对主码的传递函数依赖
3NF (没有非主属性)
↓ 消除主属性对主码的部分和传递函数依赖
BCNF
↓ 消除非平凡且非函数依赖的多值依赖
4NF
任一非主属性的候选码都不存在传递依赖
通常3NF已是一个好的关系模式了
遵循概念单一化“一事一地”的原则,即一个关系描述一个实体或者实体间的联系。
规范化的投影分解方法不是惟一的,对于3NF的规范化,分解既要具备无损链接性,又要具备函数依赖保护性。