第六章系 统 设 计第一节 系统设计概述系统设计是新系统的物理设计阶段,根据系统分析阶段所确定的新系统的逻辑模型,
综合考虑各种约束,利用一切可用的技术手段和方法,进行各种具体设计,提出一个能在计算机上实现的新系统的实施方案,解决
,系统怎样做,的问题。
系统设计概述系统 设计概述
目标和任务
系统设计模型
设计方法
主要内容解决系统,怎样做( How to do),的问题。
1 系统设计的目标系统分析:解决,做什么,
系统设计:解决,怎么做,
一、系统设计的目标和任务
2 系统设计的任务问题结构 (系统需求 ) 系统结构从系统分析说明书出发,形成系统的具体设计方案。
一、系统设计的目标和任务 (续 )
映射数据字典数据流图
E-R图加工小说明流 程描述处理描述数据对描述象数 据 设 计模块结构设计接口设计过程设计分析模型 设计模型平 台 设 计二、系统设计模型二、系统设计模型 (续 )
上图中通过数据、功能模型展示的系统需求被传送给设计阶段,运用某种设计方法,
设计阶段产生出:
数据设计,将分析时创建的数据模型变换成实现系统所需的数据结构。
平台设计,将性能要求变换成对系统软硬件环境的配置
模块结构设计,定义系统模块元素之间的关系。
接口设计,描述了系统内部、系统和协作系统之间的以及系统同人之间如何通信。
过程设计,将加工说明变换为对系统模块内部算法的具体描述。
三 系统设计方法
结构化设计方法 (SD)
面向数据结构的设计方法 (JSD方法 )
面向对象的设计方法 (OOD)
四 系统 设计主要内容
系统总体设计
系统详细设计
系统平台设计
代码设计
输入输出设计
对话设计
数据库或数据文件设计
模块内部的算法设计
写出系统设计报告总体设计:
告诉用户系统具体将要做什么 。 一旦用户同意了这个总体设计,我们会将这个总体设计转换为更加详细的文档 。
1 系统总体 设计总体设计包括:
工具 — 如何描述系统的 总体结构
方法 — 用什么方法把问题结构导出系统结构
评价准则 — 什么样的系统结构是,最优的,
1 系统总体 设计(续)
1 系统总体 设计(续)
总体结构:
系统的组成部分,即有哪些模块组成
系统的层次及调用关系
模块的处理功能
模块之间的界面,即模块间传递的数据优秀的总体设计应该包含以下特征
不包括用户不熟悉的专业词汇
它描述系统功能
独立于实现过程
与系统分析文档相一致
2 系统详细 设计详细设计:
让系统建设者了解要解决用户的问题所需要的硬件和系统。主要描述系统的硬件配置
、系统代码、人机界面、输入和输出、数据库和网络体系结构等。也就是说,详细设计是系统说明的一个 技术层面 上的描述。
2 系统详细 设计(续)
详细设计包括:
系统平台设计
代码设计
数据库设计
对话(人机界面)设计
输入 /输出设计
模块内部的算法设计(处理流程设计)
第二节 结构化系统设计结构化系统设计结构化系统设计是,用一组标准的准则和工具帮助系统设计人员确定应该由哪些模块,用什么方式联结在一起,才能构成一个最好的系统结构,。
即,结构化设计方法 (SD)是以数据流图为基础的,采用 模块化、自顶向下逐步求精的基本思想,以 数据流图为基础 构造出模块结构图。
采用分解的方法,即把系统分解成由相对独立的、功能单一的若干模块组成的结构
采用图形表达工具
有一组基本的设计原则
有一组基本的设计策略
有一组评价标准和优化技术一 结构化系统设计的特点二 结构化系统设计的基本工具在系统设计阶段,我们采用 模块结构图 来表达目标系统的物理模型,
描述系统的结构。
三 结构化系统设计原则
系统的观点
模块化结构
阶段性策略
模块的独立性
鼓励用户积极参与设计第三节 系统总体设计系统总体 设计(主要内容)
系统的分解方法
模块结构图
基本设计原则 (模块耦合度与内聚度)
设计策略 (变换型、事务型)
设计优化技巧一 系统的分解方法
系统分解的方法是把一个复杂的问题分解成简单的要素,把一个统一的整体分解为各个组成部分,然后对各个要素和组成部分分别进行研究。
借助于目标系统的逻辑模型 (DFD)并根据部门机构设置情况进行系统分解
1.系统分解的原则
明确系统分解前、后的功能尽量一致
每次分解的结果是可以独立开发的子系统 (或模块 )
各子系统 (或模块 )间的关联尽量少
制定子系统 (或模块 )间的约束规范
区别稳定的和易变的子系统 (或模块 )
2.系统分解的方法
(一 )按企业业务管理部门划分如:生产、销售、供应管理等;按部门设置
(二 )按完成功能的类型来划分如:顾客服务、技术与生产数据管理;按实际职能设置二 模块结构图结构化设计方法的基本思想就是模块化。即对每一个系统按功能逐步由顶向下,由抽象到具体的逐层分解,将系统分解成为多层次的独立功能模块,一直分解到能简单地用程序实现为止。
总体设计任务
(一) 模块
模块的定义,
模块是可以组成、分解、更换的系统,
是易于处理的基本单位,具有四种属性的一组程序语句称为一个模块,这四种属性分别是输入输出、逻辑功能; ( 外部特性 )
内部数据、程序代码。 ( 内部特性 )
(一) 模块 (续 )
模块的例子,
int max( int x,int y)
{ int z;
z=x>y? x,y;
return(z);
}
模块名数据内部数据内部语句模块化思想:
模块化是好的系统设计的一个基本准则从整体上把握问题,暂不考虑细节
复杂问题 较小问题分解可减小解题所需的总的工作分解模块和子系统的区别模块和子系统的概念是有所区别的。子系统仍具有系统的特征( 更大 ),模块则是指为完成某项功能的程序集合体( 较小 ),它是一个不可分割的整体,但模块和子系统的概念有时又是兼容和不可绝对区分的。在日常工作中我们常将完成一个管理功能的程序集称为模块,而它常常由多个很小的程序子模块组成,所以有的地方可称为子系统。
(二 ) 模块结构图 MSC
1,结构图的产生程序流程图 系统流程图和功能图
HIPO技术 (功能图和 IPO图 ) 结构图
(Structure Chart)。
2.结构图的主要成分
模块 ——用方框表示,方框中写上模块名字,反映了这个模块的功能
调用 ——从调用模块指向被调用模块的箭头
数据 ——调用箭头旁的小箭头,表示从一个模块向另一个模块传送的数据,也指出了传送的方向
3.结构图基本符号及表示法编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息
模块调用的例子,
int max( int x,int y)
{ int z;
z=x>y? x,y;
return(z);
}
Main( )
{,
:
max( 3,4)
:
}
Main()
求最大值
Zx
y
MSC中的四种模块传入模块
(a) (b)
A
A
传出模块
B
B
变换模块
(c)
C D
协调模块
E
(d)
E F F
MSC中的简单调用
B
A
C
x,y z
(a)表示法一 (b)表示法二
z B
A
C
1 2
入 出1
2
x,y
z
zA调用 B和 C
MSC中的选择调用
A
CB D
A根据内部判断决定是否调用 B
A按另一判定结果选择调用 C或 D
MSC中的循环调用
A
B C
A根据循环条件重复调用 B,C等模块
选择调用的例子,
A( )
{,
if (条件,.)
B( )
else
C( )
:
}
A
B C
循环调用的例子,
A( )
{,
while (条件,.)
{
B( );
,;
}
:
}
A
B
4.模块结构类型内导结构:是结构图中数据以最低层模块输入,并逐级向高层传递,高一层模块接收低一层模块的输入。
主模块
A1
A4A3
A2
外导结构:结构图中低一层模块接收上一层模块的数据信息,并把它们转换给下一级模块,直到输出给使用者。
w u
子模块 1
v
主模块子模块 2
子模块 2.1
转换结构:数据要在模块内经过一定的处理,下层模块从相应的上层模块接收数据,经转换后返回同一上层模块中去。
w u
子模块 1
v
主模块子模块 2
子模块 2.1
X M
Y
4.结构图与数据流图的差别
数据流程图是从数据流着眼,而结构图从程序模块着眼 ;
数据流程图描述的是系统的逻辑模型,而结构图是描述系统的物理模型 ;
数据流程图是用不同的图来表示不同的层次,是
,平面图,,而结构图能反映系统的层次结构,
是,立体图,;
数据流程图是从具体到抽象,描述系统的要求,
而结构图是从抽象到具体,描述系统的实现方法。
(三) 模块设计的原则系统的 可维护性 是系统评价的一个重要因素可维护性 局部修改模块间的联系尽可能的少 (耦合)
而模块内的联系尽可能多 (内聚)
1.模块的独立性模块独立的含义:
模块完成独立、单一的功能
符合信息隐蔽和信息局部化原则
模块间关连和依赖程度尽量小
2.模块独立性的度量模块独立性取决于模块的内部和外部特性。
SD方法提出的定性的度量标准:
模块之间的 耦合性(块间联系)
模块自身的 内聚性(块内联系)
3.模块独立性的度量之一:耦合度
耦合度 是模块间的联结关系,衡量不同模块间的相互依赖的紧密密程度,耦合的强弱取决于模块间接口的复杂程度;
进入或访问一个模块的入口点;以及通过接口的数据。
耦合度越高,模块独立性越弱无耦合-没有依赖关系松散耦合-有少量依赖关系紧密耦合-有很多依赖关系模块耦合度(续 )
耦合度强弱的因素:
一模块对另一模块的引用
一模块向另一模块传递的数据量
一模块施加到另一模块的控制的数量
模块间接口的复杂程度模块间耦合的类型:
低 非直接耦合耦 数据耦合合 标记耦合性 控制耦合高 内容耦合模块独立性弱
(低耦合 ) 强
(中耦合 )
(较强耦合 )
(强耦合 )
公共耦合
(1) 非直接耦合两个模块没有直接关系 (模块 1
和模块 2),模块独立性最强。
模块 1 模块 2
模块 3 模块 4
(2) 数据耦合一模块调用另一模块时,被调用模块的输入、输出都是简单的数据。
属松散耦合。
数据耦合举例开发票计算水费单价数量 金额数据耦合举例计算水电费计算水费 计算电费用水量 用电量水费电费
(3) 标记耦合 (特征耦合 )
如两个模块通过传递数据结构
(不是简单数据,而是记录、数组等 )加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记耦合。
标记耦合举例计算水电费计算水费 计算电费住户情况 水费电费住户情况
,住户情况,是一个数据结构,图中模块都与此数据结构有关,
,计算水费,和,计算电费,本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合,
将标记耦合修改为数据耦合举例计算水电费计算水费 计算电费本月用水量本月用电量水费电费
(4) 控制耦合一模块通过开关量、标志、
名字等控制信息,明显地控制另一模块的功能。
控制耦合举例
A
计算平均分或最高分
B
平均 /最高 成绩设想一下 A( )函数中调用 B( )的语句是怎样的?
这个问题与前面的调用 MAX( )的例子不同。
在 MAX( )函数中,我们很清楚地看到:形式参数表是两个整数,表示要比较的两个数。
函数说明为,MAX( int x,int y)
函数处理后,返回的结果为较大的那个数。
所以,在主调函数中,我们只需以两个被比较的数作为 实际参数,所以就可写出形如:
..=MAX( 25,36) 的调用语句。
设想一下 A( )函数中调用 B( )的语句是怎样的?
但在 B( )函数中,我们虽然知道:形式参数表是一个整数,表示要取得的成绩类型是平均或最高。
函数说明为,B( int x)
函数处理后,返回的结果为取出的成绩数据 (平均或最高 )。
可是,在主调函数中,我们仍不知道以什么作为实际参数,是 0? 1? 2?还是其他值,取决于 B()中用什么值表示平均 /最高标记。因此,就要去了解 B()内部的语句,而不能仅凭函数说明就写出调用语句。所以 B()就成为灰箱 /白箱,而非黑箱。
控制耦合举例读入分数输出结果计算平均分 计算最高分平均 /最高?
调用逻辑性模块
B时,须先传递控制信号 (平均分
/最高分 ),以选择所需的操作。
控制模块必须知道被控模块的内部逻辑,增强了相互依赖,
B
控制耦合增加了模块之间的复杂性,
调用模块必须知道被调模块的内部逻辑,增加了相互依赖。
去除模块间控制耦合的方法:
(1)将被调用模块内的判定上移到调用模块中进行控制耦合增加了理解和编程的复
(2)被调用模块分解成若干单一功能模块改控制耦合为数据耦合举例
A
计算平均分
B1
平均成绩 最高成绩计算最高分
B2
控制耦合举例
A
发奖牌名次
(开关量 )
奖牌控制耦合被调用模块内处理逻辑模式功能 A 功能 B
判别改控制耦合为数据耦合举例
A
发金牌 发银牌 发铜牌金牌银牌铜牌
A
取口令并核对B
用户名、
口令 对 /不对控制耦合举例
A
取口令B
用户名 口令将 B中核对口令功能划分到 A
(5) 公共耦合 (公共数据区耦合 )
一组模块引用同一个公用数据区
(也称全局数据区、公共数据环境 )。
公共数据区 指:
全局数据结构
共享通讯区
内存公共覆盖区等公共耦合举例

