看啥推荐读物
专栏名称: 可可347
目录
相关文章推荐
今天看啥  ›  专栏  ›  可可347

【数据库】 第一范式,第二范式,第三范式

可可347  · CSDN  ·  · 2019-11-15 20:15

第一范式,第二范式,第三范式


Level 1

定义

范式(Normal Form,NF),数据库满足的约束条件,并按照等级可以分为第一范式(1NF),第二范式(2NF)和第三范式(NF)(约束程度递增)。

范式化优势:
  1. 范式化的更新操作通常比反范式化要快。
  2. 当数据较好地范式化时,就只有很少或者没有重复数据,所以只需要修改更少的数据。
  3. 范式化的表通常更小,可以更好地存放在内存中,所以执行操作会更快。
  4. 很少有多余的数据意味着检索列表数据时更少需要DISTINCT或者GROUP BY语句。
反范式化优势:
  1. 可以利用反范式避免表关联,减小数据库开销。

Level 2

第一范式:

简要来说,第一范式规定所有域都应该是原子性的。即, 数据库表中的每一列都是不可分割的 ;不应该是集合,数组等非原子数据项。

第二范式:

在满足第一范式的基础上,第二范式规定非码属性必须完全依赖于主码。即,表中的字段必须完全依赖( 而非部分依赖 )与主码。

第三范式:

在满足第二范式的基础上,第三范式规定,任何非主属性不依赖于其它非主属性。即,表中字段不能存在 传递依赖 1


Level 3

错误示例

绿色背底:该表主键。
黄色背底:表中的正常字段。
肉色背底:表中不符合范式的字段。

第一范式

如图,张三拥有两个电话号码,却记录在了同一个字段中,违反了第一范式中字段 不可分割 的规则。
第一范式 错误示例

第二范式

如图,主键(复合)为姓名+课程,出勤率和分数由主键唯一确定(完全依赖);但性别字段却只依赖于姓名,与课程并无依赖关系( 部分依赖 )。违反了第二范式中,字段不能部分依赖的规定。

第二范式 错误示例

第三范式

如图,主键为姓名;学校,性别,学院为正常字段,依赖于主键;但学校所在地却依赖于学校,由学校唯一确定( 传递依赖 )。违反了第三范式中,表中属性不能依赖于非主属性的规定。
在这里插入图片描述


  1. 百度百科 数据库范式https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%8C%83%E5%BC%8F/7309898 ↩︎




原文地址:访问原文地址
快照地址: 访问文章快照