版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 系统设计教学目的和要求理解系统设计的任务要求掌握结构化设计的基本概念数据库设计数据库设计的过程代码设计输出设计输入设计人机对话设计计算机处理过程的设计计算机系统的选择系统设计说明书7.1 系统设计的任务要求系统分析阶段要回答的中心问题是系统“做什么”,即明确系统功能,这个阶段的成果是系统的逻辑模型。系统设计要回答的中心问题是系统“怎么做”,即如何实现系统说明书规定的系统功能。在这一阶段,要根据实际的技术条件、经济条件和社会条件,确定系统的实施方案,即系统的物理模型。 7.1.1 评价信息系统的标准我们可以从六个方面来衡量:1.信息系统的功能2.系统的效率 3.系统的可靠性4.系统的工作
2、质量5.系统的可变更性6.系统的经济性 7.1.2 系统设计的目标(1)把系统划分为一些部分,其中每一部分的功能简单明确,内容简明易懂,易于修改。我们把这样的部分称为模块。(2)系统分成模块的工作按层次进行。首先,把整个系统看成一个模块,按功能分解成若干个第一层模块,依次下去,直到每个模块都十分简单。(3)每一个模块应尽可能独立,即尽可能减少模块间的调用关系和数据交换关系。 (4)模块间的关系要阐明。结构化设计的基本思想:一个易于修改的系统应该由一些相对独立、功能单一的模块按照层次结构组成。这些模块之间不必要的联系都已去掉,而且它们的功能及相互关系都已阐明。7.1.3 系统设计的内容 系统设计
3、的基本任务大体上可以分为两个方面:1.把总任务分解成许多基本的、具体的任务:总体设计(architectural design), (1)将系统划分成模块; (2)决定每个模块的功能; (3)决定模块的调用关系; (4)决定模块的界面,即模块间信息的传递。 2.为各个具体任务选择适当的技术手段和处理方法:详细设计包括代码设计、数据库设计、输入设计、输出设计、人机对话设计、处理过程设计。7.2 结构化设计的基本概念7.2.1 模块模块(module):通常是指用一个名字就可以调用的一段程序语句。可以将它理解为类似“子程序”的概念;模块具有: 输入和输出 逻辑功能 运行程序 内部数据四种属性。7.
4、2.1 模块模块的外部特性输入、输出、逻辑功能构成一个模块的模块的外部特性。模块的内部特性内部数据和程序代码则是模块的内部特性,是看不见的。模块用程序代码完成它的逻辑功能。内部数据是仅供该模块本身引用的数据。在总体设计阶段,主要关心模块的外部特性,模块的内部属性是以后要解决的问题。7.2.2 模块结构图 结构化设计采用结构图(structured chart)描述系统的模块结构及模块间的联系。结构图中的主要成分有:(1)模块:用长方形表示。(2)调用:从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。箭尾的菱形表示有条件地调用,弧形箭头表示循环调用。(3)数据:用带圆圈的小箭头表示从一
5、个模块传递给另一模块的数据。(4)控制:信息带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息。结构图的层数称为深度。一个层次上的模块总数称为宽度。深度和宽度反映了系统的大小和复杂程度。7.2.2 层次结构图 打印报表生成报表计算获得有效数据核对数据获得编辑数据读入数据编辑数据显示无效数据获得有效数据获得有效数据获得有效数据有效数据EOF7.2.3 模块间的联系结构化设计的基本思想,就是把系统设计成由相对独立、功能单一的模块组成的层次结构。为了衡量模块的相对独立性,提出了模块间的耦合(coupling)与模块的内聚(cohesion)两个概念。这两个概念从不同侧面反映了模块的独立性。耦合反
6、映模块之间连接的紧密程度。内聚指一个模块内各元素彼此结合的紧密程度。n每个模块完成一个相对独立的子功能,并且与每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单其它模块间的接口简单n独立性度量独立性度量模块的耦合(模块的耦合(Coupling)一个模块与其它模块之间一个模块与其它模块之间模块的内聚(模块的内聚(Cohesion)模块内部各成分之间耦合(模块内部各成分之间耦合(coupling)n模块的独立性高模块的独立性高 块内联系强高内聚块内联系强高内聚 块间联系弱块间联系弱 低耦合低耦合7.2.4 模块间的耦合影响模块间耦合程度有三方面的因素: 联系方式模块间通过什么方式联系;
7、来往信息的作用模块间来往信息作什么用; 信息数量模块间来往信息的多少。 耦合性越高,模块独立性越弱无耦合没有依赖关系无耦合没有依赖关系松散耦合有松散耦合有少量依赖关系少量依赖关系紧密耦合有紧密耦合有很多依赖关系很多依赖关系 耦合强度依赖的因素: 一模块对另一模块的引用 一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量 模块间接口的复杂程度无直接耦合 无直接耦合 两个模块没有直接关系,模块独立性最强数据耦合 数据耦合 一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。开发票开发票计算水费计算水费单价单价数量数量金额金额特征耦合 特征耦合 两个模块通过传递数据结
8、构(不是简单数据,而是记录、数组等)加以联系,但实际只使用数据结构其中的部分数据计算水电费计算水电费计算水费计算水费计算电费计算电费住户住户情况情况水费水费电费电费住户住户情况情况特征耦合特征耦合计算水电费计算水电费计算水费计算水费计算电费计算电费用水量用水量水费水费电费电费用电量用电量数据耦合数据耦合控制耦合 控制耦合 一模块向下属模块传递的信息 (开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑 控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖 去除模块间控制耦合的方法: 将被调用模块内的判定上移到调用模块中进行 被调用模块分解成若干
9、单一功能模块控制耦合数据耦合外部耦合 外部耦合 一组模块均与同一外部环境关联 (例如,I/O模块与特定的设备、通信协议相关联), 它们之间便存在外部耦合。 外部偶合必不可少,但这种模块数目应尽量少公共耦合 公共耦合 一组模块引用同一个公用数据区 (也称全局数据区、公共数据环境)。 公共数据区指: 全局数据结构 共享文件、数据库 共享通讯区 内存公共覆盖区等 公共数据区公共数据区C CB B内容耦合 内容耦合ABCDA:goto C1C:C1: B AA:entry 1:entry 2: 模块设计原则 耦合是影响软件复杂程度和设计质量的重要因素 尽量使用数据耦合,少用控制耦合,限制公共耦合的范围
10、,完全不用内容耦合 最终目的:降低模块接口复杂性7.2.5 模块的内聚模块的内聚反映模块内部联系的紧密程度。如果一个模块内部相关性很高,而且都是为了同一个功能,我们就说它的内聚程度高。模块的内聚可以分以下七类 :1.偶然内聚(coincidental cohesion)2.逻辑内聚(logical cohesion)3.时间内聚(temporal cohesion)4.过程内聚(procedural cohesion)5.通信内聚(communicational cohesion)6.顺序内聚(sequential cohesion) 7.功能内聚(functional cohesion)模块
11、的内聚的判别(1)关闭文件F1,输出记录TP,计算职工总数,删除记录R,输入数据X。(2)打印工资单。(3)计算各业务类型库存变化量:发料业务库存变化量,进料业务库存变化量。 (4)输入数据X,计算Y=F(X),求总数S=S+Y,打印总数S。 (5)输入数据X,计算Y=F(X),把X由数字型转变为文字型,把X赋给Z,打印X。(6)打开文件F1,读第一条记录,计数器和总数变量赋初值零,打印表头。(7)输入职工号,读考勤文件,读工资文件,计算工资,打印工资单。模块的内聚的判别(1)关闭文件F1,输出记录TP,计算职工总数,删除记录R,输入数据X。(偶然)(2)打印工资单。 (功能)(3)计算各业务
12、类型库存变化量:发料业务库存变化量,进料业务库存变化量。 (逻辑)(4)输入数据X,计算Y=F(X),求总数S=S+Y,打印总数S。 (顺序)(5)输入数据X,计算Y=F(X),把X由数字型转变为文字型,把X赋给Z,打印X。 (通讯)(6)打开文件F1,读第一条记录,计数器和总数变量赋初值零,打印表头。 (时间)(7)输入职工号,读考勤文件,读工资文件,计算工资,打印工资单。 (过程) 。 内聚 一个模块内部元素在功能上相互关联的强度 高内聚:模块内部完成单一的处理 低内聚:模块内部各部分关联不紧密,完成分散的多个处理任务 模块设计的目标:高内聚内聚偶然内聚 偶然内聚 模块的各部分无联系 缺点
13、:可理解性差,可修改性差逻辑内聚 逻辑内聚 把几种相关功能(逻辑上相似 的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。 部分共享代码,但修改模块会影响其他模块A:Read inputsfrom diskfrom tapefrom 逻辑内聚与耦合BCAFGEEFGBCA缺点:增加了耦合缺点:增加了耦合 度,不易修改度,不易修改时间内聚 时间内聚 模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起 例子 初始化系统模块 系统结束模块 紧急故障处理模块 等 均是时间内聚模块 逻辑简单 出现问题时难以确定哪个部分故障过程内聚 过程内聚 模块内各部件相关且仅有控制联系
14、,各部件以特定次序执行 模块包含了多个功能的一部分,当某个功能出现问题时,难以确定问题在哪个模块 各部件处理不同的数据ClearbufferInput FileMReset signalCountCalculateClose File通信内聚 通信内聚 模块内各部分使用相同的输入数据,或产生相同的输出结果 通过参数选择部件M顺序内聚 顺序内聚 模块内各部件包含数据联系也包含控制联系,并且必须按顺序执行,上一处理的输出作为下一处理的输入 模块可能涉及多个功能,诊断困难功能内聚 功能内聚 模块仅包括为完成某个功能所必须的所有成分。 (模块所有成分共同完成一个功能,缺一不可 ) 易进行故障诊断和维护
15、内聚总结121234132341212XYZ1(a) 偶然内聚偶然内聚(b) 逻辑内聚逻辑内聚(c) 过程内聚过程内聚(d) 通信内聚通信内聚(e) 顺序内聚顺序内聚(f) 功能内聚功能内聚7.2.6 作用范围与控制范围 一个判断的作用范围是所有这样的模块的集合:这些模块内含有依赖于这个判断结果的处理。模块A有条件地调用模块B和C,说明在模块A中调用B,C的语句受判断结果的影响。因此,模块A作用范围是B和C。一个模块的控制范围是指它本身及其所有下属模块的集合。这里下属模块包括直接下属模块及下属模块的下属模块。模块A的控制范围是A,B,C,DB计算工人工资A计算工资C计算干部工资D计算总工资工资
16、额控制标志7.2.6 作用范围与控制范围 模块的作用范围和控制范围的关系,直接决定了系统模块间关系的复杂性、可修改性及可维护性。在系统结构设计中应遵循的原则:对于任意具有判断的模块,其作用范围都不应超过其控制范围。7.2.6 作用范围与控制范围 改进作用范围不在控制范围之内的方法:1.在系统结构设计中上移判断点的位置;2.将具有判断的模块和上层调用模块合并;3.将受判断的模块作用的模块下移,使之处于判断的模块的控制范围。改进作用范围不在控制范围之内的方法BACDXTOPYBACDXTOPY改进7.2.7 模块的扇入与扇出 模块的扇出是指模块的直属下层模块的个数,一般认为,设计得好的系统平均扇出
17、是3或4。 一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认为扇出的上限不超过7。BACC1C3C2B1A的扇出是2B的扇出是1C的扇出是37.2.7 模块的扇入与扇出 模块的扇入是指有多少个上级模块调用它。设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇入。其结构图像清真寺的塔,上面尖,中间宽,下面小7.3 从数据流图导出结构图 变换流与事务流 结构化设计步骤 变换流到软件结构的转换 事务流到软件结构的转换 软件体系结构优化1、变换流与事务流 DFD中的数据流可分为两类 变换型数据流 事务型数据流 可转换为相应的软件结构 变换型结构 事务型结构1、变换流与事务流 变换流
18、输入流:外部数据变为内部数据形式流经的途径 变换中心:把输入的信息变换为输出信息的部分 输出流:输出信息流出系统的途径 变换流DFD:具有输入、变换和输出三部分特征的数据流程图1、变换流与事务流 变换流Internal representationInformationTransform flowOutgoingflowIncomingflowExternal representationTime1、变换流与事务流 变换流abcdefghi输入流变换流输出流1、变换流与事务流 事务流 有一个事务项的输入,经事务中心(处理)触发成一些处理分支。对于一个事务,只触发一个分支。 事务流DFD 有一个
19、输入通路 有一个事务中心 有多个输出通路1、变换流与事务流 事务流 TTransactionrequest Action paths 2、结构化设计步骤 精化DFD 确定DFD类型 把DFD映射到系统模块结构设计出模块结构的上层 基于DFD逐步分解高层模块设计出下层模块 根据模块独立性原理,精化模块结构 模块接口描述2、结构化设计步骤3、变换流到软件结构的转换3、变换流到软件结构的转换3、变换流到软件结构的转换3、变换流到软件结构的转换3、变换流到软件结构的转换3、变换流到软件结构的转换3、变换流到软件结构的转换4、事务流到软件结构的转换MIIISABCIIISBAC7.4 数据库设计的理论基
20、础数据库(Data Base)的基本概念数据库是一种为了存储和管理大量数据的计算机技术,它的特点是把存储的数据和对数据进行管理的程序分为二个独立的部分。数据部分高度结构化,以实现数据的独立性、共享性和低冗余度。数据由数据库管理系统(DBMS)进行统一管理和控制。DBMS提供对数据的安全性、完整性、并发性和数据恢复等控制功能。数据库文件、DBMS和系统运行的计算机软硬件环境组成了数据库系统(DBS)。7.3.1 数据库系统的系统结构1. 单用户 数据库系统早期最简单的数据库系统,整个数据库系统都运行在一台计算机,由一个用户独占,不同计算机之间不能共享数据1.单用户 数据库系统7.3.1 数据库系
21、统的系统结构2. 主从式结构的数据库系统一台主机带多个终端的多用户结构,数据库系统都运行在主计算机上,各用户并发地存取数据库,共享数据资源。2. 主从式结构的数据库系统7.3.1 数据库系统的系统结构3. 分布式数据库系统数据在逻辑上是一个整体,物理上分布在计算机网络的不同结点上,每个结点可以独立处理本地数据库的数据,也可以同时存取和处理多个异地数据库的数据3. 分布式数据库系统LAN7.3.1 数据库系统的系统结构4. 客户/服务器结构数据库系统把在网络中运行的DBMS的功能和应用分开,某些计算机专门用于执行DBMS功能,称为数据库服务器;其他计算机运行应用软件,支持用户的应用,称为客户机。
22、客户机把用户应用请求传送到服务器,服务器处理后把结果返回客户机。7.3.1 数据库系统的系统结构浏览器/服务器结构(Browse/Server)仿照Internet的工作方式,在用户端采用浏览器作为用户工作界面,而把所有的DBMS应用和服务功能集中在服务器端,这种结构称之为浏览器/服务器结构。应用系统的开发和维护工作主要在服务器上进行,系统工作人员甚至可以远程登录服务器进行软件系统的测试和维护工作,这样给开发应用系统带来很大的便利。7.3.2 数据库系统的模式结构数据库的模式即全局逻辑结构。1 数据库系统的三级模式结构外模式(用户视图)也称子模式或用户模式,即用户看到的数据逻辑结构和特征描述,
23、一个数据库可以有多个外模式逻辑模式(概念视图)也称模式或概念模式,对全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,不涉及数据存储的物理细节,与应用程序和开发工具无关内模式(物理视图)也称存储模式,对数据物理结构和存储结构的描述,是唯一客观存在的数据库。7.3.2 数据库系统的模式结构2 数据库的二级映象功能与数据独立性 数据库三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映象:外模式模式映象和模式内模
24、式映象。正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。数据库系统的模式结构图应用1应用3应用2用户视图外模式A物理视图外模式B模式存储模式概念视图模式/内模式映象外模式/模式映象数据库系统的模式结构图数据库的子模式、模式、外模式以及在这三级模式之间提供了两层映象(或称映射)。对于每一个外模式,数据库系统都有一个外模式/模式映象,当模式改变时由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性;同样,由于存在模式/内模式映象,当数据库的存储结构改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模
25、式保持不变,从而保证了数据的物理独立性。7.3.2 数据库系统的模式结构3 数据库三级模式结构的优点模式是数据库的中心与关键,它独立于数据库的其他层次。内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图,也独立于具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动。 概念模型为了把现实世界抽象、组织成某一DBMS支持的数据模型,先将现实世界抽象成信息世界,再将信息世界抽象
26、成机器世界,这种信息世界实际上是某一种信息结构,不依赖于具体的计算机系统,只是人概念上的一种模型。概念模型机器模型认识抽象认识抽象现实世界 数据模型数据模型指的是采用哪种数据结构来实现信息模型,即数据库组织数据的方式。按照数据结构的不同,常用数据模型有三种:采用树结构构成的数据模型:层次模型采用网络结构构成的数据模型:网络模型采用二维表格结构构成的数据模型:关系模型。层次模型网络模型关系模型层次数据模型层次模型的基本结构 只有一个结点没有双亲结点,称之为根结点 根以外的其他结点有且仅有一个双亲结点优点: 结构简单,操纵、使用方便 实体间联系固定,搜索、遍历结点快捷,性能优越缺点: 对于非层次的
27、现实世界联系表示起来比较困难 插入、删除操作的限制较多 查询子女结点必须通过双亲结点 结构严谨,层次命令趋于程序化。宿舍校长职员学生教师课程层次数据模型网状数据模型网状数据模型是去除层次数据模型的两个限制,更为符合现实世界实体联系关系的数据结构:优点:能够方便、直接描述现实世界性能优越,存取效率高缺点:定义网状数据结构的语言比较复杂数据独立性差。教师学生课程成绩班级网状数据模型关系数据模型关系数据模型的逻辑结构是一张二维表,由行和列组成,满足一定的规范条件,即构成关系模型。关系:满足一定的规范条件的表元组:表中的一行为一个元组属性:表中的一列为一个属性主码:又叫关键字(key),可以唯一确定一
28、个元组的属性域:(domain)属性的取值范围分量:元组中的一个属性学号姓名性别系别年龄籍贯关系数据模型关系数据模型的特点优点: 唯一一种建立在严格数学概念基础上的数据模型,其数学基础是关系代数,减少依人性; 实体和实体间的联系都用关系来表示,概念单一,数据结构简单、清晰、易理解; 数据独立性高,易于定义和操纵。缺点: 查询效率不如网状数据结构; 为实现查询优化,对数据库管理系统的设计开发提出了较高的要求。7.3.3 规范关系的几个等级范式(Normal Form)关系数据库中的关系必须满足一定的要求,这些不同程度的要求就称之为范式(NF)。目前主要有六种范式一.第一范式(1NF):如果一个关
29、系模式R的所有属性都是不可再分的基本数据项,则该关系满足第一范式,记作:R1NF副经理正经理赵六王五供应g2李四张三销售x1经理部门名部门号副经理正经理赵六王五供应g2李四张三销售x1部门名部门号1NF第二范式(2NF):如果一个关系模式R满足第一范式,并且所有非主属性都完全函数依赖R的主属性(码),则该关系满足第二范式,记作:R2NF学生(学号,系,宿舍,课程号,成绩)(学号,课程号) 成绩学号 系(学号,课程号) 系学号 宿舍(学号,课程号) 宿舍系 宿舍fpp学号宿舍系课程成绩候选码投影分解:学号宿舍系课程成绩候选码学号候选码学生-成绩关系学生-宿舍关系满足2NF的关系7.3.3 规范关
30、系的几个等级第三范式(3NF):如果一个关系模式R满足第二范式,即所有非主属性都没有对主属性部分函数依赖,并且又没有没有对主属性的传递函数依赖,则该关系满足第三范式,记作:R3NF例:学生关系(学生,系,宿舍)学生系, 学生宿舍, 系宿舍投影分解成:学生-系关系(学生,系)系-宿舍关系(系,宿舍)满足3NF的关系。学生宿舍系候选码学生系候选码系宿舍候选码学生-系关系系-宿舍关系投影分解:满足3NF的关系7.3.3 规范关系的几个等级BC范式(BCNF):修正的第三范式。如果一个关系模式R满足第三范式,且所有的函数依赖都是对候选关键字的依赖,则该关系满足BC范式,记作:RBCNF每个BCNF的关
31、系模式都具有如下性质:1.所有非主属性都完全函数依赖于每个候选码。2.所有主属性都完全函数依赖于每个不包含它的候选码。3.没有任何属性完全函数依赖于非码的任何一组属性。7.3.3 规范关系的几个等级BCNF的例子:对于函数依赖:(学生,课程)教师, (学生,教师)课程, 教师课程,其中主属性“课程”依赖于“教师”,即主属性“课程”部分依赖码(学生,教师)。学生教师课程候选码学生课程教师候选码学生课程教师教师投影分解, 得到满足BCNF的关系如下:3NF7.3.3 规范关系的几个等级7.4 数据库设计的过程 7.4.1 数据库设计的内容与要求数据库设计的内容是:对于一个给定的环境,进行符合应用语
32、义的逻辑设计,以及提供一个确定存贮结构的物理设计,建立实现系统目标,并能有效存取数据的数据模型。 例如,某个用户的数据库(如银行的数据处理系统)由模式、子模式,应用程序,数据库和DBMS等几部分组成。其中DBMS一般可从现有的产品中选购,而模式、子模式、应用程序等则必须根据用户的具体要求进行分析和设计。7.4.1 数据库设计的内容与要求 数据库设计要满足下面几个条件:(1)符合用户要求,即能正确地反映用户的现实环境,它应能包含用户需要处理的所有“数据”,并能支持用户需要进行的所有“加工”;(2)能被某个现有DBMS所接受;(3)具有较高的质量,如易于维护,易于理解,效率较高等。7.4.1 数据
33、库设计的内容与要求设计主要困难表现在:(1)懂得计算机和数据库的人,一般都缺乏企业的业务知识和实际经验,而具有企业业务知识和实际经验的人往往又不懂计算机和数据库;(2)对一个信息系统数据库的目标和需要是什么,缺少明确的规定,这是数据库设计中最困难的事情;(3)缺乏完善的设计工具和方法理论;(4)应用范围逐渐扩大,新的应用进入系统,会带进新的数据,同时又要用到原有数据,新旧数据合并引起一定的复杂性;(5)用户不断要求增加DBMS的功能。7.4.2 数据库设计的步骤数据库设计大致有如下四个阶段:(1)分析数据存储要求;(2)概念结构设计;(3)逻辑设计;(4)物理设计。1、2两步是面向“问题”的,
34、3、4两步是面向“解答”的。前二个阶段相应于软件生命周期中的分析阶段,后二个阶段相应于设计阶段。7.4.2 数据库设计的步骤1分析数据存储要求收集和分析用户的存储要求是整个数据库设计中最重要的步骤之一,它是其它各步骤的基础。分析存储要求的目的,是根据一个组织中高层领导和终端用户的存储要求,决定整个存储管理的目标、范围及应用性质。 7.4.2 数据库设计的步骤2概念结构设计这个阶段的工作内容是:用一个“概念性数据模型”将用户的数据要求明确地表达出来。这一步与软件生命周期中建立“系统说明书”相应。概念性数据模型是一种面向问题的数据模型,它描写了从用户角度看到的数据库,反映了用户的现实环境,但与数据
35、库将怎么实现无关。概念性数据模型,在用户和设计人员之间起桥梁的作用。一方面它明确表达用户要求的一个模型,另一方面这个模型是设计数据结构的基础。因此,建立概念性数据模型是数据库设计过程中的一个关键。7.4.2 数据库设计的步骤3逻辑结构设计是设计数据的结构,即将数据组织成一个和计算机提供的DBMS所采用的数据模型相符合的形式。实质上是把概念结构转换为所选用的DBMS所支持的模式。它可以同软件生命周期中设计阶段的“总体设计”相对应。E-R图P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach,简称E-R方法)构造的图,即称为E-R模型。事物
36、之间的联系有:一对一的联系:一个工厂和厂长的关系一对多的联系:一个工厂和厂里工人的关系多对多的联系:学生和所选课程关系,一个学生选修多个课程,每一门课程可以被多个学生选修,其实体间是n:m关系。E-R图 对于1:n的关系,其转化为层次和网状是直接的; n:m关系不能直接转换成数据模型。一般是引进一个“实体”将其简化为两个1:n的实体关系。实体关系图(E-R图)转化为关系模型较为方便。 学生课程选课学号姓名课程号课程名教师MN1nn17.4.2 数据库设计的步骤为把n:m的关系转化为1:n的关系,引进一个“选课”实体将其简化为两个1:n的实体关系。学生选课学号姓名课程号学号课程号课程名教师课程选
37、课课程号学号7.4.2 数据库设计的步骤关系模型的设计由于有了规范化的理论和函数依赖、多值依赖的理论,使得我们对于实体的属性之间的关系看得更加透彻,因而可以设计出优化的关系模式。所以,在关系模型的设计中又引进了一个规范化的过程。转换过程分为两步: 把概念结构向一般的数据模型转换; 再转换成特定的DBMS支持下的数据模型。在进行模式设计的同时,要考虑子模式的要求,要将不同用户所提出的不同存取要求,都能在模式中给以满足。7.4.2 数据库设计的步骤4物理结构设计工作内容是:q确定数据库的物理结构设计数据模式的一些物理细节,如:文件的基本结构、存取方法,建立索引等。q对物理结构进行评价是把时间和空间
38、的效率作为评价的重点。7.4.2 数据库设计的步骤物理设计的主要内容如下:(1)存贮结构的选择(2)存贮介质的分配(3)确定数据块(页面)的大小(4)自由空间的安排(5)存取路径的选择。数据库设计举例设计过程(1)订单(订单号, 客户号,客户名,客户电话,客户地址,商品号,商品名,生产厂,单价,订货数量,总金额)满足第一范式,但可以删除冗余属性“总金额” :进行语意分析,确定候选码:订单号*,客户号*,商品号*找出全部函数依赖: F=订单号*, 客户号,客户号* 客户名,客户号 客户电话,客户号 客户地址, 商品号* 商品名,商品号生产厂,商品号单价, (订单号 ,商品号) 订货数量确定主码:
39、 (订单号 ,商品号) *订单号顾客号商品号订货数量候选码商品名生产厂单价顾客电话顾客名顾客地址数据库设计举例设计过程(1)画出函数依赖图:设计过程(2)对上述函数依赖图投影分解,消除非主码依赖,以满足第二范式:候选码订单号商品号订货数量候选码商品名生产厂单价商品号候选码顾客号顾客电话顾客名顾客地址订单号候选码设计过程(3)投影分解消除传递依赖,以满足第三范式;因无非码的依赖故也符合BCNF订单号商品号订货数量候选码候选码商品名生产厂单价商品号候选码顾客号顾客电话顾客名顾客地址候选码顾客号订单号设计过程(4)最后得到四个规范关系:客户关系(客户号* ,客户名,客户电话,客户地址) 商品关系(商
40、品号* ,商品名,生产厂,单价) 订货关系(订单号* ,商品号*,订货数量)客户-订货关系(订单号* ,客户号)库文件结构:客户号*客户名客户电话客户地址商品号*商品名生产厂单价订单号*商品号*订货数量订单号*客户号客户文件:商品文件:订单文件:订单-客户文件:关系数据库产品简介一.微型计算机关系数据库的发展历史最早的微型计算机关系数据库管理系统DbaseAshton Tates 公司80年代首推的微机关系数据库管理系统 在DBase基础上发展出来的FoxBASEFox Software公司推出的和Dbase完全兼容的微机关系数据库管理系统-FoxBase 适应DOS和WINDOWS两种环境运
41、行的FoxProFox Software公司在FoxBASE基础上的改进产品-FoxPro使用面向对象程序设计方法和可视化编程技术的数据库管理系统VFP(Visual FoxPro)MicroSoft 公司开发的可视化系列编程语言Visual Studio的成员之一,对FoxPro作了重大改进。1. Microsoft Visual Foxpro 的发展历史 Microsoft公司在1992年兼并Fox Software公司后,于1995年成功地将FoxPro发展成支持可视化开发和操作、面向对象的数据库- Visual Foxpro 3.0,该产品获得巨大成功,长时间位居畅销软件排行榜前列 1
42、997年微软公司推出Visual Foxpro 5.0,中间没有Visual Foxpro 4.0 ,是为了保持其产品版本号的统一性,以和Visual Basic 5.0, Visual C+ 5.0等共同组成MicroSoft Visual Studio 97 1998年微软公司推出MicroSoft Visual Studio 98, 其VFP 发展成为 Visual Foxpro 6.0 ,和Visual Basic 6.0, Visual C+ 6.0, Visual J+ 6.0等共同组成系列开发套件,均有面向中国市场的相应中文版本 。2. Microsoft Visual Foxp
43、ro的特点 对传统的FoxPro数据库管理系统引入了微软公司先进的软件技术,如SQL技术,ActiveX,OLE技术、可视化编程技术等,既保持了FoxPro的语言风格,又极大地增强了FoxPro功能 能够管理大量复杂的数据信息,同时具有很好的安全性 使用结构化查询技术,能够快速查询所需信息,具有很好的实时性 采用可视化编程技术,实现真正的可见即所得,适应在图形用户界面(GUI)环境运行,易学、易用、易维护2. Microsoft Visual Foxpro的特点能够快速、随意地制作出各种形式的报表和标签,并能够方便地根据数据制作出直方图、饼图改变了以.DBF作为数据库文件的传统概念,由二维表、
44、表间关系和触发器程序等组成的集合构成数据库使用面向对象程序设计方法,设计程序只需要描述目标,而不需考虑实现过程,提高程序设计效率支持客户/服务器结构,能够实现数据的远程访问和存储加工,方便在网络环境下的分布式数据库的实现。3 关系数据库标准语言SQL一.结构化查询语言(Structured Query Language)介于关系代数与关系演算之间的语言,实现查询、操纵、定义、控制四方面功能,是关系数据库标准语言大多数数据库厂家采用SQL作为共同的数据存取语言和标准接口,并将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。SQL已成为关系数据库领域的主流语言
45、。3 关系数据库标准语言SQL二.SQL的发展历程1974年由Boyce 和 Chamberlin 共同提出1975年至1979年由IBM公司San Jose Research Laboratory在其关系数据库管理系统System R中首次实现1986年10月由美国国家标准局(ANSI)公布为美国国家标准,标号为SQL-861987年国际标准化组织(ISO)通过SQL-86作为ISO国际标准1989年美国国家标准局(ANSI)公布改进的SQL-891992年美国国家标准局(ANSI)公布再次改进的SQL-92目前ANSI正酝酿新的SQL标准SQL3三 SQL的特点1.综合统一具有数据定义语言
46、(DDL),数据操纵语言(DML)、数据控制语言(DCL) 功能,语言风格统一,可以独立完成数据库的全部活动2.高度非过程化用户只需提出“做什么”,不必指明“怎么做”,简化设计负担3.面向集合的操作方式查找的结果可以是元组集合,一次插入、删除、更新操作也可以是元组集合4.以同一种语法结构提供两种使用方式自含式工作方式:独立联机交互使用嵌入式工作方式:嵌入到某高级语言程序中,设计程序使用5.语言简洁,易学易用核心功能只有9个动词,实现四类功能,语法接近英语口语,容易学习,容易使用。四. SQL语言动词SELECT: 查询选择CRECTE: 创建表、视图、索引 DROP: 删除表、视图、索引 AL
47、TER: 修改表 INSERT: 插入元组、子查询结果 UPDATE: 刷新(修改)视图 DELETE: 删除元组 GRANT: 授权 REVOTE: 收回权限SQL功能动词数据查询 SELECT数据定义 CRECTE,DROP,ALTER数据操纵 INSERT,UPDATE,DELETE数据控制 GRANT,REVOTE 4 ORACLE数据库Oracle公司简介q成立于1977年,是著名的专门从事研究、生产关系数据库的专业厂家。1979年推出的ORACLE1.0版是世界上首批商用关系数据库系统之一,当时就采用SQL语言作为数据库语言;q1986年推出的ORACLE RDBMS5.1是具有分
48、布处理功能的关系数据库系统;q1988年推出的ORACLE第六版加强了事务处理,配置了多用户联机事务处理应用功能;q1992年推出的ORACLE 第七版对体系结构作了较大调整,并对核心做了进一步修改;q1997年推出的ORACLE 第八版主要增强了对象技术,成为对象-关系数据库系统;q目前ORACLE产品覆盖了大、中、小几十种机型,成为世界上使用非常广泛的、著名的数据库管理系统。5 SYBASE 数据库Sybase公司简介qSybase公司成立于1984年11月,是数据库软件厂商的后起之秀。推出了支持企业范围的“客户/服务器体系结构”数据库系统。拥有数据库系统和操作系统两方面的优秀人才q在吸取
49、INGRES及数据库机研制经验的基础之上,于1987年推出的SYBASE SQL Server,称为大学版INGRES的第三代产品qSYBASE11.5是公司的最新产品,支持企业内各种数据库应用需求,如数据仓库、联机事务处理(OLTP)、决策支持系统和小平台(mess deployment)应用。7.5 代码设计7.5.1 代码的作用代码是用来表征客观事物的一个或一组有序的符号,它应易于计算机和人识别与处理。代码也简称为“码”。代码有以下功能:(1)鉴别功能(2)分类(3)排序(4)专用含义7.5.2 代码的种类 (1)顺序码顺序码是一种最简单、最常用的代码。这种代码是将顺序的自然数或字母赋予
50、分类对象。顺序码是一种无实义代码。这种代码只作为分类对象的唯一标识,只代替对象名称,而不提供对象的任何其他信息。顺序码的优点:代码简短,使用方便,易于管理,易添加,对分类对象无任何特殊规定。缺点是代码本身没有给出对象的任何其他信息。通常非系统化的分类对象常采用顺序码。 7.5.2 代码的种类 (2)矩阵码是一种逻辑码。所谓逻辑码,是按照一定的逻辑规则或者程序算法编写的代码。矩阵码就是建立在两维空间坐标x,y基础上的代码。代码的值是通过坐标x,y的数值构成的。(3)自检码自检码由原来的代码(本体部分)和一个附加码组成。附加码用来检查代码的录入和转录过程中是否有差错。附加码也叫检验码。它和代码本体
51、部分有某种唯一的关系,它是通过一定的数学算法得到的。 7.5.2 代码的种类 (4)系列顺序码是排序码的一种,是一种特殊的顺序码。它将顺序代码分为若干段并与分类对象的分段一一对应,给每段分类对象赋予一定的顺序代码。特点:是能表示一定的信息属性,易于添加;缺点是空码较多时,不便于机器处理,不适用于复杂的分类体系。7.5.2 代码的种类 (5)层次码代码分为若干层,并与对象的分类层次对应。代码左端为高位层次代码,右端为低位层次代码。每个层次的代码可采用顺序码或系列顺序码。特点:能明确标出对象的类别,有严格的隶属关系,代码结构简单,容量大,便于机器汇总。当层次较多时,弹性较差。 7.5.3 代码的类
52、型 代码的类型指代码符号的表示形式:v数字型代码是用一个或多个阿拉伯数字表示的代码。这种代码结构简单,使用方便,也便于排序,易于在国内外推广,缺点是对象特征描述不直观;v字母型代码是用一个或多个字母表示的代码。例如:BJ代表北京,NJ代表南京。优点是便于记忆,符合人们使用习惯,代码容量大。缺点是不便于机器处理。特别是编码对象多、更改频繁时,常会出现重复和冲突;v混合型代码是由数字、字母、专用符号组成的代码。这种代码基本上兼有前两种代码的优点。但是这种代码组成形式复杂,计算机输入不便,录人效率低,错误率高。7.5.4 代码的校验方法 为了验证输入代码的正确性,要在代码本体的基础上,再外加校验码,
53、使它成为代码的一个组成部分。校验码是根据事先规定好的数学方法及代码本体计算出来的。当自检码输入计算机后,计算机按照同样的数学方法,根据代码本体进行计算,将结果与校验位比较,检验输入的代码是否正确。一种校验码的生成过程如下:(1)对代码本体的每一位加权求和设代码本体为C1,C2Cn,权因子为P1,P2,Pn,加权求和:S=CiPi。其中权因子可取自然数1,2,3,几何级数2,4,8,16,32,质数2,3,5,7,11,等等。(2)以模除和得余数R:R=S mod(M) ,M=10,11,等等。(3)模减去余数得校验位:Cn+1=M-R7.5.4 代码的校验方法 例 代码本体为123456,权因
54、子为1,7,3,1,7,3 模为10,则:S=1* 1+2*7+3*3+4*1+5*7+6*3=81R=81 mod(10)=1校验位为:10-1=9所以自检码为1234569,其中9为校验位。当自检码C1C2CnCn+1(其中Cn+1为校验位)输入计算机后,对C1C2Cn分别乘以原来的权因子,Cn+l乘以1,所得的和被模除,若余数为零,则该代码一般说来是正确的,否则输入有错。7.5.5 代码设计的原则 代码设计必须遵循以下基本原则:(1)唯一性一个对象可能有多个名称,也可按不同的方式对它进行描述。但在一个编码体系中,一个对象只能赋予它一个唯一的代码。 (2)合理性代码结构应与相应的分类体系相
55、对应。 (3)可扩充性应留有充分的余地,以备将来不断扩充的需要。 7.5.5 代码设计的原则 (4)简单性结构尽可能简单,尽可能短,以减少各种差错。(5)适用性代码尽可能反映对象的特点,以助记忆,便于填写。(6)规范性国家有关编码标准是代码设计的重要依据,已有标准的必须遵循。在一个代码体系中,代码结构、类型、编写格式必须统一。(7)系统性有一定的分组规则,从而在整个系统中具有通用性。7.5.6 代码设计的步骤 (1)确定代码对象。(2)考查是否已有标准代码。应遵循标准代码。或在代码设计时要参考国际标准化组织、其他国家、其他部门、其他单位的编码标准,设计出便于今后标准化的代码。(3)根据代码的使
56、用范围、使用时间,根据实际情况选择代码的种类与类型。(4)考虑检错功能。(5)编写代码表。代码编好后,要编制代码表,作详细说明,以便正确使用。7.6 输出设计输出设计包括以下几方面的内容:(1)确定输出内容首先要确定用户在使用信息方面的要求,包括使用目的、输出速度、频率、数量、安全性要求等等。根据用户要求,设计输出信息的内容,包括信息形式(表格、图形、文字),输出项目及数据结构、数据类型、位数及取值范围,数据的生成途径,完整性及一致性的考虑,等等。 7.6 输出设计(2)选择输出设备与介质常用的输出设备有显示终端、打印机、磁带机、磁盘机、绘图仪、缩微胶卷输出器、多媒体设备。输出介质有纸张、磁带
57、、磁盘、缩微胶卷、光盘、多媒体介质等等。这些设备和介质各有特点,应根据用户对输出信息的要求,结合现有设备和资金条件选择。7.6 输出设计(3)确定输出格式提供给人的信息都要进行格式设计。输出格式要满足使用者的要求和习惯,达到格式清晰、美观、易于阅读和理解的要求。报表是最常用的一种常用输出形式。报表的格式因用途不同而有差异,但一般由三部分组成:表头、表体和表尾。表头部分主要是标题;表体部分是整个表格的实体,反映表格的内容;表尾是一些补充说明或脚注。 7.7 输入设计7.7.1 输入设计的原则 “输入的是垃圾,输出的必然是垃圾”。输入设计的目标是保证向系统输入正确的数据。在此前提下,应做到输入方法
58、简单、迅速、经济、方便。为此,输入设计应遵循以下原则:(1)最小量原则:这就是在保证满足处理要求的前提下使输入量最小。 (2)简单性原则:输入的准备、输入过程应尽量容易,以减少错误的发生。(3)早检验原则:对输入数据的检验尽量接近原数据发生点,使错误能及时得到改正。(4)少转换原则:输入数据尽量用其处理所需形式记录,以免数据转换介质时发生错误。 7.7.2 输入设计的内容输入设计的内容包括:(1)确定输入数据内容;输入数据的内容设计,包括确定输入数据项名称、数据内容、精度、数值范围。 (2)确定数据的输入方式;数据的输入方式与数据发生地点、发生时间、处理的紧急程度有关。如:如果发生地点远离计算
59、机房,发生时间是随机的,又要求立即处理,则采用联机终端输入。 7.7.2 输入设计的内容(3)确定输入数据的记录格式;记录格式是人机之间的衔接形式,因而十分重要,设计得好,容易控制工作流程,减少数据冗余,增加输入的准确性,并且容易进行数据校验。 (4)输入数据的正确性校验; 我们已经强调,输入设计最重要问题是保证输入数据的正确性。对数据进行必要的校验,是保证输入正确的重要环节。 7.7.2 输入设计的内容(5)确定输入设备设备的选用应考虑以下一些因素:输入的数据量与频度;数据的来源、形式、收集环境;输入类型、格式的灵活程度;输入速度和准确性要求;输入数据的校验方法、纠正错误的难易程度;可用的设
60、备与费用。7.7.3 数据记录格式设计输入数据的记录格式:既要便于操作人员录入,又要便于填表人员、现场工作人员填写;记录格式本质上分为两部分:预先印刷部分和插入数据的空格。让人填的表格,不仅要注明文字,而且在表格下方也要注明代码说明。一些比较简单的代码,也可在表中列出,这样既方便了填表人和读表人,使他们不用死记编码或反复翻阅代码表,又可提高填写的准确性,从而能够保证输入数据的准确性。 7.7.3 数据记录格式设计设计记录格式时可以采用如下基本技术:(1)块风格 把一部分框起来,引人注目,每个空格填人的数据仅为其所要求的数据。(2)阴影 不用编码员完成的那部分格式使用阴影,并注上说明。(3)选择
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GH/T 1440-2023黑蒜
- 中考文言文复习资料大全课外文言文冲刺课件
- 不等式证明复习课课件
- 单位管理制度合并选集职员管理篇十篇
- 单位管理制度分享合集【职员管理篇】
- 《诗歌鉴赏表达技巧》课件
- 《企力管理咨询》课件
- 单位管理制度呈现大全【职员管理篇】
- 《转基因生物安全性》课件
- 4S店维修安全管理制度
- 人工开挖土方施工方案
- 佛山市顺德区2023-2024学年四上数学期末质量检测模拟试题含答案
- 昆明市公交集团车载视频监控平台升级方案20191025
- 一流课程申报
- 高中体育特长生名校报考路径分析课件
- 主要建筑材料碳排放因子查询表
- 建筑施工室内装饰设计施工图讲解
- 冠寓运营管理手册
- 耳部铜砭刮痧技术评分标准
- 玻璃幕墙施工方案幕墙
- 抗精神疾病药物与麻醉课件
评论
0/150
提交评论