第六章
系 统 设 计
实例 2——病人监护系统
实例 2——病人监护系统
本实例说明改进模块结构图的过程,
在改进过程中运用了一些 SC优化技巧。
?问题描述
?初始 SC
?SC的改进
?进一步优化
?总结
1 问题描述
本系统 MNPA是某医院的一个病人监护系统,
其功能如下:
所有的病人都由专门的设备进行监视,设备同病
床相连,这些设备可以测量病人的脉搏、体温、血压、
呼吸 …… 等项目(下面称这些项目为因素)。系统每
过一定的时间间隔从监视设备读入上述因素,并把它
们存入数据库中。医生为每个病人指定了各种因素的
安全范围(如 312号病人的体温安全范围是 36。 C~38.5。
C),如果系统发现某个因素值越出安全范围,或发现
某个监视部件有故障,则向护理站发出通知:如果是
因素越限则报告病人号;如果是监视部件故障则报告
床位号。
1 问题描述 (续 )
监视部件故障:
? 两种可能的设备故障
监视设备读出的数据由七个因素值及一个硬
件故障标志字组成。
1)硬件故障标志字:七个二进制位,说明测量
这七个因素的硬件是否有效(如:某个硬件
单元是否已接入电路中)
如,1110101 表示第 4,6个硬件故障,其
测出的因素值无效 1-有效 0-无效
1 问题描述 (续 )
监视部件故障 (续 ):
2)设备软件故障:即监视设备测出的因素值不
合理(如:体温测出 52。 C的不合理值等)。
? 故障处理
?在硬件故障标志字指出硬件无效或软件检
查出因素值不合理时,都应 作为监视设备
故障向护理站报告
?将这些因素值 存入数据库时应加上标志,
指出它们是无效的
1 问题描述 (续 )
数据存储:
数据库中的数据应该 可以按病人号进行
检索 。各因素是相互无关的,其格式和
长度均不相同。在数据库中,不必标出
个因素值是否安全 。
注:因素值无效与因素值安全是两个概念。
比如体温为 39。 C是有效的,却是不安全的。
病人监护系统
处理因素值检查因素值获得因素值
检查不合理
因素值
读取病床
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Pn,
Factors,EOF
Error Flags
Factors,
Safe Ranges
Error Flags
Unsafe Flags,
Error Flags
Pn,Factors,
Error Flags
Pn,
Factors,
Error Flags,
Unsafe Flags
Pn,Bednum
EOF
Factors,
Error Flags
Pn,Factors
Error FlagsBednum
PnFactors
Error
Flags2
Unsafe
Flags
Safe
Ranges
Pn,Factors
Unsafe FlagsPn,
Error
Flags
参数说明,Pn-病人号 Bednum-病床号 Factors-七个因素值
SafeRanges-因素安全值范围 EOF-本次巡视已处理过最后一个病人信息
Error Flags2-各因素值是否合理 UnsafeFlags-因素值是否安全
* ErrorFlags-硬件故障标志字;设备故障标志字
2 初始结构图
2 初始结构图 (续 )
这个初始模块结构图是一位经验不足的
设计员,根据经验和直观想象直接得出
的。所以可改进的余地还很大。
2 初始结构图 (续 )
? 模块,检查因素值,调用三个下层模块分别
完成三个功能:
1)查出不合理的因素值(‘ 检查因素值 ’模
块中再将 Error Flags2和硬件故障标志字合并
成设备故障标志 Error Flags)
2)查出某病人的因素安全值范围
3)决定病人的因素值是否安全
? 模块,处理因素值,将数据存入数据库,并
在发现不安全因素或设备故障时通知护理站
3 结构图的改进
使用技巧,
? 减少块间联系,主要是减少模块之间传送的
参数个数
? 消除“管道性”模块
? 消除重复的功能
? 如果一个模块篇幅较大,可考虑分解
? 如果一个模块篇幅较小,可考虑同其调用模
块合并
? 要考虑将来可能发生的变化和扩充
3 结构图的改进 (续 )
病人监护系统
处理因素值检查因素值获得因素值
检查不合理
因素值
读取病床
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Pn,
Factors,EOF
Error Flags
Factors,
Safe Ranges
Error Flags
Unsafe Flags,
Error Flags
Pn,Factors,
Error Flags
Pn,
Factors,
Error Flags,
Unsafe Flags
Pn,Bednum
EOF
Factors,
Error Flags
Pn,Factors
Error FlagsBednum
PnFactors
Error
Flags2
Unsafe
Flags
Safe
Ranges
Pn,Factors
Unsafe FlagsPn,
Error
Flags
缺少
Bednum
3 结构图的改进 (续 )
改进一:
减少块间联系,主要是减少模块之间传送的
参数个数,简化模块之间的界面
分析:,病人监护系统” ——―处理因素值”的界面
1) ―处理因素值”接收的参数 unsafe flags,除了“报
告不安全因素”要用到,其另两个下层模块不必用
到这一参数;且“报告不安全因素”不返回任何参
数给“处理因素值” ;“报告不安全因素”所需的
参数在主模块“病人监护系统”中都有;所以将它
改成由主模块直接调用。这样又可简化 unsafe flags
这一参数。
3 结构图的改进 (续 )
分析:,病人监护系统” ——―处理因素值”的界面
2) 同理,主模块可以直接调用“存入数据库”,这样,
主模块“病人监护系统”与“处理因素值”的界面
又可以消去 Factors这一参数。
3 结构图的改进 (续 )
分析:,病人监护系统” ——―处理因素值”的界面
3) 现在,“处理因素值”的功能仅仅是调用“报告错
误设备”,所以它可以合并到主模块中去。
3 结构图的改进 (续 )
分析:,病人监护系统” ——―处理因素值”的界面
说明 ——
―处理因素值”模块并没有做什么实质性的工作,
而只是像“管道”一样,将一些参数从主模块传送
到它的几个下层模块,而这些模块完全可以由主模
块直接调用。
3 结构图的改进 (续 )
改进二,消除重复的功能
分析:,报告错误设备”模块
1) ―报告错误设备”模块应该向护理站报告故障设备
的床位号而不是病人号,所以应该在这个模块中包
含从病人号查出床位号的功能。而模块“读取病人
信息”已经含有这个功能。所以可把它提供的
BedNum参数回送给主模块,再由主模块传送给
“报告错误设备”模块,但这样增加了块间联系。
如果改为由“读取病床因素值”直接调用“报告错
误设备”,则可将传送给主模块的参数 BedNum消
去,可减少块间联系。
3 结构图的改进 (续 )
分析:,报告错误设备”模块
2) 又因为无论是硬件故障或者测得的因素值不合理,
都应作为设备故障通知护理站,所以应在通知护理
站之前调用“检查不合理因素值”,于是改为由
“读取病床因素值” 直接调用“检查不合理因素
值” 。这样一来,也简化了“检查因素值”的界面,
因为它不必再回送 Error Flags了。
3 结构图的改进 (续 )
病人监护系统
检查因素值获得因素值
检查不合理
因素值
读取病床
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Pn,
Factors,EOF
Error Flags
Factors,
Safe Ranges
Error Flags
Unsafe Flags,
Error Flags
Pn,Factors,
Error Flags
Pn,Bednum
EOF
Factors,
Error Flags
Pn,Factors
Error Flags
Bednum
Pn
Factors Error Flags2
Unsafe
Flags
Safe
Ranges
Pn,Factors
Unsafe Flags
Bednum,
Error Flags
3 结构图的改进 (续 )
检查因素值获得因素值
检查不合理
因素值
读取病床
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Factors,
Safe Ranges
Error FlagsPn,BednumEOF Factors,Error Flags
Bednum
Pn
Factors
Error
Flags2
Unsafe
Flags
Safe
Ranges
Bednum,
Error Flags
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
改为‘获得
病人因素值’
独立出来形成
‘获得病床因素
值’
3 结构图的改进 (续 )
检查因素值获得因素值
获得病床
因素信息
获得病人
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Factors,
Safe Ranges
Error FlagsPn,EOF Factors,Error Flags Pn
Bednum
Unsafe
Flags
Safe
Ranges
Factors,
Error Flags
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
Bednum,
Error Flags
Line
Line Line
Unsafe
Factor,
Factor Type
检查不合理
因素值
Factors Error Flags2
篇幅小,
可往上
层合并
3 结构图的改进 (续 )
分析:,报告错误设备”模块
3) ―报告错误设备”和“报告不安全因素”都需要为
护理站打印一些信息。为了消除重复的功能,也为
了在将来护理站或打印设备情况有改变的时候不必
牵涉到两个模块的修改,可以将这一功能抽出,形
成一个新的模块“在设备上输出一行”,使得“报
告错误设备”和“报告不安全因素”都调用此模块。
3 结构图的改进 (续 )
改进三,模块的分解
分析:,报告不安全因素”模块
考虑到该模块的篇幅可能较大,可以把“产生一行
通知”的功能单独抽出来,形成其调用的一个下层
模块。
3 结构图的改进 (续 )
改进四:模块独立性的考虑 ( 简化联系、
分解、模块复用、合并 )
分析:,读取病床因素值”模块
1)简化联系 ——考虑使“读取病床因素值”包括从
病人号查床位号的功能,则“读取病人信息”的界
面中就可以消去 BedNum这个参数,从而减少块间
联系。
3 结构图的改进 (续 )
分析:,读取病床因素值”模块
2)分解 ——考虑到“读取病床因素值”这个模块本
身的篇幅已不小,所以将“从病人号查床位号”的
功能由它的一个下层模块来完成。此外,为了使模
块名恰当地反映模块的功能,应将“读取病床因素
值”改名为“获得病人因素值”。
说明:病人信息指基本信息,如姓名、性别等
病人因素值指病人疾病信息,如血压、体温等。
3 结构图的改进 (续 )
分析:,读取病床因素值”模块
3)功能模块的独立性与复用 ——现在,根据某个床
位号从监视设备读入相应因素的一段程序是隐含在
模块“获得病人因素值”中的,但是设备检修人员
可能要在其他系统中使用这段程序( 模块复用 ),
他们关心的是某床位的设备如何,而不管床上是否
有病人,或病人是谁。所以这段程序还是抽出来,
单独组成一个模块“获得病床因素信息”较好。
3 结构图的改进 (续 )
分析:,读取病床因素值”模块
4) 模块的合并 ——现在,“获得病床因素信息”和
“检查不合理因素值” 篇幅都不长,可以将后者合
并到前者。
3 结构图的改进
(续 )
检查因素值获得因素值
获得病床
因素信息
获得病人
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Factors,
Safe Ranges
Error FlagsPn,EOF
Factors,
Error Flags Pn
Bednum
Unsafe
Flags
Safe
Ranges
Factors,
Error Flags
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
Bednum,
Error Flags
Line
Line
Line
Unsafe
Factor,
Factor Type
病人监护系统
Pn,
Factors,EOF
Error Flags Unsafe
Flags
Pn,Factors,
Error Flags
Pn,
Factors,
Error Flags
Pn,
Factors,
Unsafe Flags
检查因素值获得因素值
获得病床
因素信息
获得病人
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错误设备
报告
不安全
因素
Factors,
Safe Ranges
Error FlagsPn,EOF Factors,Error Flags Pn
Bednum
Unsafe
Flags
Safe
Ranges
Factors,
Error Flags
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
Bednum,
Error Flags
Line
Line Line
Unsafe
Factor,
Factor Type
Unsafe Flags Pn,Factors,
Unsafe Flags
改为‘输出不
安全因素值’
3 结构图的改进 (续 )
改进五,简化联系
分析:,检查因素值”和“报告不安全因素”模块
改为由“检查因素值”直接调用“报告不安全因
素”,则可以消去参数 Unsafe Flags。这又可以减
少块间联系。此时,将“检查因素值”改名为“输
出不安全因素值”。
3 结构图的改进 (续 )
改进六:其他 (一种典型的改进情况 )
分析:,报告错误设备”模块
考虑由“获得病床因素信息”来调用“报告错误设
备”。在某个故障设备的修理期间,这个程序模块将
重复地向护理站报告该设备已坏。这是令人讨厌的。
如果改由,获得病人因素值”调用“报告错误设备”
模块,则会灵活一些。
这种情况是 较典型 的:
如果一个模块检测出错误后,
1)要报告错误信息; 2)要将一个出错标志回送给它
的调用模块
不如改为由调用模块按出错标志的值决定是否要报
告错误信息更灵活、更清楚些。
3 结构图的改进
(续 )
输出不安全因素值获得因素值
获得病床
因素信息
获得病人
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Factors,
Safe Ranges
Error Flags
Pn,EOF
Factors,
Error Flags Pn
Bednum
Unsafe
Flags
Safe
Ranges
Factors,
Error Flags
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
Bednum,
Error Flags
Line
Line Line
Unsafe
Factor,
Factor Type
病人监护系统
Pn,
Factors,EOF
Error Flags Pn,Factors,
Error Flags
Pn,
Factors,
Unsafe Flags
Pn,
Factors,
Error Flags
4 结构图的进一步优化
改进七:考虑系统将来的变化与扩充
结构图中许多模块界面都带有参数 Factors和
Error Flags,这两个参数表示了七个不同类型、
不同长度、相互无关的因素及它们的错误标志,
共 14个数据项。因此,多个模块中均包含与因
素的个数、格式、长度有关的程序。 一旦将来
增加了监视的因素个数,或改变因素的格式、
次序,所有这些模块都必须作修改。
4 结构图进一步优
化 (续 )
输出不安全因素值获得因素值
获得病床
因素信息
获得病人
因素值
读取病
人信息
检查
不安全
因素
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Factors,
Safe Ranges
Error Flags
Pn,EOF
Factors,
Error Flags Pn
Bednum
Unsafe
Flags
Safe
Ranges
Factors,
Error Flags
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
Bednum,
Error Flags
Line
Line Line
Unsafe
Factor,
Factor Type
病人监护系统
Pn,
Factors,EOF
Error Flags Pn,Factors,
Error Flags
Pn,
Factors,
Unsafe Flags
Pn,
Factors,
Error Flags
篇幅小,
可往上
层合并
4 结构图的进一步优化 (续 )
改进七:考虑系统将来的变化与扩充 (续 )
因此,改为每次传送一个因素、一个因素类型及一
个错误标志,则每个界面将只传送三个数据项。
“获得病床因素值”就成为唯一一个与因素个数、
格式有关的模块。这样,其他原来有关的模块中控
制处理七个因素的循环就可取消,各模块的名字也
应相应修改一下,体现它们的功能是处理 一个 因素。
另外,“获得病床因素值”应在回送一个参数给
“获得病人因素值”说明最后一个因素已处理完
(FEOF),而“获得病人因素值”应再将 FEOF回送
到上一级。
4 结构图的进一步优化 (续 )
改进七:考虑系统将来的变化与扩充 (续 )
现在“检查不安全因素”只是检查一个因素是否
安全,因而很简单,可以同它的调用模块“输出
不安全因素值”合并。
输出不安全单因素值获得单因素值
获得病床
单因素 信息
获得病人
单因素 值
读取病
人信息
读取安全
值范围
存入
数据库
报告错
误设备
报告
不安全
因素
Pn,EOF
Factor,
Type,
FEOF
Pn,
Type
Bednum
Safe
Range
Factor,Type,
FEOF
产生一
行通知
在设备上
输出一行
从病人
号查
床位号
Bednum
Pn
Pn
Bednum,
Type
Line
Line Line
Type,
Unsafe Factor
病人监护系统
Pn,
Factor,EOF
Type Pn,Factor,
Type
Pn,
Type,
Unsafe Factor
Pn,
Factor,
Type
4 结构图进一步优
化 (续 )
5 总结
? 改进的过程有很强的试探性,需对各种可
能的方案作比较和权衡。
? 运用 DFD->SC的转换策略,可以得到质量
较好、结构较合理的初始模块结构图。
5 总结 (续 )
现在我们用“变换分析”技术设计病人监护系统。
1)先画出该系统的 DFD图。 图 1
2)对它作变换分析:数据流“合理因素”可以看成这
个系统的逻辑输入,也是系统的逻辑输出。所以这个
系统就由两部分组成,没有主加工部分。 图 2
3)根据 DFD划分的结果,转换得到结构图的上层。 图 3
4)再进一步设计出结构图的中下层,(可结合进一步细
化的 DFD下层子图来分析),所得的结构图将与我们
在上述例子中经过改进得到的最终结果图很接近。这
说明,一开始就用“变换分析”获得的初始结构图比
直观设想得出的初始结构图好得多。
5 总结 (续 )
1

