在《数据库设计概述》一节,我们讲解了为什么需要设计数据库。本节主要介绍数据库设计的基本步骤。
在了解数据库设计步骤之前,我们先来了解一下软件项目的开发周期,如下:
其中,项目开始的第一步都是根据客户需求去设计数据库。代码编写阶段就是根据选择的数据库进行物理实现,编写代码实现应用。
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下 6 个阶段:
需求分析是数据库设计的第一步,是最困难、最耗费时间的一步,也是整个设计过程的基础。
本阶段的主要任务是对现实世界中要处理的对象(公司、部门及企业,也可以理解成客户)进行详细调查,然后通过分析,逐步明确客户/用户对系统的需求,包括数据需求和业务处理需求。
需求分析是否做的充分和准确,直接决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。
概要设计是数据库设计的关键,通过综合、归纳与抽象用户需求,形成一个具体 DBMS 的概念模型,也就是绘制数据库的 E-R 图。
E-R 图主要用于在项目团队内部,设计人员和客户之间进行沟通,确认需求信息的正确性和完整性。
将 E-R 图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据库设计的三大范式进行审核,对其优化。
在这阶段,E-R 图非常重要。大家要学会根据各个实体定义的属性来画出总体的 E-R 图。
经项目组开会讨论确定 E-R 图后,根据项目的技术实现,团队开发能力及项目的成本预算,选择具体的数据库(如 MySQL 或 Oracle 等)进行物理实现。
运用 DBMS 提供的数据语言(例如 SQL)、工具及宿主语言(例如 Java),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
数据库应用系统经过试运行后即可投入正式运行。在运行过程中必须不断地对其进行评价、调整与修改。
总之设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述 6 个阶段的不断反复。