美文网首页
范式详解

范式详解

作者: MC_Honva | 来源:发表于2017-05-14 10:34 被阅读26次

范式一共6层,范式也叫Normal Format

一般只需要满足前三个范式,既1NF,2NF,3NF即可。因为越往下层,节省空间会越多,要求越严格,但是效率也会因此大打折扣。使用范式可以减少设计数据库的数据冗余。

第一范式,1NF

每个字段满足原子性,不可再拆分,如下所示,商品表的时间,存在进货时间和卖出时间,2者之间是可以再拆分的,既不是原子性的


遵从第一范式,应该修改成如下所示

第二范式,2NF

存在复合主键,且其他字段依赖部分主键,则不满足第二范式。
如下表,通过复合主键可以确定唯一的数据,复合主键为name和shop_name。其中shop_address依赖shop_name,而price则依赖name。则此时就不满足第二范式。


解决的方法:
添加逻辑主键,取消复合主键的使用。

第三范式,3NF

存在传递依赖,比如上表中price依赖name,而name又依赖id(价格依赖白菜这个品种,而白菜又依赖逻辑主键id)。shop_address和shop_name也一样。这就存在了传递依赖。
解决的方法:
将存在传递依赖的,拆分成几个表通过,逻辑主键连接。如下表所示。

逆规范化

有时候在设计表的时候,如果一张表中有几个字段是需要从另外一个表中去获取信息,理论上讲,的确可以获取到想要的数据,但是效率会降低。所在开发中会刻意在某些表中不去保存另外表的主键(逻辑主键),而是直接保存想要的数据信息。这样一来,在查询数据的时候,一张表可以直接提供数据,而不需要多表查询。
逆规范化就是磁盘存储空间和效率的对抗。

相关文章

  • 范式详解

    范式一共6层,范式也叫Normal Format 一般只需要满足前三个范式,既1NF,2NF,3NF即可。因为越往...

  • 数据库设计原则

    数据库设计原则包括内容: 原始数据和实体之间的关系 主键和外键 基本标的性质 范式标准 第三范式详解 正确处理多对...

  • 详解第一范式、第二范式、第三范式、BCNF范式

    什么是”范式(NF)” 按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系...

  • MySQL三大范式和反范式

    MySQL三大范式和反范式 第一范式 第二范式 第三范式 反范式

  • 范式

    数据库(第一范式,第二范式,第三范式)

  • Mysql相关面试题

    1.何为范式? 第一范式(1NF):第一范式就是无重复属性的列。 第二范式(2NF):第二范式是在第一范式的基础上...

  • MySQL范式

    范式介绍 目前关系型数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(B...

  • 数据库范式

    关系数据库六种范式: 第一范式(1NF)、 第二范式(2NF)、 第三范式(3NF)、 巴斯-科德范式(BCNF)...

  • 读《学习之道》

    “输入—练习—内化—输出” “理解范式—应用范式—识别范式—输出范式” 不管你想学什么,你都可以在书里找到方法。 ...

  • 数据库范式原则,第一,第二

    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、...

网友评论

      本文标题:范式详解

      本文链接:https://www.haomeiwen.com/subject/wbpqnttx.html