MySQL数据库------数据库设计规范(三大范式)

规范数据库设计

为什么需要设计数据库

  • 当数据库比较复杂的时候,就需要设计数据库
糟糕的数据库设计 良好的数据库设计
数据冗余,浪费空间 节省内存空间
数据库插入和删除都会麻烦、异常 保证数据库的完整性
程序的性能差 便利开发
  • 数据库设计的步骤

    • 分析需求:分析业务的需要处理的数据库的需求
    • 概要设计:设计关系图E-R图
    --1.收集信息,分析需求
    --2.标识实体(把需求落到每个字段上)
    --3.标识实体之间的关系
    

三大范式

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

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

    • 原子性:每一列属性都是不可再分的属性值
    • 两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据
  • 第二范式(2NF):每张表只描述一件事,依赖于主键

  • 第三范式(3NF):确保每一列数据都和主键直接相关,而不是间接相关

  • 规范性和性能的问题

    • 尽可能关联查询的表不超过三张表
    • 设计数据库首先需要考虑商业化的需求和目标,即数据库的性能更加重要
    • 在上一条的基础上,考虑数据库的规范性
    • 会故意给某些表加一些冗余的字段,使查询时让多表查询变为单表查询
    • 会故意增加一些计算列,使从大数据量降低为小数据量的查询:索引

猜你喜欢

转载自blog.csdn.net/insist_to_learn/article/details/112034257