因素
因素
2

因素
3
检查
因素
4
通知
护理站
合理
因素
不安全因素
图 1:,病人监护系统”的 DFD图
属于 变换型,故对它作变换分析。
5 总结 (续 )
1

因素
因素
2

因素
3
检查
因素
4
通知
护理站
合理
因素
不安全因素
图 2:,病人监护系统”的 DFD图 变换分析 结果
输入 输出
5 总结 (续 )
病人监护系统
获得因素值 输出不
安全因素
存入数据库
Pn,Factors,
EOF Pn,Factors
图 3,转换后得到的,病人监护系统”的初始结构图上

Pn,
Factors
第四节 系统详细设计
系统详细 设计(主要内容)
?系统平台设计
?代码设计
?对话(人机界面)设计
?输入 /输出设计
?数据库设计
?模块内部的算法设计( 处理流程设计 )
一 系统平台设计
管理信息系统的平台设计包括计算机处
理方式、软硬件选择、网络系统的设计、
数据库管理系统的选择 等。
一 系统的平台设计 (续 )
(1) 计算机处理方式
根据系统功能、业务处理的特点、性能 /价格
比等因素,选择批处理、联机实时处理、联
机成批处理、分布式处理等方式,也可以混
合使用各种方式
一 系统的平台设计 (续 )
(2) 软硬件选择
根据系统需求和资源约束进行软、硬件的选择
硬件选择,选择技术上成熟可靠的系列机型;处理速
度快;数据存储容量大;具有良好的兼容性与可扩充性,
可维护性;有良好的性能 /价格比;售后服务与技术服
务好;操作方便;在一定时间内保持一定先进性的硬件 。
软件选择,操作系统, 数据库管理系统, 开发语言,
开发工具, 应用软件包等软件的选择 。 如 Oracle Server、
Microsoft SQL Server,Visual FoxPro等 。
一 系统的平台设计 (续 )
(3)网络系统的设计
计算机网络系统的设计主要包括中小型主
机方案与微机网络方案的选取, 网络拓扑结构,
互连结构及通信介质的选型, 网络计算模式,
网络操作系统及网络协议等的选择 。
网络计算模式原来一般采用客户机 /服务器
(C/S)模式, 但随着 Internal技术的发展和广泛
应用, MIS的网络计算模式开始更多的采用浏
览器 /Web服务器 /数据库服务器 (B/W/D)模式 。
一 系统的平台设计 (续 )
(4)系统环境的配置
? 确定系统的网络结构体系 ( 网络设计 )
网络拓扑结构, 传输介质, 组网方式, 网络设备, 网络协
议, 网络操作系统等 。
? 硬件的配置
对 C/S,B/S服务器和工作站, 机型, 性能指标, 数量, 涉
及的机构 ( 或部门 ), 外围设备 。
?软件的选择 ( 系统软件和工具软件 )
对 C/S,B/S分服务器和工作站上的软件选择, 操作系统,
网络管理软件, 数据库系统, 开发平台与工具, 中间介质 。
一 系统的平台设计 (续 )
系统的平台设计 结果:
提交如下材料
硬件网络结构图
服务器:硬件, 软件选型
工作站:硬件, 软件选型
硬件配置清单等表格 。
X公司是服务于客户与航空公司, 轮船公司之间的国内货运代
理公司, 其服务的内容是为客户代办托运, 报关手续 。 建立 X公
司管理信息系统的目的是缩短货运周期, 提高服务质量和增强竞
争力量 。
1,网络建设需求
(1)提供信息通道 。 X公司网络信息系统连接该公司在全国的 28个城市的分公司
和办事处, 要求提供通信通畅, 无断点, 无瓶颈的信息通道 。
(2)提供 Internet信息服务 。 在总公司 /北京分公司设一主出口, 与因特网联网 。
在 Internet上, 建立公司的 WWW主页, 提供 E- mail,Telnet,FTP,WWW等信
息服务功能 。
(3)提供智能化电子邮件功能 。 能使网上用户通过电子邮件相互访问, 并能够通
过总部的 Internet电子邮件网关与国外进行电子邮件通信 。
(4)提供全局命名服务功能 。 全网统一的名字服务系统可方便网络管理与使用 。
(5)提供信息安全功能 。 在企业网范围内提供信息的安全保密功能, 不仅能控制
用户对网络和文件访问, 还能对网上的所有资源提供保护, 对非法入侵者进行
防范和跟踪 。
案例, X公司的网络系统设计
2,网络系统设计
系统设计的出发点是为用户提供一个既切合实际又具有扩展升级能力的
方案, 使用户能够获得最大的经济效益 。 在设计中遵循了以下原则:
A.切实可行:符合当今通信技术的发展现状, 能够利用所有成熟的通讯手
段灵活地构造网络系统 。
B.开放性:遵循主流的接口规范和协议标准, 不基于特定机型, 操作系统
或厂家的体系结构, 从而保证将来系统扩展与升级以及与其它系统互联的
方便可行, 避免 "今天的投资成为明天的浪费 "。
C.整体优化:不片面追求单机, 子系统的高性能, 而是以保证子系统有较
高的整体性能为目的, 整个系统在用户界面上应是一个透明的完整体 。
D.技术先进:所选的技术与设备应是成熟的, 先进实用, 稳定可靠 。
E.设计周密:操作系统及网络结构应充分考虑到将来联网的要求 。
案例, X公司的网络系统设计 (续 )
案例, X公司的网络系统设计 (续 )
3,X公司企业网系统
由局域网系统, 区域网系统, 广域网系统三个层次组成 。
(1)广域网系统
① 总部是整个广域网系统的信息枢纽, 设有全网络系统的主数据
库, 被 所有 分公 司, 代理 和办 事处访 问与 共享 。 总 部与
CHINAPAC,Internet,PSTN等都有直接的连接 。 在总部设有通往
Internet的出口 。
② 大多数分公司与总公司连接, 各分公司之间的连接都通过
CHINAPAC进行, 一些较为重要的分公司与总部通过 DDN数字专
线连接 。
③ 在总部设有网络管理工作站, 通过中心一套基于 PC的网管软件,
对整个企业网中所有的路由器进行管理和性能监控, 从而提高网
络的可维护性与可靠性 。
案例, X公司的网络系统设计 (续 )
(2)区域网系统
由于 X公司的某些分公司其下属的多个业务部
门往往不在一个建筑物内,而是分布在一个城市的
不同地区,所以需要进行区域网建设。这些业务部
门有的组建规模不同的局域网,通过分组交换网或
DDN专线互联;有的小营业点,采用单台 PC拨号上
网的方式与分公司通信。
(3)局域网系统
根据 X公司各分公司规模的不同, 其局域网的建设方案分为 A,B,C,D四
种 。
A类,A类局域网采用交换式局域体系结构, 具有局域网网管功能和较强的
广域网连结能力 。 选用交换式集成器 3COMLinkSwitch2200作为局域网的枢
纽 。 选用 3COM的 LinkBuilderFMSManagementModule实现网络管理功能 。
选用 Cisco公司的中档路由器 Cisco4500作为广域网的接入设备 。
B类,B类方案采用传统的共享式以太网结构 。 选用可堆叠式的集线器作为
网络连接设备, 使网络易于扩展, 保护现有投资 。 选用 Cisco2501作为广域
网的接入设备 。 比较大的分公司采用这种方案 。
C类,C类方案在局域网构成上与 B类方案相似 。 其广域接入设备采用更低
档的 Cisco路由器 Cisco1005。 采用这种方案的主要是那些本地需建小型局网
的分公司 。
D类,D类方案采用单机形式, 无局域网设备, 无路由器 。 通过 PC计算机
上的串口资源或广域网卡与其他分公司进行数据交换 。 业务规模较小的分
公司和一些办事处采用 D类方案 。
案例, X公司的网络系统设计 (续 )
二 代码设计
?代码,是用来代表事物名称、属性、
状态等的符号和记号。以简短的符
号形式代替了具体的文字说明。
?代码设计的任务,设计出一套供管理
信息系统开发和运行所需的代码系
统。
(一 ) 代码的作用
? 便于录入
? 节省存储空间,提高处理速度
? 便于计算机识别和处理
? 提高数据标准化程度
? 提高处理精度
(二 ) 代码系统具有的特点
1) 唯一性:每个代码都仅代表唯一的实体或属性;
2) 通用性:表示采用一有的国家标准通用化码(标准化);
3) 可扩充性:当增加新的实体或属性时,直接利用原代码
扩充,而不需要变动代码系统;
4) 简洁性:如果代码太长会影响所占存贮空间,输入输出
速度,以及输入时的出错率,应尽量减短;
5) 系统性:代码要有规律,逻辑性强,即便于计算机处理,
也便于识别,记忆和人工处理的使用;
6) 可修改性:当系统条件发生变化时,代码应容易进行修
改。
(三 ) 编码的分类
1,顺序编码,用连续数字代表编码对象,
如:张平的职工号为 0001;李立为 0002等
优点:简单,易追加;
缺点:可识别性差,无逻辑性。
2,区间编码,代码分为组,每组具有一定的含义,
如某大学的学生代码 * * * * * *,
前两位代表年级编号 (大分类 ),
中间两位代表专业及班级编号 (中分类 ),
后两位代表学生在班上的编号 (小分类 )。
优点:分类明确,每层之间有严格的隶属关系,
容量大;
缺点:位数多。
3,字母编码,用具有特定意义的字母代表某一
类项目。
如:,TV‖:电视,,CM‖厘米
优点:可用汉字拼音或英语联想帮助记忆;
缺点:位数多,处理不便,易产生重复。
4,组合编码,用上述编码组合而成。
按位编码和顺序码组合:学号 01164015
按字线码和数字码组合:汽车号 闽 C-1002
(三 ) 编码的分类 (续 )
(四 ) 代码设计的原则
? 选择最小值
? 要适合计算机处理
? 要便于使用
? 要具有系统性、通用性和可扩展性
? 代码标准化
(五 ) 代码的校验
校验:
为了保证关键代码输入的准确性、减少输入
错误,有意识地在编码设计的基础上,通过
事先规定的某种数学方法,计算出校验码,
附加在编码之后,作为编码的一部分。输入
时与代码一起输入,此时计算机会用同种数
学方法,输入代码进行数学计算,并与所输
入的代码进行比较,以校验是否正确,并发
现错误。
代码输入时常见的错误
?抄写错误
?易位错误
?双位错误
?随机错误
1.将代码 (Ci)各位乘以权因子 (Pi),求出各位
的积,C1P1,C2P2,...CnPn
2.求出加权和, S=C1P1+C2P2+...+CnPn
3.以称为模的常数 M 除和,求出余数 R即
R=S mod M
4.把模 M 减去余数 R 作为校验位,J=M-R
当 J为 10,11,12… 时,其校验位码为 A,B,C… ;
确定校验位的方法
校验码例子
原代码 1238,权因子为质数法,模 M=10,
以 J=M – R 为校验码,设计出其校验码。
2,S=11+14+15+24=64
原编码,1 2 3 8
权因子,11 7 5 3
11 14 15 24
1,3,R= S MOD M=64 MOD 10
=4
4,J = M – R=10-4=6
原代码加校验码,1 2 3 8 6
思考
原代码 1 2 3 4 5,权因子为 2 的位数
法,2,4,6,8,10,模 M=11,以
J = M – R 为校验码,写出校验码的
设计过程。
三 对话设计
1 对话设计的原则:, 用户友好,
?对话界面要美观, 醒目;
?提示要清楚, 简单, 不能有二义性;
?要便于操作和学习, 有帮助功能;
?能及时反馈错误信息等 。
三 对话设计 (续 )
2 实现用户友好的三个要点,
?树立用户第一的观点
?实现界面友好的工作必须融于系统
开发的全过程
?采用软件开发技术改善界面友好性
三 对话设计 (续 )
3 对话设计的基本类型
?菜单:用菜单方式使整个界面清晰,简洁;
?图像:在用户界面中,加入丰富多彩的画面能够更
形象地为用户提供有用的信息,达到可视化的目的;
?对话框:在系统必要时,显示于屏幕上的一个矩形
区域内的图形和正文信息,通过对话框实现用户和系
统之间的联系;
?窗口:通过窗口显示观察其工作领域全部或一部分
内容,并可对所显示的内容进行各种系统预先规定好
的正文和图形操作。
下拉式菜单、瀑布式菜单
瀑布式菜单
弹出式菜单
图标式菜单
四 输入 /输出设计
? 输出设计
? 输入设计
输入 /输出设计的标准
? 应尽量减少汉字的输入。
? 屏幕显示应尽量直观、逼真。
? 输入数据时应尽量采用选择的方式。
? 有较强的检错和容错能力。
? 具有一定的数据恢复能力。
? 具有完善的帮助系统。
? 界面风格应当尽量向标准化靠近。
(一 ) 输出设计
用户所需的信息、报表都要由系统输
出完成,
输出设计工作主要包括:
? 确定输出方式
? 确定输出的类型与内容
? 进行输出格式的设计
1 输出方式的选择
输出方式应根据输出信息的要求,信
息量的大小、输出设备的限制等备件
来决定。一般有:
?显示输出
?打印输出
?图形输出
2 输出的类型与内容
?输出类型的确定
输出有外部输出和内部输出之分, 内部输出是指一个处理过
程 ( 或子系统 ) 向另一个处理过程 ( 或子系统 ) 的输出;外
部输出是指向计算机系统外的输出, 如有关报表, 报盘等 。
?输出设备与介质的选择
输出设备有打印机, 磁带机, 磁盘机, 光盘机等, 输出介质
有打印纸, 磁带, 磁盘等 。
?输出内容的设计
输出内容的设计包括输出内容的项目名称, 项目数据的类型,
长度, 精度, 格式设计, 输出方式等 。
3 输出格式设计的注意点
1) 报告应注明名称、标题、日期、图号;
2) 尽量将相类似的项目归纳在一起;
3) 尽量将位数相同的项目归纳在一起;
4) 当一行打印的位数有多余时,项目与项目之间的空格可以加
大,使布局合理、醒目;
5) 决定数据位数时,要考虑编辑结果的最大数(包括货币符号、
逗号所占的位数);
6) 字符从左对齐,空格和数字从右对齐;
7) 注意,0‖和空格的含义;
8),合计”要醒目;
9) 打印时,应把已代码化的名称复原,以求一目了然;
(二 ) 输入设计
输出信息的正确性很大程度取决于输入信息的
正确性和及时性。因此,必须科学地进行输入设
计,使之正确地、及时地、方便地收集信息、录
入信息。
输入设计工作主要包括:
? 输入数据的分析与内容的确定
? 输入方式及设备的选择
? 输入数据的格式设计
? 输入数据的检验方法
1 输入设计的原则
在保证处理需求的前提下尽量减少
输入量, 输入过程尽量简单方便 ( 如
减少汉字输入, 条形码扫描输入 ),
输入界面友好, 在输入数据时要采取
有效措施, 减少输入错误 。
2 输入方式
? 键盘输入
? OCR或 OMR输入
? 媒体化后成批输入
? 联机输入
3 输入设计的步骤
1) 分析与确定输入数据的内容
根据处理要求来确定的,包括确定输入数据
项的名称、数据类型、位数和精度、数值范
围及输入处理方式。
2) 确定数据的输入方式
数据输入的类型有外部输入 (如键盘输入、扫
描仪、磁盘导入等 )和计算机输入 (网络传送数
据等 ),输入设备有键盘、鼠标、扫描仪、光
电阅读器、光笔、磁盘、磁带、网络传输等。
3)设计输入数据的记录格式
输入格式要尽量与原始单据格式类似,屏幕界面要
友好,数据输入格式有录入式、选择式(如:单选、
列表选择)等,屏幕格式有简列式、表格式、窗口
编辑方式等。
4)对输入数据的正确性检验设计
常用的检验的方法有, 重复录入校验、视觉校验(如
代码输入时,屏幕立即显示出代码的相关信息以方
便校验)、数据类型格式范围校验、分批数据汇总
校验、加检验位校验、平衡校验等。
3 输入设计的步骤 (续 )
思考
? 用户输入某事物的代码后,计算机能自
动地在屏幕上显示出该事物的名称
? 请你说明实现以上功能的原理
五 数据库设计
?数据库概述
?数据库设计步骤
?概念设计方法
?逻辑设计方法
(一 ) 数据库概述
1 数据库系统
? 数据处理:
指对各种数据进行收集、存储、加工和传播的
一系列活动的总和。
? 数据管理
指的是对数据的进行分类、组织、编码、存储、
检索和维护等,它是数据处理的中心问题。
? 随着计算机软硬件技术的发展,经历了
从手工管理到文件系统、数据库系统等
阶段
1 数据库系统
1) 相关术语
? 数据库 DB
– 长期储存在计算机内的、有组织的、可共享的
数据的集合
– 由 DBMS统一管理,多用户共享
? 数据库管理系统 DBMS
– 系统软件,对数据库进行统一管理和控制
? 数据库系统
– 带有数据库的整个计算机系统,包括硬件、软
件、数据、人员
数据库
长期存储在计算机内的、有组织的、可
共享的数据集合。数据库中的数据按照一
定的数据模型组织、描述和储存,具有较
小的冗余度、较高的数据独立性和易扩展
性,并可为各种用户共享。
为满足某部门各种用户的多种应用需要,
在计算机系统中按照一定的 数据模型 组织、
存储和使用的 互相关联的数据集合
2)数据库的发展
数据库系统是在 文件系统 的基础上发展起来的。
早期的数据处理系统是由大量的文件构成的。这些
文件的数据面向应用,一个文件对应一个或几个应用
程序,数据冗余度大;不便于多用户共享;对数据的
维护也非常困难;而且要修改数据时,要多处去改动,
容易造成数据的不一致性;文件不便扩充;不能表述
复杂的数据模型。随着数据量增大,共享性要求高,
再加上软磁盘的问世,传统文件系统已不能适应要求,
因此产生了数据库。
1 数据库系统 (续 )
1 数据库系统 (续 )
3) 数据库的主要特征
? 数据的共享
? 数据结构化
– 数据反映了客观事物间的本质联系,而不是着眼于
面向某个应用,是有结构的数据。这是数据库系统
的主要特征之一,与文件系统的根本差别。
? 数据的独立性
? 最小的冗余度
? 数据的安全性
? 数据的完整性
? 并发控制
现实世界 信息世界 数据世界
个体:
一个实际存在且可识别的
事物
实体:
具体描述的客观事物
记录
总体:
同一类个体的集合;
实体集:
具有相同性质的实体
文件
特征项:
个体的特征;
属性:
实体的属性
数据项
标识特征项:
能够标识的特征项;
标识属性:
能够唯一表示实体的属性
关键字
2 现实世界、信息世界和数据世界的关系
2 现实世界、信息世界和数据世界的关系
(续 )
加工
转换



