第 9章 数据库系统的详细设计
教材:数据库技术及应用 2006年 4月
宁可、吴菁、胡海编著
本章要点
? 系统详细设计概述
? 数据库的逻辑设计
? 数据库的物理设计
? 详细设计的工具
? 用户界面设计
? 系统详细说明
? 运用 Powerdesigner建立物理数据模型
目 录
9.1 系统详细设计概述
9.1.1 软件系统的详细设计
9.1.2 数据库系统的详细设计
9.2 数据库的逻辑设计
9.2.1 数据库逻辑设计的过程
9.2.2 关系数据库的逻辑设计
9.3 数据库的物理设计
9.3.1 获取数据库系统事务对象的基本信息
9.3.2 确定数据库的存取方法
9.3.3 确定数据库的存储结构
9.3.4 数据的物理结构评价
9.4 详细设计的工具
9.4.1 程序流程图
9.4.2 IPO图
目 录
9.5 用户界面设计
9.5.1 用户界面应具备的特性
9.5.2 用户界面的类型
9.5.3 数据输入界面设计
9.5.4 数据显示界面设计
9.5.5 控制界面的设计
9.6 系统详细设计说明
9.7 运用 Powerdesigner建立物理数据模型
小结
9.1系统详细设计概述
系统概要设计确定了软件系统的总体结构,
详细设计则对概要设计结果进一步细化, 即
把一个模块的功能逐步分解细化为一系列具
体的处理步骤, 并给出目标系统的精确描述,
以便在编码阶段直接翻译成计算机的程序代
码 。
9.1.1 软件系统的详细设计
1,详细设计的目标与任务
(1) 详细设计的目标
详细设计阶段将具体地设计目标系统, 得出新系统软件的详细
规格 。 同时, 要求设计出的规格简明易懂, 便于下一阶段用某
种程序设计语言在计算机上实现 。
(2) 详细设计的任务
① 算法过程的设计
② 数据结构的设计
③ 数据库物理设计
④ 测试用例的设计
⑤ 其他设计
⑥ 编写, 详细设计说明书,
2,详细设计的原则
(1) 自顶向下, 逐步求精 。
(2) 采用结构化程序设计方法, 改善控制结构 。
结构化程序设计的三种结构, 如图 9-1所示 。




