引言
数据库已成为现代信息系统的基础和核心,它的设计全过程可划分为规划、需求分析、概念设计、逻辑设计、物理设计、实现和运行维护

规划

调查研究
对数据库的应用系统、面向对象、使用单位等与数据库功能和数据存在关联的事物进行全面理解和调查。

可行性分析
从技术、可用设备、时间效率、经济效益、法律法规等方面进行可行性分析,然后产出可行性分析报告,确定其可行性
确定目标和计划
在经过调查研究和可行性分析之后,可以开始确定目标、工作流程和开发计划等

需求分析

分析用户活动
了解用户的业务活动和职能,弄清楚其业务流程,如果业务复杂,可以分成多个子业务处理,最终我们要搞清楚业务功能和流程,画出业务流程
确定系统范围
顾名思义,确定系统范围即确定数据库的数据和功能范围,如果是划分为多个数据库时,需要确定每个数据库涉及的数据范围
分析用户活动涉及的数据
深入分析用户的业务活动,弄清楚的业务数据的流向和需要加工处理的内容,得出数据流图
分析系统数据
对数据库设计数据进行分析,确定数据库存储方式等等内容,产出数据字典
概念设计

概念设计可以分为三步,局部概念模型、全局概念模型、模型评审
局部概念模型设计
- 确定局部概念模型的范围
- 定义实体
- 定义联系
- 确定属性
- 逐一画出所有的局部ER图,并附以相应的说明文件
全局概念模型
- 确定公共实体类型
- 合并局部E-R图
- 消除不一致因素
- 优化全局E-R图
- 画出全局E-R图,并附以相应的说明文件
模型评审
开发人员评审
逻辑设计

将概念结构转换为一般的关系、网状、层次模型
将转换来的关系、网状、层次模型向指定数据库管理系统支持的数据模型转换
对数据模型进行优化
物理设计

物理设计可分为:存储结构设计、确定存放位置、设计存取方法、考量数据完整性和安全性、数据库执行程序设计
存储结构设计包括表的设计、表字段设计、字段类型设计、字段长度设计等等
确定存放位置包括存储物理位置,比如是否需要分服务器等等,可以考虑把需要经常访问或者某一模块需要的数据组合放在一起
程序设计可以帮助实现解除系统应用程序和数据的耦合,当系统应用程序变更时,可不修改数据结构,反之亦然
实现





运行维护
运行维护是一个长期的工作,应用程序执行、环境变更、数据存储内容不断变化等都要求不断的对数据库进行监测、评估、调整、备份和修改
