zoukankan      html  css  js  c++  java
  • 数据库的结构优化

    数据库结构优化的目的

    • 减少数据冗余
    • 避免数据维护中出现更新、插入和删除异常
      • 插入异常:如果表中的某个实体随着另一个实体而存在
      • 更新异常:如果更新表中的某个实体的单独属性时,需要对多行进行更新
      • 删除异常:如果删除表中的某一实体则会导致其他实体的消失
    • 节约数据存储空间
    • 提供查询效率

    数据库结构设计的步骤

    • 需求分析:全面了解产品设计的存储需求,数据处理需求,数据的安全性和完整性
    • 逻辑设计:设计数据的逻辑存储结构,数据实体之间的逻辑关系,解决数据冗余和数据维护异常
    • 物理设计:根据所使用的数据库特点进行表结构设计
    • 维护优化:根据实际情况对索引、存储结构等进行优化

    数据库设计三范式

    • 第一范式:
      • 数据库表中的所有字段都只具有单一属性
      • 单一属性的列是由基本的数据类型所构成的
      • 设计出来的表都是简单的二维表
    • 第二范式:
      要求一个表中只具有一个业务主键,也就是说不能存在非主键列只对部分主键的依赖关系
    • 第三范式:
      指每一个非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上消除了非主属性对主键的传递依赖

    范式化设计

    优点:
      * 可以尽量的减少数据冗余
      * 更新操作比反范式化更快
      * 表通常比反范式化更小
    缺点:
      * 对于查询需要对多个表进行关联
      * 更难进行索引优化
    

    反范式化设计

    优点:
      * 可以减少表的关联
      * 更好的进行索引优化
    缺点:
      * 存在数据冗余及数据维护异常
      * 对数据的修改需要更多的成本
  • 相关阅读:
    Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
    UVA 1597 Searching the Web
    UVA 1596 Bug Hunt
    UVA 230 Borrowers
    UVA 221 Urban Elevations
    UVA 814 The Letter Carrier's Rounds
    UVA 207 PGA Tour Prize Money
    UVA 1592 Database
    UVA 540 Team Queue
    UVA 12096 The SetStack Computer
  • 原文地址:https://www.cnblogs.com/jiaoran/p/14422217.html
Copyright © 2011-2022 走看看