MySQL -CHAPTER-6 数据库设计

数据库设计



为什么需要设计数据库

良好的数据库设计

  • 节省数据的存储空间
  • 能够保证数据的完整性
  • 方便进行数据库应用系统的开发

糟糕的数据

  • 数据冗余、存储浪费
  • 内存空间浪费
  • 数据更新和插入的异常

软件项目开发周期中数据库设计

需求分析阶段:分析客户的业务和数据处理需求

概要设计阶段:设计数据库的E-R模型图, 确认需求信息的正确和完整

详细设计阶段:应用三大范式审核数据库结构

代码编写阶段:物理实现数据库, 编码实现应用

软件测试阶段:…

安装部署:…

设计数据库的步骤

收集信息

与该系统有关人员进行交流、座谈, 充分了解用户需求, 理解数据库需要完成的任务

标识实体 Entity

标识数据库要管理的关键对象或实体, 实体一般是名词

标识每个实体的属性 Attribute

实现思路

收集信息

在确定客户要做什么之后, 收集一切相关的信息, 尽量不遗漏任何信息

标识实体

实体一般是名词

每个实体只描述一件事情

不能重复出现含义相同的实体

标识每个实体的属性

标识每个实体需要存储的详细信息

标识实体之间的关系

绘制E-R图

E-R图

MySQL -CHAPTER-6 数据库设计_第1张图片

映射基数

MySQL -CHAPTER-6 数据库设计_第2张图片

不合规范的表设计

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

第一范式 1st NF

第一范式的目标事确保每列的原子性

如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)

第二范式 2nd NF

第二范式要求每个表只描述一件事情

第三范式 3nd NF

如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)

规范化和性能的关系

为满足某种商业目标,数据库性能比规范化数据库更重要

  • 通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
  • 通过在给定的表中插入计算列(如成绩总分),以方便查询

在数据规范化同时,要综合考虑数据库的性能

化数据库更重要

  • 通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
  • 通过在给定的表中插入计算列(如成绩总分),以方便查询

在数据规范化同时,要综合考虑数据库的性能

你可能感兴趣的:(MySQL,数据库,mysql)