数据库系统设计过程
- 需求分析Requirements Analysis;
- 概念数据库设计Conceptual Schema Design;
- 逻辑数据库设计Logical schema design;
- 物理数据库设计Physical Schema Design;
- 实现Implementation;
- 系统测试System Testing;
- 维护Delivery & Maintenance
一、 需求分析。
需求分析阶段的工作步骤:
- 分析用户活动,产生业务流程图:了解用户当前的业务活动和职能,理清其处理流程。把用户业务分成若干个子处理过程,使每个处理功能明确、界面清楚,画出业务流程图
- 确定系统范围,产生系统范围图:在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。
- 分析用户活动所涉及的数据,产生数据流图:深入分析用户的业务处理,以数据流图(Data Flow
Diagram,DFD)形式表示出数据的流向和对数据所进行的加工。DFD有四个基本成分:数据流、加工或处理、文件、外部实体。DFD可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。
- 分析系统数据,产生数据字典:仅仅有DFD并不能构成需求说明书,DFD只表示出系统有哪几部分组成和各个部分之间的关系,并没有说明各个成分的含义。数据字典提供对数据库时间描述的集中管理,它的功能是存储和检索各种数据描述(元数据Metadata),数据字典是数据收集和数据分析的主要成果,在数据库设计中占有很重要地位。数据字典编写的基本要求
- 功能分析:数据库的设计是与应用系统的设计紧密结合的过程,离开一定的功能,数据库就失去其存在价值。数据库设计的一个重要特点是结构(数据)和行为(功能)的结合。用户希望系统能提供的功能必须有一个清晰的描述。功能分析可以采用软件结构图或模块图来表示系统的层次分解关系、模块调用关系。
数据流图:
实例:图书馆借书的数据流
数据流采用自顶向下的分析方式:
下面是一个销售管理子系统的数据流的分析过程的例子。
先看销售管理子系统顶层数据流图
其中1.0送进定单的数据流图
其中2.0处理定单的数据流图
其中3.0开发票的数据流图
其中4.0支付过账的数据流图
数据字典Data Dictionary是对系统中数据的详尽描述,是各类数据属性的清单。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
描述数据流图的数据存储、数据加工(最底层加工)和数据流
主要内容:
- 基本信息:名字、别名、描述;
- 定义:数据长度、数据类型、数据结构;
- 使用特点:取值范围、使用频率、使用方式等;
- 控制信息:来源、用户、引用程序、读写权限等;
- 其他说明。
数据元素的定义可以是基本元素及其组合,数据进行自顶向下地分解,直到不需要进一步解释且参与人员都清楚其含义为止。
数据字典通常包括以下五部分:
- 数据项描述(名,含义,类型,长度,取值,与其它项逻辑关系等);是数据的最小单位。
- 数据结构描述(名,含义,组成);是若干数据项有意义的集合。
- 数据流(名,含义,组成,流出过程,流入过程);可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出。
- 数据存储(名,含义,组成,数据量,存取方式);处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件。
- 处理过程;
数据结构的描述
符号 |
含义 |
举例 |
= |
被定义为 |
|
+ |
与 |
x=a+b |
[…,…]或[…|…] |
或 |
x=[a,b],
x=[a|b] |
{…}或m{…}n |
重复,m是最少次数,n是最多次数 |
X={a}, x=3{a}8 |
(…) |
可选 |
X=(a) |
“…” |
基本数据元素 |
X=“a” |
.. |
连接符 |
X=1..9 |
举例:
存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50
户名=2{字母}24
所号=“001”..“999”
帐号=“00000001”..“99999999”
开户日=年+月+日
性质=“1”..“6” 注:“1”表示普通户,“5”表示工资户等
印密=“0” 注:印密在存折上不显示
存取行=日期+(摘要)+支出+存入+余额+操作+复核
还有另外一种方式来描述一个数据结构,如下表
|