图 9-1 结构化程序设计的三种结构
顺序结构 选择结构 循环结构
9.1.2 数据库系统的详细设计
对于基于结构化的数据库系统开发方法而言, 数据库系统
在完成需求分析, 概要设计阶段后, 需进行数据库系统的详细
设计工作, 此阶段不仅需要完成对数据库系统的处理过程的详
细算法描述和输入输出格式设计, 而且还需要进行数据库逻辑
结构设计和数据库物理结构设计 ( 也可简称为数据库物理设计 )
工作 。
1,数据库逻辑结构设计
数据库逻辑结构设计是将一个与计算机软硬件具体性能无关
的, 也不为任何一个 DBMS所支持的全局概念模式 ( 概念模型结
构 ) 转换成某个具体 DBMS所支持的数据模型 。
2,数据库物理结构设计
数据库物理结构设计是依据给定的计算机系统, 为逻辑数据模
型选取一个最适合应用环境的物理结构, 包括数据的存储结构
和存取方法 。
9.2 数据库的逻辑设计
数据库逻辑设计的任务是将概念模型结构
转换成某个具体 DBMS所支持的数据模型,
以便开始进入, 实现设计, 阶段, 因此数据
库逻辑设计阶段需要考虑到具体 DBMS的性
能和具体的数据模型特点 。
9.2.1 数据库逻辑设计的过程
数据库逻辑设计的过程就是概念数据模型向逻辑数据模型的转换过程 。 通常把概念
数据模型向逻辑数据模型的转换过程分为如下几步进行,
? 把概念数据模型转换成一般的数据模型 。
? 将一般的数据模型转换成某个具体 DBMS所支持的数据模型 。
? 通过优化方法将其转化为优化的数据模型 。
概念数据模型向逻辑数据模型的转换步骤, 如图 9-2所示 。
概念数据模型
(E-R图 )
一般数据模型
(关系、网状、层次 )
特定的 DBMS
支持的数据模型
优化的
数据模型
转换规则
DBMS限制和特点
有化方法
图 9-2 概念数据模型向逻辑数据模型的转换的三个步骤
9.2.2 关系数据库的逻辑设计
概念数据模型向关系数据模型的转换步骤如下,
1,初始关系模式的设计
首先, 从概念结构设计阶段得到的综合 E-R图出发, 导出初始关系模式来,
具体转换原则如下,
(1) 一个实体转换为一个关系模式, 实体的属性就是关系的属性, 实体的关键
字就是关系的关键字 。
(2) 一个 1,1的联系转换为一个关系, 则与该联系相连的各实体的关键字以
及联系本身的属性均转换为关系的属性, 每个实体的关键字是该关系的候选
关键字 。
(3) 一个 1,n的联系转换为一个关系, 则与该联系相连的各实体的关键字以
及联系本身的属性均转换为关系的属性, 而 n端实体的关键字是关系的关键字 。
(4) 一个 m,n联系转换为一个关系 。 则与该联系相连的各实体的关键字以及
联系本身的属性均转换为关系的属性, 联系两端各实体关键字的组合组成关
系的关键字 ( 组合关键字 ) 。
2,关系数据库逻辑结构的设计
检查数据库关系模式是否满足用户的要求, 如疏漏的要新增关系
或属性, 如性能不好的要采用合并, 分解或选用另外结构等 。
(1) 合并
合并可以减少系统的关系个数, 合并的方法如下,
① 一个 1,1的联系可以与任意一端对应的关系模式合并 。
② 一个 1,n的联系可与 n端对应的关系模式合并 。
③ 具有相同关键字的关系模式可以合并 。
(2) 分解
关系模式虽已达到规范化, 但因某些属性过多时, 可将它分解成
两个或多个关系模式, 其中按属性组分解的称为垂直分解 。 垂直
分解要注意, 最后得到的每一关系都包含主关键字 。
3,关系数据模型的优化
关系数据库模型的优化通常以规范化理论为指导, 即消除异常,
保证数据的完整性和一致性, 一般达到 3NF( 第三范式 ) 。 此外,
在关系数据模型的评价与优化过程中, 还需注意以下几点,
(1)并不是规范化程度越高的关系就越优 。
(2) 对关系数据模型的优化是一个反复的过程, 即需要经过多
次的规范化, 合并, 分解的过程 。
9.3 数据库的物理设计
数据库物理设计的目标和设计步骤如下,
1,数据库物理设计的目标
? 提高数据库的性能, 特别是满足主要应用的性能要求 。
? 有效地利用存储空间 。
2,数据库物理设计的步骤
? 获取数据库系统事务对象的基本信息 。
? 确定数据的物理结构, 即确定数据库的存取方法和存储结构 。
? 数据的物理结构评价 。
9.3.1获取数据库系统事务对象的基本信息
为了使设计出的物理数据库结构能满足事务在数据库上运行时响应
时间少, 存储空间利用率高和事务吞吐率大的要求 。 有必要在确定数
据的物理结构前, 对数据库系统运行的事务进行详细地分析, 以获取
选择优化数据库物理设计策略所需要的参数 。
需要获取的参数有,
1,数据库查询事务
2,数据库更新事务
3,每个事务在各关系上运行的频率和性能要求 。
9.3.2 确定数据库的存取方法
为关系模式选择存取方法的目的是, 使事务能快速存取数据库中
的数据和满足多用户共享数据的要求 。 任何数据库管理系统都提
供多种存取方法 。 对于关系数据库而言, 一般常用的存取方法有
索引方法, 聚簇方法和 HASH方法等 。
1,索引方法
选择索引存取方法实际上就是根据应用要求确定对关系的哪
些属性列建立索引, 哪些属性列建立组合索引, 哪些索引建立唯
一索引等 。 索引的选择是数据库物理设计的基本问题之一, 也是
比较困难的问题 。 在选择索引过程中, 除了需遵循选择索引方法
的基本原则外, 还有一些选择索引的启发式规则可供参考 。
2,聚簇方法
为了提高某个属性或属性组的查询速度, 把这个属性或属性组上具有相
同值的元组集中存放在连续的物理块上的处理称为聚簇, 这个属性或属性
组称为聚簇码 。
(1) 建立聚簇的必要性
聚簇功能可以大大提高按聚簇码进行查询的效率 。
(2) 建立聚簇的基本原则
一个数据库可以建立多个聚簇, 但一个关系只能加入一个聚簇 。
设计候选聚簇的原则是,
① 对经常在一起进行连接操作的关系可以建立聚簇 。
② 如果一个关系的一组属性经常出现在相等, 比较条件中, 则该单个关
系可建立聚簇 。
③ 如果一个关系的一个 (或一组 )属性上的值重复率很高, 则此单个关系可
建立聚簇 。
④ 如果关系的主要应用是通过聚簇码进行访问或连接, 而其他属性访
问关系的操作很少时, 可以使用聚簇 。
9.3.3 确定数据库的存储结构
确定数据的存放位置和存储结构要综合考虑存取时间, 存储空间利
用率和维护代价三方面的因素 。 这三个方面常常相互矛盾, 需要进行
权衡, 选择一个折中方案 。
1,确定数据的存放位置
为了提高系统性能, 应该根据应用情况将数据的易变部分与稳定
部分, 经常存取部分和存取频率较低部分分开存放 。 对于有多个磁盘
的计算机, 可采用划分技术, 提高 I/O的并行性 。
2,确定系统配置
每个 DBMS产品一般都提供了一些系统配置变量和存储分配参数供
设计人员和 DBA对数据库进行物理优化 。 在初始情况下, 系统都为这
些变量赋予了合理的缺省值 。 但是这些缺省值不一定适合每一种应用
环境 。 在进行数据库的物理设计时, 还需要重新对这些变量赋值, 以
改善系统的性能 。
演示
9.3.4 数据的物理结构评价
物理设计过程中需要对时间效率, 空间效率, 维护代价和各
种用户要求进行权衡, 其结果可能会产生多种设计方案 。 数据库
设计人员必须对这些方案进行详细地评价, 从中选择一个较优的
方案作为数据库的物理结构 。 评价物理数据库的方法完全依赖于
所选用的 DBMS,主要是从定量估算各种方案的存储空间, 存取时
间和维护代价入手, 对估算结果进行权衡和比较, 选择出一个较
优的, 合理的物理结构 。 如果该结构不符合用户需求, 则需要修
改设计 。 的 。
9.4 详细设计的工具
描述程序处理过程的工具称为详细设计的工具, 它们可以采用图
形 ( 如程序流程图, 盒图等 ), 表格 ( 如判定表 ), 语言 ( 如伪代
码语言 ) 等工具 。 每种工具都有优缺点, 在设计时可针对不同的情
况选用, 甚至可以同时采用多种工具来描述设计的结果 。 但不论是
哪类工具, 对它们的基本要求都是能提供对设计的无歧义的描述,
也就是应该能指明控制流程, 处理功能, 数据组织以及其他方面的
实现细节, 从而在编码阶段能把对设计的描述直接翻译成程序代码 。
本节主要对程序流程图和 IPO图进行介绍, 其中 IPO图不仅可用
于系统的概要设计, 也可用于系统的详细设计 。
9.4.1 程序流程图
程序流程图也称程序框图, 是软件开发者最熟悉的一种算法表
达工具 。 程序流程图绘制简单, 方框表示处理, 菱形表示逻辑条件,
箭头表示控制流方向 。 图 9-8显示了顺序, 选择, 重复三种基本流
程控制结构对应的流程图 。
图 9-8 三种基本流程控制结构的流程图


