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

    第一范式(1NF)

      1.概述:

        第一范式就是确保每列的原子性,也就是说如果每列都是不可再分的最小数据单元,则满足第一范式。

      2.举例:

           说明:图中表一不满足1NF,因为Address字段可拆分为Country和City两个字段,拆分后,表二符合1NF。

    第二范式(2NF)

      1.概述:首先满足1NF,并且表中非主键列不存在对主键的部分依赖,它要求每个表只描述一件事情。

      2.举例:

              说明:图中左表一的(订单编号,产品编号)为主键,而非主键列(价格,订购日期)是依赖主键的,但是(产品编号,价格)中的价格字段是依赖产品编号的,也就是说存在非主键列的依赖部分主键现象,因此不满足2NF。经过拆分,得到Orders表和Products表,此时不存在非主键列的主键部分依赖,因此符合2NF。在设计表的过程中,如果发现不满足2NF的话,可以对表中的字段进行分离,单独建表。

    第三范式(3NF)

      1.概述:满足2NF,且表中的列不存在对非主键列的传递依赖。

      2.举例:

      

              说明:图中左表的非主键列顾客编号依赖主键订单编号,但顾客姓名又依赖非主键列顾客编号,因此存在传递依赖,不满足3NF。经过拆分,得到的右表时符合3NF的。

     

            

    你还有很多未完成的梦,你有什么理由停下脚步
  • 相关阅读:
    栈大小和内存分部问题
    inline和宏之间的区别
    两个栈实现双端队列
    Hibernate学习笔记-Hibernate关系映射
    Hibernate学习笔记-Hibernate HQL查询
    Hibernate学习笔记--第一个Hibernate框架程序
    Hibernate学习笔记--Hibernate框架错误集合及解决
    Java学习笔记--对象克隆
    Scala学习笔记--文件IO
    Java学习笔记--Socket和ServerSocket
  • 原文地址:https://www.cnblogs.com/quanziheng/p/13213035.html
Copyright © 2011-2022 走看看