第 8章 数据库系统的概要设计
教材:数据库技术及应用 2006年 4月
宁可、吴菁、胡海编著
本章要点
? 系统概要设计概述
? 数据库的概念设计
? 模块化设计
? 概要设计的图形工具
? 系统概要设计说明
? 运用 Powerdesigner工具建立概念数据模型
目 录
8.1 系统概要设计概述
8.1.1 软件系统的概要设计
8.1.2 数据库系统的概要设计
8.2 数据库的概念设计
8.2.1 数据库概念设计的步骤
8.2.2 实体 -联系图
8.2.3 数据抽象, 局部视图的设计
8.2.4 视图的集成
8.3 模块化设计
8.3.1 模块化设计的基本原则
8.3.2 内聚与耦合
8.3.3 模块分解时应遵循的准则
8.4 概要设计的图形工具
8.4.1 层次图
8.4.2 IPO图
目 录
8.5 系统概要设计说明
8.6 运用 Powerdesigner建立概念数据模型
8.7 应用实例
小结
8.1 系统概要设计概述
经过需求分析阶段以后, 已经知道系统
必须, 做什么, 了, 但还不知道系统该, 怎
么做, 。 概要设计的基本目的是要回答, 概
括地说, 系统应该如何做?”这个问题 。 因此,
有时也称概要设计为初步设计或总体设
计 。
8.1.1 软件系统的概要设计
软件系统的生命周期可分为制定计划, 需求分析, 设计, 程序编制,
测试以及运行维护等阶段 。 在软件系统的开发过程中, 经过制定计划,
需求分析阶段后, 软件开发的下一阶段就是进行系统设计 。
系统设计阶段通常可以划分为两个子阶段:概要设计和详细设计 。
概要设计的主要任务是回答, 系统总体上应该如何做?”,即将分析模
型映射为具体的软件系统结构, 进行模块划分, 确定每个模块的功能,
接口以及模块间的调用关系 。 详细设计则将概要设计的结果具体化,
即为每个模块设计实现的细节 。 为了完成系统设计的任务, 系统设计
人员通常根据分析阶段采用的分析方法的不同, 采用不同的设计方法 。
如针对分析阶段系统分析人员采用的分析方法的不同 ( 如面向数据建
模, 面向功能建模或面向对象建模等方法 ), 系统设计的方法也不同
( 相应的有面向数据的设计, 面向功能的设计和面向对象的设计等 ) 。
1,结构化设计方法的设计步骤,
( 1) 数据设计, 数据设计的任务是从分析阶段得到的数据流图和
数据字典出发, 设计出相应的数据结构 。
( 2) 软件结构设计, 软件结构设计的任务是定义系统的主要结构
元素之间的关系, 通常是从数据流图出发, 对数据流图进行分析,
得出软件的层次化模块结构图 。
( 3) 接口设计, 软件结构设计的任务是描述系统内部, 系统与系
统之间以及系统与用户之间如何进行通信, 接口包含数据流和控
制流信息 。
( 4) 过程设计, 过程设计是从分析阶段得到的过程规格说明出
发, 得出系统中各个功能的过程化描述 。
2,面向对象设计方法的设计步骤,
( 1) 对象设计, 把所有的对象都归为各种类, 每个类都定义了一
组数据和方法 。 数据用于表示对象的静态属性, 即描述对象的状
态信息;方法是对象所能执行的操作, 也就是类中所能提供的服
务 。
( 2) 子系统设计, 子系统设计是根据实际系统的需要, 按照子类
( 也称为派生类 ) 和父类 ( 也称为基类 ) 的关系, 可以把若干个
类组成一个层次结构的系统 。
( 3) 消息设计, 消息设计是描述对象之间如何通过传递消息进行
通信, 。
( 4) 方法设计, 从系统的功能模型和行为模型出发, 得出各个类
的方法及其实现细节 。
8.1.2 数据库系统的 概要设计
对于基于结构化的数据库系统开发方法而言, 数据库系统在完成
需求分析之后应进入数据库系统的概要设计阶段, 此阶段不仅需要
进行数据库概念结构设计 ( 也可简称数据库概念设计 ) 工作, 即数
据库结构特性设计;而且还需要确定数据库系统的软件系统结构,
进行模块划分, 确定每个模块的功能, 接口以及模块间的调用关系,
即进行数据库行为特性的设计过程 。
数据库概念结构设计是将系统需求分析得到的用户需求抽象为
信息结构过程 。 只有将系统应用需求抽象为信息世界的结构, 也就
是概念结构后, 才能转化为机器世界中的数据模型, 并用 DBMS实现
这些需求 。
1,数据库概念结构的特点
概念结构是独立于数据库逻辑结构和具体 DBMS所支持的数据库,
其主要特点是,
( 1) 概念模型是对现实世界的一个抽象描述 。
概念模型应能真实, 充分地反映现实世界, 能满足用户对数据的
处理要求 。
( 2) 概念模型应当易于理解 。
概念模型只有被用户理解后, 才可以与设计者交换意见, 参与数
据库的设计 。
( 3) 概念模型应当易于更改 。
由于现实世界 ( 应用环境和应用要求 ) 会发生变化, 这就需要
改变概念模型, 易于更改的概念模型有利于修改和扩充 。
( 4) 概念模型应易于向数据模型转换
概念模型最终要转换为数据模型 。 设计概念模型时应当注意,
使其有利于向特定的数据模型转换 。
2,数据库概念结构设计的方法
概念模型是数据模型的前身, 它比数据模型更独立于机器, 更
抽象, 也更加稳定 。 概念设计的方法有以下 4种,
( 1) 自顶向下的设计方法 。
该方法首先定义全局概念结构的框架, 然后逐步细化为完整的全
局概念结构 。
( 2) 自底向上的设计方法 。
即首先定义各局部应用的概念结构, 然后将它们集成起来, 得到
全局概念结构的设计方法 。
( 3) 逐步扩张的设计方法 。
此方法首先定义最重要的核心概念结构, 然后向外扩充, 生成其
他概念结构, 直至完成总体概念结构 。
( 4) 自顶向下与自底向上相结合的方法 。
最常采用的策略是自底向上的方法, 即自顶向下地进行需求分析,
然后再自底向上地设计概念结构, 其方法如图 8-1所示 。 其中, 概
念模式对应于概念模型 。
概念模式 概念模式 概念模式 概念模式
概念模式 1 概念模式 n
全局概念模式
需求
需求 1 需求 2
需求 1.1 需求 1.2 需求 2.1 需求 2.2
。。。。。
。。。。。
需求分析
概念结构设计
图 8-1 自顶向下的分析需求与自底向上设计概念结构
8.2 数据库的概念设计
结构化系统分析和设计方法学强调系统的功能方面, 其本质是抽
象和功能分解, 如前面章节介绍的数据流图就是一种面向功能的建模
方法, 自 20世纪 70年代中期以来, 数据库管理系统尤其是关系数据库
技术的应用, 使软件系统的开发重心开始向系统的数据部分转移, 而
面向数据的建模方法使用实体 -联系图 ( Entity Relationship Diagram,
也称实体 -关系图, 简称 E-R图 ) 等图形工具来对客观世界进行抽象表
示, 有时也称为实体 -关系建模方法 。 在一个数据库应用系统的设计中,
面向功能的建模方法和面向数据的建模方法应相互参照, 才能使系统
结构特性和行为特性有效地结合起来, 达到系统设计的目标 。
8.2.1 数据库概念设计的步骤
E-R模型工具主要用于描述数据的概念结构 。 最常用的策略是自底向
上的方法, 即自顶向下的需求分析, 然后再自底向上的设计概念结构 。
采取该概念结构的设计步骤按照图 8-2所示的自顶向下分析需求与自底向
上设计概念结构方法 。
数据流图
数据字典
分 E-R图
总 E-R图
数据抽象、局部
视图的设计
视图集成
满意
需求分析
逻辑结构设计
No
Yes
图 8-2 概念结构的设计步骤
8.2.2 实体 -联系图
概念结构设计的结果是数据库的概念模型, 它用 E-R图进行描述 。
E-R图由三个相互关联的部分构成:实体 ( 即数据实体或数据对
象 ), 实体之间的联系以及实体和联系的属性 。
如图 8-3所示,“学生, 和, 课程, 两个实体之间存在多对多的联
系,
m n 选

