zoukankan      html  css  js  c++  java
  • 数据库的三范式是什么?

    数据库三大范式

    一般来说的数据库三范式都是指的关系型数据库,范式指的就是规范的意思,三范式指的就是利用关系型数据库进行建表时候普遍需要遵循的三个规范(即1NF,2NF,3NF)。

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。

    1.第一范式(1NF):列不可再分

    1.每一列属性都是不可再分的属性值,确保每一列的原子性

    2.两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据

    2.第二范式(2NF)属性完全依赖于主键

    第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主键

    3.第三范式(3NF)属性不依赖于其它非主属性    属性直接依赖于主键

    数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。像:a-->b-->c  属性之间含有这样的关系,是不符合第三范式的。

    比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)

    这样一个表结构,就存在上述关系。 学号--> 所在院校 --> (院校地址,院校电话)

    这样的表结构,我们应该拆开来,如下。

       (学号,姓名,年龄,性别,所在院校)--(所在院校,院校地址,院校电话)

    总结:三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。

  • 相关阅读:
    ssh登录
    wireless tools的使用
    Ubuntu中的minicom
    ubuntu 下交叉编译环境的搭建
    两个队列实现一个栈
    二叉树节点的插入
    二叉树的非递归遍历
    acwing 66. 两个链表的第一个公共结点
    acwing 60. 礼物的最大价值
    acwing 55. 连续子数组的最大和
  • 原文地址:https://www.cnblogs.com/chensisi/p/14109921.html
Copyright © 2011-2022 走看看