第 7章 数据库系统的需求建模
教材:数据库技术及应用 2006年 4月
宁可、吴菁、胡海编著
本章要点
? 数据库系统设计概述
? 需求分析
? 数据库需求建模
? 系统需求说明
? CASE工具在需求建模中的运用
目 录
7.1 数据库系统设计概述
7.1.1 数据库系统设计的基本概念
7.1.2 数据库系统的设计过程与开发方法
7.1.3 数据库系统设计的特征
7.2 需求分析
7.2.1 事件与系统需求
7.2.2 事物与系统需求
7.3 数据库需求建模
7.3.1 数据流图
7.3.2 数据字典
7.4 系统需求说明
7.4.1 系统需求规格说明书
7.4.2 数据要求说明书
目 录
7.5 CASE工具在系统开发中的运用
7.5.1 系统开发与 CASE工具
7.5.2 PowerDesigner介绍
7.6 应用实例
小结
7.1 数据库系统设计概述
数据库系统的设计属于系统设计的范畴, 数据库
系统同其它软件系统一样, 需要进行需求分析和需
求建模过程 。 需求分析关系到应用系统开发的成败,
是系统开发过程的关键阶段, 在此阶段需要准确,
详细地描述新系统必须, 做什么,, 通常把一整套
需求规格说明的方法, 技术, 图形工具以及相应的
软件工具的集合称为建模方法 。
7.1.1数据库系统设计的基本概念
数据库系统的设计包括数据库设计和数据库应用系统设计两方面的内容 。
数据库设计是指设计数据库结构特性, 即为特定应用环境构造出最优的数据
模型;数据库应用系统设计是指设计数据库的行为结构特性, 即建立能满足
各种用户对数据库应用需求的功能模型 。 数据库及应用系统的设计是开发数
据库系统的首要环节和基础问题 。
1,数据库系统设计的基本任务
数据库系统设计的基本任务是:根据一个用户单位的信息需求, 处理需求和数据库
的支撑环境 ( 包括 DBMS,操作系统和硬件 ), 设计出数据模式以及典型的应用程序 。
数据库系统设计的基本任务如图 7-1所示 。
图 7-1 数据库系统设计的基本任务
2,数据库系统设计的基本内容
数据库系统设计的基本内容是包含数据库的结构特性设计, 数据库的行为特性设计
和数据库的物理模式设计 。 在数据库系统设计过程中, 数据库结构特性的设计起着
关键作用, 行为特性设计起着辅助作用 。 将数据库的结构特性设计和行为特性设计
结合起来, 相互参照, 同步进行, 才能较好地达到设计目标 。
(1) 数据库的结构特性设计
数据库的结构特性是指数据库的逻辑结构特征 。
(2) 数据库的行为特性设计
数据库的行为特性设计是指确定数据库用户的行为和动作, 并根据其行为特性设
计出数据库的子模式 。
(3) 数据库的物理结构设计
数据库的物理结构设计要求是:根据库结构的动态特
性 ( 即数据库应用处理要求 ), 在选定的 DBMS环境下, 把
数据库的逻辑结构模型加以物理实现, 从而得出数据库的
存储结构和存取方法 。
7.1.2 数据库系统的设计过程与开发方法
1,数据库系统的设计过

