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

    合理的数据库:

    1.结构合理

    2.冗余较小

    3.尽量避免避免插入、删除、修改异常

    范式(NF:Normal Form)

    要设计一个结构合理的数据库,必须满足一定的范式

    第一范式,第二范式,第三范式 (依次嵌套包含  范式越高  设计质量越高)

    第一范式:数据表中每一列都是不可分割的基本数据项(即同一列不能有多个值  原子性)

    如:用户表(用户名 家庭地址)

      用户表(用户名 省 城市  详细地址)   实际业务需求:如按省 或 市查询

    应用:第一范式的合理遵循需要根据实际业务需求来定

    第二范式:数据表中的每一列都和主键(联合主键)相关,而不能只与主键的某一部分相关(解决多对多

         (即数据表中只能存一种数据,不可以把多种数据存在同一张数据表中)

                        

           (学生--课程  多对多)

           学号,课程编号作为联合主键, 课程名称只依赖于课程编号,但是与学号没有关系。

           冗余较多 如课程名称  修改不方便 如 修改张三的名字  所以上表不合理!

           解决方案如下:

           

     

    第三范式数据表中的数据都和主键直接相关,而不能间接相关(解决一对多

          

     范式的优缺点

    数据库表之间的关系: 一对一:学生和学生证

             一对多:学生和班级

             多对多:学生和课程

    如何表示数据库表之间关系:

            一对一:外键+唯一

            一对多:外键

            多对多:引入中间表,1个多对多 --> 2个一对多(参考第二范式)

  • 相关阅读:
    FeignClient服务之间调用,数据传输超过10M
    docker安装streamset
    Nginx 相关命令
    Maven构建命令相关
    ubuntu18.04的安装与学习记录
    Java8获取世界标准时
    我所遇到的正则表达式使用场景
    linux查看磁盘命令du df
    db2获取第一条数据
    Linux命令 dos2unix 的实际应用场景
  • 原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6905103.html
Copyright © 2011-2022 走看看