第三章会计信息系统开发技术(下).ppt
11/19/2022 6:11 AM第三章 会计信息系统开发技术(下)第一节 结构化系统设计第二节 代码设计第三节 数据库设计第四节 数据文件设计第五节 接口设计第六节 计算机处理过程的表达工具11/19/2022 6:11 AM第一节 结构化系统设计一、系统设计概述二、总体设计11/19/2022 6:11 AM一、系统设计概述系统设计也叫物理设计,是根据系统逻辑模型,结合业务特点和信息技术,进行一系列技术考虑和设计,提出能在计算机上实现系统目标的实施方案,即新系统的物理模型,解决新系统应该“怎么做”的问题。系统设计的任务和目标结构化设计11/19/2022 6:11 AM系统设计的任务和目标建立新系统的物理模型分两步进行:1、总体设计(概要设计)硬件上:计算机配置设计,包括选择机型和确定系统硬件结构;软件上:设计系统的模块结构。2、详细设计对模块进行算法设计,即详细描述模块的处理过程。代码设计、数据库文件设计;系统的安全、可靠性及内部控制设计。11/19/2022 6:11 AM系统设计的任务和目标系统设计的目标:在保证实现系统功能的前提下,尽量提高系统的工作质量、运行效率、可靠性和可维护性。11/19/2022 6:11 AM1、系统的工作质量系统的工作质量主要指系统提供的信息质量,如信息的准确程度、有用性、完整性、易理解性等。11/19/2022 6:11 AM2、系统的运行效率系统的运行效率指系统的处理能力(作业吞吐量)、运行速度、响应时间等。11/19/2022 6:11 AM3、系统的可靠性系统的可靠性指系统运行过程中抵御各种干扰,保持系统正常运行的能力。系统的可靠性主要用平均故障间隔时间指标来衡量。11/19/2022 6:11 AM4、系统的可维护性系统的可维护性又称系统的可变性,指系统被修改、完善、扩充和移植的难易程度。11/19/2022 6:11 AM结构化设计结构化设计方法(Structured Design,即SD方法)提供了分解系统的策略、表达工具、评价标准以及优化技术,是总体设计的主要方法。其基本思想是:分而治之,通过分解把系统设计成具有层次及调用关系的模块结构,并通过评价与优化技术改进系统,从而从整体上提高软件的质量。11/19/2022 6:11 AM结构化设计结构化系统设计方法的核心是:确定软件的系统结构,即用一组标准工具与设计策略确定系统应该由哪些模块组成,这些模块用什么方式联结在一起,各起什么作用,才能组成一个高质量的系统。11/19/2022 6:11 AM模块模块可以是一个程序、子程序、函数或过程。模块具有运行环境、输入、输出、逻辑功能等外部属性;具有处理过程、内部数据等内部属性。模块可以调用和被调用。模块的数据来源(输入)与去向(输出)既可以是其调用者,也可以是它的被调用者。在总体设计阶段,只关心模块的外部属性。11/19/2022 6:11 AM二、总体设计软件结构的表达模块分解的原则由数据流图导出初始模块结构图模块结构图的优化11/19/2022 6:11 AM软件结构的表达软件结构用树形结构图来表达。表达软件结构常用的图形工具有两种:1、层次图2、模块结构图11/19/2022 6:11 AM1、层次图层次图,按自顶向下、逐步求精的原则设计,表示软件分解的层次结构。层次图着眼于软件具备的处理功能,所以也叫系统功能图或功能结构图。如会计信息系统的层次图如图所示。11/19/2022 6:11 AM会计信息系统的层次图财财 务务成成本本子子系系统统资资金金管管理理子子系系统统总总账账子子系系统统工工资资子子系系统统固固定定资资产产子子系系统统应应收收子子系系统统应应付付子子系系统统报报表表子子系系统统决决策策支支持持子子系系统统其其他他管管理理子子系系统统财财务务分分析析子子系系统统领领导导查查询询子子系系统统管理分析管理分析采采购购子子系系统统存存货货子子系系统统销销售售子子系系统统购销存购销存会计信息系统会计信息系统11/19/2022 6:11 AM1、层次图层次图,表达了系统的模块层次关系,每个模块对应一项处理功能,但没有表达模块之间的控制与通讯联系,需要用IPO图(InputProcessOutput,即输入处理输出图)来补充描述这些特性。如凭证汇总模块的IPO图。11/19/2022 6:11 AM凭证汇总模块的IPO图系统名称:总账子系统 设计者:XXX模块名称:凭证汇总 设计日期:2005-10-10被哪些模块调用:凭证处理 直接调用模块:输出科目汇总表模块输入文件名:凭证 调用数据:一级科目借方汇总、贷方汇总输入数据:记账凭证处理逻辑:1.将科目汇总文件所有记录的“借方汇总”与“贷方汇总”字段置零2.将记录指针移到首记录3.设置科目汇总文件4.从凭证文件汇集符合条件的凭证记录到临时凭证文件5.打开临时凭证文件6.取科目汇总文件当前记录的“科目代码”7.丛临时凭证文年汇总该“科目代码”的借方、贷方发生额8.若借方发生额或贷方发生额的汇总数不为零9.则将汇总数存入科目汇总文件当前记录10.取科目汇总文件下一条记录,继续上述处理11.直到科目汇总文件结束12.调用输出科目汇总表模块11/19/2022 6:11 AM2、模块结构图模块结构图(Model Structure Chart,MSC),也叫模块控制结构图,简称结构图。它能明确表达软件的系统结构以及模块之间的通讯及循环、判断等控制。因此,更适于表达软件的结构,是总体设计的主要文档。模块结构图也用树形结构表达软件的层次特性,图中模块用矩形框表示,框与框之间用箭头线表示调用关系。11/19/2022 6:11 AM2、模块结构图模块调用中传递信息(参数)的表示:XABmqpn控制信息数据信息11/19/2022 6:11 AM图3-4 选择调用和循环调用P1P1.1P1P1.1P1.2P1.3P1P1.1P1.2P1.3选择调用选择调用循环调用11/19/2022 6:11 AM图3-5 模块种类P1P1P1nmP1P1P1(a)传入(a)源(a)漏(a)控制(a)传出(a)变换11/19/2022 6:11 AM2、模块结构图模块结构图中,数据由源模块进入系统,经过一系列处理,最后经过漏模块离开系统。结构图不表示模块的调用顺序,调用顺序可通过分析调用中传递的参数顺序来判断。习惯上从左至右、从上至下画结构图,因此常把传入部分画在左边,传出部分画在右边,中间表示变换功能。11/19/2022 6:11 AM模块分解的原则模块分解的原则:尽量提高模块的独立性。模块的独立性可以从模块间联系和块内联系两方面衡量,分别用“耦合”和“内聚”来度量。模块分解应尽量做到:高内聚,低耦合。11/19/2022 6:11 AM1、耦合两个模块耦合的强弱取决于模块之间的联结形式和接口的复杂程度。模块间传递的参数越多,接口越复杂;模块间联结越紧密,模块的结构越差;模块之间的联结形式可归纳为如下几类:非直接耦合 控制耦合数据耦合 公共耦合特征耦合 内容耦合11/19/2022 6:11 AM非直接耦合(弱耦合)彼此完全独立的两个模块,没有任何联系,既不相互调用,也不传递信息。11/19/2022 6:11 AM数据耦合(弱耦合)两个模块调用中传递数据,一个模块传出的数据是另一个模块传入的数据,且仅仅是数据元素。11/19/2022 6:11 AM特征耦合(弱耦合)两个模块调用中传递数据结构,如通过传递数组或记录调用。11/19/2022 6:11 AM控制耦合模块间调用传递的不但有数据信息,还包括了控制信息。控制信息指开关量或标志量,通过控制信息控制对方模块的运行,增加模块之间的依赖性。11/19/2022 6:11 AM公共耦合(较强的耦合)模块之间通过使用公共数据区相互作用。错误可通过公共数据区而扩散,修改时会给侦错和纠错增加困难,因此属于较强的耦合。11/19/2022 6:11 AM内容耦合(病态耦合)如果一个模块直接修改另一个模块的内部数据,通过内存地址直接修改变量,不通过调用直接进入另一个模块,或者乱用全程变量等称为内容耦合。这是最强的耦合,也称为病态耦合。11/19/2022 6:11 AM耦合的选择特征耦合传递数据结构,如果接收数据的模块对该数据结构的所有数据都是必要的,就相当于数据耦合。否则应去掉不必要的数据传递,变特征耦合为数据耦合。控制耦合降低模块的独立性,尽量少用。实际应用中,应尽量使用数据耦合,少用控制耦合,限制公共耦合的模块数量及范围,坚决不用内容耦合。11/19/2022 6:11 AM2、内聚内聚表示模块内部各成份彼此结合的紧密程度,即紧凑性。成份:指模块程序中得一条或一组指令(语句),紧凑性表示指令之间的紧密程度。模块内部各成份之间的组合形式,由弱到强分成如下几类:偶然组合 通讯组合逻辑组合 顺序组合时间组合 功能组合过程组合11/19/2022 6:11 AM偶然组合偶然组合:即模块内各组成成份之间在功能上彼此毫无联系,但为节省内存、避免重复书写等组合在一起。缺点:偶然组合,也称机械组合、随机组合,这种模块功能杂乱,成份复杂又分散,可读性差,甚至难以命名,必定难以测试和维护。11/19/2022 6:11 AM逻辑组合逻辑组合:即将逻辑上“相似”的处理动作组合在一个模块,但这些动作的功能、用途彼此无关。逻辑组合,也称为相似组合。例如:将各种类型的输入都组合在一个输入模块。这种模块因功能多而造成比较复杂,模块调用时需要设置开关量加以区别并控制,其结构松散,块间耦合较强,可修改性较差。11/19/2022 6:11 AM时间组合将需要在同一时间段执行的成份组合在一个模块内。如初始化模块。许多模块的运行与此有关,与其他模块的耦合较强也较广,也属于低内聚的组合,可修改性较差。11/19/2022 6:11 AM过程组合模块内部包含的一组处理动作彼此无关或或联系不大,但必须按特定的次序执行,成为过程组合。过程耦合通常是按程序流程图划分模块,属于中等内聚程度的模块。11/19/2022 6:11 AM通讯组合模块有几个功能,他们都使用同一个输入数据,或产生相同的输出数据,称为通讯组合,也叫数据组合。例如用记账凭证记明细账和科目汇总后更新总账,都使用记账凭证,因而组成一个记账模块。11/19/2022 6:11 AM顺序组合模块内部有几个处理动作,前一个动作的输出正好是后一个动作的输入,将这些成份组合在一个模块,称为顺序组合。如成本核算中根据产品工时分配工资费用。先汇集并汇总工资和产品的总工时,计算工资分配率,然后按每种产品的实际工时分配工资费用。11/19/2022 6:11 AM功能组合模块内所有成份都为完成同一个功能组合在一起,而将与此功能无关的成份放入其他模块,这种组合称为功能组合。11/19/2022 6:11 AM功能组合如“科目汇总”和“修改余额”模块。这种模块功能单一,与其他模块界面清楚,块间联系低,可读性、可理解性、可测试性、可维护性都很好,好像一个函数转换器,称为“黑盒模块”。而且,象积木一样可以将许多功能组合的模块组成一个模块库,大大方便了系统的扩充和维护。所以,功能组合模块是设计者追求的目标。11/19/2022 6:11 AM内聚的选择通讯组合、顺序组合、功能组合的模块属于高内聚。低内聚模块在设计是应尽量避免使用。内聚与耦合相辅相成,功能组合模块内聚高,耦合也就低。11/19/2022 6:11 AM由数据流图导出初始模块结构图数据流图有两种典型结构:变换型结构和事务型结构。这两种结构的数据流图都可以使用一些简单的规则到出初始模块结构图。1、变换型结构与变换分析变换型结构的系统是一种线性结构,其数据流图通常由传入、传出、变换中心(或称主加工)三部分组成。如图3-6所示。11/19/2022 6:11 AM图3-6 变换型结构输入凭证审核凭证记账输出账簿凭证账簿传入部分传出部分主加工11/19/2022 6:11 AM变换分析设计步骤找出主加工、逻辑输入和逻辑输出;设计顶层和第一层模块;顶层是一个用于控制的主模块,接着按传入、变换、传出部分设计第一层模块:为每一个逻辑输入设计一个输入模块,为每一个逻辑输出设计一个输出模块,为变换中心设计一个变换模块,模块间画上调用线和传递参数。设计中、下层模块。自顶向下,逐层分解。11/19/2022 6:11 AM图3-7 变换型结构导出初始模块结构图账务处理获得有效凭证记账有效凭证输出账簿输入凭证审核凭证有效凭证账簿账簿凭证凭证有效凭证11/19/2022 6:11 AM2、事务型结构事务型结构的系统具有在多种事务中选择某一事务进行处理的特征,所以在数据流图上至少有一条接受路径传递事务记录,一个事务中心与若干条动作路径,如图3-8所示。11/19/2022 6:11 AM图3-8 事务型结构的数据流图确定信息类型按产品统计按价格统计按地区统计按日期统计销售产品分析销售价格分析销售地区分析销售时间分析销售信息接受路径事务中心动作路径11/19/2022 6:11 AM事务分析设计步骤确定事务中心、事务接受部分和发送部分;设计顶层和第一层模块;顶层是主模块,第一层为“接受事务”模块和动作调度(分类)模块。细化,即对第一层模块逐步求精地分解。“接受事务”模块可分解为读事务模块和分析事务类型两个模块,向主模块传送事务记录即事务分类标志。调度模块根据事务类型标志选择调用相应的事务处理模块处理。事务型结构数据流图转换后的初始模块结构图如图3-9所示。11/19/2022 6:11 AM图3-9事务型结构导出初始模块结构图销售分析获得销售信息销售记录调度读销售记录分析销售类型销售记录销售记录销售记录类型类型类型按产品统计按价格统计按地区统计按日期统计销售产品分析销售价格分析销售地区分析销售时间分析打印销售分析表11/19/2022 6:11 AM两种结构的选用比较大的系统往往是变换型和事务型的混合结构,如总体上是事务型结构,但某些局部是变换型结构;或者总体上是变换型结构,但某些局部又有事务型结构。因此转换时应根据数据流图的结构特征,分别采用两种方法进行设计。11/19/2022 6:11 AM模块结构图的优化首先要从“高内聚、低耦合”两个角度进行分析和评价,找出低内聚模块,然后重新分解与组合,以提高模块的独立性。下面是一些用于优化软件结构的原则和方法:1、模块的大小2、消除重复功能3、扇入、扇出、深度、宽度4、模块中判定的作用域应当在该模块的控制域内5、降低模块接口的复杂性6、确保每一模块单入口和单出口7、对系统全局的优化远胜于对局部的优化11/19/2022 6:11 AM1、模块的大小模块的大小无统一标准,一般认为可以在一张纸上较好,这样的模块大小适中,方便阅读和理解,也便于测试和维护。11/19/2022 6:11 AM2、消除重复功能每一模块在结构图中只能出现一次,可以被共享调用。如果有几个模块中存在部分重复的功能,则应设法将这些重复的功能外提,构造一个新的模块供调用,以减少程序设计、测试和维护的工作量。11/19/2022 6:11 AM3、扇入、扇出、深度、宽度扇入:指直接调用该模块的上级模块数量。扇入大,则说明该模块共享性好。扇出:指该模块直接调用的下级模块数量。扇出不能过大。深度:是指结构图中模块的最大层数。宽度:是指结构图中同一层次上最大的模块数。通常上层部分扇出较大,中间层扇出较小,底层操作模块有较高的扇入。11/19/2022 6:11 AM4、模块中判定的作用域应当在该模块的控制域内模块的控制域:指该模块本身以及所有直接或间接从属于它的模块集合。如果某个模块中存在判定,那么所有受此判定影响的模块称为该判定的作用域。11/19/2022 6:11 AM5、降低模块接口的复杂性模块间的接口过于复杂是软件发生错误和难以维护的一个主要原因。因此,应该尽量使其简单统一,且与模块的功能一致。11/19/2022 6:11 AM6、确保每一模块单入口和单出口11/19/2022 6:11 AM7、对系统全局的优化远胜于对局部的优化对结构图所作的任何修改,只要有利于提高模块的独立性就是一种改进。对系统全局的优化远胜于对局部的优化。通过一系列的改进,软件的结构不断优化,直到再也做不出实质性的改进,最终的结构图才算完成。11/19/2022 6:11 AM第二节 代码设计一、代码的作用二、代码设计的原则三、代码的分类四、代码设计五、代码维护设计11/19/2022 6:11 AM一、代码的作用1、标示识别;便于记忆、记录、存储。2、便于计算机分类、汇总、检索及管理3、便于系统内外信息传递、交换、重组、共享。11/19/2022 6:11 AM一、代码的作用(补充)1、识别功能:区分事物,如会计科目代码,单位代码,材料代码等;2、分类功能:如会计科目代码中,第一位:1资产类;2负债类;3所有者权益类;4成本类;5损益类;3、排序功能:可按照代码大小顺序排列;4、其他功能:如标准化,简易化,助记,保密,检错,节约存储空间,提高录入速度及处理速度等;11/19/2022 6:11 AM二、代码设计的原则1、唯一性2、标准化和通用性3、稳定性和可扩充性4、简单性5、便于识别和记忆6、可靠性:如重要代码设置检验位;11/19/2022 6:11 AM1、唯一性代码与对象一一对应。一个编码对象只能有一个代码,每一个代码也只能唯一地表标识一个对象。11/19/2022 6:11 AM2、标准化和通用性国家有关的编码标准必须遵守,如一级科目编码。系统内部同一类代码的结构、类型及编码规则必须统一,而且要兼顾其他部门的使用习惯。有助于扩大代码的使用范围和数据共享。11/19/2022 6:11 AM3、稳定性和可扩充性会计数据资料需要长期保存以及随时查阅,需要代码要有稳定性;又需要考虑今后的发展变化,应能方便地增加代码。11/19/2022 6:11 AM4、简单性代码必须简单明了,短小精练。以节省存储空间、提高录入速度和处理速度、减少出错机会。但适当增加代码长度,方便分类,可扩充性好。设计时应全面权衡,不要顾此失彼。11/19/2022 6:11 AM5、便于识别和记忆代码是人机共用的数据。代码尽量有逻辑含义;使用长时间稳定的代码;不要在代码中嵌入空格,不要使用易混淆的字符,如0o;1I;2Z;5S;VU;尽量采用不易出错的代码结构,如“字母字母数字”结构比“字母数字字母”好;使用字母编码时不要再区分大小写,否则极易出错。11/19/2022 6:11 AM三、代码的分类1、顺序码2、区段码3、层次码4、特定数字码5、助记码6、组合代码11/19/2022 6:11 AM1、顺序码如部门代码 01会计系;02管理系;03金融系.;优点:简单,位数少;缺点:1、代码没有逻辑含义,不利于分类;2、代码增删不灵活,中间不能插码;3、不便于记忆,不便于计算机处理;适用于:仅作识别、内容长时期不变而且要严格管理的编码对象,如合同号,发票号、记账凭证编号等。11/19/2022 6:11 AM2、区段码根据代码化对象的特点,将代码分成大小任意的若干区段,在各区段内分配顺序号码,这种代码称为区段码,也叫分区顺序码。如邮政编码。优点:既简单,又可进行简单分类,可扩展性也较好;缺点:1、分区无统一标准,不能满足复杂分类的要求,2、不利于程序的通用性与数据处理的多样化;11/19/2022 6:11 AM3、层次码层次码也叫组别码或群码,它是将代码化对象按一定的属性特征分成若干层次,下一层次隶属于上一层次,各层次分配若干位代码,依次对各层次对象分别编码,组成一个有层次及隶属关系的逐级展开的分类体系。11/19/2022 6:11 AM3、层次码例:材料代码0101 010101010101钢板钢材黑色金属金属材料0202 010101010101烧碱碱类无机类化工材料11/19/2022 6:12 AM3、层次码例:会计科目代码:2171217101010101进项税额应交增值税应交税金10091009 0202银行本票其他货币资金11/19/2022 6:12 AM3、层次码层次码的特点:分类标准明确,有严格的隶属关系,每一层代码有特定的含义,容易修改与扩充,便于计算机分类和处理;缺点:位数容易变多。适用于:分类标准明确或分类要求较高的业务处理,在会计信息系统中广泛应用。如科目编码、客户权限组编码、客户分类、供应商分类、部门、地区、存货分类、收发类别、结算方式等。11/19/2022 6:12 AM4、特定数字码将代码化对象的物理特征,如尺寸、容量、功率等用作编码的代码,称为特定数字码。如对电灯泡的编码:优点:代码具有一定的逻辑含义,容易记忆;缺点:位数较多,不便于计算机处理。适用于:数量较少,需要表示一定物理特性的代码。12120150151515瓦瓦普通灯泡普通灯泡11/19/2022 6:12 AM5、助记码将代码化对象的名称、规格等特性作为代码的一部分或全部的编码成为助记码。如:现金XJ 银行存款YHCK 千克KG 21吋彩色电视机TV-C-21 1995年5月4日1995-05-04优点:容易记忆理解;缺点:位数多、易出现重码、不便于计算机处理。适用于:编码对象较少,需要表达某些特性的场合。11/19/2022 6:12 AM6、组合代码将上述两种或两种以上形式的代码组合,即从两个或两个以上的角度识别和处理的编码成为组合代码。优点:可以从多个角度识别,容易分类和便于计算机处理;缺点:位数多。适用于:分类标准较复杂的场合。11/19/2022 6:12 AM四、代码设计1、确定编码对象,明确编码目的;2、分析编码对象,确定编码方法;包括:代码种类、代码层次及位数、是否采用校验码。3、编写代码设计书;4、编写代码;5、校验码设计;11/19/2022 6:12 AM5、校验码设计通过事先确定的数学方法计算原代码的校验码(1-2位),把它附加在原代码后面作为代码的一部分使用。校验原理:代码(包括校验码)输入后,程序按同样的算法对原代码运算,对计算得到的校验值与输入的校验码比较其一致性。11/19/2022 6:12 AM校验码设计步骤例:设原代码为:2817选择权因子:1、2、3、4求加权和:S=21+82+13+74=49选定模数:如10求余数:余数=mod(10,49)=9确定校验码:9(或1=10-9)完整代码为:28179(或28171)11/19/2022 6:12 AM五、代码维护设计即对代码文件记录的增加、查询、修改、删除、打印、备份、恢复等功能的设计。设计要求:对代码的维护应方便、灵活、可靠,保持代码的完整性和一致性,不影响原代码体系的使用,尽量避免对程序和数据库文件结构的修改。代码的维护应检查使用权限,应留下审计线索。11/19/2022 6:12 AM第三节 数据库设计一、数据库设计的目标二、数据库设计的内容和步骤三、概念结构设计四、逻辑设计11/19/2022 6:12 AM一、数据库设计的目标数据库是按一定的组织方式存储在外存上相互关联并能集中控制的数据集合,它能以最优的方式、最小的数据冗余为多种应用服务。数据库设计的目标是:1、满足用户要求,既能包含用户要处理的所有数据,又能满足用户对所有处理功能的要求。2、能被某个现有的数据库管理系统接受,在其支持下直接定义建库。3、具有高的质量和使用效率,数据独立性好,易于理解、使用和维护。11/19/2022 6:12 AM二、数据库设计的内容和步骤数据库系统是由计算机硬件、数据、模式、应用程序及数据库管理系统等部分组成的,它的功能是通过某个数据库管理系统实现的。数据库设计的核心:是建立应用系统的数据模式,即如何合理组织和存储数据,确定应建立哪些数据表文件、表的逻辑结构以及确定表间的数据联系。11/19/2022 6:12 AM数据库设计的步骤1、数据分析2、概念结构设计3、逻辑设计4、物理设计11/19/2022 6:12 AM1、数据分析分析用户对数据的需求,包括处理要求及各种限制条件,如安全性、可靠性、完整性等要求。11/19/2022 6:12 AM2、概念结构设计在数据分析的基础上,使用适当的工具建立应用系统的概念性数据模型,即概念结构。概念性数据模型纯粹反映用户的要求,是对用户现实环境的抽象描述,即从用户角度看到的数据库模型,而没有考虑具体实现方法。它是数据库设计的一个关键。11/19/2022 6:12 AM3、逻辑设计在对概念性数据模型进行优化之后转入逻辑设计,即设计逻辑数据模型阶段。逻辑设计的任务是:根据计算机系统提供的数据库管理系统的特点,按照一定的规则,将概念性数据模型转化为数据库管理系统能够接受的数据模型,并按照数据存储结构规范化理论进行优化,确定数据结构。11/19/2022 6:12 AM4、物理设计物理设计是对已给定的数据逻辑模型设计一个最合适的应用环境的数据库物理结构,即设计数据库在物理设备上的基本存储结构。确定存储结构的主要因素是存取时间、存储空间利用率和数据库维护的代价。还要考虑数据库的转储、恢复、运行日志和并发控制等等。11/19/2022 6:12 AM三、概念结构设计P.Chen于1976年提出的实体联系方法即ER(Entity-Relationship Approach)方法,是用ER图(也称ER 模型)来表达概念结构数据模型。ER图的基本成分用ER图设计概念结构数据模型结合实例来设计ER图11/19/2022 6:12 AM ER图的基本成分1、实体集2、实体之间的联系3、实体或联系的属性11/19/2022 6:12 AM1、实体集实体集是现实世界中需要处理的同类对象的集合,需要命名,如工厂、车间、产品、单据等。实体集在E-R图中用矩形框表示。供应商产品生产车间记账凭证11/19/2022 6:12 AM2、实体之间的联系实体之间的联系在E-R图中用菱形框“”表示,也需要命名。实体之间的联系有三类:一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)11/19/2022 6:12 AM2、实体之间的联系车间车间主任领导11车间车间工人属于1n明细账记账凭证记账nm工人生产mp原材料产品n一对一联系一对多联系多对多联系多元联系11/19/2022 6:12 AM3、实体或联系的属性属性在ER图中用椭圆框表示,通常画在它所描述的实体或联系的旁边,用短线与之连结。属性也可在其他地方用文字列出。车间产品生产mn部门号车间主任电话号车间名称产品号规格合格否产品名称生产日期属性属性属性11/19/2022 6:12 AM用ER图设计概念结构数据模型在数据分析的基础上,可着手进行概念结构设计。对于复杂的应用问题,一般先逐个画出各部门的分ER图,即单个用户的概念模型视图,然后综合各分ER图,形成所有部门的总ER图,并对总ER图进行优化。11/19/2022 6:12 AM用ER图设计概念结构数据模型设计ER模型时,首先要确定实体、联系以及属性。实体和属性并不存在形式上可以截然划分的界限,设计时可以先按大体上的自然习惯试着构造ER图,然后结合实际处理要求和某些规则进行必要的调整,不断修改ER图。通常可按如下规则来划分实体和属性。11/19/2022 6:12 AM划分实体和属性的规则作为属性的“事物”,与它所描述的实体之间只能是单值联系,即属性与实体之间的联系只能是一对多的。某实体的某个属性只属于该实体,而非其他实体。作为属性的“事物”,不再具有需要进一步描述的性质或与其他“事物”发生联系。一般把符合上述原则的“事物”作为属性,否则将其作为实体处理,而且能做属性处理的“事务”尽量作属性处理,这样可以简化ER图。11/19/2022 6:12 AM结合实例来设计ER图1、课题定义:某车间生产若干种产品(整机),产品由零件装配而成,零件存放于若干仓库,这些仓库又都隶属于该车间。假定零件全部外购,由若干供应商提供。现在要对产品生产和零件供应、保管进行管理,设计数据库概念结构模型。11/19/2022 6:12 AM结合实例来设计ER图2、分ER图即单个用户视图设计目标系统至少有三种用户:车间主任采购员仓库管理员11/19/2022 6:12 AM车间主任视图车间产品生产n部门号车间主任车间名称产品码规格产品名称生产日期装配零件m零件码规格零件名称耗用量仓库属于n仓库号保管员11n产量11/19/2022 6:12 AM仓库管理员视图仓库车间属于1仓库号保管员部门号车间主任车间名称零件存放n1n数量零件码规格零件名称11/19/2022 6:12 AM采购员视图零件供应商供应mn零件码规格零件名称供应商编号联系人供应商名称价格11/19/2022 6:12 AM3、总ER图车间产品生产n部门号车间主任车间名称产品码规格产品名称生产日期装配零件n零件码规格零件名称耗用量仓库属于n仓库号保管员11m供应商供应n供应商编号联系人供应商名称价格存放数量pmn产量11/19/2022 6:12 AM4、优化总ER图集成后的总ER图,可能存在冗余的数据或实体之间冗余的联系。冗余的数据指可以由基本数据导出来的数据;冗余的联系指可以由基本联系导出来的其他联系。冗余信息会危害数据库的完整性和一致性,在集成总ER图之后应当加以清除,即对总ER图进行优化。11/19/2022 6:12 AM4、优化总ER图优化后的ER图就是所需的概念结构,它仍然是现实世界的纯粹反映。因此,概念结构设计过程也是一个反复的过程,应反复征求用户意见修改优化,逐步求精,以便最终能更准确地反映现实世界的本来面目。11/19/2022 6:12 AM四、逻辑设计逻辑设计是以ER模型为基础,按照一定的规则将概念性数据模型转换成关系模型或其他数据模型,即能被所采用的数据库管理系统接受的数据模型。通常采用模式分解的方法来转换,具体步骤为:1、确定属性之间的依赖关系2、构造关系模式11/19/2022 6:12 AM1、确定属性之间的依赖关系分析ER图中每个实体内部各属性的含义,确定属性之间的依赖关系。如实体集“零件”中存在依赖关系:零件码零件名 零件码规格实体之间的联系也可以用函数依赖关系来表示,但它反映的是实体之间的关系,不是属性之间的关系。如车间和产品两个实体之间的1:n联系可写出函数依赖表达式:部门号产品码产品和零件两个实体集之间的m:n联系可写出函数依赖表达式:(产品码,零件码)耗用量11/19/2022 6:12 AM1、确定属性之间的依赖关系分析不同实体之间的属性(一般为非主属性)之间是否也存在某种函数依赖。若有则一一列出。11/19/2022 6:12 AM2、构造关系模式为ER图中每个实体分别建立一个关系模式,实体的属性即关系的字段,实体的码(关键字)即关系的码。两实体之间的1:1联系不必单独建立关系,若联系本身有属性,则让它们进入1:1两端任何一个实体作为它的属性。11/19/2022 6:12 AM2、构造关系模式两实体之间的1:n联系不必单独建立关系,让1的一方实体所对应关系的关键字(主码)作为外来码进入n的一方的关系,作为它的一个属性。如果联系本身具有属性,也让它们进入n的一方的关系,作为它的属性。例如:车间产品有1:n联系“生产”,则产品关系中增加部门码、生产日期两个外来属性。11/19/2022 6:12 AM2、构造关系模式两实体之间的m:n联系,要为它单独建立一个关系,其属性除了包括联系本身的全部属性外,还要包括联系双方实体关系的关键字属性(主码)。多个实体之间多对多的多元联系,要单独为它建立关系,其属性除了包括联系本身的全部属性外,还要包括该联系各方实体关系的关键字属性(主码)。11/19/2022 6:12 AM2、构造关系模式按照上述规则导出的一组关系中,若存在只有一个属性的关系,或发现某关系的属性已全部包含在其他关系中,则将该关系去掉。按照上述规则导出的关系,还要按照数据规范化理论进行处理。如上面例子可得到下面一组关系模式:11/19/2022 6:12 AM2、构造关系模式1、车间关系:*部门号、车间名、车间主任2、仓库关系:*仓库号、保管员3、供应商关系:*供应商编号、供应商名称、联系人4、产品关系:*产品码、产品名称、规格、部门号、产量、生产日期5、零件关系:*零件码、零件名称、规格6、供应关系:*供应商编号、*零件号、价格7、存放关系:*零件号、*仓库号、数量8、装配关系:*产品码、*零件码、耗用量11/19/2022 6:12 AM2、构造关系模式确定这组关系中每个属性的字段名、数据类型及宽度(包括小数位数),这样就可以在数据库管理系统的支持下建立数据库。11/19/2022 6:12 AM第四节 数据文件设计一、数据文件的分类二、文件的存取方法三、数据文件设计的原则与步骤四、文件维护设计11/19/2022 6:12 AM一、数据文件的分类按文件的存储介质分类按文件的组织方式分类按文件的用途分类11/19/2022 6:12 AM按文件的存储介质分类1、纸带文件2、卡片文件3、打印文件4、磁带文件5、磁盘文件6、光盘文件11/19/2022 6:12 AM按文件的组织方式分类1、顺序文件2、索引文件3、直接文件4、倒排文件11/19/2022 6:12 AM1、顺序文件顺序文件是最简单也是最常用的文件组织方式,其特点是:记录的物理顺序与逻辑顺序一致,处理时采用顺序访问方式。磁盘上的顺序文件也可以随机访问。顺序文件存取速度快,空间利用率高,操作与维护简单方便,因此使用极为普遍。11/19/2022 6:12 AM2、索引文件当文件的记录很多时,顺序查找效率较低,这时可以对文件按记录的关键字建立索引,组织索引文件。这样,文件中的记录在物理上是无序的,但逻辑上是有序的。索引文件可以按关键字快速查找,而且可以按文件中不同的属性分别建立索引文件。对数据表,依关键字可以建立主索引、候选索引、普通索引、唯一索引。11/19/2022 6:12 AM3、直接文件根据记录的关键字,按照某种算法计算出记录的存储地址即记录号,从而按地址直接存取记录的文件称为直接文件,也叫随机文件。直接文件使用效率较高,缺点是不易找到一个理想的算法,使记录在文件中能均匀分布,有时几个不同关键字的记录会因分配到同一个地址而发生冲突,需要特殊处理。11/19/2022 6:12 AM4、倒排文件用记录的非主属性值而不是关键字来查找记录组织的文件叫倒排文件。倒排文件主要用于复杂的查询。11/19/2022 6:12 AM按文件的用途分类1、主文件2、事务文件3、中间文件4、表文件5、档案文件6、后备文件11/19/2022 6:12 AM1、主文件主文件是信息系统中发挥核心作用的文件。主文件在处理中频繁被更新并需要长期保存。如总账文件、科目余额发生额文件、职工工资文件、材料库存文件、产品成本文件等。11/19/2022 6:12 AM2、事务文件将业务记录按时序存入的文件叫事务文件,用以进行批处理去更新主文件或转换成其他文件。事务文件记录处理后需要存档,也叫业务文件。如记账凭证、材料收发文件等。11/19/2022 6:12 AM3、中间文件中间文件是处理过程中存放中间结果或为了方便处理而临时产生,处理后可以删除。11/19/2022 6:12 AM4、表文件表文件记录系统中某些参数以供将来检索使用,如:产品目录、计划、单价、定额等。如产品目录、单价、各种定额等。其内容比较稳定、不需要经常更新,一般应设为只读形式。11/19/2022 6:12 AM5、档案文件将重要的文件定期备份,作为档案长期保存的文件称为档案文件。如账套文件、年度账文件。11/19/2022 6:12 AM6、后备文件后备文件用于存储在一定时点上系统部分状态的拷贝文件。以防系统故障、重要数据丢失时用于迅速恢复现场。11/19/2022 6:12 AM二、文件的存取方法文件中记录的存取方法取决于文件的组织方式。顺序存取直接存取动态存取11/19/2022 6:12 AM顺序存取顺序存取是按文件中记录的物理顺序存取记录。特点:操作简单、存取时间短、使用效率较高。11/19/2