数据库设计
数据库设计
一、数据库设计概述
1.1 数据库设计的定义
- 指在给定应用环境下,构造优化的数据库逻辑模式和物理结构,建立数据库及其应用系统。
- 目标:高效存储和管理数据,满足用户的信息管理和数据操作需求。
1.2 设计目标
- 提供信息基础设施和高效运行环境。
- 实现高存取效率、高存储空间利用率、高运行维护效率。
1.3 设计特点
- 三分技术,七分管理,十二分基础数据。
- 强调基础数据的收集、整理与更新。
- 数据库结构设计与数据处理设计相结合。
1.4 设计方法
- 手工试凑法、规范设计法(如新奥尔良方法、E-R模型法、3NF法、UML法等)。
1.5 设计步骤(6个阶段)
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行与维护
需求分析和概念设计独立于 DBMS,逻辑设计和物理设计与 DBMS 密切相关。
需求分析阶段:综合各个用户的应用需求
概念设计阶段: 形成独立于机器特点,独立于各个数据库管理系统产品的概念模式(E-R图)
逻辑设计阶段:
- 首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式
- 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式
物理设计阶段:根据数据库管理系统特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式
二、需求分析
2.1 任务
- 调查用户需求,明确信息要求、处理要求、安全性与完整性要求。
- 确定新系统功能,并考虑未来扩展。
2.2 难点与解决方法
- 用户与设计人员之间的知识差异。
- 通过深入交流、调查会、问卷、跟班作业等方式达成共识。
2.3 数据字典
数据字典是关于数据库中数据的描述,即元数据,不是数据本身
包括:
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
三、概念模型与E-R模型
3.1 概念模型特点
- 真实反映现实世界、易于理解、易于修改、易于转换。
3.2 E-R模型
- 实体:矩形
- 属性:椭圆形
- 联系:菱形(1:1、1:n、m:n)
3.3 复杂联系
- 多元联系(如学生-课程-教师评价)
- 单个实体型内联系(如课程先修)
- ISA联系(父子类,如学生-本科生/研究生)
- Part-of联系(弱实体,如教室依赖于教学楼)
3.4 UML类图
- 类 ≈ 实体
- 属性后可标注PK
- 关联表示联系,可标注基数约束
四、概念结构设计(方法与实践)
4.1 设计方法
- 自顶向下、自底向上、逐步扩张、混合策略
4.2 实体与属性划分原则
- 属性不可再分、不与其他实体联系
- 例:职称是否作为属性?专业是否单独为实体?
4.3 分E-R图设计
- 例:教师教学管理子系统
- 实体:教师、学生、教学班、教室、时间片
- 联系:讲授、课堂评价、排课
五、概念结构设计(集成与优化)
5.1 E-R图集成步骤
- 合并:解决冲突(属性、命名、结构)
- 修改与重构:消除冗余
5.2 冲突类型
- 属性冲突(类型、单位)
- 命名冲突(同名异义、异名同义)
- 结构冲突(抽象不同、属性不同、联系类型不同)
5.3 消除冗余
- 使用数据依赖分析
- 保留必要冗余以提高效率
六、逻辑结构设计
6.1 转换任务
- 将E-R图转换为关系模型
6.2 转换原则
- 实体 → 关系模式
- 1:1联系 → 合并或独立模式
- 1:n联系 → 合并到n端
- m:n联系 → 独立关系模式
- 多元联系 → 独立模式
6.3 数据模型优化
- 规范化理论指导
- 权衡规范化程度与查询效率
- 水平分解与垂直分解
6.4 用户外模式设计
- 使用视图机制:
- 别名适应习惯
- 分级视图保障安全
- 简化复杂查询
七、物理结构设计
7.1 任务
- 确定存储结构与存取方法
7.2 存取方法选择
- B+树索引:常用于查询、连接、聚合
- 哈希索引:适用于等值查询
- 聚簇索引:提高特定查询效率,但维护成本高
7.3 存储结构设计
- 数据存放位置:易变与稳定分离、高频与低频分离
- 系统配置参数调整:缓冲区、锁数、块大小等
7.4 评价物理结构
- 定量估算存储空间、存取时间、维护代价
八、数据库的实施与维护
8.1 数据载入
- 人工或辅助工具入库
8.2 试运行
- 功能测试与性能测试
- 分期入库,逐步评估
8.3 运行与维护
- 转储与恢复:定期备份
- 安全性与完整性控制:权限与约束
- 性能监控与调优
- 重组织:优化存储结构
- 重构造:适应环境变化,有限度修改模式
总结:数据库设计全流程
| 阶段 | 核心任务 | 输出成果 |
|---|---|---|
| 需求分析 | 收集与分析用户需求 | 数据字典、需求规格说明 |
| 概念设计 | 构建E-R模型 | 分E-R图、全局E-R图 |
| 逻辑设计 | 转换为关系模型 | 关系模式集合 |
| 物理设计 | 确定存储与存取方式 | 物理结构方案 |
| 实施 | 建库、编程、数据入库 | 可运行数据库系统 |
| 维护 | 监控、备份、优化、重构 | 持续可用的数据库 |
如果有需要修改或者补充的地方,可以随时告诉我。
This post is licensed under CC BY 4.0 by the author.



