数据库范式

1.第一范式[1NF]

第一范式是最基本的范式,符合数据表的原子性

简单的说,第一范式就是每一个属性都不可再分。

  • 表中的同一列的类型相同
  • 一个列名只能对应到一列
  • 并且每一列都不可分
  • 行的上下关系互补影响
2.第二范式[2NF]

2NF在1NF的基础之上,消除了非主属性对于主属性的部分函数依赖

简单的说,是表中的非主属性必须完全依赖于主属性。

完全依赖:是指不能存在仅依赖候选键一部分的属性

只有一个主属性的表如果符合第一范式,那一定是第二范式。

判断一个关系是否属于第二范式:

1.找出数据表中的所有候选键

2.找出所有主属性和非主属性

3.判断所有的非主属性对候选键的部分函数依赖

当不满足2NF时进行拆表,消除部分依赖,满足2NF

3.第三范式[3NF]

第三范式(3NF)就是指表中的所有数据元素中不但要能唯一地被主关键字所标识

而且它们之间还必须相互独立,不存在其他的函数关系

也就是说,在2NF的基础上消除传递函数依赖

所谓传递函数依赖,指的是如果存在”A到B到C”的决定关系,则C传递函数依赖于A。

符合第三范式的数据表,消除了数据冗余、更新异常、插入异常和删除异常。

BCNF:消除主属性对主键的部分与传递依赖
4.第四范式[4NF]

第四范式是 消除表中的多值依赖

以解信息冗余,达到”一事一地”也就是一对一的关系。

拆表消除多值依赖

总结:
  • 1NF保证原子性
  • 2NF去除非主属性对于主属性的部分依赖
  • 3NF去除非主属性对于主属性的传递依赖
  • BCNF:消除主属性对主键的部分与传递依赖
  • 4NF:消除表中的多值依赖
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部