关系数据库理论~范式

一个规范的关系模式:

 

  1. 尽量减小冗余(重复数据)
  2. 没有插入异常(插入不了,没知足复合主键的要求)
  3. 删除异常(把相同的内容都删除了)
  4. 修改异常(修改不彻底有剩余)

数据依赖包括函数依赖多值依赖 

关系模式中的各关系属性之间相互依赖,相互制约的联系称为数据依赖。 闭包

★函数依赖 FD (Functional Dependency)

是关系模式中属性之间的一种逻辑依赖关系。函数

(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数据

  1. 平凡函数依赖:Y是X的子集
  2. 非平凡函数依赖:Y不是X的子集,不特殊声明都是非平凡的函数依赖,和真正的完整性约束条件相关

函数依赖于属性之间的联系类型有关:规范化

  1. 1:1  X↔Y
  2. M:1 X→ Y
  3. N:M 无依赖

 

Armstrong公理

  1. 自反律  A→A
  2. 增广律  X→Y 则 XZ→YZ
  3. 传递律  X→Y,Y→Z,则X→Z

Armstrong公理推论

 

 

  1. 合并律   X→Y,X→Z,则X→YZ
  2. 伪传递律  X→Y,WY→Z,则XW→Z
  3. 分解律  X→YZ,则X→Y,X→Z
  4. 复合律  X→Y,W→Z 则XW→YZ

属性集的闭包

定义:由一个属性直接或者间接的推导出全部属性的集合

属性集U为XYZW,函数依赖集为{X→Y,Y→Z,W→Y}

X+=XYZ   ,    (XW)+=XYZW  ,   (YW)+=YZW

候选码

定义:能决定全部属性

对于给定的关系模式R(A1,A2,A3,.....An)和函数依赖集F

  1. L类:仅出如今F中的函数依赖左边的左部属性  必
  2. R类:仅出如今F的函数依赖的右边右部的属性
  3. N类:在F的函数依赖左右俩边都没出现的属性  必
  4. LR类:在左右俩边都出现的属性  可能

设有关系模式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的规范化,分解既要具备无损链接性,又要具备函数依赖保护性。