LAMP网站开发黄金组合Linux+Apache+MySQL+PHP
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 数据库的设计流程

数据库设计的基本流程如图4-2所示,一般可以分为4个阶段:需求分析、概念设计、逻辑设计和物理设计。下面分别给予介绍。

图4-2 数据库设计基本流程以及输入输出

4.2.1 需求分析

设计一个数据库,首先必须确认数据库的用户和用途。由于数据库是一个单位的模拟,故数据库设计者必须对该单位的组织、各个部门的联系、有关事物和活动以及描述它们的数据、信息流程、政策和制度、报表及其格式和有关的文档等有所了解。收集和分析这些资料的过程称为需求分析。需求分析要调查的重点是获得上面提到的“信息需求”和“处理需求”。此外对于数据安全性和完整性的要求也是需要调查清楚的。

需求分析人员既要对数据库技术有一定的了解,又要对单位的情况比较熟悉。需求分析一般是由数据库技术人员和本单位的有关工作人员合作进行的。

调查了解了用户的需求以后,还需要进一步分析和表达用户的需求。结构化分析方法(Structured Analysis,简称SA方法)是软件工程中进行需求分析的一种简单实用的方法。使用的手段主要有数据流图、数据字典、判定树或判定表,详细的内容读者可以参考软件工程方面的书籍。

SA方法从最上层的系统组织机构入手,采用自顶向下、逐步分解的方式分析系统。在逐步分解的过程中形成若干层次的数据流图。数据流图是一种从数据和对数据的加工两方面表达系统工作过程的图形表示法。

数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。

数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。数据项是不可再分的数据单位。对数据项的描述通常包括以下这些内容:

● 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}

数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项或若干个数据结构组成或两者的混合组成。对数据结构的描述通常包括以下这些内容:

● 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}

数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下这些内容:

● 数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或手工凭单,也可以是计算机文档。对数据存储的描述通常包括以下这些内容:

● 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}

处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只要描述处理过程的说明性信息。对处理过程的描述通常包括以下这些内容:

● 处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}。

需求分析阶段的主要结果就是收集到的基础数据(用数据字典表达)和一组数据流图。

4.2.2 概念设计

在需求分析的基础上,用概念数据模型,例如E-R模型,表示数据及其相互间的联系。概念设计模型是与DBMS无关、面向现实世界的数据模型,因而也是易于为用户理解的。在概念设计阶段,设计人员可以致力于模拟现实世界,而不必过早的纠缠于DBMS所规定的各种细节。概念设计通常有下列四类方法:

● 自顶向下。即首先定义全局概念结构的框架,然后逐步细化。

● 自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。

● 逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。

● 混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,然后以它为骨架集成由自底向上策略中设计的各局部概念结构。

在下一节会详细讲解使用E-R模型进行概念设计的方法。

4.2.3 逻辑设计

在逻辑设计阶段,将第二步得到的概念数据模型(例如E-R模型),转换成以DBMS的逻辑数据模式表示的逻辑模式。数据库的逻辑设计不单单是数据模型的转换问题,而是进一步深入解决数据模式设计中的一些技术问题,例如数据模式的规范化、满足DBMS的各种限制等。数据库逻辑设计的结果以数据定义语言(DDL)表示。

★ 说明 ★

DDL是数据定义语言(Data Definition Language)的简称,它在SQL语言中用来定义和删除数据库以及数据库实体。

4.2.4 物理设计

数据库物理设计的任务是:根据逻辑模式、DBMS及计算机系统所提供的手段和施加的限制,来设计数据库的内模式,以及文件结构、各种存取路径、存储空间的分配、记录的存储格式等。数据库的内模式虽不直接面向用户,但对数据库的影响很大。DBMS提供相应的DDL语句及命令,以便数据库设计人员及DBA定义内模式。