数据库系统设计过程是一
种自上而下的, 逐步逼近设计
目标的过程 。 图 7-2是数据库系
统设计的过程图 。 数据库系统
设计过程是数据库结构特性设
计和行为特性设计相互参照,
反复探寻的过程 。
数据分析
用户
业务活动分析
概念结构设计 功能模型
逻辑结构设计 事务分析
物理结构设计 程序说明
用户结构设计 应用程序设计
数据加载 调试和运行
性能考核
加载数据库
运行维护
满意
图 7-2数据库系统设计的过程
2,数据库结构特性设计 ( 简称数据库设计 )
同软件生命周期可把软件系统分为制定计划, 需求分析, 设计,
程序编制, 测试以及运行维护阶段一样, 也可把整个数据库设计
过程分成 6个阶段,
?需求分析
?概念结构设计
?逻辑结构设计
?物理结构设计
?数据库实施
?数据库运行和维护
3,数据库系统的设计方法
对于任何系统而言, 项目立项和可行性分析都是开发前需要首先完成的工作, 而对于
开发方法则有所不同 。 软件开发的方法有多种, 如结构化方法, 面向对象方法和软件开
发统一过程 (RUP)方法等, 这些开发方法同样适用于开发数据库系统, 这是因为数据库
系统设计也属于系统设计的范畴 。 本书主要阐述基于结构化的数据库系统的开发 ( 其它
有关数据库系统的开发方法请参考相关书籍 ) 。
由数据库系统设计过程可知, 数据库系统的开发方法不仅包括数据库设计方法 ( 用于
数据库结构特性设计 ), 同时也包括一般的程序设计方法 ( 用于数据库行为特性设计 ),
二者是同步进行, 紧密结合的 。 数据库系统各阶段的设计工作, 如下所示 。
7.1.3 数据库系统设计的特征
数据库系统设计也和其他工程设计一样, 具有如下 3个特征 。
1,反复性 。
数据库系统设计不可能, 一气呵成,, 需要反复推敲和修改才能完成 。
前阶段的设计是后阶段设计的基础和起点, 后阶段也可向前阶段反馈其要
求 。 如此反复修改, 以臻完善 。
2,试探性 。
数据库系统设计不同于求一个问题的数学解, 设计结果一般不是惟一的 。
设计的过程往往是个试探的过程 。 在设计过程中, 有各式各样的要求和制
约因素, 它们之问往往是矛盾的 。 数据库系统的设计很难说是最佳的, 常
常得之于东, 而失之于西;何去何从, 取决于数据库设计者各方面的权衡 。
3,分步进行 。
数据库系统设计常常由不同的人员分阶段进行 。 这样做, 一是由于技
术上分工的需要;二是为了分段把关, 逐级审查, 保证设计的质量和进度 。
7.2 需求分析
在数据库系统的需求分析阶段, 需求收集与分析是以用户的角度出
发, 从系统中的数据和业务规则人手, 收集和整理用户的信息, 并以
特定的方式加以描述, 为下一阶段的设计工作做好准备 。
需求分析阶段是以调查和分析为主要手段的, 以此获得用户对系统
的如下要求,
( 1) 信息要求,
( 2) 处理要求
7.2.1 事件与系统需求
所有的系统开发方法都可以以事件概念开始建模 。 事件是发
生在某一特定的时间和地点, 并且可以被描述和记录下来的 。 在
调查中, 首先把整个系统看成一个黑盒, 从系统的外部环境中寻
找对系统产生影响的事件, 其次再寻找系统内部发生的事件 。 例
如影响学校课程管理系统的某些事件, 如图 7-4所示 。
1,事件的类型
一般事件可分为外部事件, 临时事件和状态事件, 在系统分析时
应识别和列出尽可能多的事件, 并在与用户的交流中不断细化这
些事件列表 。
( 1) 外部事件
外部事件是系统之外发生的事件, 通常都是由外部实体或动作参
与者触发的 。
( 2) 临时事件
临时事件是由于达到某一时刻所发生的事件 。
( 3) 状态事件
状态事件是当系统内部发生了需要处理的情况时所引发的事件 。
2,识别事件
通常要识别影响系统的事件并不容易, 但如下方法可以用来帮助
分析人员识别事件 。
( 1) 事件/条件和响应
有时候很难区分事件和一系列导致该事件发生的条件 。 一般说来,
需要识别的事件是, 该事件必须直接影响系统, 而且系统对该事件
有相应的响应 。
( 2) 在分析阶段可以忽略的事件
虽然在分析阶段需要考虑的事件很多, 但此阶段主要考虑的是系
统的功能需求, 即系统需要完成的工作而不是系统实现的细节 。 系
统实现的细节事件往往应在系统设计阶段再考虑, 这类事件大多数
包括系统控制事件 。 如,
? 用户更改口令
? 用户改变系统性能设置
? 备份数据库
系统崩溃需要恢复数据库
3,事件列表
在识别影响系统的事件后, 需制定出相应的事件列表 。 该表以
各个事件为行, 各个事件的关键信息为列 。 事件列表的格式如表
所示, 在确定事件列表时分析人员要注意每个事件附加的信息,
以备将来使用 。
7.2.2 事物与系统需求
1,事物的类型
一些事物是实实在在的, 因此容易识别, 但另一些事物却难以
明了 。 不同类型的事物对不同的用户都很重要, 因此有必要从所
有类型的用户处收集信息 。 图 7-4给出了一些常见事物类型 。
图 7-4 事物类型
2,事物的关系
系统中有很多事物间的关系非常重要 。 关系是指某些事物间自然发生的
联系 。
事物之间的关系类型有多种,
? 二元关系:两种不同类型事物之间的关系, 例如顾客和订单的关系 。
? 一元 ( 回归 ) 关系:同一类型的两个事物间的关系, 例如一个人和另
一个人的婚姻关系 。
? 三元关系:三种不同类型事物之间的关系 。
? n元关系,n( n为任意数 ) 种不同类型事物之间的关系 。
如图 7-5,被 …… 订购, 和, 工作于, 就是两个自然地发生在特定事物间
的关系 。
图 7-5 事物之间发生的关系
3,事物的属性
大多数信息系统都存储并使用关于每个事物的一些信息 。 这些
特定的信息被称为属性 。 如员工有姓名, 性别, 年龄等信息, 每
条信息都是一个属性 。 分析人员需要明确每个系统需要存储的事
物属性 。 一个属性可以用来惟一标识某事物, 例如, 公民的身份
证号码, 某次交易的订单号等 。 能惟一标识事物的属性被称为标
识符或关键字 。 有时标识符是由系统分配的 。 如, 发票号和交易
号等 。
有时一个事物的属性列表可能很长 。 分析人员开始时应先找出
某事物最重要的属性, 然后再逐步添加必要的其它属性 。
4,数据实体和对象
以上描述的事物均是系统需要存储其信息的事物 。 在系统结构
化开发方法中, 这些事物被称为数据实体 。 数据实体, 数据实体
间的关系和数据实体的属性都可以使用实体 -关系图 ( E-R图 ) 来建
立模型, 实体 -关系图 ( 稍后将介绍 ) 可以用来建立数据库 ( 通常
是关系型数据库 ), 在系统结构化开发方法和信息工程方法中都
用到了实体 -关系图 。
7.3 数据库需求建模
在数据库系统的设计中, 数据建模通常采用图形化方法来描述
企业的信息需求和业务规则, 以建立逻辑数据模型, 其作用有两
个, 一是与用户进行沟通, 明确需求;另一个作用是作为数据库
物理设计的基础, 以保证物理数据模型能充分满足应用要求, 保
证数据的一致性和完整性 。
本节主要介绍数据库系统的分析阶段常用的数据建模工具:数
据流图和数据字典 。
7.3.1 数据流图
数据流建模方法是一种结构化分析方法, 主要工具是数据流图 ( Data Flow
Diagram,简称 DFD) 。 数据流图是表示系统逻辑模型的常用工具, 图中不存
在任何具体的物理元素, 只表示信息在系统中流动和处理的情况 。
数据流图中有四种基本符号, 见下表, 它们分别表示数据的源点或终点
( 或称为外部项 ), 对数据进行的加工, 处于静止状态的数据存储和处于运
动状态的数据流, 使用这四种符号可表示大多数的数据流图 。
1,数据流图的分层思想
对于一个较复杂的系统, 其加工 ( 或处理 ) 可能有数百乃至数
千个, 整个系统的数据流图很难一次全部画齐 。 而采用分层的思
想可以很好地解决这个问题 。 数据流图分层的基本思想是, 自顶
向下逐步分解,, 即从系统的基本模型 ( 把整个系统看成是一个
加工 ) 开始, 逐层对系统进行分解 。 每次分解一个加工, 得到相
应的多个更具体的加工, 形成分层数据流图 。 重复这种分解, 直
到所有加工都足够简单明了为止 。
2,画数据流图的步骤
对于一个较简单的系统, 可以直接画出整个系统的数据流图, 如
果系统较为复杂, 则需按照如下步骤画出系统的数据流图 。
( 1) 画顶层数据流图
( 2) 画第一层数据流图
( 3) 画下层数据流图
图 7-9就是一个系统的分层数据流图 。
图 7-9 系统的分层数据流图
3,画数据流图的注意事项
画数据流图过程中, 需要注意保持数据流图的准确性, 规范性,
易理解性 。 具体可从以下几方面考虑 。
( 1) 输入和输出的数据流关系
( 2) 父图和子图的平衡
( 3) 尽量简化加工间的联系
( 4) 适当的命名
演示
7.3.2 数据字典
数据字典是有关数据信息的集合 。 是对数据流程图中出现的数据流和处
理等做进一步的补充说明 数据字典中有五类条目:数据元素, 数据流, 数据
存储, 处理过程和外部实体 。 对数据字典可以使用自然语言描述 。 但为了清
晰起见, 建议采用下列符号表示 。
= 表示等价于 ( 或定义为 ) 。
+ 表示连接两个数据元素, 即, 与, 的关系 。
[] 表示从方括号内列出的若干个数据元素中选择一个 。
{} 表示重复花括号内的数据元素若干次 ( 如表示数据元素 E重复 1-10次:
1{E}10。 )
( ) 表示圆括号内的数据元素是可有可无的 。
m..n表示界域, 从 m到 n。
*.,* 表示两个星号间的内容为对条目的注释 。
(1)数据元素 。
数据元素 ( 又称为数据项 ) 是数据的基本单位 。 数据流程图中的
每一个数据结构都是由数据元素构成的, 对于这些数据元素必须
在数据字典中给出描述, 通常以卡片形式 ( 以下楷体字表示 ) 给
出, 其具体内容及格式如下,
数据元素名称,
类型,
长度,
取值范围,
定义,
位置,
( 2) 数据流 。
数据流的具体描述内容及格式如下,
数据流名称,
说明,
数据流来源,
数据流去向,
数据流组成,
数据流的流通量,
( 3) 数据存储 。
数据存储主要描述数据存储的结构, 其具体描述内容及格式如下,
数据存储名称,
描述,
输入数据,
输出数据,
数据存储组成,
存储方式,
( 4) 外部实体 。
外部实体是数据的来源和去向, 具体描述内容及格式如下,
外部实体名称,
输入数据流,
输出数据流,
( 5) 加工 。
加工比较复杂, 要全部写在一个条目中是很困难的, 其详细功能
还要作进一步描述 。 具体描述内容及格式如下,
加工名称,
加工编号,
功能简述,
输入数据流,
输出数据流,
加工逻辑,
为了保证数据的一致性, 数据字典必须由数据管理员负
责维护和管理 。 任何人, 包括系统分析人员, 系统设计人
员, 程序员修改数据字典的内容, 都必须通过数据管理员 。
同时, 数据管理员要把数据字典的最新版本及时通知有关
人员 。
演示
7.4 系统需求说明
编写系统需求规格说明书是系统需求分析的最后阶段, 需求规
格说明书的编写不仅必须做到完整, 详尽, 而且技术性描述不要
太强及描述要足够准确, 以使用户和设计人员易于理解 。
需求规格说明的方法和技术有多种, 如非形式化的, 半形式
化的和形式化的 。 非形式化的需求规格说明使用自然语言进行描
述;半形式化的需求规格说明使用图形并辅以自然语言进行描述;
形式化的需求规格说明多采用比半形式化的方式更为严格的数学
描述形式 。
7.4.1 系统需求规格说明书
系统需求规格说明书的内容及规格如下所示,
1,引言
2,任务概述
2,1目标
软件项目开发的意图, 应用目标, 作用范围以及其他应向读者说明的有关该软件开发的背景材料