common
公共数据区松散的公共耦合
B A
common
公共数据区紧密的公共耦合

公共耦合举例

公共数据区
CB
模块 A,B,C间存在错综复杂的联系公共耦合举例所有的公共耦合关系
A
EB
C
D
6个模块共享一个 公共数据区
F
(1)系统可理解性降低
(模块间存在错综复杂的连系 )
(2)系统可维护性差
(修改变量名或属性困难 )
(3)系统可靠性差
(公共数据区及全程变量无保护措施 )
慎用公共数据区和全程变量 !!!
公共耦合存在的问题:
(6) 内容耦合一模块直接访问另一模块的内部信息 (程序代码或数据 )
最不好内容耦合形式 !!!
发生内容耦合的情形:
(1)一模块直接访问另一模块的内部数据
(2)一模块不通过正常入口转到另一模块内
(3)两模块有一部分代码重叠
(4)一模块有多个入口模块化设计对耦合度的要求:
耦合是影响系统复杂程度和设计质量的重要因素目标,建立模块间耦合度尽可能松散的系统如何降低模块间耦合度:
(1) 如模块必须存在耦合,
选择适当的耦合类型原则,尽量使用数据耦合少用控制耦合限制公共耦合的范围坚决避免使用内容耦合如何降低模块间耦合度:
(2) 降低模块间接口的复杂性接口复杂性与耦合类型的关系:
接口复杂性接口方式接口数据的复杂性无接口关系直接引用过程调用语句数据项作参数数据结构,变量名作参数内容耦合其它耦合开关量,起控制变量作用公用数据区全程变量,
数据耦合标记耦合控制耦合公共耦合非直接耦合
4,模块独立性的度量之二:内聚度衡量一个模块内部各成分之间彼此结合的紧密程度设计目标:高内聚 (一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的 )
模块的内聚性类型:
低 偶然内聚内 逻辑内聚聚 时间内聚性 过程内聚通信内聚顺序内聚高 功能内聚模块独立性弱 (功能分散 )
强 (功能单一 )
(1) 功能内聚一个模块内的所有成分的处理动作全部为完成某个功能,
且只执行一个功能,缺一不可,称为功能内聚。
内聚性最强如,计算实发工资,打印发票等
(2) 顺序内聚一个模块能完成多个操作,前一个操作处理的输出数据是下一个操作处理的输入数据,模块中各成份的工作是有次序的,各成份的关系也较紧密,
则称为顺序内聚。
顺序内聚模块例读 入存 贮打 印累 加读 数模块 1 模块 2
(3) 通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果,称为通信内聚通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资模块通信内聚模块例开领书单登记售书发票领书单售 书登记表文件删除修改
(4) 过程内聚一个模块内各处理成分的动作各不相同,彼此也没什么关系,但它们都受一个 控制流 的支配,且决定了它们的执行次序。
过程内聚模块建立方程组系数矩阵全部任务纳入一个模块,得到一过程性模块高斯消去法回 代高斯消去法解题流程
(5) 时间内聚模块完成的功能必须在 同一时间内执行,这些功能只因时间因素关联在一起。
例如,初始化系统模块、
系统结束模块、
紧急故障处理模块等均是时间性内聚模块,
(6) 逻辑内聚把几种相关功能 (逻辑上相似的功能 )组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。
逻辑内聚模块例
A B C
E F G
A B C
EFG
A1 B1 C1
EFG模块内部逻辑
E,F,G逻辑功能相似,组成新模块 EFG
公用代码段公用代码段缺点,增强了耦合程度 (控制耦合 )
不易修改,效率低逻辑内聚缺点:
不易修改
增强了耦合程度 (控制耦合 )
效率低
(7) 偶然内聚模块内各部分间无联系
A B C
M MOVE O TO R
READ FILE F
MOVE S TO T
模块 M中的三个语句没有任何联系缺点:可理解性差,可修改性差例,
模块内聚性的判断 Y
N
Y
Y
该模块功能单一各功能关系如何功能内聚通讯内聚顺序内聚逻辑相似次序重要次序重要过程内聚时间内聚逻辑内聚偶然内聚
N
N
N
Y
数据流控制流两者皆非
5,耦合、内聚与模块独立性关系耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。
控制耦合举例
A
计算平均分或最高分
B
平均 /最高 成绩逻辑内聚改控制耦合为数据耦合举例
A
计算平均分
B1
平均成绩 最高成绩计算最高分
B2
功能内聚
A
取口令并核对B
用户名、
口令 对 /不对控制耦合举例顺序内聚
A
取口令B
用户名 口令将 B中核对口令功能划分到 A
功能内聚内聚与耦合密切相关,同其它模块强耦合的模块意味着弱内聚,强内聚模块意味着与其它模块间松散耦合,
设计目标,力争 强内聚,
弱耦合
5,耦合、内聚与模块独立性关系 (续 )
三 数据流图导出初始结构图从数据流程图导出系统的初始结构图,
首先要区分数据流程图的结构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应的模块结构。
(一 )数据流程图 DFD的结构类型
1.变换型 DFD
一个数据流程图可以明显地分成输入、
处理和输出三部分。
2.事务型 DFD
事务型数据流程图一般呈束状形。
(1) 变换型结构由输入、变换中心 (或称主加工 )
和输出三部分组成。
基本模型:
变换中心输入路径输出路径变换流示意图信息时间信息流输入流 输出流变换流外部表示内部表示变换型数据流图输入信息物理输入格式检查 处理 显示正确信息 结果物理输出数据变换中心 输出逻辑输入逻辑输出输入
(2) 事务型结构特征,具有在多种事物中选择执行某类事物的能力基本模型:
事务中心接受路径 动作路径
(3)大型系统 DFD中,变换型和事务型结构往往共存,
T
事务中心传入 变换 传出
(二 )DFD导出初始 MSC的过程
两种转换策略 /技术
变换分析
事务分析
一般过程
先设计模块结构顶端的主模块
然后,由顶向下逐步细化,
最后得到一个 与数据流图相对应 的程序结构
SD方法的两种转换方法变换型 DFD
事务型 DFD
初始 MSC
初始 MSC
变换分析事务分析
―由顶向下逐步细化,的思想
找出,顶,在哪里,设计一个相应的主控模块
每创建一个新的模块时,必须决定该模块的外部特征
该模块的功能,即该模块,做什么,
该模块同其调用模块的界面,即调用时传送的参数
对已创建的模块进行细化,考虑这个模块应该,怎样做,
才能完成它的功能,于是又要创建下一层的新模块,再回到上一步通过这样,先决定做什么,再考虑怎样做,,循环往复,设计过程就有序地进行,
直至获得整个完整的结构层次。
变换型事务型
(三)变换分析设计方法
(Transform Analysis)
步骤:
1 找出主加工、逻辑输入和逻辑输出
2 设计模块结构的顶层和第一层
3 设计中、下层模块
1 区分输入、主加工、输出部分,在
DFD上标明分界线
(1)确定 逻辑输入 ——离物理输入端最远的,但仍可被看作系统输入的那个数据流方法,从物理输入端开始,一步步向系统的中间移动,直至达到这样一个数据流:它已不能再被看作为系统的输入,
则其前一个数据流就是系统的逻辑输入。
1 区分输入、主加工、输出部分,在
DFD上标明分界线
(2)确定 逻辑输出 ——离物理输出端最远的,但仍可被看作系统输出的那个数据流方法,从物理输出端开始,一步步向系统的中间反方向移动,直至达到这样一个数据流:它已不能再被看作为系统的输出,则其后一个数据流就是系统的逻辑输出。
1 区分输入、主加工、输出部分,在
DFD上标明分界线 (续 )
(3)对系统的每一股输入和输出,都用上面的方法找出相应的逻辑输入、输出
(4)确定 主加工 ——位于逻辑输入和逻辑输出之间的加工,就是系统的主加工
1 区分输入、主加工、输出部分,在
DFD上标明分界线 (续 )
(5)几点说明:
有的系统只有输入和输出两部分,没有主加工
根据经验,几股数据流的汇合处往往是系统的主加工
每个人都可以有自己的看法,找出来的主加工可能也不同,但一般不会相差太远。
1 2
3 4
5 6
7
a b
c
ed
r
p u
w
v
变换中心输入部分输出部分输入 输出 加工
2 设计 MSC的顶层和第一层模块:
(1) 设计一个顶层模块 (主模块 ),它的功能是完成整个程序要做的工作。
(2) 设计结构的第一层:
为逻辑输入设计一个输入模块,它的功能是向主模块提供数据
为逻辑输出设计一个输出模块,它的功能是输出主模块提供的数据
为主加工设计一个变换模块,它的功能是将逻辑输入变换成逻辑输出第一层模块同顶层主模块之间传送的数据应与数据流图相对应。这里主模块控制并协调一层的输入、变换、输出模块的工作,注意识别出选择或循环调用以及调用条件。
第一级分解后的 MSC
MC
MTMA ME 第一层顶层
c,e c,e u,w u,w
传送信息第一级分解后的 MSC(另一种画法 )
MC
MA1
c e
u,w
c,p
MA2 4 5 6 ME1 ME2
e
p
r
r
w,u w
3 第二级分解 (分解 MSC各分支 )自顶向下分解,设计出每个分支 (输入、加工、输出 )的中、下层模块,
(1)为每一个输入模块设计两个下层模块,一个是输入模块,接受数据来源;另一个是变换模块,模块调用时传送的参数应同数据流图相对应
(2)输出模块也有两部分组成,一部分是变换模块,将数据变换成输出的形式;另一部分是输出模块上述设计过程由顶向下递归进行,直至达到系统的输入端或输出端
(3) 变换模块的下层模块,根据数据流图中相应加工的组成情况而定。
输入分支的分解
MA
Get Cb
a
c
Read D
d
e
c,e
B to C
b c d e
a b
Get E
Get B D to E
A to BRead A DFD图输出分支的分解
ME
Write V
u
u
w,u
v v
Put U
U to V
Write W
w
DFD图加工分支的分解
MT
54 6
e
c,p r
u,wp
r
DFD图任何情况下都可使用变换分析方法设计软件结构,
但如数据流具有明显的事务特点时 (有一个明显的事务中心 ),以采用事务分析方法为宜。
(四 ) 事务分析设计方法事务分析设计方法步骤:
(1)在 DFD上确定事务中心。
(2)为 DFD上的事务中心设计主模块,再为每一种类型的事务处理设计一个事务处理模块。
(3)为每个事务处理模块设计下面的操作模块,再为操作模块设计细节模块。某些操作模块和细节模块可以被几个上一层模块共用。
事务型 DFD的划分
T
事务中心 传入 变换 传出接收部分发送部分
a
事务型 MSC的上层结构 (1)
事务控制
Get a
顶层第一层
a
事务 1
事务型 MSC的上层结构 (2)
事务控制事务分析 发送动作分支的典型结构
P
T 2T 1 T i
A 2
D 2
A 1
D 1
A 3 A j
D k
事务层操作层细节层处理层变换分析举例 -DFD
1
格式检查
3
产生收据
2
计算汇费
4
记账汇款单合格的汇款单处理后的汇款单 收据明细账变换中心 输出输入业务数据变换分析举例 -转换后的 MSC
汇款处理系统取得合格汇款单 计算汇费 记账输出处理后的汇款单输入汇款单格式检查 产生收据 打印收据合格的汇款单处理后的汇款单合格的汇款单 业务数据处理后的汇款单汇款单 合格的汇款单汇款单处理后的汇款单 收据 收据业务数据要求类型处 理图书管理要求无效输入
1.1
新书入库
1.2
还入库单罚款单
1.5
注销图书
1.3
还书
1.4
目录文件借书单书 单注销单借书 借书文件罚款单事务分析举例 -DFD
事务中心事务分析举例 -转换后的 MSC
图书处理系统取得图书处理要求修改目录文件操作层细节层新书入库 注销图书借书 还书打印罚款单修改借书文件……
…… ……
图书管理要求 入库单借书单 还书单注销单练习:将 DFD用变换分析和事务型分析导出初始 MSCc1
a
A
C1
C2
C3B
D G
E J
F
K
L
c2
b2b1
b3b
c3
d
g
f j
he
k
l
m
*
*
初始 MSC
系统主加工 Put kGet d
DGet c Put lKFE JG
Write mL
B to cGet b
ARead a C1 C3C2
Ac 1 ……Ac 2
Dt 1 Dt 3Dt 2
Ac N
……
操作层细节层
d
k
k
d
m
ml
l lkdc
c
b
b
c
a a b b1
b2
c3
c1 c2 b3
e,f
d
g,j
f
e,g h h,j k
第四节 系统详细设计系统详细 设计(主要内容)
系统平台设计
代码设计
对话(人机界面)设计
输入 /输出设计
数据库设计
模块内部的算法设计( 处理流程设计 )
一 系统平台设计管理信息系统的平台设计包括计算机处理方式、软硬件选择、网络系统的设计、
数据库管理系统的选择 等。
一 系统的平台设计 (续 )
(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) 关系模型用数据的二维表格来描述实体与实体间的联系。
表中每一项须是基本项 (初等项 );
表中每一列必须有相同的数据类型 ;
每一列须有段名,且同一表格中段名不重复 ;
表中不能有相同的行 (即不能有相同的记录 );
行列的顺序均不影响表中信息的内容。
学号 姓名 成绩 等级 备注
0000
1
王一 86 良好 侨生
0000
2
丁二 92 优秀
0000 张三 67 及格利用关系数据库描述一对一关系系主任编号 主任名称 职称 系名 地址
E B 0 1 章 教授 财务系 经院 3 楼
E B 0 8 王 副教授 工管系 经院 5 楼
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … … … … …
利用关系数据库描述一对多关系班级名称 学生姓名 学生性别 学生来源经 81 张三 男 北京经 81 李四 女 山西经 81 王五 男 河北经 81 赵六 男 河南
… … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … …
利用关系数据库描述多对多关系工序名称 加工设备 零件名称 零件编号 零件数量铸造 变速箱轴 02 3-12 40
铸造 130 底盘 4 -34 -3 10
粗车 616 车床 变速箱轴 02 3-12 40
粗车 616 车床? 30 螺拴 1-23 50
精车 数控车床 变速箱轴 02 3-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、系统模块处理流程设计说明讨论与思考
1)根据,银行贷款文件修改系统,的问题描述画出 DFD图,运用转换方法画出相应的模块结构图,并进行优化。
2)根据结构图优化原则对,病人监护系统,的初始模块结构图进行改进。