实体
相关
属性
集合



记录
相关
属性
集合




事物
相关
属性
集合
认识
选择
描述
现实世界 信息世界
(概念模型 )
数据世界
(数据结构模型 )
认识、
抽象 关系 1(属性 1,属性 2,…) ;
关系 2(…) ; …
转换
3 概念模型
概念模型即实体 -关系模型,其具有
三种基本成份,实体、关系 (联系 )和
属性。用 E-R图来表示。
3 概念模型 (续 )
1) 基本概念
? 实体 (Entity):
– 客观存在并可相互区分的事物叫实体。
– 如学生张三、工人李四、计算机系、数据库概论 。
? 属性 (Attribute):
– 实体所具有的某一特性。一个实体可以由若干个属性来刻画。
– 例如,学生可由学号、姓名、年龄、系、年级等组成 。
? 域 (Domain):
– 属性的取值范围。
– 例如,性别的域为(男、女),月份的域为1到12的整数。
3 概念模型 (续 )
1) 基本概念 (续 )
? 实体型 (Entity Type):
– 实体名与其属性名集合共同构成实体型。
– 例,学生(学号、姓名、年龄、性别、系、年级)。
– 注意实体型与实体(值)之间的区别,后者是前者的一
个特例。
– 如 (9808100,王平,21,男,计算机系,2)是一个实体 。
? 实体集 (Entity Set):
– 同型实体的集合称为实体集。
– 如全体学生 。
3 概念模型 (续 )
1) 基本概念 (续 )
? 联系 (Relationship):
– 实体之间的相互关联。如学生与老师间的授课关系,
学生与学生间有班长关系 。
– 联系有一对一、一对多、多对多三种不同类型。
– 联系也可以有属性,如学生与课程之间有选课联系,
每个选课联系都有一个成绩作为其属性。
– 同类联系的集合称为联系集。
? 元或度( Degree):
– 参与联系的实体集的个数称为联系的元。
– 如学生选修课程是二元联系,供应商向工程供应零
件则是三元联系。
3 概念模型 (续 )
1) 基本概念 (续 )
? 码 (Key):
– 能唯一标识实体的属性或属性组称作 候选码 。
– 从所有候选码中选定一个用来区别同一实体集
中的不同实体,称作 主码 。
– 一个实体集中任意两个实体在主码上的取值不
能相同。
– 如学号是学生实体的码 。
– 通讯录(姓名,邮编,地址,电话,Email,
BP)
2) E-R图
? 矩形框
– 实体
? 菱形框
– 联系
? 椭圆形框
– 实体和联系的属性
? 直线
– 相互联系的实体之间以直线连接,并标注联系类型
3 概念模型 (续 )
基本E -R图符号
学生 课程选修
学号姓名 系别 课程名 先修课 主讲老师
成绩用矩形表示实体集,
在框内写上实体名
用椭圆表示
实体的属性
用无向边
把实体与
其属性连
接起来
用菱形表示实
体间的联系
将参与联系的实
体用线段连接
例:学生选修课程
n m 标注联
系类型
码在 E-R图中的表示
? 表示要点:
– 实体集属性中作为主码的一部分的属性用 下
划线 来标明。
学生 课程选修
学号姓名 系别 课程名 先修课 主讲老师
n m
实体间的不同联系

