zoukankan      html  css  js  c++  java
  • 数据库三大范式

    什么是范式

    设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

    来源:百度百科

    如何理解范式

    在网上找了很多关于范式的解释以及详解,说都都太专业了,都是用专有名词来解释什么是范式,范式的等级是如何划分

    而且要先去了解关于范式的专有名词,什么主属性,非主属性,主键,候选码,依赖等等,原本范式就有点不好理解

    再加上这些专有名词来来回回的使用,很容易把人绕进去,而且举的例子相对于初学者来说还是过于复杂

    下面将会用最通俗易懂的方式,来帮助你理解范式

    第一范式

    列不能再分

    红色表示主键

    这张表就不满足第一范式,因为地址可以再分

     这是符合第一范式的

    第二范式

    • 首先要符合第一范式
    • 表必须有主键
    • 非主键列不能只依赖于主键的一部分 

    这是不符合第二范式的(红色代表主键)---商品名称依赖了主键的一部分商品ID

    订单表

     这是符合第二范式的

    订单表

    商品表

    第三范式

    • 首先满足第二范式
    • 非主键列必须直接依赖于主键,不能存在传递依赖

    这是不符合第一范式的(红色代表主键)——学校描述没有直接依赖于主键,而是直接依赖于学校,学校直接依赖于主键,所以存在传递依赖

    学生表

    这是符合第一范式的

    学生表

    学校表

    通过以上案例,可以很好的帮助你去理解三大范式,有一个好的入门,再想去具体的往深理解,将会事半功倍

    原文链接

  • 相关阅读:
    工作笔记(一)
    如何修改mindmanager默认字体为微软雅黑
    彻底解决zend studio 下 assignment in condition警告
    PHP5.2至5.6的新增功能详解
    ThinkPHP中的模型命名
    12大网站建设技巧 让访客信任你
    CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
    几种不错的编程字体
    大型网站的灵魂——性能
    MySQL: InnoDB 还是 MyISAM?
  • 原文地址:https://www.cnblogs.com/masterhxh/p/12901154.html
Copyright © 2011-2022 走看看