课程 学生
图 8-3 多对多联系
8.2.3数据抽象、局部视图的设计
概念结构是对现实世界的一种抽象, 即对实际的人, 物, 事和概
念进行人为处理, 抽取人们关心的共同特性, 忽略非本质的细节,
并把这些特性用各种概念精确地加以描述 。 因此, 用自底向上的方
法设计概念结构, 首先要根据需求分析的结果 ( 数据流图, 数据字
典 ) 等对现实世界的数据进行抽象, 设计各个局部视图即分 E-R图 。
设计分 E-R图的步骤是,
1,选择局部应用
2,设计分 E-R图
演示
8.2.4 视图的集成
视图集成就是把设计好的各子系统的分 E-R图综合成一个系统的总
E-R图 。 视图的集成可以有两种方法:一种方法是多个分 E-R图一次
集成, 如图 8-8所示;另一种方法是逐步集成, 用累加的方法一次
集成两个分 E-R图, 如图 8-9所示 。
图 8-8 多个分 E-R图一次集成 图 8-9 多个分 E-R图逐步集成
演示
8.3 模块化设计
把大型软件按照规定的原则划分为一个个较小的, 相对独
立但又相关的模块的设计方法, 叫做模块化设计 。 模块是数据说
明和可执行语句等程序对象的集合, 每个模块单独命名并且可以
通过名字对模块进行访问 。 例如, 过程, 函数, 子程序, 宏等都
可作为模块 。 模块化就是把程序划分成若干个模块, 每个模块完
成一个子功能, 并把这些模块集合起来组成一个整体, 以完成指
定的功能来满足问题的要求 。
8.3.1 模块化设计的基本原则
实现模块化设计的重要指导思想是分解, 信息隐藏和模块独立性 。
1,分解
分解是指将一个待开发的软件分解成若干个小的简单部分 ——模块,
每个模块可独立地开发, 测试, 最后组装成完整的程序 。
2,信息隐藏
信息隐藏是指将每个程序的成分隐蔽或封装在一个单一的设计模块
中, 定义每一个模块时尽可能少地显露其内部的处理 。
3,模块独立性
模块独立是指每个模块完成一个相对独立的特定子功能, 并且与其他
模块之间的联系简单 。 模块独立就是希望每个模块都是高内聚, 低耦合
的 。
8.3.2 内聚与耦合
内聚是对模块内部各成分之间关联程度的度量 。 耦合是模块之间依赖程
度的度量 。 内聚和耦合是密切相关的, 与其他模块存在强耦合的模块通常
意味着弱内聚, 而强内聚的模块通常意味着与其他模块之间存在弱耦合 。
模块划分的原则是强内聚, 弱耦合 。
内聚按强度从低到高有以下几种类型,
? 偶然内聚
? 逻辑内聚
? 时间内聚
? 过程内聚
? 通信内聚
? 顺序内聚
? 功能内聚
耦合按从强到弱的顺序可分为以下几种类型,
?内容耦合
?公共耦合
?控制耦合
?数据耦合
耦合是影响软件复杂程度和设计质量的一个重要因素, 在设
计上应采取以下原则:如果模块间必须存在耦合, 就尽量使用数
据耦合, 少用控制耦合, 限制公共耦合的范围, 坚决避免使用内
容耦合 。 如果模块间若存在多种耦合方式, 它们的耦合类型以耦
合最紧的类别确定 。
8.3.3模块分解时应遵循的准则
在软件分解过程中, 须遵循以下原则,
( 1) 满足信息隐蔽原则 。
( 2) 尽量使得模块的内聚度高, 模块间的耦合度低 。
( 3) 模块的规模适中 ( 通常一个模块以 50~ 100个语句行为宜 )
( 4) 模块的调用深度不宜过大 。
( 5) 模块的扇人应尽量大, 扇出不宜过大 。
( 6) 设计单入口和单出口的模块 。
( 7) 模块的作用域应在控制域之内 。
( 8) 模块的功能应是可以预测的 。
8.4 概要设计的图形工具
一般地, 程序中的一个模块完成一个适当的子功
能 。 在设计软件结构 ( 即由模块组成的层次系统 ) 时,
应该把模块组织成良好的层次系统, 即顶层模块调用
它的下层模块以实现程序的完整功能, 每个下层模块
再调用更下层的模块, 从而完成程序的一个子功能,
最下层的模块则完成最具体的功能 。 软件结构可以用
层次图或结构图来描绘 。
8.4.1 层次图
层次图是在概要设计 ( 也称总体设计 ) 阶段最常使用的图形
工具之一, 它常用于描绘软件的层次结构 。 层次图中的每个方框
代表一个模块, 方框间的连线表示模块间的调用关系 。
如图 8-19所示是层次图的一个例子 。
图 8-19 成绩管理系统层次图
成绩管理系统
查询 打印报表





