主任
负责

1
1
班级
包含
学生
1
N
产品
组成
零件
M
N
一对一联系 一对多联系 多对多联系
4 数据模型
? 数据模型:对客观事物以及它们之间的联系
的数据组织;它描述了数据库中记录间关系
的数据结构方式。一般理解为数据结构模型。
? 数据模型有三种
? 层次模型
? 网状模型
? 关系模型
1) 层次模型
?用树形结构表示实体类型及实体间联系
?有且仅有一个结点无双亲 (树根 )
?其它结点有且仅有一个双亲 (1:1,1:n 无
法表示 m:n联系 )

教研室 学生
教师
2) 网状模型
? 用有向图(网络)结构表示实体类型及实体间联系
? 有一个以上的结点无双亲 (可以多根 );
? 至少有一个结点有多于一个的双亲 ;
? 两个结点之间可以有两种或多种联系 (n:m)。
学生宿舍
教研室学生

教师
3) 关系模型
用数据的二维表格来描述实体与实体间的联系。
? 表中每一项须是基本项 (初等项 );
? 表中每一列必须有相同的数据类型 ;
? 每一列须有段名,且同一表格中段名不重复 ;
? 表中不能有相同的行 (即不能有相同的记录 );
? 行列的顺序均不影响表中信息的内容。
学号 姓名 成绩 等级 备注
00001 王一 86 良好 侨生
00002 丁二 92 优秀
00003 张三 67 及格
利用关系数据库描述一对一关系
系主任编号 主任名称 职称 系名 地址
E B 0 1 章 教授 财务系 经院 3 楼
E B 0 8 王 副教授 工管系 经院 5 楼
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
利用关系数据库描述一对多关系
班级名称 学生姓名 学生性别 学生来源
经 81 张三 男 北京
经 81 李四 女 山西
经 81 王五 男 河北
经 81 赵六 男 河南
… … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … …
利用关系数据库描述多对多关系
工序名称 加工设备 零件名称 零件编号 零件数量
铸造 变速箱轴 023 -12 40
铸造 130 底盘 4-34 -3 10
粗车 616 车床 变速箱轴 023 -12 40
粗车 616 车床 ? 30 螺拴 1-23 50
精车 数控车床 变速箱轴 023 -12 40
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
4) 三种数据模型的比较
数据库
类型
处理
效率
维护性
最终用户
友好性
编程
复杂性
层次型 高 低 低 高
网络型 中 - 高 低 - 中 低 - 适度 高
关系型 低,在改进 高 高 低
(二 ) 数据库设计的步骤
1 数据需求分析
在系统分析时画出 DFD DD的所有条目
提供实体分析对象以及实体之间的联系。
2 概念模型设计
用概念模型将用户的数据要求明确地表达出来。
用 E-R图表示。
3 逻辑结构设计
将概念模型( E-R模型)转换为与选用的数据
库管理系统所支持的数据模型相符的逻辑数据
模型。
(二 ) 数据库设计的步骤 (续 )
4 物理设计
对数据库在物理设备存贮和存贮方法上
的设计。包括:
?确定数据的存储结构
? 存取路径的选择和调整
? 确定数据存放位置
? 确定存储空间分配
? 确定数据的安全性
(二 ) 数据库设计的步骤 (续 )
(三 ) 概念设计方法
设计步骤,
1.划分和确定实体
DFD和 DD中的数据存储、数据结构可
作为确定实体时考虑的对象
2.划分和确定关系
3.确定属性
4.画出 E-R模型
(四 ) 逻辑设计方法
1 将概念模型 (即 E-R模型 )转换为与选用
的数据库管理系统所支持的数据模型相
符的初始的逻辑数据模型。
2 对数据模型进行下列几步的改进:
·规范化;
·适应DBMS限制条件的修改
·对性能, 存储空间等的优化
1 转换策略
在 E-R模型中有实体和联系两类元素,
用关系模型中的 二维表 来表示。
1) 一个实体用一个二维表来表示,实体的
所有属性就是表的属性,实体的码就是表
的码。
2) 一个 m:n联系用一个二维表来表示,与
该联系相连的各实体的码以及联系本身的
属性均成为此表的属性。而表的码为联系
相连的各实体的码的组合。
1 转换策略 (续 )
1 转换策略 (续 )
学生
选修
课程
学号 姓名 籍贯
课程号 课程名
成绩
例如,
m
n
学生 (学号,姓名,籍贯 )
课程 (课程号,课程名 )
选修 (学号,课程号,成绩 )
3) 一个 1:n联系可以转换为一个独立的二
维表,与该联系相连的各实体的码以及联
系本身的属性均成为此表的属性。而表的
码为联系相连的 n端实体 的码。另一种方
法是并入 n端实体,即在 n端实体的表中增
加 1端实体的码。后一种方法较好。
1 转换策略 (续 )
1 转换策略 (续 )
学生
属于
班级
学号 姓名 籍贯
班级号 班级名
例如,
1
n
学生 (学号,姓名,籍贯,
班级号 )
班级 (班级号,班级名 )
外码
4) 一个 1:1联系可以转换为一个独立的二
维表,与该联系相连的各实体的码以及联
系本身的属性均成为此表的属性。 每个
实体 的码均是该表的码。另一种方法是并
入任一端实体,即在该端实体的表中增加
另一端实体的码和联系本身的属性。后一
种方法较好。
1 转换策略 (续 )
1 转换策略 (续 )
班主任
负责
班级
职工号 姓名 性别
班级号 班级名
例如,
1
1
班主任 (职工号,姓名,性别,
班级号 )
班级 (班级号,班级名 )
外码
或,班级 (班级号,班级名,职工号 )
4) 对三个以上实体间的多元联系,以及
同一实体集的实体间的自联系,根据相
同的转换规则,按联系的不同类型进行
相应的转换。
1 转换策略 (续 )
1 转换策略 (续 )
讲授
课程
课程号 课程名
例如,
m
n
课程 (课程号,课程名 )
教师
职工号 姓名 性别
教材
书号 书名
p
教材 (书号,书名 )
教师 (职工号,姓名,性别 )
讲授 (课程号,书号,职工号 )
1 转换策略 (续 )
例如,
n
教师
职工号 姓名 性别
教师 (职工号,姓名,性别,
系主任号 )
负责
1
思考
n
零件
编号 名称 规格
转化成几个二维表?每个二
维表的属性由什么组成?
装配
m
转换
n
零件
编号 名称 规格
装配
m 装配 (零件号, 子件号 )
零件 (编号,名称,规格 )
2 逻辑数据模型的改进 ——
规范化理论
2 逻辑结构的规范化
规范化是关系数据库设计的重要理论。借助规范
化方法来设计数据存储的结构,并力求简化数据存
储的数据结构,提高数据的可修改性、完整性和一
致性。
规范化:以关系模型为背景,以关系理论为基础,
在一个关系模型的数据结构中,没有出现
重复的数据主项即为规范化。
关系数据库规范化
? 所有非平坦数据结构分解为二维表方式
并指定关键字 ——第一范式
? 当关键字不止一个属性时,必须确保每
个非关键字属性完全函数依赖于整个关
键字 ——第二范式
? 所有非关键字属性彼此独立 ——第三范