值 1 值 2 值 3 值 4
。。。

( a)顺序 ( b)两路选择 ( c)多路选择




( d)先判断条件循环 ( e)后判断条件循环
9.4.2 IPO图
IPO图 ( 输入 — 处理 — 输出图 ), 是一种描述系统结构和模块
内部处理功能的工具 。 可用于总体设计, 详细设计, 设计, 评审,
测试和维护的不同阶段 。
图 9-9 用于对模块进行详细描述的 IPO图
9.5 用户界面设计
用户界面提供了计算机与用户之间的信息接口 。 用
户界面设计是软件设计的重要内容之一, 也是用户能
否正确, 高效地完成任务的因素之一, 用户界面设计
的优劣可以反映出系统分析与设计的水平 。
9.5.1 用户界面应具备的特性
用户界面应具备可使用性, 灵活性和可靠性 。
1,可使用性
(1) 使用的简单性
(2) 术语标准化和一致性
(3) 快速的系统响应和低的系统成本
(4) 用户界面应具有容错能力
2,灵活性
(1) 算法的可隐可显性
(2) 用户可以根据需要制定和修改界面方式
(3) 足够的响应信息
3,复杂性和可靠性
用户界面的规模和组织的复杂程度就是界面的复杂性 。 界面的可靠性是指无故障
使用的间隔时间 。
(1) 在完成预定功能的前提下, 应当使得用户界面越简单越好 。
(2) 用户界面应能保证用户正确, 可靠地使用系统, 保证有关程序和数据安全性 。
9.5.2 用户界面的类型
1,命令语言控制界面 。
2,问答式界面
3,菜单界面
4,表单界面
5,图形用户界面 (GUI)
9.5.3 数据输入界面设计
数据输入界面的目标是尽量简化用户的工作, 并尽可能地减少输入的出
错率和尽可能增加数据自动输入 。 一般地, 对于大部分的数据输入常采用
表单界面方式 。 以下是设计表单输入界面的 5条指导原则,
1,使得表单容易输入数据 。
2,确保表单满足设计目标 。
3,设计的表单要能保证用户准确完成数据输入 。
4,设计的表单要简洁和保持一致性 。
5,设计的表单要有吸引力 。
9.5.4 数据显示界面设计
数据显示界面包括屏幕查询, 文件浏览, 图形显示和报告 。 在显示内容及显示结构
的合理布局方面应遵循如下准则 。
1,选择显示内容应遵循的准则,
(1) 输出要满足预定的目标, 符合用户要求, 与用户需求无直接关系的一律省略 。
(2) 在一起使用的数据应显示在一起 。
(3) 显示出的数据应与用户执行的任务有关 。
(4) 合适的输出数量 。
2,内容结构的合理布局应遵循的准则,
(1) 以某种逻辑方式进行数据分组 。
(2) 尽可能设计出能满足多数用户需求的输出格式 。
(3) 用表单及列表方式组织数据, 以助于了解数据间的相关性 。
(4) 图形化显示数据, 可直观的了解数据的抽象特性 。
(5) 提供适当的标题, 栏题以及其他提示信息 。
(6) 保持良好的显示风格和美观的界面 。
此外, 还应遵循用户的习惯和特殊要求 。
9.5.5 控制界面的设计
设计控制界面的主要目的是让用户
能够主动地控制计算机上软件系统的
工作, 使得用户能够很容易地访问计
算机的各种设备 。 其主要方式有控制
对话, 菜单, 功能键, 图标, 直接指
点, 窗口, 命令语言和自然语言等 。
9.6 系统详细设计说明
系统详细设计说明书的主要内容, 如下所示
1,引言
1,1编写目的
1,2项目背景
,3定义
列出文档中所用到的专门术语的定义和缩写词的原意 。
1,4参考资料
可包括,
,项目的计划任务书, 合同或批文;
,项目开发计划;
,需求规格说明书;
,概要设计说明
,测试计划及用户操作手册初稿;
,文档中所引用的其他资料、软件开发标准或规范。
2,总体设计
2,1需求概述
2,2软件结构
3,程序描述
逐个模块给出以下的说明,
3,1功能
3,2性能
3,3输入项目
3,4输出项目
3,5算法
3,6程序逻辑
详细描述模块实现的算法, 可采用,a,标准流程图; b,PDL语言; c,NS图; d,PAD; e,判定表等描述算法的图表 。
3,7接口
3,8存储分配
3,9限制条件
,10测试要点
给出测试模块的主要测试要求 。
9.7运用 Powerdesigner建立物理数据模型
本节主要介绍 PowerDesigner中物理数据模型 ( Physical Data Model,
简称 PDM) 的基本概念与建立物理数据模型的方法 。
图示,PDM与 DBMS之间的关系
PDM中的主要概念
演示
9.8 应用实例
天顺公司的, 天顺公司人事档案管理系统, 经过
项目立项, 可行性分析, 项目开发计划, 需求分析,
概要设计后, 需进行系统的详细设计过程和编写
,系统详细设计说明书, 。 以便为系统实施阶段做
好准备 。
龙翔软件开发公司的林益波花了约三周时间,
在经过对, 系统概要设计说明书, 的分析后, 编写
了该系统的, 系统详细设计说明书, 并提交到项目
组进行评审 。
演示
小结
数据库系统的详细设计是对数据库系统概要设计的进一步细化, 它不仅包括
对概要设计阶段得到的每个功能模块进行细化, 而且也包括数据库的逻辑结
构设计和物理结构设计 。 功能模块的细化一般采用自顶向下逐步求精的方法,
把一个模块的功能逐步分解细化为一系列具体的处理步骤;数据库逻辑结构
设计是将一个与计算机软硬件具体性能无关的, 也不为任何一个 DBMS所支持
的全局概念模式 ( 概念模型结构 ) 转换成某个具体 DBMS所支持的数据模型;
数据库的物理结构设计是依据给定的计算机系统, 为逻辑数据模型选取一个
最适合应用环境的物理结构, 包括数据的存储结构和存取方法 。
描述程序处理过程的详细设计工具有图形、表格、语言等。每种工具
都有优缺点,在设计时可针对不同的情况选用,甚至可以同时采用多种
工具来描述设计的结果。其中,程序流程图也称程序框图,是软件开发
者最熟悉的一种算法表达工具。它的特点是独立于任何一种程序设计语
言,比较直观、清晰,易于学习掌握,是软件开发者比较普遍采用的一
种工具。 IPO图即可用于系统概要说明阶段也可用于系统详细设计阶段
的模块描述。
系统详细设计阶段需给出目标系统的精确描述,在详细设计完成后
应编写系统详细设计说明书。
习 题
1,数据库逻辑结构设计是将一个与计算机软硬件具体性能无关的, 也不为任何一个 DBMS所支持的 _______________转换成某个具体 DBMS所支持
的数据模型 。
2,数据库物理结构设计是依据给定的计算机系统, 为逻辑数据模型选取一个最适合应用环境的物理结构, 包括 ___________和存取方法 。
3,关系数据库模型的优化通常以规范化理论为指导, 即消除异常, 保证数据的 ________和一致性, 一般达到 __________范式 。
4,设计出的物理数据库结构能满足事务在数据库上 ____________,___________和事务吞吐率大的要求 。
5,对于关系数据库而言, 一般常用的存取方法有 ____________,___________和 HASH方法等 。
6,数据输入界面的目标是尽量简化用户的工作, 并尽可能地减少输入的出错率和尽可能增加数据自动输入 。 一般地, 对于大部分的数据输入常采
用 ___________界面方式 。
7,实践
请对餐厅管理信息系统进行详细设计和编写, 详细设计说明书, 。