一 需求分析(requirement analysis)
根据用户对系统的使用需求,明确系统需要的数据和它们如何使用。也是整个设计过程的基础。通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计,需求分析是否做的充分和准确,直接决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。对现实世界中要处理的对象(公司、部门及企业,也可以理解成客户)进行详细调查,然后通过分析,逐步明确客户/用户对系统的需求,包括数据需求和业务处理需求。
需求分析方法常用SA(Structured Analysis) 结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。
设计概念结构通常有四类方法:
1)自顶向下。即首先定义全局概念结构的框架,再逐步细化。
2)自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。
3)逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
4)混合策略。即自顶向下和自底向上相结合
二 概念设计(conceptual design)
明确系统需要哪些模块,这些模块之间如何交互,这是一个抽象的模型,应该避开具体实现细节。要设计是数据库设计的关键,通过综合、归纳与抽象用户需求,形成一个具体 DBMS 的概念模型,也就是绘制数据库的 E-R 图。E-R图也称实体关系图(Entity Relationship Diagram),提供了表示实体类型、属性和关系的方法,用来描述现实世界的概念模型。
E-R图补充
1、实体:用方框表示,方框内为实体的名称。
2、实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和相应的实体连接起来。
3、实体之间的联系:用菱形表示,菱形内为联系的名称。
4、实体和实体之间的联系
E-R图中实体之间的关系有三种,分别是:
1)、一对一:员工信息表和员工学历表是一对一关系。
2)、一对多:员工信息表和员工考勤表一对多关系.
3)、多对多:员工信息表和员工所报培训课程表是多对多关系
三 逻辑设计(Logic Design)
将概念设计的内容转化成数据库的表。将 E-R 图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据库设计的三大范式进行审核,对其优化。在这阶段,E-R 图非常重要。大家要学会根据各个实体定义的属性来画出总体的 E-R 图
四 物理设计(physical design)
明确表中的数据采用什么类型,索引如何选择等。项目组开会讨论确定 E-R 图后,根据项目的技术实现,团队开发能力及项目的成本预算,选择具体的数据库(如 MySQL 或 Oracle 等)进行物理实现。
五 验证设计(Validate Design)
测试该数据库能不能应用于测试数据。运用 DBMS 提供的数据语言(例如 SQL)、工具及宿主语言(例如 Java),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
六 运行与维护设计(Operation and Maintenance Design)
测试该数据库能不能在该项目的真实环境下运行成功。数据库应用系统经过试运行后即可投入正式运行。在运行过程中必须不断地对其进行评价、调整与修改。总之设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述 6 个阶段的不断反复