(1) 规范化形式
?第一范式
如果在一个数据结构中没有重复出现的数据项
或空白值数据项,就称该数据结构是规范的。
任何满足规范化要求的数据结构都称为第一规
范形式,记为 1NF。
例:不规范转为规范
职工号 姓名 性别 出生日

简历
工作
日期
工作单位 职务
.
.
.
.
.
.
.
.
.
不规范
转换
职工号 姓名 性别 出生日期 工作日期 工作单位 职务
职工基本情况
职工简明表
关键字,职工号
如果一个规范化的数据结构的所有非关键
字数据项完全函数依赖于它的整个关键字,
则称该数据结构是第二范式的,记为 2NF。
转化为第二范式的方法是:对于若干个关
键字由若干个数据项组成的数据结构,必
须确保所有的非关键字数据元素依赖于整
个关键字。即去掉 部分依赖关系,把它分
解成若干个都是 2NF的数据结构。
?第二范式
部分依赖,假设 ABC分别是同一个数据结构 R中的
三个元素或分别是 R中若干个数据元素的集合。 C依
赖于 AB的子集,则称 C部分依赖于 AB。否则,称为 C
完全依赖于 AB。
AB->C,A->C 则 AB->C
例如,
(学号,课程号) ->成绩
(学号,课程号) ->姓名
?第二范式 (续 )
p
p
f
例:第一范式转为第二范式
材料 供应商 库存的关系如下:
材料编号
材料名称
规格
供应商名称
供应商地址
价格
库存量
库存占用资金
关键字,材料编号 +供应商名称
材料名称、规格、供应商地址不完全依赖于关键字,不是 2NF
例:第一范式转为第二范式
分解成三个 2NF的数据结构
材料编号 *
供应商名称 *
价格
库存量
库存占用资金
材料编号 *
材料名称
规格
供应商名称 *
供应商地址
1,材料库存 2,材料库存 3,供应商
如果一个数据结构中任何一个非关键字数据项
都 不传递依赖 于它的关键字,则称该数据结构
是第三范式的,记为 3NF。
传递依赖,假设 ABC分别是同一个数据结构 R中的三
个元素或分别是 R中若干个数据元素的集合,如果 C依
赖 B,而 B依赖于 A,那么 C自然依赖于 A,即称 C传递依
赖 A。
A->B,B->C 则 A->(传递 )C
去掉传递依赖关系,就是 3NF。
?第三范式
例:第二范式转为第三范式
因为价格与库存量、库存占用资金都是非关键字,
但库存量依赖于价格和库存占用资金,所以非 3NF.
上例转为第三范式:去掉多余的“库存占用资金”,
而在程序中加以解决即可。
材料编号 *
供应商名称 *
价格
库存量
材料编号 *
材料名称
规格
供应商名称 *
供应商地址
1,材料库存 2,材料库存 3,供应商
(2) 数据结构规范化设计的步骤
非规范化的数据(有重复的数据)
1NF (没有重复的数据)
2NF(所有的非关键字均完全依赖于整个关键字)
3NF(所有的非关键字均完全依赖于整
个关键字,且只依赖于整个关键字)
把所有非规范化的数据结构分解成若干个二维表形式的数据结
构,并指定一个或若干个关键字
若关键字由不止一个元素组成,必须保证所有的非关键字数据元素
依赖于整个关键字,否则去掉部分依赖关系。
检查所有非关键字数据元素是否彼此独立,如果不是,去掉传递依
赖关系,通过去除冗余的数据元素,构成都是 3NF的数据结构。
数据库设计实例 ——
工厂管理系统
数据库设计实例 ——
工厂管理系统
本实例说明用 E-R图进行概念结构设计,并
运用转换策略设计关系模式的过程。
?数据需求描述
?概念设计
?逻辑设计
1 数据需求描述
考虑一个机械制造厂的工厂技术部门和
工厂供应部门。技术部门关心的是产品
性能参数、产品由哪些零件组成、零件
的材料和耗用量等;工厂供应部门关心
的是产品的价格、使用材料的价格和库
存量等。
2 概念设计
产品 组成 零件
产品号
产品名
性能
参数 零件号
零件名
m n
零件数
耗用量
材料名
图 1 技术部门的分 E-R图
2 概念设计 (续 )
使用
材料
价格
库存量
m
n
产品
仓库
仓库号
仓库名
n
类别
地点
存放
材料号
材料名
m
产品号 产品名 价格
存放量
耗用量
图 2 供应部门的分 E-R图
2 概念设计 (续 )
使用
材料
价格
库存量
m
n
产品
仓库
仓库号
仓库名
n
类别
地点
存放
材料号
材料名
m
产品号
产品名
价格
存放量
耗用量
图 3 集成的初始 E-R图
性能参数
组成 零件
零件号
零件名m
零件数
耗用量
n
消耗
m
n
2 概念设计 (续 )
材料
价格
产品
仓库
仓库号
仓库名
n
类别
地点
存放
材料号
材料名
m
产品号
产品名
价格
存放量
图 4 改进的 E-R图
性能参数
组成 零件
零件号
零件名m
零件数
耗用量
n
消耗
m
n
产品号 *
产品名
价格
性能参数
材料号 *
材料名
价格
仓库号 *
仓库名
类别
地点
1,产品 3,材料 4,仓库
3 逻辑设计
零件号 *
零件名
2,零件
产品号 *
零件号 *
零件数
5.组成
零件号 *
材料号 *
消耗量
6,消耗
材料号 *
仓库号 *
存放量
7,存放
1NF
仓库号 *
仓库名
类别
地点
4,仓库
3 逻辑设计 (改进 )
仓库号 *
仓库名
类别
4-1,仓库
类别 *
地点
4-2,仓库地点
分解成
六 处理流程设计
在进行处理流程设计时,设计者面临两方
面的问题:一个是决定实现每个模块的算法;
另一个是如何精确地表达这些算法。前一个
问题涉及到所开发项目的具体要求和每个模
块的具体功能,因而不能一概而论。后一个
问题需要给出适当的算法表达形式,或者说
应该选择某种表达工具来描述处理流程。
1 详细设计工具:
(1) 图形工具
(2) 表格工具
(3) 语言工具
六 处理流程设计 (续 )
1,程序流程图
2,盒图 (N-S图 )
3,问题分析图 (PAD)
4,过程设计语言 (PDL)(伪码 )
5,判定表
程序设计工具
2,盒图 (N-S图 )
用方框图代替传统的流程图
描述五种基本控制结构的图形构件
(1) 顺序型 A
B
C
AB
F 条件 T
A
F T条件
then –部分 then –部分else–部分
(2) 选择型( If – then – else)
? If – then – else If – then
(3)多分支选择型 (CASE型 )
A1
值 1
A2 An
....
....
条件
值 2 值 n
S
(循环体)
DO-WHILE P S
(循环体)
REPEAT UNTIL P
(先测试循环 ) (后测试循环 )
循环条件
(4) WHILE重复型 (5) UNTIL重复型
(6) 并行结构
A1 A2 An....
(7) 移出标记
A C
B
F X6 T
A:
D
(调用结构 )
3,问题分析图 (PAD)
(Problem Analysis Diagram)
基本控制结构,
(1)顺序结构 (2)选择结构
A
B
C
A
B
T
F


(3)重复结构
WHILE C S UNTIL C S
(先测试循环 ) (后测试循环 )
等价的 PASCAL语言:
REPEAT C UNTIL S
等价的 PASCAL语言:
WHILE C DO S
(4) 多分支选择型 (CASE型 )
A1值 1
值 2
值 n
A2
An
.
.
.
..
.条件
三种算法表达工具的比较
?从程序的结构
?从程序的执行顺序
?从表示效果
系统设计报告
1、系统总体结构图 (SC图 )
2、系统设备配置图
3、系统编码方案 (编码和检验方式 )
5、数据库结构图
4、输入 /输出及界面设计方案
6,HIPO图(层次模块结构控制图)
7、系统模块处理流程设计说明