1、,*,第,5,章 系统设计,System Design,2,章节结构,5.1,系统设计概述,5.2,信息系统设计策略,-,结构图,5.3,系统设计的原则,5.4,系统设计的策略,5.5,编码设计,5.6,数据库设计,5.7,输入,/,输出及人机界面设计,5.8,系统设计说明书,5.9,系统设计实例,3,5,.6 编码设计(代码设计),代码是用来表征客观事物的一个或一组有序的,符号,它应易于计算机和人识别与处理。,编码就是用字母、数字或其组合来代表事物。,代码的作用:,鉴别功能,标识分类对象,信息代码化,便于计算机进行识别、分类、排序和统计,利用代码可以节省计算机的存储空间,提高运算速度,利用代
2、码可以提高系统的可靠性,4,5.6.1,代码的种类,代码,非含义码,含义码,有序码,随机码,校验码,对照码,缩略码,助记码,缩略码,字母顺序码,区间码,年代码,层次码,十进制码,特征码,P218,图,5.35,代码的种类,5,1,.,有序码(顺序码),将顺序的自然数或字母赋予分类对象。,有序码例:人的性别代码(GB2261-80),1-男2-女,各系代码等等,编码,对象,仓库,1,仓库,2,仓库,3,仓库,4,仓库,5,仓库,6,编码,01,02,03,04,05,06,6,代码的表示形式(编码方式),(1)数字顺序编码,(2)数字分组顺序编码,(3)字符编码,(4)组合编码,7,(1)数字顺
3、序编码,这是最简单的编码形式,一般适用于被编码对,象数目较少的情况。,例如,某企业管理信息系统中,对6个物资仓库,的编码可采用如下的数字顺序码。,编码,对象,仓库,1,仓库,2,仓库,3,仓库,4,仓库,5,仓库,6,编码,01,02,03,04,05,06,8,(2)数字分组顺序编码,当编码对象具有两层(或以上)的分类时,可,采用数字分组(段)顺序码。,如6个仓库中的帐本的编码可采用如下的数字分,组顺序码。,9,(3)字符编码,数字编码虽然结构简单,但也存在不容易识别,和记忆的缺点。为了容易识别和记忆,可采用字符,编码。,如我们可对企业的6个仓库采用下面的字符编码。,10,(4)组合编码,编
4、码对象具有两层(或以上)的分类时,我们,可采用数字和字符的组合编码方式使编码对某层分,类的记忆和识别更直观和容易。,如前述6个仓库中的帐本的编码可采用如下的组,合编码。,11,2,.,区间码,按编码对象的特点把代码分成若干区段,每一,个区段表示编码对象的一个类别。例如邮政编码、,国际电话号码,,身份证号码等,。,23-06-01,0086-551-1234567,区间码进一步分为层次码、十进制码、特征码。,12,(,1,)区间码之层次码,按分类对象的从属层次关系作为排列顺序的一,种代码。,国民经济行业分类和代码(GB4754-84)采用三,层的层次码。三层分别代表大类、中类、小类。,第一层(大
5、类),X,X,X,第二层(中类),第三层(小类),13,(2)区间码之十进制码,十进制码中每一位数字代表一类,一般用于图,书分类。,500 自然科学,510 数学,520 天文学,620 工程和技术科学,621 机械和电气工程,621.1 蒸汽动力工程,621.2 水利机械,14,(,3,)区间码之特征码,在码的结构中,为多个属性各规定一个位置,,从而表示某一编码对象的不同方面特征。,如某一男装的编码为M38-2W1。,15,3,.,助记码,用可以帮助记忆的字母或数字来表,示编码对象,将编码对象的名称、规格,等作为代码的一部分。,TV-B-12,TV-C-20,20,寸彩色电视机,16,4,.
6、,缩略码,把人们习惯使用的缩写字直接用于,代码,是助记码的特例。,Cm、Kg等,17,5.,校验码及其生成过程、代码校验方法,校验码=校验位,自检码=原代码(代码本体)+校验码,校验码的,一种,生成过程:,对原代码的每一位加权求和,设原代码为C,1,C,2,C,n,,权因子为P,1,P,2,P,n,,,加权求得:S=C,1,P,1,+C,2,P,2,+,+C,n,P,n,权因子可以取自然数1,2,3,,,几何级数,2,4,8,16,32,,,质数2,3,5,7,11、,等。,18,校验码的生成过程,用,加权,和除以模得余数,R=S mod M,其中,R表示余数,M表示模数,可,取M=10,11
7、等。,模减去余数,或者直接取余数,得校验码,,附加在原代码后。,C,n+1,=M-R,或,R,19,校验码的生成过程例,原代码:123456,权因子:173173,模:10,加权和:S=11+273341,5763=81,余数:R=81 mod 10=1,校验码:10-1=9,自检码:1234569,自检码=原代码(代码本体)+校验码,20,习题1:计算校验码,原代码:12345,权因子:65432,模:11,加权和:S=16+253443,52=50,余数:R=50 mod 11=6,校验码:11-6=5,自检码:123455,21,习题2:计算18位身份证号的校验码,老的身份证号是15位,
8、新的身份证号为18位。,关于身份证第18位是怎么计算的,原理如下:,根据国家标准 GB 11643-1999中有关公民身份号,码的规定,公民身份号码是特征组合码,由17位数,字本体码和1个数字校验码组成。排列顺序从左至右,依次为:6位数字地址码,8位数字出生日期码,3位,数字顺序码和1位数字校验码。,地址码表示编码对象常住户口所在县(市、旗、,区)的行政区划代码。,22,计算18位身份证号的校验码(续1),生日期码编码对象出生的年、月、日,其中年,份用4位数字表示,年、月、日之间不用分隔符。例,如:1981年05月11日就用19810511表示。,顺序码为同一地址码所标识的区域范围内,对,同年
9、同月同日出生的人员编定的顺序号。其中第17,位奇数分给男性,偶数分给女性。,校验码(第18位)是根据前面17位数字码,按,照ISO 7064:1983.MOD 11-2计算出来的。,23,计算18位身份证号的校验码(续2),第18位数字的计算方法为:,原代码:身份证号前17位。,权因子:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2,模:11,加权和:身份证号前17位数字和对应权因子相乘再,求和S,余数:R=S mod 11,R只可能有0-1-2-3-4-5-6-,7-8-9-10这11个取值,校验码:按规定(ISO 7064:1983.MOD 11-2)不同R,对应校
10、验码取值分别为1-0-X-9-8-7-6-5-4-3-2,(直接,取余数,得校验,码,),24,计算18位身份证号的校验码(续3),可见若余数是2,就会在身份证末位,出现罗马数字的X。若余数是10,身份证,的最后一位号码就是2。,试计算自己的身份证校验码是否与,实际情况相符。,25,用校验码检查代码的过程,使用校验码是输入设计环节的输入校验方式之,一,是前述校验码生成过程的逆向过程。,当自检码C,1,C,2,C,n,C,n+1,(其中C,n+1,为校验码)输,入计算机后,对C,1,C,2,C,n,分别乘以原来的权,C,n+1,乘以1,把它们相加后所得的和除以模。若余数为,0,则该代码,一般来说
11、,是正确的,否则输入有错。,(原代码与权乘积之和校验码)模整数,26,用校验码检查代码例,设输入的代码(含校验码)为55787,其中7,为校验值,对每一位乘以它的原来的权,1234,校验位乘的权为1。用所得的加权和,被模9除,若余数为零,则代码一般是正确,的,否则就是输入有错。上述代码显然有错,,因为其加权和除以模的余数不为零。,7,5/9=,8,.,3,27,不一般的情况,原编码:1234569(正)或2415569(误),权因子:173173,模:10,余数:90/10=9.0,100/10=10.0,结论:本例两种编码检验结果均为0,检验失效。,28,用校验码检查组合编码的处理方法,一般
12、情况下,校验码是对数字代码,进行检验。在使用校验码对组合编码进,行检查时,将AZ跟随09顺序变为:,A=10,B=11,Z=35,低可靠性系统,数字代码,字母数字代码,模:,10,权:,7,3,1,7,3,1,基本检错率,:90%,一般,可靠性系统,模:,11,权:,*,基本检错率,:90.909,%,模:,37,权:,*,基本检错率,:,97,.297%,高可靠性系统,模:,97,权:,*,基本检错率,:98.969,%,模:,523,权:,*,基本检错率,:99.808,%,*,为摆动的等差级数:权从1、2、3递增到低于模的一半,然后再从模减1,递减至高于模的一半;按此规律进行重复。例如:
13、模是11,则权为1、2、3、4、5、10、9、8、7、6、1、2、3、.,不同权和模的检错率(检错效率),30,不同权和模的检错率(检错效率),模,权,抄写错,检错率,易位错,检错率,隔位,易位错,检错率,随机错,检错率,10,10,10,11,11,11,1,2,1,2,1,2,1,3,1,3,1,3,7,6,5,4,3,2,9,8,7,4,3,2,1,3,7,1,3,7,7,6,5,4,3,2,100%,100%,87%,95%,100%,100%,98%,89%,100%,100%,89%,100%,0%,-,-,89%,-,100%,-,-,90%,-,-,-,31,5.6.2,编码设
14、计的原则,唯一性,通过编码可唯一地确定编码对象,这是编码在,数据管理中最基本的作用。,合理性,代码结构应与相应的分类体系相对应。,可扩充性和稳定性,应留有充分的余地,以备将来不断扩充的需要。,简单性,代码结构尽量简单,并注意避免形似符号。,32,编码设计的原则(续1),适用性,代码尽可能反映对象的特点,以帮助记忆,便,于填写。,规范性,国家有关编码标准是代码设计的重要依据,已,有的标准必须遵循。在一个代码体系中,代码结构、,类型、编写格式必须统一。,易于修改性,标准化与通用性,尽量,采用相应,国际或国内,标准,,系统,内部使用,的代码需要,统一。,33,适用性,通过编码能够比较容易地识别被编,
15、码对象。,如物资编码,“,WJTQ002,”,表示类别为,“,五金,”,,品种为,“,台钳,”,的第2号物资。,34,规范性,对编码对象的编码要遵循一定的规则,这些规,则包括:编码的位数、编码的分段、每段的类型和,含义等。,例如数据类,“,物资基本信息,”,中的关键字段,“,物资,编码,”,的结构为:,35,编码设计的原则(续2),要尽量采用不易出错的代码结构,如:字母-字母-数字(WW3),字母-数字-字母(W2W),当代码长于4个字母或5个数字时应分成小段,如:J2LV9-JXYQ6-J344K-QLYTH-8RG2W,若已知代码的位数为P位,每一位上可用字符数为S,i,,则可以组成代码的
16、总数为:,36,5.6.3,编码设计的步骤,(1)确定代码对象,(2)考查是否已有标准代码,(3)根据代码的使用范围、使用时间,,根据实际情况选择代码的种类与类型,(4)考虑检错功能,(5)编写代码表,37,P224,表,5.6,编写代码表,根据系统分析阶段对系统的详细调查结果,编制代码表并对做详细说明。,编码对象,使用范围,使用,期限,建议使用的,编码方法,学生学号,整个系统,长期,合成码,课程编码,整个系统,长期,区间码,教师编号,整个系统,长期,合成码,教室编号,整个系统,长期,合成码,学生学号,:年级编号,2,位,+,专业编号,2,位,+,班级编号,1,位,+,顺序号,2,位,38,编码设计和使用经验,依据经验,编码的设计和使用一般,遵循如下方法:,设计时:分段设计,使用时:用户标携带+前台输入+后,台组合,39,编码设计和使用例,某钢厂产品编码为7段,12位分组数字码。,如20#普沸通用大型工字钢的编码为,421032011101,其结构为:,大类码,小类码,规格码,材质码,用途码,4,2,1,03,20,111,01,细材,型材,大型,工字钢,20#,普沸,通用,40,编码设计和使用例(续),产品编码应用中组合过程:,