注:本节内容在官方软设书里的第12章的 12.2 数据库分析与设计

一、数据库设计的步骤(4个阶段)

数据库设计包括以下四个阶段:

阶段 主要任务 产出物
需求分析阶段 收集和分析用户需求 数据流图、数据字典、需求说明书
概念设计阶段 建立概念模型(E-R图) E-R图
逻辑设计阶段 将E-R图转换为关系模式 关系模式、数据模型优化
物理设计阶段 确定数据的存储结构和存取方法 物理结构设计

1. 需求分析阶段

主要任务:

  • 调查和分析用户的业务活动和数据的使用情况
  • 确定系统的功能和性能需求
  • 收集基础数据及其处理要求

产出物:

  • 数据流图(DFD)
  • 数据字典
  • 需求规格说明书

2. 概念设计阶段

主要任务:

  • 将需求分析得到的用户需求抽象为信息结构(概念模型)
  • 最常用的方法是 E-R模型

E-R图设计步骤:

  1. 确定实体类型
  2. 确定联系类型
  3. 确定实体和联系的属性
  4. 画出E-R图

3. 逻辑设计阶段

主要任务:

  • 将概念模型(E-R图)转换为具体DBMS支持的数据模型(如关系模型)
  • 对数据模型进行优化

E-R图向关系模型的转换规则:

E-R结构 转换方法
实体 转换为一个关系模式,实体的属性就是关系的属性,实体的主键就是关系的主键
1:1联系 可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
1:n联系 可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
m:n联系 转换为一个独立的关系模式,该关系模式的主键为各实体主键的组合
多元联系 转换为一个独立的关系模式

4. 物理设计阶段

主要任务:

  • 确定数据的存储结构和存取方法
  • 设计索引
  • 确定数据存放位置
  • 评价存储空间和时间效率

二、数据库的实施与维护

1. 数据库实施

  • 建立实际的数据库结构
  • 数据加载
  • 编制和调试应用程序
  • 数据库试运行

2. 数据库维护

  • 数据库的转储和恢复
  • 数据库的安全性、完整性控制
  • 数据库性能的监督、分析和改进
  • 数据库的重组织和重构造

三、数据库设计要点总结

E-R模型设计要点

  1. 实体识别:找出系统中需要管理的对象
  2. 联系识别:确定实体之间的关系类型(1:1、1:n、m:n)
  3. 属性分配:将属性分配给实体或联系
  4. 主键确定:为每个实体确定唯一标识

关系模式规范化要点

  1. 首先满足 1NF:属性不可再分
  2. 消除部分依赖达到 2NF
  3. 消除传递依赖达到 3NF
  4. 必要时达到 BCNF

设计原则

  • 高内聚、低耦合:实体和联系的划分要合理
  • 避免冗余:通过规范化减少数据冗余
  • 保证完整性:通过主键、外键和约束保证数据完整性
  • 考虑性能:在规范化和性能之间取得平衡