2,2用户的特点
说明用户的特点, 操作人员, 维护人员的水平和技术专长, 以及本软件的预期使用频度 。
2,3假定和约束
列出进行本软件开发工作的假定和约束, 例如经费限制, 开发期限等 。
3,需求规定
3,1功能描述
利用数据流图和数据字典描述系统的信息关系和功能要求 。
3,2性能描述
从精度要求, 时间特性要求, 灵活性等方面描述系统性能 。
3,3输入输出
对输入输出数据类型, 媒体, 格式, 数值范围, 精度等要求进行说明 。
3,4数据管理能力
说明文件和记录的个数, 文卷规模, 对可预见的增长及存储要求作出估算 。
3,5故障处理
描述可能的软件, 硬件故障以及各项性能所产生的后果 。
3,6其他要求
如安全保密, 使用方便, 可维护性, 可补充性, 易读性, 可靠性, 运行环境可移植性等要求 。
4,运行环境规定
描述运行系统所需要的硬设备情况;支持软件包括操作系统, 编译程序, 测试软件等同其他软件
之间的接口, 数据通信协议等;系统运行的控制方法和控制信号的来源 。
7.4.2 数据要求说明书
数据要求说明书的内容及规格如下所示,
1,概述
简述该文档的编写目的, 文档专用的名词术语和定义, 数据的安全保密要求 。
2,数据描述
数据可分为 2类, 静态数据和动态数据 。 静态数据称为参数数据, 动态数据称为非参数数据, 它们都由若干个数据元素组
成 。 在以下各节中, 除数据元素名外, 对每个数据元素需提供:同义名, 定义, 格式, 值域, 度量单位, 数据项名等描述