录入成绩
8.4.2 IPO图
IPO图 ( input process output图 ) 输入 —处理 —输出图是在层
次结构图的基础上推出的一种描述系统结构和模块内部处理功能
的工具 。 在总体设计, 详细设计, 设计, 评审, 测试和维护的不
同阶段, 都可以使用 IPO图对设计进行描述 。 如下图所示的 IPO图,
模块名称,
模块编号,
设计人,
直接调用本模块的上级模块名称,
本模块直接调用的模块名称,
输入,
输出,
与本模块相直接关联的数据结构 ( 数据库, 数据文卷 ),
处理描述,
8.5 系统概要设计说明
系统概要设计说明书的主要内容, 如下所示,
1,引言
简述该系统的名称, 目的, 功能, 背景, 工作条件, 参考和引用资料 。
2,系统总体设计方案
2,1模块设计
列出系统中各主要功能模块的名称, 实现的功能和与其他功能模块的之间的关系 。
2,2编码设计
说明编码的方式和种类 。
2,3输入设计
列出系统所有的输入项目, 输入的承担者, 主要功能要求, 输入要求和简述输入校验所用的数据校验法和效果 。
2,4输出设计
列出系统所有的输出项目, 输出的接受者, 主要功能要求和简述输出要求 ( 输出数据类型及所用的设备介质, 格式,
数值范围, 精度等 ) 。
3,数据库结构设计
3,1概述
简述系统目的, 数据库系统实现的主要功能, 运行环境要求 。
3,2逻辑结构设计
简要说明本系统内所使用的数据结构中, 有关数据项, 记录, 文件的标识, 定义, 长度及它们之间的相互关系 。
4,安全保密设计
5,系统出错处理设计
5,1出错信息
5,2补救措施
如设置后备, 性能降级, 恢复及再启动等
8.6运用 Powerdesigner建立概念数据模型
在数据库应用系统的设计中采用数据库设计工具和 CASE工具,
可以提高数据库设计质量并减少设计工作量 。 PowerDesigner的
概念数据模型 ( Conceptual Data Model,简称 CDM) 以实体 —联
系 ( Entity-Relationship,简称 E-R) 理论为基础, 并对这种理
论进行了扩充, 建立了概念数据模型 。
CDM把现实世界中的信息简化为实体与实体之间的联系, 它
与数据库管理系统 DBMS无关 。
演示
工具栏 菜单栏 图表窗口
树型模型浏览器 输出窗口 结果列表
8.7 应用实例
天顺公司的, 档案管理系统, 经过项目立项, 可行性分
析, 项目开发计划, 需求分析之后需进行系统的概要设计
过程和编写, 系统概要设计说明书, 。 以便为系统下阶段
的详细设计做好准备 。
龙翔软件开发公司的林益波花了约二周时间, 在经过
对, 系统需求规格说明书, 的分析, 与有关人员的交流等
工作后, 编写了天顺公司人事档案管理系统的, 系统概要
设计说明书, 并提交到项目组进行评审 。
演示
小结
数据库系统在完成需求分析之后应进入数据库系统的概要设计阶段, 此
阶段不仅需要进行数据库概念结构设计, 即数据库结构特性设计;而且还需
要进行数据库行为特性的设计 。 概念结构是独立于数据库逻辑结构和具体
DBMS所支持的数据库, 它是对现实世界的一个抽象描述 。 概念设计的方法有
自顶向下, 自底向上, 逐步扩张和自顶向下与自底向上相结合的方法 。
在数据库系统的概要设计阶段还需确定软件系统结构, 进行模块划分,
确定每个模块的功能, 接口以及模块间的调用关系 。 其中, 实现模块化设计
的重要指导思想是分解, 信息隐藏和模块独立性 。 模块独立性就是希望每个
模块都是高内聚, 低耦合 。
层次图是在概要设计阶段最常使用的图形工具之一,它
常用于描绘软件的层次结构。 IPO图是在层次结构图的基础上
推出的一种描述系统结构和模块内部处理功能的工具,它包括
输入、处理、输出,以及与之相应的数据库文件在总体结构中
的位置等信息。
数据库系统概要设计阶段完成后,需提交系统的概要设计
说明报告,作为系统进一步实现的基础。
习 题
1,数据库系统的概要设计阶段不仅需要进行数据库结构特性设计, 而且还需要进行 ___________________。
2,概念设计的方法有 ____________,____________,___________和自顶向下与自底向上相结合的方法 。
3,采用自底向上设计概念结构方法时, 通常可分为两步:第一步是抽象数据并设计局部视图;第二步是集成局部视图, 得到 ___________。
4,各个分 E-R图之间的冲突主要有 ____________,___________和结构冲突 。
5,模块化设计的重要指导思想是 ____________,___________和模块独立性 。
6,内聚是对模块内部各成分之间关联程度的度量 。 内聚有偶然内聚, ___________,_____________,___________,____________,___________
和功能内聚等几种类型 。
7,耦合表示模块之间相互依赖的程度, 是对模块之间相互依赖程度的度量 。 耦合可分为内容耦合, ___________,_____________和数据耦合等几
种类型 。
8,IPO图包括 ____________,____________,___________,以及与之相应的数据库文件在总体结构中的位置等信息 。
9,实践
请对餐厅管理信息系统进行概要设计和编写, 概要设计说明书, 。