数据库设计

优良的设计能减少数据的冗余、避免数据维护异常、节约存储空间、高效的访问

目录

一、需求分析
二、逻辑设计
三、物理设计
四、数据库维护和优化


一、需求分析

  • 数据库设计的步骤

数据库设计_第1张图片

  • 需求分析
    • 了解系统中所要存储的数据
    • 了解数据的存储特点
    • 了解数据的生命周期
  • 需要搞清楚的一些问题
    • 实体及实体之间的关系(1对1,1对多,多对多)
    • 实体所包含的属性有什么
    • 那些属性或属性的组合可以唯一标识一个实体
  • 实例演示
    数据库设计_第2张图片
    数据库设计_第3张图片
    数据库设计_第4张图片
    数据库设计_第5张图片
    数据库设计_第6张图片
    数据库设计_第7张图片
    数据库设计_第8张图片

返回顶部目录


二、逻辑设计

  • 逻辑设计所需要做的

    • 将需求转化为数据库的逻辑模型
    • 通过ER图的型式对逻辑模型进行展示
    • 同所选用的具体的DBMS系统无关
  • 名词解释

    • 关系:一个关系对应通常所说的一张表。
    • 元组:表中的一行即为一个元组。
    • 属性:表中的一列即为一个属性;每一个属性都有一个名称,
      称为属性名。
    • 候选码:表中的某个属性组,它可以唯一确定一个元组。
    • 主码:一个关系有多个候选码,选定其中一个为主码。
    • 域:属性的取值范围。
    • 分量:元组中的一个属性值。
  • ER图例说明
    数据库设计_第9张图片
    数据库设计_第10张图片

  • 数据库范式

    • 常见的包括,第一范式、第二范式、第三范式及BC范式、第四范式、第五范式(一般放到前3个范式上)
  • 数据操作异常

    • 插入异常:如果某实体随着另一个实体的存在而存在,即缺少某个实体时无法表示这个实体,那么这个表就存在插入异常。

    • 更新异常:如果更改表所对应的某个实体实例的单独属性时
      需要将多行更新,那么就说这个表存在更新异常。

    • 删除异常:如果删除表的某一行来反映某实体实例
      失效时导致另一个不同实体实例信息丢失,么这个表中就存在删除异常。

  • 数据冗余

    • 是指相同的数据在多个地方存在,或者说表中的
      某个列可以由其它列计算得到,这样就说表中存在着数据冗余。
  • 第一范式(1NF)

    • 第一范式针对的是表结构

    • 用户信息字段拥有两个属性,所以不属于第一范式
      数据库设计_第11张图片

    • 第二范式(2NF)

      • 数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。
      • 换句话说:所有单关键字段的表都符合每二范式。

数据库设计_第12张图片
数据库设计_第13张图片

  • 第三范式(3NF)
    数据库设计_第14张图片
    数据库设计_第15张图片
    返回顶部目录

三、物理设计

  • 数据库物理设计需要做的事情
    数据库设计_第16张图片
  • 选择哪种数据库
    数据库设计_第17张图片
  • Mysql常用的存储引擎
    数据库设计_第18张图片
  • 表及字段的命名规则
    数据库设计_第19张图片
    数据库设计_第20张图片
  • 字段类型的选择规则
    数据库设计_第21张图片
    数据库设计_第22张图片
    数据库设计_第23张图片
    数据库设计_第24张图片
    数据库设计_第25张图片
    数据库设计_第26张图片
  • 注意事项
    数据库设计_第27张图片
    数据库设计_第28张图片

数据库设计_第29张图片
数据库设计_第30张图片

  • 反范式化
    数据库设计_第31张图片
    返回顶部目录

四、数据库维护和优化

  • 维护和优化中需做什么

    • 维护数据字典
    • 维护索引
    • 维护表结构
    • 在适当的时候对表进行水平拆分或垂直拆分
  • 维护数据字典
    数据库设计_第32张图片
    数据库设计_第33张图片

  • 索引
    数据库设计_第34张图片

  • 数据库中表的操作注意
    数据库设计_第35张图片

  • 数据库表的拆分
    数据库设计_第36张图片
    数据库设计_第37张图片
    数据库设计_第38张图片
    返回顶部目录

以上内容参考了菜鸟教程的数据库设计及慕课网的数据库设计那些事,仅供学习使用哈,如有侵权,请联系我删帖!

你可能感兴趣的:(mysql)