2,1静态数据的逻辑结构
把静态数据元素的标题排列成表, 可按功能, 主题或对其应用更为恰当的任一种逻辑组合排列这些数据元素 。
2,2动态输人数据的逻辑结构
列出动态输入数据元素标题的清单, 可按功能, 主题或对其用途最为恰当的任一种逻辑组合排列这些数据元素 。
2,3动态输出数据的逻辑结构
列出动态输出数据元素标题的清单, 可按功能, 主题或对其用途最为恰当的任一种逻辑组合排列这些数据元素 。
2,4内部生成数据
列出用户关心的内部生成的数据, 只列出对用户有信息价值的那些数据元素, 而并非列出一切元素 。
2,5数据约束
说明在软件需求说明中没有提到的而可预料的数据约束 。 概括指出若要进一步扩充或使用系统时所受到的限制 (例如对文
件, 记录和数据元素的最大容量和最多个数 )。 必须强调在系统进一步开发中将成为关键性的那些限制 。
3,数据采集
描述用户必要的数据采集活动, 以便采集该系统使用的数据值 。
3,1要求和范围
对于每个要采集的数据, 还需说明:数据元素的输入源, 输入输出设备, 接受者, 临界值, 换算因子,, 输出形式和设备
,扩充因子, 更新频率等 。
3,2输人数据的来源
说明输入数据的来源, 推荐负责准备专用数据输入的个人和单位 。
3,3数据采集和传送方式
具体说明数据采集方式, 包括应用的详细格式 。 还需叙述通信介质和输入输出时间 。
3,4数据库影响
说明数据库的采集和维护对设备, 软件, 机构, 运行和开发环境的影响 。 还应给出由于数据库的故障而导致的对系统的影
响 。
7.5 CASE工具在系统开发中的运用
为降低开发风险, 节省开发时间, 提高软件质量,
降低软件维护难度, 使开发人员, 分析人员, 测试人
员, 数据库管理员, 管理人员, 用户之间能够相互沟
通, 确保系统发挥最大综合效益, 世界各大数据库厂
商和第三方合作开发出了智能化的计算机辅助软件工
程 ( Computer Aided Software Engineering,简称
CASE) 工具 。
PowerDesigner介绍
7.6 应用实例
天顺公司的, 天顺公司人事档案管理系统, 经过项
目立项, 可行性分析及对项目开发计划的审定后, 决
定由龙翔软件开发公司进行该项目的开发, 龙翔软件
开发公司委托本公司的分析人员王林进行项目的详细
调研, 以明确系统的信息要求和处理要求 。
演示
小结
数据库系统设计过程包含数据库结构特性设计过程和行为特性设计过程,
即数据库设计和数据库应用系统设计是同步进行的 。 其中, 数据库应用系统设计
可遵循一般软件系统的开发方法, 而数据库设计可分成需求分析, 概念结构设计,
逻辑结构设计, 物理结构设计, 数据库实施和数据库运行和维护 6个阶段 。 同其
他系统一样, 数据库系统的需求分析也是整个系统开发过程的关键阶段, 在此阶
段需要准确, 详细地描述系统必须, 做什么,, 通常可使用各种工具, 如数据流
图, 数据词典等建立系统需求模型 。
系统需求分析阶段完成的标志是提供一份开发者和用户共同
接受的, 系统需求规格说明书,,以作为软件设计和进一步实
现的基础。
数据流图是表示系统逻辑模型的常用工具,数据流图只需考虑系
统必须完成的基本逻辑功能,不需要考虑如何具体地实现这些功能,
图中也不存在任何具体的物理元素,而只表示信息在系统中流动和处
理的情况。其图形化表示助于用户、系统分析人员和系统设计人员之
间的沟通;数据字典是有关数据信息的集合,对数据字典可以使用自
然语言描述,数据字典中有五类条目:数据元素、数据流、数据存储、
处理过程和外部实体。
习 题
1,数据库系统设计过程包含 ____________和行为特性设计过程, 即 ____________和数据库应用系统设计 。
2,数据库设计可分成需求分析, ____________,___________,___________,数据库实施和数据库运行和维护 6个阶段 。
3,数据库系统设计的特征有反复性 ____________和 ____________。
4,需求分析阶段主要获取的要求是 ____________和 ____________。
5,一般事件可分为 ____________,___________和状态事件 。
6,数据库系统的分析阶段常用的数据建模工具有 ____________和 ____________。
7,数据字典的条目有数据元素, ____________,___________,___________和外部实体 。
8,需求分析阶段完成的标志是提供 ____________,以作为软件设计和进一步实现的基础 。
9,实践
请对餐厅管理信息系统进行分析, 并编写该项目的, 系统需求规格说明书, 。