1、1l为什么在校学生都有一个学号?在不同的学校,同一为什么在校学生都有一个学号?在不同的学校,同一个学生的学号又不一样?公民的身份证号码有多少位?个学生的学号又不一样?公民的身份证号码有多少位?它们代表什么意思?想想看,我们每一个人有多少除它们代表什么意思?想想看,我们每一个人有多少除了名字以外的号码?等等。了名字以外的号码?等等。l代码代码是信息系统实现的基础和前提,也是信息系统设是信息系统实现的基础和前提,也是信息系统设计的有机组成部分。合理的代码结构是信息处理系统计的有机组成部分。合理的代码结构是信息处理系统是否具有生命力的一个重要因素。是否具有生命力的一个重要因素。2知识回顾-系统开发的
2、生命周期系统规划系统规划系统分析系统分析系统设计系统设计系统实施系统实施系统维护系统维护新系统开发新系统开发系统分析报告系统分析报告系统设计报告系统设计报告系统测试报告等系统测试报告等可行性项目建议书可行性项目建议书3知识回顾系统设计的系统设计的内容内容 系统总体结构框架设计、代码设计、数据库设系统总体结构框架设计、代码设计、数据库设计、输入计、输入/输出设计等。输出设计等。 456系统详细设计-代码设计(一)代码的(一)代码的定义定义 人为确定的代表客观事物名称、属性、人为确定的代表客观事物名称、属性、状态的由数字或字符等表示的符号或符号组合。状态的由数字或字符等表示的符号或符号组合。 7代
3、码及其作用代码及其作用(1)代码)代码l代码代码是代表事物名称、属性、状态等的符号,为是代表事物名称、属性、状态等的符号,为了便于计算机处理,一般用数字、字母或它们的了便于计算机处理,一般用数字、字母或它们的组合来表示。组合来表示。l由于代码的编制需要仔细调查和多方协调,是一由于代码的编制需要仔细调查和多方协调,是一项很费事的工作,需要经过一段时间。项很费事的工作,需要经过一段时间。l在手工处理系统中,许多数据如零件号、设备号、在手工处理系统中,许多数据如零件号、设备号、图号等早已使用代码。图号等早已使用代码。8(2)代码的作用(功能)代码的作用(功能)为事物提供一个概要而不含糊的认定,为事物
4、提供一个概要而不含糊的认定,便于数据的存储和便于数据的存储和检索。检索。代码缩短了事物的名称,无论是记录、记忆还是存储,都代码缩短了事物的名称,无论是记录、记忆还是存储,都可以可以节省时间和空间节省时间和空间。使用代码可以使用代码可以提高处理的效率和精度提高处理的效率和精度。按代码对事物进行排序、累计或按某种规定算法进行按代码对事物进行排序、累计或按某种规定算法进行统计统计分析,可以十分迅速分析,可以十分迅速。提高了数据的全局一致性提高了数据的全局一致性。这样,对同一事物,即使在不同场合有不同的叫法,都可这样,对同一事物,即使在不同场合有不同的叫法,都可以通过编码统一起来,提高了系统的整体性,
5、减少了因数以通过编码统一起来,提高了系统的整体性,减少了因数据不一致而造成的错误。据不一致而造成的错误。是人和计算机的共同语言是人和计算机的共同语言,是两者交换信息的工具。,是两者交换信息的工具。9代码设计的原则代码设计的原则(1 1)唯一化)唯一化唯一化是代码设计的首要任务。唯一化是代码设计的首要任务。(2 2)规范化)规范化我们在唯一化的前提下还要强调编码的规范化。我们在唯一化的前提下还要强调编码的规范化。(3 3)系统化)系统化现代化企业的编码系统已由简单的结构发展成为十分现代化企业的编码系统已由简单的结构发展成为十分复杂的系统。系统所用的代码尽量标准化,以方便数复杂的系统。系统所用的代
6、码尽量标准化,以方便数据交换和共享。据交换和共享。10代码设计的注意事项:代码设计的注意事项:l设计的代码在逻辑上必须能满足用户的需要,在结构设计的代码在逻辑上必须能满足用户的需要,在结构上能与处理的方法相一致;上能与处理的方法相一致; 例如,在设计用于统计的代码时,为了提高处理速度,往往使之能例如,在设计用于统计的代码时,为了提高处理速度,往往使之能够在不需调出有关数据文件的情况下,直接根据代码的结构进行统够在不需调出有关数据文件的情况下,直接根据代码的结构进行统计。计。l可扩充且容易修改;可扩充且容易修改;l要注意避免引起误解,不要使用易于混淆的字符;要注意避免引起误解,不要使用易于混淆的
7、字符;如如0、z、I、S、V与与0、2、1、5、U易混;不要把空格作代码;要使用易混;不要把空格作代码;要使用24小时制表示时间等小时制表示时间等l要注意尽量采用不易出错的代码结构;要注意尽量采用不易出错的代码结构; 例如字母例如字母字母字母数字的结构数字的结构(如如WW2)比字母比字母数字数字字母的结构字母的结构(如如W2W)发生错误的机会要少一些。发生错误的机会要少一些。11l当代码长于当代码长于4 4个字母或个字母或5 5个数字字符时,应分成个数字字符时,应分成小段,这样人们读写时不易发生错误;小段,这样人们读写时不易发生错误; 例如例如7264996135比比7264996135易于记
8、忆,并能更易于记忆,并能更精确地记录下来。精确地记录下来。l若已知代码的位数为若已知代码的位数为p p,每一位上可用字符数,每一位上可用字符数为为SiSi,则可以组成码的总数为,则可以组成码的总数为C=SiC=Si。 例如某市普通居民的电话号码为例如某市普通居民的电话号码为7位,均以位,均以0到到9阿拉伯数阿拉伯数字表示。其中首位不能用字表示。其中首位不能用0、1和和9,则该市可安装普通居,则该市可安装普通居民电话的最大理论容量为:民电话的最大理论容量为: C=10*10*10*10*10*10*7=700000012代码的种类代码的种类1.顺序码顺序码2.区间码区间码3.助忆码助忆码(1)顺
9、序码)顺序码又称系列码,它是一种用连续数字代表编码又称系列码,它是一种用连续数字代表编码对象的码。如下表的企业职工的顺序码:对象的码。如下表的企业职工的顺序码:13顺序码(系列码)顺序码(系列码)码码内容内容1 1厂长厂长2 2科长科长3 3科员科员4 4生产工人生产工人0001 张三张三0002 张四张四00010050为一车间人员为一车间人员0051 张五张五0052 张六张六00500100为二车间人员为二车间人员顺序码的顺序码的优点优点:短而简单,记录短而简单,记录的定位方法简单,的定位方法简单,易于管理。易于管理。顺序码的顺序码的缺点缺点:没有逻辑基础,没有逻辑基础,本身不能说明任本
10、身不能说明任何信息的特征。何信息的特征。新加的代码只能新加的代码只能列在最后,删除列在最后,删除则造成空码。则造成空码。14(2) 区间码区间码l区间码把数据项分成若干组,每一区间代表一个组,区间码把数据项分成若干组,每一区间代表一个组,码中数字的值和位置都代表一定意义。邮政编码就是码中数字的值和位置都代表一定意义。邮政编码就是典型的区间码。典型的区间码。区间码的优点:区间码的优点:l信息处理比较可靠,排序、分类、检索等操作易于进行。信息处理比较可靠,排序、分类、检索等操作易于进行。区间码的缺点:区间码的缺点:l码的长度与它分类属性的数量有关,有时可能造成很长的码。码的长度与它分类属性的数量有
11、关,有时可能造成很长的码。l在许多情况下,码有多余的数。在许多情况下,码有多余的数。l码的维修比较困难。码的维修比较困难。如下表是某企业的用户分类代码。码如下表是某企业的用户分类代码。码21代表该用户为采购总代表该用户为采购总量小于量小于9999元的零售单位。元的零售单位。l区间码类型区间码类型15某企业的用户分类代码某企业的用户分类代码用户分类码(第一位)用户分类码(第一位)采购总量(第二位)采购总量(第二位)码分 类码分 类1批发单位149999 元5其他部门 5-16l区间码又可分为以下各种类型:区间码又可分为以下各种类型:多面码多面码l一个数据项可能具有多方面的特性。如果在码的一个数据
12、项可能具有多方面的特性。如果在码的结构中,为这些特性各规定一个位置,就形成多结构中,为这些特性各规定一个位置,就形成多面码。面码。l例如,对于机制螺钉,可作如下表那样的规定。例如,对于机制螺钉,可作如下表那样的规定。代码代码2342 表示材料为黄铜的表示材料为黄铜的1.5mm方形头镀铬方形头镀铬螺钉。螺钉。材料材料 螺钉直径螺钉直径螺钉头形状螺钉头形状表面处理表面处理1-不锈钢不锈钢1-0.51-圆头圆头1未处理未处理2-黄铜黄铜2-1.02-平头平头2镀铬镀铬3-钢钢3-1.53-六角形状六角形状3镀锌镀锌 4-方形头方形头4-方形头方形头4上漆上漆17上下关联区间码上下关联区间码l上下关联
13、区间码由几个意义上相互有关的区间码组上下关联区间码由几个意义上相互有关的区间码组成,其结构一般由左向右排列。成,其结构一般由左向右排列。 例如,会计核算方面,用最左位代表核算种类(例如,会计核算方面,用最左位代表核算种类(资资产、负债、成本、所有者权益、损益及余额方向产、负债、成本、所有者权益、损益及余额方向),),下一位代表会计核算项目。下一位代表会计核算项目。序号科目代码科目名称科目属性01101现金02102银行存款银行类.18十进位码十进位码l此法相当于图书分类中沿用已久的十进位分类码,它是此法相当于图书分类中沿用已久的十进位分类码,它是由上下关联区间码发展而成的。由上下关联区间码发展
14、而成的。如如610.736610.736,小数点左边的数字组合代表主要分类,小数点左边的数字组合代表主要分类,小数点右边的指出子分类。小数点右边的指出子分类。子分类划分虽然很方便,但所占位数长短不齐,不子分类划分虽然很方便,但所占位数长短不齐,不适于计算机处理。适于计算机处理。显然,只要把代码的位数固定下来,仍可利用计算显然,只要把代码的位数固定下来,仍可利用计算机处理。机处理。19(3)助忆码助忆码l助忆码:用文字、数字或文字数字结合起来描述。助忆码:用文字、数字或文字数字结合起来描述。 (表示产品的规格、型号)(表示产品的规格、型号)l特点:特点: 可以通过联想帮助记忆。可以通过联想帮助记
15、忆。l例如,用例如,用TV-B-12TV-B-12代表代表1212英时黑白电视机,用英时黑白电视机,用TV-C-20TV-C-20代代表表2020英时彩色电视机。英时彩色电视机。l又如在开发一个商业经贸性公司的信息系统时,在数据又如在开发一个商业经贸性公司的信息系统时,在数据库中需要分别存储商品的进、存、销库中需要分别存储商品的进、存、销3 3个环节的价格、个环节的价格、成本、资金占用等信息。为了区别起见,这时我们可以成本、资金占用等信息。为了区别起见,这时我们可以规定:字段的前两位分别用规定:字段的前两位分别用J-J-,C-C-,X-X-来表示进、存、来表示进、存、销,用后销,用后5 5位数
16、来代表价格、成本、费用、资金占用等位数来代表价格、成本、费用、资金占用等等。例如等。例如J-priceJ-price表示进价。这就是一个典型的纯字条表示进价。这就是一个典型的纯字条符码。符码。20代码的校验代码的校验(1)(1)录入代码时的可能错误:录入代码时的可能错误:识别错误识别错误:1/71/7,0/O,Z/2,D/O,S/50/O,Z/2,D/O,S/5,易位错误易位错误:12345/1324512345/13245,双易位错误双易位错误:12345/1325412345/13254,随机错误随机错误:上述两种或两种以上的错误出现:上述两种或两种以上的错误出现21(2)(2)避免代码录
17、入出现错误的办法避免代码录入出现错误的办法 在设计好的代码后,再在设计好的代码后,再增加增加一位,作为代码的一位,作为代码的组成部分。增加的一位,即为组成部分。增加的一位,即为校验位校验位。使用中,没。使用中,没有特别性。有特别性。 使用时,使用时,应录入包括校验位在内的完整代码应录入包括校验位在内的完整代码,代码进入系统后,系统将取该代码校验位前的各代码进入系统后,系统将取该代码校验位前的各位,按照位,按照确定代码校验位的算法确定代码校验位的算法进行计算,并与录进行计算,并与录入代码的最后一位(校验位)进行比较,如果相入代码的最后一位(校验位)进行比较,如果相等,则录入代码正确,否则录入代码
18、错误,进行重等,则录入代码正确,否则录入代码错误,进行重新录入。新录入。22(3)(3)确定校验位值的方法确定校验位值的方法算术级数法算术级数法举例:校验位的确定举例:校验位的确定原设计的一组代码为五位,如原设计的一组代码为五位,如3245632456,确定权数确定权数为为7,6,5,4,37,6,5,4,3。求代码每一位。求代码每一位CiCi与其对应的权数与其对应的权数PiPi的乘积的乘积之和之和S S, S=C1S=C1* *P1+C2P1+C2* *P2+CiP2+Ci* *Pi(iPi(i=1,2,n)=1,2,n) =3 =3* *7+27+2* *6+46+4* *5+55+5*
19、*4+64+6* *3 3 =21+12+20+20+18=91 =21+12+20+20+18=91确定模确定模M M(一般介于(一般介于5 5到到1212之间),之间),M=11M=11取余取余R R,R = S MOD M = 91 MOD 11 = 3R = S MOD M = 91 MOD 11 = 3校验位校验位Ci+1 = R = 3Ci+1 = R = 3最终代码最终代码为:为: C1 C2 C3 C4CiCi+1 C1 C2 C3 C4CiCi+1 ,即,即324563324563使用时使用时为:为:32456332456323几何级数法几何级数法几何级数法权为几何级数(等比
20、级数)。几何级数法权为几何级数(等比级数)。原编码原编码 1 2 3 4 1 2 3 4 各乘以权各乘以权 16 8 4 216 8 4 2乘积之和乘积之和 16+16+12+816+16+12+85252以以1111为模去除乘积之和,把得出的余数作为校验码:为模去除乘积之和,把得出的余数作为校验码:525211114 48 8因此编码为因此编码为 1234812348。24质数法质数法质数法权为质数。质数法权为质数。原编码原编码 1 2 3 41 2 3 4各乘以权各乘以权 13 7 5 313 7 5 3乘积之和乘积之和 13+14+15+12=5413+14+15+12=54以以1111
21、为模去除乘积之和,把得出余数作为校验码:为模去除乘积之和,把得出余数作为校验码:545411114 41010因此编码为因此编码为 1234012340。注意:注意:以以1111为模时,若余数是为模时,若余数是1010,则校验码取,则校验码取0 0。25身份证号码的规则设计身份证号码的规则设计l概述18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999公民身份号码中做了明确的规定。 GB11643-1999公民身份号码为GB11643-1989社会保障号码的修订版,其中指出将原标准名称社会保障号码更名为公民身份号码,另外GB11643-1999公民身份号码从实施
22、之日起代替GB11643-1989。GB11643-1999公民身份号码主要内容如下:一、范围该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。二、编码对象公民身份号码的编码对象是具有中华人民共和国国籍的公民。26区间码把数据项分区间码把数据项分成若干组,每一成若干组,每一 区间代表一个组,区间代表一个组,码中数字的值和码中数字的值和位置都代表一定意义。位置都代表一定意义。27身份证号码的规则设计身份证号码的规则设计l概述概述三、号码的结构和表示形式三、号码的结构和表示形式l1、号码的结构、号码的结构公民身份号码是特征组合码,由公民身份号码
23、是特征组合码,由十七位数字本体码十七位数字本体码和和一位校验码一位校验码组成。排列组成。排列顺序从左至右依次为:顺序从左至右依次为:六位数字地址码六位数字地址码,八位数字出生日期码八位数字出生日期码,三位数字顺三位数字顺序码序码和和一位数字校验码一位数字校验码。l2、地址码、地址码表示编码对象常住户口所在县表示编码对象常住户口所在县(市、旗、区市、旗、区)的行政区划代码,按的行政区划代码,按GB/T2260的的规定执行。规定执行。l3、出生日期码、出生日期码表示编码对象出生的年、月、日,按表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码的规定执行,年、月、日代码之间不
24、用分隔符。之间不用分隔符。l4、顺序码、顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。的顺序号,顺序码的奇数分配给男性,偶数分配给女性。l5、校验码、校验码28身份证号码的规则设计身份证号码的规则设计l设计方法设计方法(1)十七位数字本体码加权求和公式)十七位数字本体码加权求和公式lS = Sum(Ai * Wi), i = 0, . , 16 ,先对前,先对前17位数字的权求和位数字的权求和lAi:表示第表示第i位置上的身份证号码数字值位置上的身份证号
25、码数字值lWi:表示第表示第i位置上的加权因子,由位置上的加权因子,由2(n-1)mod 11得来。其中得来。其中n表示身份证每一个数字所在位置,最左边是第表示身份证每一个数字所在位置,最左边是第18位,即位,即n=18,最右边是第最右边是第2位,位,n2。Mod表示求余数。对应得到表示求余数。对应得到的的Wi如下:如下:Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (2)计算模)计算模lY = mod(S, 11)(3)通过模得到对应的校验码)通过模得到对应的校验码lY: 0 1 2 3 4 5 6 7 8 9 10l校验码校验码: 1 0 X 9 8 7
26、6 5 4 3 229 (四)代码设计方法(四)代码设计方法 1、线分类法:、线分类法:也称层级分类法,是指将分类也称层级分类法,是指将分类对象按所选定的若干分类标志,逐次地分成相应对象按所选定的若干分类标志,逐次地分成相应的若干个层级类目,并排列成一个有层次、逐级的若干个层级类目,并排列成一个有层次、逐级展开的分类体系。展开的分类体系。 线分类法的一般表现形式是大类、中类、小线分类法的一般表现形式是大类、中类、小类和细目等,将分类对象一层一层地进行具体划类和细目等,将分类对象一层一层地进行具体划分,同位类的类目之间存在着并列关系,上位类分,同位类的类目之间存在着并列关系,上位类与下位类之间存
27、在着隶属关系。与下位类之间存在着隶属关系。 30线分类法线分类法结构图线分类法结构图31线分类法实例: 大类大类中类中类小类小类品种品种清洁类商品清洁类商品美容类商品美容类商品保护类商品保护类商品洗衣类商品洗衣类商品洗面类商品洗面类商品洗发类商品洗发类商品洗餐具类商品洗餐具类商品肥皂肥皂香皂香皂合成洗涤剂合成洗涤剂其他其他日日用用化化工工商商品品321、线分类法、线分类法特点:特点: (1 1)信息容量大,层次清楚,逻辑性强,符合)信息容量大,层次清楚,逻辑性强,符合传统应用的习惯传统应用的习惯 (2 2)既适用于手工操作,又便于计算机处理;)既适用于手工操作,又便于计算机处理; (3 3)结
28、构不灵活,柔性差;)结构不灵活,柔性差; 33(四)代码设计方法2、面分类法:、面分类法: 又称平行分类法,是指将所选定的分类对象又称平行分类法,是指将所选定的分类对象的若干标志视为若干个面,每个面划分为彼此独的若干标志视为若干个面,每个面划分为彼此独立的若干个类目,排列成一个由若干个面构成的立的若干个类目,排列成一个由若干个面构成的平行分类体系。平行分类体系。 面分类法分类时所选用的标志之间没有隶属关面分类法分类时所选用的标志之间没有隶属关系,每个标志层面都包含着一组类目。系,每个标志层面都包含着一组类目。34面分类法结构 第一面第一面第二面第二面第三面第三面35实例136实例2:服装的面分
29、类法 面料面料纯棉纯棉纯麻纯毛纯毛真丝真丝式样式样男式男式女式女式款式款式西装西装衬衫衬衫连衣裙连衣裙中山装中山装37 2、面分类法、面分类法特点:特点: (1)不易识别和记忆;)不易识别和记忆; (2)可实现任意组配面的信息检索,适合机器处理;)可实现任意组配面的信息检索,适合机器处理; (3)柔性好,面的增加、删除、修改容易;)柔性好,面的增加、删除、修改容易; 注:注:线分类法和面分类法线分类法和面分类法最明显的区别是最明显的区别是线分类法中线分类法中 的属性具有层次性,不是独立的;面分类法中的的属性具有层次性,不是独立的;面分类法中的 属性不具有层次性,是独立的。属性不具有层次性,是独立的。38l在实际应用时常采用以线分类法为主,面分类法在实际应用时常采用以线分类法为主,面分类法为辅、二者相结合的分类法。为辅、二者相结合的分类法。l我国在编制我国在编制全国工农业产品(商品、物质)分全国工农业产品(商品、物质)分类与代码类与代码国家标准时。采用的是线分类法和面国家标准时。采用的是线分类法和面分类法相结合,以线分类法为主的综合分类法。分类法相结合,以线分类法为主的综合分类法。