范式

  • 范式可以减少数据冗余,方便修改
  • 部分依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
    • 通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。
  • 完全依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
    • 通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB.
  • 传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
    • 通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么成C传递依赖于A。

范式的种类

  • 1NF范式,即第一范式:关系模式R的数据为不可再分项
  • 2NF范式,第二范式:每一个非主属性都完全依赖于R的候选码,称R为第二范式
  • 3NF范式,在二范式的基础上,满足不含非主属性对候选码的传递依赖、

范式的优缺点

  • 优点:更新快,数据冗余小,检索数据时需要更少的group by或者distinct操作
  • 缺点:大多需要联表查询,增加查询代价

反范式的优缺点

  • 优点:避免关联,查询速度会更快
  • 缺点:数据冗余,修改更新不便

如何选用反范式或者范式

  • 在设计中反范式和范式可以结合使用,根据实际需求进行设计,例如多表联合排序,如果使用了反范式,就会更加高效
上一篇:随机事件与概率


下一篇:AB实验管理平台