以规范性设计为例,把数据库设计流程分为以下几个阶段:
A. 需求分析阶段:综合各个用户的应用需求(现实世界的需求)。
B. 概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。
C. 逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。
D. 物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
E. 数据库实施阶段
F. 数据库运行与维护阶段
1.1.1 需求分析阶段
需求收集和分析,得到数据字典描述的数据需求和数据流图描述的处理需求。
需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法:主要包括自顶向下和自底向上两类方法。采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图(Data Flow Diagram,DFD)表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
1.1.2 概念结构设计阶段
概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
概念模型特点:
1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。
2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。
1.1.3 逻辑设计阶段
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。一个多对多的联系转换为一个关系模式,两个实体的码和联系本身的属性就是关系的属性,两个实体的码就是关系的码。
数据模型的优化,确定数据依赖,消除冗余的联系,确定各关系模式分别属于第几范式。确定是否要对它们进行合并或分解。一般来说将关系分解为3NF的标准。
范式可以参照如下文档:
1.1.4 物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
1.1.5 数据库实施阶段
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。数据库实施主要包括以下工作:用DDL定义数据库结构、组织数据入库、编制与调试应用程序、数据库试运行。
1.1.6 数据库运行维护阶段
在数据库系统运行过程中必须不断地对其进行评价、调整与修改。内容包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造。
1.1.7 建模工具
为加快数据库设计速度,目前有很多数据库辅助工具(CASE工具),如Rational公司的Rational Rose,CA公司的Erwin和Bpwin,Sybase公司的PowerDesigner以及Oracle公司的oracle Designer等。