规范数据库设计

规范数据库设计

  • 为什么需要设计

  • 当数据库比较复杂的时候,我们需要设计了

    • 糟糕的数据库设计:

      • 数据冗余,浪费空间
      • 数据库插入和删除都会很麻烦、异常【屏蔽使用物理外键】
      • 程序的性能差

      良好的数据库设计:

      • 节省内存空间
      • 保证数据库的完整性
      • 方便我们开发系统

三大范式

  • 为什么需要数据规范化

    • 信息重复
    • 更新异常
    • 插入异常
      • 无法正常显示信息
    • 删除异常
      • 丢失有效的信息

三大范式

第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项

原子性:保存每一列不可再分

第二范式(2NF)确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)

前提:满足第一范式

每张表只描述一件事情

第三范式(3NF)确保数据表中的每一列数据都和主键直接相关,而不能间接相关

前提:满足第一范式和第二范式

第三范式需要确保数据表中的每一列数据都和主键直接相关联,而不能间接相关联

规范性和性能问题

关联查询的表不得超过三张表

  • 考虑商业化的需求和目标,(成本,用户体验!)数据库的性能更加重要
  • 在规范性能的问题的时候,需要适当的考虑一下规范性!
  • 故意给某些表怎加一些冗余的字段(从多表查询中变为单表查询)
  • 故意增加一些计算列(从大数据量降低为小数据量的查询:索引)

规范数据库设计

上一篇:java mysql超市管理系统源码+论文+html和jsp多版本


下一篇:MSSQL·查询数据库中所有索引的相关信息