一种范围型数据的存储及查询方法

文档序号:6340931阅读:212来源:国知局
专利名称:一种范围型数据的存储及查询方法
技术领域
本发明属于数据存储及查询技术领域,尤其是涉及一种范围型数据的存储及查询 方法。
背景技术
日常工作、生产和学习中所接触到的范围型数据非常多,并且上述范围型数据也 起着至关重要的作用,与数值型数据相比,范围型数据的存储与查询工作量均非常大。以下 列举几个实例进行说明例1:现阶段人口普查中,需要对人口的有效证件号(即身份证号)进行 有效存储,这种存储通常按照范围数据的分地域来进行存储,例如先按省份存储, 陕西省的身份证号码在610XXXXXXX-619XXXXXXX之间,而河南省的省份证号码在 620XXXXXXX-629XXXXXXXXXX之间;之后,再按市区进行存储,其中西安市的身份证号码在 6100XXXXXX-6109XXXXXX之间,渭南市身份证号码在6111XXXXXX-6119XXXXXX之间;接着再 按区进行存储,其中长安区的身份证号码在61001XXXXX-61009XXXXX之间,莲湖区的身份 证号码在61011XXXXX-61019XXXXX之间,上述数据存储时就会存在大量的范围类型数据, 这种数据在存储和查询时都非常不容易,但是上述数据又必须存储,因而急需一种不改变 上述存储模式但存储及查询均十分方便的范围型数据存储及查询方法。例2 在物理学中对各个测量仪器的量程进行存储时,如刚直尺0-300mm ;钢卷 尺0-1000mm ;游标卡尺08300mm ;螺旋测微仪0-100mm ;水银温度计-30°C -300°C,如此 等等大量范围型数据的存储与查询也非常不便。例3 在某次测量单摆周期的计时中,为了得到很精确的数据,测量1000次得 了如下数据Tl = 2. 813士0. 002s, T2 = 2. 815士0. 001s, T3 = 2. 814士0. 002s, T5 = 2. 813 士0. 001s,T6 = 2. 813士0. 002s,T7 = 2. 811 士0. 003s,T8 = 2. 812 士0. 002s, T9 = 2. 812士0. 001s,TlO = 2. 810士0. 005s. .. TlOO = 2. 810士0. 002s,TlOl = 2. 812士0. 005s. · · T999 = 2. 813士0. 002s, T1000 = 2. 812士0. 003s。现在假设已知 2. 8125s 是该单摆周期的准确数据,也就是说以上测得的数据,只要包含有2. 8125s的数据都是有 效数据,那么如何从这1000个数据中快速检测出那些是有效数据,其查询难度非常大。例4:在一次化学实验中需要在一定温度下测得一批数据,假如在0°C -20
20°C -40°C,40°C -60°C,60°C -80°C,80°C -100°C这几个范围段内,每个范围段内测量20 次,现在要比较在30°C -35°C, 50°C -55°C, 70°C _75°C这几个温度范围条件下,其他条件均 相同,某一个数据的变化情况。那么,相应的该数据的存储就和温度范围有直接关系,此时 必须先找到以上几个范围型数据在哪些上述已经测量的范围型数据里,然后通过定位到该 温度范围下,查看某一个数据的变化情况,再进行比较,但是上述查询过程难以实现。例5 在某一次测量化学反应产物的实验中,对某种物质的反应产物(假设该反应 产物有100种)进行了测量,分别测量各个反应产物中含N量,得到了一系列数据,现在要 求含N量不在40% -60%的产物舍去,如何快速检索出那些产物应该舍去,哪些产物应该保留,其取舍过程难度较大。上述例子都是我们现实生活、工程实验中会遇到的常见问题,对这些问题进行快 速有效的处理,使得存储效率和检索效率保持在一个高水平,其对上述范围型数据的存储 与查询方法均要求较高。因而,在各个工程技术领域,存在大量的针对范围型数据(其中包括误差型数据) 的处理问题,例如在化工领域,经常存在比如说要求温度在40°C -80°C或者误差在士0. 2范 围之内等此种类型的一系列数据,这种数据的特征是值在一定范围内,但是没有精确值,对 于这样的数据在数据库中的存储就不能简单的用数值型数据来存储。如果用数据库存储的 话,目前大多采用划分的办法,即把数据划分为两列,甚至于更多的列。采用两列字段分别 记录该范围数据的上下限(如上面数据40°C -80°C就可以存为上限80°C,下限40°C且分 别存入两个字段)。这种现有的存储方式通过扩大表结构空间来对数据进行存储,但是这样 的存储方式存在以下实际问题首先,存储方式与人们平时存储数据的习惯不符,数据之间 的联系不紧密且数据类型表达不直观,实际存储时需将一个连续数据40°C -80°C分别两个 字段分别进行存储;其次,对于有些数据,如果事先知道是哪种类型的数据,应该在哪些字 段进行该种数据处理的划分,相关的划分已经明确则容易进行划分;但是对于有些未知数 据即事先不知道数据类型的,如果在大量数据已经存储后出现了范围型数据,就必须变更 数据结构,牵涉到大量数据的迁移和另外存储问题,工作量非常大且易出现差错;再者,上 述现有的存储数据方式,在数据查询时比较耗费时间,因为要从两个字段取值进行比较,同 时对于查询结果集的存储也不是很方便。举例说明,有一批实验测试的误差式范围型数据需要处理,这种数据包括 50 士 0. 2,70 士 0. 1,60 士 0. 4,55 士 0. 2,49 士 0. 2,50 士 0. 1,52 士 0. 8,53 士 0. 1,56 士 0. 4, 55士0. 3等,这种数据涉及到的主要操作有存储和查询,相应的存储方法的好坏直接关系到 数据查询的效率和结果。通常我们针对这类数据的处理采用的是采用两个字段分别记录 该种数据的上下限,来达到数据存储的目的,进而完成数据查询。如上述数据就存储成上 限(50. 2,70. 1,60. 4,55. 2,49. 2,50. 1,52. 8,53. 1,56. 4,55. 3),下限(49. 8,69. 9,59. 6, 54. 8,48. 8,49. 9,51. 2,52. 9,55. 6,54. 7)。这样存储后,在对上述数据进行查询时,每次取 出相对应的两个字段中相应的数据进行操作。同时,上述方法对数据进行存储时,每次操作 必须先把数据进行拆分(即先拆分出数据的上下限),才能进行数据的存储。因而,这种现 有的数据存储方式既不符合人们平时存储数据的习惯,并且直观上不容易表现出数据之间 的内在联系,同时采用多个字段存储,存储空间花费大。另外,上述现有的存储方法有一个 通用弊端如果事先并不知道数据类型的话,以后要修改这种表数据结构是很麻烦的。

发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种范围型数 据的存储及查询方法,其设计合理、数据存储及查询方便、数据处理工作量小且其数据存储 与查询方法符合人们平时数据的存储及查询习惯,同时直观体现出数据之间的联系。为解决上述技术问题,本发明采用的技术方案是一种范围型数据的存储及查询 方法,其特征在于该方法包括以下步骤步骤一、数据存储采用PC机且按照常规输入方法对需要存储的多个数据分别进行存储,且将所存储的多个数据均存储至存储设备内所建立的一个数据表中,或者根据字 段名称信息的不同将所存储的多个数据分别存储至存储设备内所建立的多个数据表中;所 述字段名称信息为各数据所表示的参数类型名称;多个所述数据包括数值型数据和范围型 数据两种类型数据,所述数值型数据为数据的值确定且有确切值的数据,所述范围型数据 系指仅有一个范围且无确切值的数据;进行存储时,对所有数据的存储方式均相同,且以字符串形式对各数据分别进行 存储;所存储的每一个数据均包括字段名称信息、与字段名称信息相对应的具体数值和对 数据进行唯一区分的主键编号三类信息,所述字段名称信息和所述具体数值的数量为一个 或多个,且所述字段名称信息和所述具体数值一一对应;所述字段名称信息、具体数值和主 键编号均以单字段的存储方式进行存储,且实际存储时同一数据的字段名称信息、具体数 值和主键编号均分别存储于单一的一个字段内,其中范围型数据的具体数值以单字段范围 数据的存储方式进行存储,数值型数据的具体数值以单字段数据的存储方式进行存储,同 一数据中的具体数值分别与字段名称信息和主键编号之间通过关联单元进行关联且同一 数据中的具体数值分别与该数据的字段名称信息和主键编号相对应;对多个所述数据进行 存储的同时,将各数据的主键编号均存储至主键编号数据库中,并且对多个所述数据中所 包含的不同类型范围型数据标识符进行同步记录;数据查询之前,对所记录的不同类型范围型数据标识符进行汇总和分类,并通过 所述参数输入装置且根据各范围型数据标识符所对应的范围型数据类型,将所记录的范围 型数据标识符分别添加至预先建立的上下限式范围型数据标识符库、误差式范围型数据标 识符库和区域式范围型数据标识符库中,使得所述上下限式范围型数据标识符库、误差式 范围型数据标识符库和区域式范围型数据标识符库包括多个所述数据的所有类型范围型 数据标识符;步骤二、数据查询,其查询过程包括以下步骤201、查询关键字输入采用PC机的参数输入装置输入所要查询的查询关键字,所 述查询关键字中包括需查询字段的字段名称信息;202、查询操作字段分析判断所述PC机的中央处理器调用查询操作字段判断模 块判断所输入查询关键字中包含的查询操作字段是否为存储有主键编号的主键字段当判 断得出所操作字段为主键字段时,则转入步骤204 ;否则,进入步骤203 ;203、非主键编号查询所述中央处理器调用词法分析及符号识别模块对所输入的 查询关键字进行分析,判断其内是否包含范围型数据标识符若有则分离提取范围型数据 标识符,并转入步骤2031 ;否则,转入步骤2032 ;2031、范围型数据类型查询,其查询过程如下20311、查询关键字中范围型数据类型识别所述中央处理器调用范围型数据分类 识别模块将分离提取出的所述范围型数据标识符分别与所述上下限式范围型数据标识符 库、误差式范围型数据标识符库和区域式范围型数据标识符库所存储的标识符进行对比, 并根据对比结果判断出查询关键字中范围型数据的类型,且对同步记录判断结果;20312、范围型数据具体查询过程所述中央处理器调用范围型数据查询模块对需 查询的所有数据表分别进行查询,需查询数据表的数量为一个或多个,对多个数据表进行 查询时按照各数据表在存储器内的存储位置的先后顺序进行查询;查询时,对所有数据表的查询方法均相同且对数据表中存储的所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其具体查询过程如下203121、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的 先后顺序对需查询数据表中存储的所有字段对应的字段名称信息进行调取,并将调取出的 字段名称信息与查询关键字中包含的字段名称信息进行对比,且将字段名称信息与查询关 键字中包含的字段名称信息一致的所有字段均添加待查询标记;203122、待查询字段调取所述范围型数据查询模块按照存储位置的先后顺序,调 取出需查询数据表中存储且添加待查询标记的一个待查询字段;203123、单字段范围数据分类识别、查询及主键编号保存首先,所述中央处理器 调用词法分析及符号识别模块对调取出的待查询字段进行分析,判断其内是否包含范围 型数据标识符若有则对待查询字段中存储的单字段范围数据进行查询;否则,返回步骤 203122,调取出需查询数据表中存储且添加待查询标记的下一个待查询字段;对待查询字段中存储的单字段范围数据进行查询时,所述范围型数据查询模块对 所调取待查询字段中存储的单字段范围数据进行查询,且对所有单字段范围数据的查询方 法均相同;对单字段范围数据进行查询时先调用范围型数据分类识别模块,判断需查询 单字段范围数据与查询关键字的范围型数据类型是否相同;当判断得出需查询单字段范围 数据与查询关键字的范围型数据类型相同时,对需查询单字段范围数据与查询关键字中包 含的具体数值进行对比分析,并判断查询关键字的具体数值范围是否处于需查询单字段范 围数据的具体数值范围之内;当判断得出查询关键字的数值范围处于需查询单字段范围数 据的具体数值范围之内时,将该单字段范围数据对应的主键编号保存至查询结果集内;203124、所述中央处理器判断需查询数据表是否为空若为空,查询完毕,转入步 骤203125 ;否则,返回步骤203122,对需查询数据表中存储且添加待查询标记的下一个待 查询字段进行查询;203125、将步骤203122中所述查询结果集内所保存的所有主键编号构造成一个 枚举向量selstr ;203126、采用步骤203124中所生成的枚举向量selstr且按照存储位置的先后 顺序,对需查询数据表中所存储的所有字段进行查询,得到需查询数据表的查询结果记录 集;203127、多次重复步骤203121至203126,且按照存储位置的先后顺序对需查询的 其它数据表依次进行查询,直至对需查询的所有数据表均查询完毕;2032、数值型数据查询所述中央处理器调用数值型数据查询模块,并按照常规数 值型数据的查询方法对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或 多个,对多个数据表进行查询时按照各数据表在存储设备内的存储位置的先后顺序进行查 询;且进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数 据表中所存储的所有字段进行查询且对所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其查询过程如下20321、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的 先后顺序对需查询数据表中存储的所有字段对应的字段名称信息进行调取,并将调取出的 字段名称信息与查询关键字中包含的字段名称信息进行对比,且将字段名称信息与查询关键字中包含的字段名称信息一致的所有字段均添加待查询标记;20322、待查询字段调取所述数值型数据查询模块按照存储位置的先后顺序,调 取出需查询数据表中存储且添加待查询标记的一个待查询字段;20323、单字段数据查询及主键编号保存首先,所述中央处理器调用词法分析及 符号识别模块对调取出的待查询字段进行分析,判断其内是否包含范围型数据标识符若 有,返回步骤20322,调取出需查询数据表中存储且添加待查询标记的下一个待查询字段; 否则,对待查询字段中存储的单字段数据进行查询;对待查询字段中存储的单字段数据进行查询时,所述数值型数据查询模块对所调 取字段中存储的单字段数据进行查询,且对所有单字段数据的查询方法均相同,均采用将 所输入的查询关键字与所查询的单字段数据进行差值比较的方法进行查询当判断得出所 查询的单字段数据与查询关键字相同时,则将该单字段数据所处字段的主键编号保存至查 询结果集内;20324、返回步骤20322,并按照存储位置的先后顺序对需查询数据表中所存储且 添加待查询标记的下一个字段进行调取与查询;且多次重复步骤20322至步骤20323,直至 对需查询数据表中所存储且添加待查询标记的所有字段均查询完毕,并转入步骤20325 ;20325、将步骤20324中所述查询结果集内所保存的所有主键编号构造成一个枚 举向量selstr ;20326、采用步骤20325中所生成的枚举向量selstr且按照存储位置的先后顺序, 对需查询数据表中所存储且添加待查询标记的所有字段进行查询,得到需查询数据表的结 果记录集;20326、多次重复步骤20321至20325,且按照存储位置的先后顺序对需查询的其 它数据表依次进行查询,直至对需查询的所有数据表均查询完毕;204、主键编号查询所述中央处理器调用数值型数据查询模块,并按照常规数值 型数据的查询方法对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或多 个,对多个数据表进行查询时按照各数据表在存储设备内的存储位置的先后顺序进行查 询;且进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数 据表中所存储的所有字段进行查询且对所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其查询过程如下2041、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的 先后顺序对需查询数据表中存储的所有字段对应的主键编号进行调取,并将调取出的主键 编号与查询关键字进行对比,且将主键编号与查询关键字相同的所有字段均添加待查询标 记;2042、待查询字段调取所述数值型数据查询模块按照存储位置的先后顺序,调取 出需查询数据表中存储且添加待查询标记的一个待查询字段;2043、单字段数据查询及主键编号保存首先,所述中央处理器调用词法分析及符 号识别模块对调取出的待查询字段进行分析,判断其内是否包含主键编号若有,对待查询 字段中存储的主键编号进行查询;否则,返回步骤2042,调取出需查询数据表中存储且添 加待查询标记的下一个待查询字段;所述数值型数据查询模块对所调取字段中存储的主键编号进行查询,且对所有主键编号的查询方法均相同,均采用将所输入的查询关键字与所查询的主键编号进行差值比 较的方法进行查询当判断得出所查询的主键编号与查询关键字相同时,则将该调取字段 的主键编号保存至查询结果集内;2044、返回步骤2042,并按照存储位置的先后顺序对需查询数据表中所存储且添 加待查询标记的下一个字段进行调取与查询;且多次重复步骤2042至步骤2043,直至对需 查询数据表中所存储且添加待查询标记的所有字段均查询完毕,并转入步骤2045 ;2045、将步骤2044中所述查询结果集内所保存的所有主键编号构造成一个枚举 向量 selstr ;2046、采用步骤2045中所生成的枚举向量selstr且按照存储位置的先后顺序,对 需查询数据表中所存储且添加待查询标记的所有字段进行查询,得到需查询数据表的结果 记录集;2046、多次重复步骤2041至2045,且按照存储位置的先后顺序对需查询的其它数 据表依次进行查询,直至对需查询的所有数据表均查询完毕。上述一种范围型数据的存储及查询方法,其特征是步骤20311中所述的查询关 键字分类识别后,当判断得出所述查询关键字为上下限式范围型数据时,则步骤20312中 进行范围型数据具体查询时,所述中央处理器所调取的范围型数据查询模块为上下限式 范围型数据查询模块,采用所述上下限式范围型数据查询模块进行查询过程中,且在步骤 203122中待查询字段调取之前,所述中央处理器应先调用上下限式范围型数据预处理模块 对查询关键字进行预处理,其预处理过程包括以下步骤I、调取查询关键字中除上下限式范围型数据标识符之外的上下限值数据;II、调用差值比较模块对所调取出的上下限值数据进行差值比较,且将二者中的 较大值存储至B_dot,较小值存储至S_dot ;步骤203122中所述的对需查询单字段范围数据与查询关键字中包含的具体数值 进行对比分析并判断需查询单字段范围数据的具体数值范围是否处于查询关键字的数值 范围之内时,其对比分析过程如下i、需查询单字段范围数据预处理所述中央处理器调用上下限式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中除上下限 式范围型数据标识符之外的上下限值数据;之后,调用差值比较模块对所调取出的上下限 值数据进行差值比较;ii、差值比较分析调用差值比较模块将步骤i差值比较后所获得的较大值和较 小值对应分别与步骤II中存储在丄如丨和S_dot中的数值进行差值比较当差值比较得出 步骤i中差值比较后所获得的较大值《步骤II中存储在[(1时的数值且步骤i中差值比 较后所获得的较小值>步骤π中存储在3_(1(^的数值时,说明查询关键字的数值范围处于 需查询单字段范围数据的具体数值范围之内;反之亦然。上述一种范围型数据的存储及查询方法,其特征是步骤20311中所述的查询关 键字分类识别后,当判断得出所述查询关键字为误差式范围型数据时,则步骤20312中进 行范围型数据具体查询时,所述中央处理器所调取的范围型数据查询模块为误差式范围型 数据查询模块,当所述误差式范围型数据进行查询过程中且在步骤203121中需查询字段 调取之前,所述中央处理器应先调用误差式范围型数据预处理模块对查询关键字进行预处理,其预处理过程包括以下步骤①、调取查询关键字中误差式范围型数据标识符两侧的左右两个数值数据;②、将步骤①中所调取出的左右两个数值数据对应分别存储至L_dot和R_dot 中;步骤203122中所述的对需查询单字段范围数据与查询关键字中包含的具体数值 进行对比分析并判断需查询单字段范围数据的具体数值范围是否处于查询关键字的数值 范围之内时,其对比分析过程如下(1)、需查询单字段范围数据预处理所述中央处理器调用误差式范围型数据预处 理模块对需查询单字段范围数据进行预处理,调取出需查询单字段范围数据中误差式范围 型数据标识符两侧的左右两个数值数据;(2)、差值比较分析调用差值比较模块将步骤(1)调取出的左右两个数值数据对 应分别与步骤⑴中存储在L_dot和R_dot中的数值进行差值比较当差值比较得出步骤 (1)中调取出的误差式范围型数据标识符左侧数据与步骤②中存储在1^_(1时中的数值相等 且步骤(1)中调取出的误差式范围型数据标识符左侧数据<步骤②中存储在[(1时中的数 值时,说明查询关键字的数值范围是否处于需查询单字段范围数据的具体数值范围之内; 反之亦然。上述一种范围型数据的存储及查询方法,其特征是步骤一中所述的上下限 式范围型数据标识符包括“ ”、“-”、“至”、“到”、“彡χ彡”、“< X <”、“> X > ”、“between. ..and... ”、“...和...之间”和"...与...之间”,所述误差式范围型 数据标识符为“ 士”,所述区域式范围型数据标识符包括“彡”、“彡”、“<”、“>”、“not between. . . and... ”、“大于”、“小于”、“不大于”和“不小于”。上述一种范围型数据的存储及查询方法,其特征是步骤20311中所述的查询关 键字分类识别后,当判断得出所述查询关键字为区域式范围型数据时,则步骤20312中进 行范围型数据具体查询时,所述中央处理器所调取的范围型数据查询模块为区域式范围型 数据查询模块,当所述区域式范围型数据查询模块进行查询过程中且在步骤203121中需 查询字段调取之前,所述中央处理器应先调用区域式范围型数据分类模块对查询关键字的 范围型数据标识符类型进行识别且根据识别结果对查询关键字进行分类当判断得出查询 关键字的范围型数据标识符为“not between. . . and...,,时,进入步骤a ;当判断得出查询 关键字的范围型数据标识符为“彡”、“<”、“小于”和“不大于”时,进入步骤b ;否则,进入步 骤C;a、查询关键字预处理,其预处理过程包括以下步骤先调取查询关键字中除区域 式范围型数据标识符之外的两个限值数据;之后,再调用差值比较模块对所调取出的两个 限值数据进行差值比较,且将二者中的较大值存储至BI_dot,较小值存储至SM_dot ;步骤a中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范 围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具 体数值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下al、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中除区域式 范围型数据标识符之外的两个限值数据;再调用差值比较模块对所调取出需查询单字段范围数据中的两个限值数据进行差值比较;a2、差值比较分析调用差值比较模块将步骤al中调取的差值比较后所获得的较 大值和较小值对应分别与步骤a中存储在BI_dot和SM_dot中的数值进行差值比较当差 值比较得出步骤al中差值比较后所获得的较大值>步骤a中存储在BI_dot的数值且步骤 al中差值比较后所获得的较小值《步骤a中存储在SM_dot的数值时,说明查询关键字的数 值范围是否处于需查询单字段范围数据的具体数值范围之内;反之亦然;b、查询关键字预处理调取查询关键字中范围型数据标识符右侧的数值数据,并 将所调取数据存储至SM中;步骤b中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范 围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具 体数值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下bl、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中范围型数 据标识符右侧的数值数据;b2、差值比较分析调用差值比较模块将步骤bl中调取的数值数据与步骤b中存 储在SM中的数值数据进行差值比较当差值比较得出步骤bl中调取的数值数据《步骤b 中存储在SM中的数值数据时,说明查询关键字的数值范围是否处于需查询单字段范围数 据的具体数值范围之内;反之亦然;C、查询关键字预处理调取查询关键字中范围型数据标识符右侧的数值数据,并 将所调取数据存储至BI中;步骤c中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范 围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具 体数值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下Cl、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中范围型数 据标识符右侧的数值数据;c2、差值比较分析调用差值比较模块将步骤Cl中调取的数值数据与步骤c中存 储在BI中的数值数据进行差值比较当差值比较得出步骤cl中调取的数值数据>步骤c 中存储在SM中的数值数据时,说明查询关键字的数值范围是否处于需查询单字段范围数 据的具体数值范围之内;反之亦然。本发明与现有技术相比具有以下优点1、设计合理、使用操作简便且实现方便。2、数据存储及查询方便,本发明使得范围型数据的存储与查询符合了人们平时数 据存储及查询的习惯;对误差和范围型数据进行有效的存储,节省存储空间,并直观的体现 数据之间的联系,提供了一种新的数据查询处理的办法。实际进行存储时,采用字符串存储 的方法(也就是把范围型数据按照字符串来存储。所谓字符串就是由一个个字符组成的有 穷序列。例如,存储40% 60%时,在这里40,%, ,60,%都是字符,而不把它们看作是 数值40%,60% ),将误差、范围类型的数据存储在一个单字段范围数据中,然后采用特有 的办法对该类型数据进行有效查询,这种查询可以有效地避免传统存储与查询方法存在的不符合人们日常的数据存储习惯、数据处理工作量大、更改困难、查询不便等诸多弊端。3、本发明将所有相关的数据记录存放在一个相应的单字段中,而不用区别该数据 是否具有上述三种类型的标识符中的任意一种,字段的类型是字符串类型(针对SQLSever 数据库,对应的类型就是rwarchar [(η)],它是一种最多可以包含η字符的可变长度的字符 型数据),这样存储将这种数据是存储同一个字段中的,既符合了人们平时存储数据的习 惯,而且节省了存储空间,同时直观体现出数据之间的联系。4、实用价值高且适用范围广,推广应用前景广泛,本发明原理简单,但是适用性广 泛,实用性极强。可以应用于现阶段各个工程技术领域的这种范围型数据和误差型数据的 数据查询,同时与人平时的存储数据习惯十分符合。综上所述,本发明设计合理、数据存储及查询方便、数据处理工作量小且其数据存 储与查询方法符合人们平时数据的存储及查询习惯,同时直观体现出数据之间的联系,能 有效解决现有范围型数据存储及查询方法存在的不符合人们日常的数据存储习惯、数据处 理工作量大、更改困难、查询不便等诸多弊端。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


图1为本发明进行数据查询的方法流程框图。图2为本发明进行范围型数据查询的方法流程图。
具体实施例方式如图1、图2所示,本发明所述的范围型数据的存储及查询方法,包括以下步骤步骤一、数据存储采用PC机且按照常规输入方法对需要存储的多个数据分别进 行存储,且将所存储的多个数据均存储至存储设备内所建立的一个数据表中,或者根据字 段名称信息的不同将所存储的多个数据分别存储至存储设备内所建立的多个数据表中;所 述字段名称信息为各数据所表示的参数类型名称;多个所述数据包括数值型数据和范围型 数据两种类型数据,所述数值型数据为数据的值确定且有确切值的数据,所述范围型数据 系指仅有一个范围且无确切值的数据。进行存储时,对所有数据的存储方式均相同,且以字符串形式对各数据分别进行 存储;所存储的每一个数据均包括字段名称信息、与字段名称信息相对应的具体数值和对 数据进行唯一区分的主键编号三类信息,所述字段名称信息和所述具体数值的数量为一个 或多个,且所述字段名称信息和所述具体数值一一对应;所述字段名称信息、具体数值和主 键编号均以单字段的存储方式进行存储,且实际存储时同一数据的字段名称信息、具体数 值和主键编号均分别存储于单一的一个字段内,其中范围型数据的具体数值以单字段范围 数据的存储方式进行存储,数值型数据的具体数值以单字段数据的存储方式进行存储,同 一数据中的具体数值分别与字段名称信息和主键编号之间通过关联单元进行关联且同一 数据中的具体数值分别与该数据的字段名称信息和主键编号相对应;对多个所述数据进行 存储的同时,将各数据的主键编号均存储至主键编号数据库中,并且对多个所述数据中所 包含的不同类型范围型数据标识符进行同步记录。其中,字段名称信息用于区别各字段所 记录具体数值所代表的物理量或化学量等参数类型,如温度、压力、压强等。如所存储的化学试验测试数据表l和表2
表l化学试验被测试物质信息存储数据表
主键编号物质名称物质类型存储条件(℃)
l硝铵炸药20一40
2TNT炸圣旨50±20%
表2化学试验被测试物质测试参数数据表
主键编号实验压强(Pa)压力实验温度(℃)
lloo3030
22005080
在表l和表2中,l和2分别为主键编号,表l中第一行所存储的存储条件(℃)以及表2中第一行中的实验压强(Pa)1压力和实验温度(℃)分别为字段名称信息,表l中所存储的“20一40”和“50±20%”分别为单字段范围型数据,表2中所存储的lOO1301301200150和80均为单字段数据。表l中的单字段范围型数据“20一40”分别与该数据的字段名称信息“存储条件(℃)”和主键编号“l”之间建立有关联关系,而其关联关系为表l中自带的同行信息与同列信息之间的表格属性关联关系。同样地,对于表2中所存储的数据“200”分别与该数据的字段名称信息“实验压强(Pa)”和主键编号“2”之间建立有关联关系,而其关联关系为表l中自带的同行信息与同列信息之间的表格属性关联关系。表l和表2中所存储的其它数据的存储方式均相同。
数据查询之前,对所记录的不同类型范围型数据标识符进行汇总和分类,并通过所述参数输入装置且根据各范围型数据标识符所对应的范围型数据类型,将所记录的范围型数据标识符分别添加至预先建立的上下限式范围型数据标识符库1误差式范围型数据标识符库和区域式范围型数据标识符库中,使得所述上下限式范围型数据标识符库1误差式范围型数据标识符库和区域式范围型数据标识符库包括多个所述数据的所有类型范围型数据标识符。
实际进行数据存储时,人们按照平时的数据存储习惯,以字符串形式将需要存储的所有数据存储至一个或多个相关联的数据表中。本发明中,将需存储的所有数据分为两大类即数值型数据和范围型数据,其中数值型数据是指数据的值确定,即数据有一个精确值的数据类型;范围型数据系指仅有一个范围且无确切值的数据,即数据没有一个精确值的数据类型。所述范围型数据包括以下三类数据①上下限式范围型数据具体指通过两个上下限值来表示的范围型数据,该类数据包括“…一…”1“…一…”1“…至…”1“... 到...”1“... ≤X≤...”1“... ≥X≥...”1“... <X<...”1“... >X>...”1“betWeen…and…”1“处于…和…之间”1“处于…与…之间”等,其中还包括有运用其它语种表示且与上述“处于…和…之间”和“处于…与…之间”同等含义的范围型数据;因而,上下限式范围型数据的标识符包括“一”1“一”1“至”1“到”1“≤X≤”1“≥X≥”1“<X<”1“>X>”1“betWeen…and…”1“…和…之间”1“…与…之间”等;②误差式范围型数据具体指通过一个具体数值和一个上下波动数值来表示的范围型数据,该类数据为“...±...”,因而误差式范围型数据的标识符为“±”;⑧区域式范围型数据具体指数值范围的上限值或下限值不确定的范围型数据,该类数据包括“≤...”1“≥...”1“<...”1“>...”1“n。t betWeen...and...”1“大于...”1“小于...”1“不大于...”1“不小于...”等,其中还包括有运用其它语种表示且与上述“大于...”、“小于...”、“不大 于...”和“不小于...”同等含义的范围型数据;因而,区域式范围型数据的标识符包括 “彡”、“彡”、“<”、“>”、“not between. · · and. · · ”、“大于”、“小于”、“不大于”、“不小于”等。步骤二、数据查询,其查询过程包括以下步骤201、查询关键字输入采用PC机的参数输入装置输入所要查询的查询关键字,所 述查询关键字中包括需查询字段的字段名称信息。202、查询操作字段分析判断所述PC机的中央处理器调用查询操作字段判断模 块判断所输入查询关键字中包含的查询操作字段是否为存储有主键编号的主键字段当判 断得出所操作字段为主键字段时,则转入步骤204 ;否则,进入步骤203。所述查询关键字中包含的查询操作字段为查询关键字中包含的且查询过程中需 使用的具体查询信息,其为与所存储数据相对应的主键编号、字段名称信息或具体数值,步 骤202的目的就是对查询操作字段进行具体判断,具体是对查询关键字是主键编号还是具 体数值进行判断,当查询关键字同时包括主键编号和具体数值时,则先对主键编号进行查 询。203、非主键编号查询所述中央处理器调用词法分析及符号识别模块对所输入的 查询关键字进行分析,判断其内是否包含范围型数据标识符若有则分离提取范围型数据 标识符,并转入步骤2031 ;否则,转入步骤2032 ;2031、范围型数据类型查询,其查询过程如下20311、查询关键字中范围型数据类型识别所述中央处理器调用范围型数据分类 识别模块将分离提取出的所述范围型数据标识符分别与所述上下限式范围型数据标识符 库、误差式范围型数据标识符库和区域式范围型数据标识符库所存储的标识符进行对比, 并根据对比结果判断出查询关键字中范围型数据的类型,且对同步记录判断结果;20312、范围型数据具体查询过程所述中央处理器调用范围型数据查询模块对需 查询的所有数据表分别进行查询,需查询数据表的数量为一个或多个,对多个数据表进行 查询时按照各数据表在存储器内的存储位置的先后顺序进行查询;查询时,对所有数据表 的查询方法均相同且对数据表中存储的所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其具体查询过程如下203121、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的 先后顺序对需查询数据表中存储的所有字段对应的字段名称信息进行调取,并将调取出的 字段名称信息与查询关键字中包含的字段名称信息进行对比,且将字段名称信息与查询关 键字中包含的字段名称信息一致的所有字段均添加待查询标记;203122、待查询字段调取所述范围型数据查询模块按照存储位置的先后顺序,调 取出需查询数据表中存储且添加待查询标记的一个待查询字段;203123、单字段范围数据分类识别、查询及主键编号保存首先,所述中央处理器 调用词法分析及符号识别模块对调取出的待查询字段进行分析,判断其内是否包含范围 型数据标识符若有则对待查询字段中存储的单字段范围数据进行查询;否则,返回步骤 203122,调取出需查询数据表中存储且添加待查询标记的下一个待查询字段。对待查询字段中存储的单字段范围数据进行查询时,所述范围型数据查询模块对 所调取待查询字段中存储的单字段范围数据进行查询,且对所有单字段范围数据的查询方法均相同;对单字段范围数据进行查询时先调用范围型数据分类识别模块,判断需查询 单字段范围数据与查询关键字的范围型数据类型是否相同;当判断得出需查询单字段范围 数据与查询关键字的范围型数据类型相同时,对需查询单字段范围数据与查询关键字中包 含的具体数值进行对比分析,并判断查询关键字的具体数值范围是否处于需查询单字段范 围数据的具体数值范围之内;当判断得出查询关键字的数值范围处于需查询单字段范围数 据的具体数值范围之内时,将该单字段范围数据对应的主键编号保存至查询结果集内;203124、所述中央处理器判断需查询数据表是否为空(具体通过中央处理器移动 数据指针进行判断)若为空,查询完毕,转入步骤203125 ;否则,返回步骤203122,对需查 询数据表中存储且添加待查询标记的下一个待查询字段进行查询;203125、将步骤203122中所述查询结果集内所保存的所有主键编号构造成一个 枚举向量selstr ;203126、采用步骤203124中所生成的枚举向量se 1 str且按照存储位置的先后 顺序,对需查询数据表中所存储的所有字段进行查询,得到需查询数据表的查询结果记录 集;203127、多次重复步骤203121至203126,且按照存储位置的先后顺序对需查询的 其它数据表依次进行查询,直至对需查询的所有数据表均查询完毕。2032、数值型数据查询所述中央处理器调用数值型数据查询模块,并按照常规数 值型数据的查询方法对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或 多个,对多个数据表进行查询时按照各数据表在存储设备内的存储位置的先后顺序进行查 询;且进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数 据表中所存储的所有字段进行查询且对所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其查询过程如下20321、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的 先后顺序对需查询数据表中存储的所有字段对应的字段名称信息进行调取,并将调取出的 字段名称信息与查询关键字中包含的字段名称信息进行对比,且将字段名称信息与查询关 键字中包含的字段名称信息一致的所有字段均添加待查询标记;20322、待查询字段调取所述数值型数据查询模块按照存储位置的先后顺序,调 取出需查询数据表中存储且添加待查询标记的一个待查询字段;20323、单字段数据查询及主键编号保存首先,所述中央处理器调用词法分析及 符号识别模块对调取出的待查询字段进行分析,判断其内是否包含范围型数据标识符若 有,返回步骤20322,调取出需查询数据表中存储且添加待查询标记的下一个待查询字段; 否则,对待查询字段中存储的单字段数据进行查询。对待查询字段中存储的单字段数据进行查询时,所述数值型数据查询模块对所调 取字段中存储的单字段数据进行查询,且对所有单字段数据的查询方法均相同,均采用将 所输入的查询关键字与所查询的单字段数据进行差值比较的方法进行查询当判断得出所 查询的单字段数据与查询关键字相同时,则将该单字段数据所处字段的主键编号保存至查 询结果集内;20324、返回步骤20322,并按照存储位置的先后顺序对需查询数据表中所存储且 添加待查询标记的下一个字段进行调取与查询;且多次重复步骤20322至步骤20323,直至对需查询数据表中所存储且添加待查询标记的所有字段均查询完毕,并转入步骤20325 ;20325、将步骤20324中所述查询结果集内所保存的所有主键编号构造成一个枚 举向量selstr ;20326、采用步骤20325中所生成的枚举向量selstr且按照存储位置的先后顺序, 对需查询数据表中所存储且添加待查询标记的所有字段进行查询,得到需查询数据表的结 果记录集;20326、多次重复步骤20321至20325,且按照存储位置的先后顺序对需查询的其 它数据表依次进行查询,直至对需查询的所有数据表均查询完毕。204、主键编号查询所述中央处理器调用数值型数据查询模块,并按照常规数值 型数据的查询方法对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或多 个,对多个数据表进行查询时按照各数据表在存储设备内的存储位置的先后顺序进行查 询;且进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数 据表中所存储的所有字段进行查询且对所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其查询过程如下2041、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的 先后顺序对需查询数据表中存储的所有字段对应的主键编号进行调取,并将调取出的主键 编号与查询关键字进行对比,且将主键编号与查询关键字相同的所有字段均添加待查询标 记;2042、待查询字段调取所述数值型数据查询模块按照存储位置的先后顺序,调取 出需查询数据表中存储且添加待查询标记的一个待查询字段;2043、单字段数据查询及主键编号保存首先,所述中央处理器调用词法分析及符 号识别模块对调取出的待查询字段进行分析,判断其内是否包含主键编号若有,对待查询 字段中存储的主键编号进行查询;否则,返回步骤2042,调取出需查询数据表中存储且添 加待查询标记的下一个待查询字段;所述数值型数据查询模块对所调取字段中存储的主键编号进行查询,且对所有主 键编号的查询方法均相同,均采用将所输入的查询关键字与所查询的主键编号进行差值比 较的方法进行查询当判断得出所查询的主键编号与查询关键字相同时,则将该调取字段 的主键编号保存至查询结果集内;2044、返回步骤2042,并按照存储位置的先后顺序对需查询数据表中所存储且添 加待查询标记的下一个字段进行调取与查询;且多次重复步骤2042至步骤2043,直至对需 查询数据表中所存储且添加待查询标记的所有字段均查询完毕,并转入步骤2045 ;2045、将步骤2044中所述查询结果集内所保存的所有主键编号构造成一个枚举 向量 selstr ;2046、采用步骤2045中所生成的枚举向量selstr且按照存储位置的先后顺序,对 需查询数据表中所存储且添加待查询标记的所有字段进行查询,得到需查询数据表的结果 记录集;2046、多次重复步骤2041至2045,且按照存储位置的先后顺序对需查询的其它数 据表依次进行查询,直至对需查询的所有数据表均查询完毕。本实施例中,步骤20311中所述的查询关键字分类识别后,当判断得出所述查询关键字为上下限式范围型数据时,则步骤20312中进行范围型数据具体查询时,所述中央 处理器所调取的范围型数据查询模块为上下限式范围型数据查询模块,当所述上下限式范 围型数据查询模块进行查询过程中且在步骤203121中需查询字段调取之前,所述中央处 理器应先调用上下限式范围型数据预处理模块对查询关键字进行预处理,其预处理过程包 括以下步骤I、调取查询关键字中除上下限式范围型数据标识符之外的上下限值数据;II、调用差值比较模块对所调取出的上下限值数据进行差值比较,且将二者中的 较大值存储至B_dot,较小值存储至S_dot ;步骤203122中所述的对需查询单字段范围数据与查询关键字中包含的具体数值 进行对比分析并判断需查询单字段范围数据的具体数值范围是否处于查询关键字的数值 范围之内时,其对比分析过程如下i、需查询单字段范围数据预处理所述中央处理器调用上下限式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中除上下限 式范围型数据标识符之外的上下限值数据;之后,调用差值比较模块对所调取出的上下限 值数据进行差值比较;ii、差值比较分析调用差值比较模块将步骤i差值比较后所获得的较大值和较 小值对应分别与步骤II中存储在丄如丨和S_dot中的数值进行差值比较当差值比较得出 步骤i中差值比较后所获得的较大值《步骤II中存储在[(1时的数值且步骤i中差值比 较后所获得的较小值>步骤π中存储在3_(1(^的数值时,说明查询关键字的数值范围是否 处于需查询单字段范围数据的具体数值范围之内;反之亦然。而当步骤20311中所述的查询关键字分类识别后,当判断得出所述查询关键字为 误差式范围型数据时,则步骤20312中进行范围型数据具体查询时,所述中央处理器所调 取的范围型数据查询模块为误差式范围型数据查询模块,当所述误差式范围型数据进行查 询过程中且在步骤203121中需查询字段调取之前,所述中央处理器应先调用误差式范围 型数据预处理模块对查询关键字进行预处理,其预处理过程包括以下步骤①、调取查询关键字中误差式范围型数据标识符两侧的左右两个数值数据;②、将步骤①中所调取出的左右两个数值数据对应分别存储至L_dot和R_dot 中;步骤203122中所述的对需查询单字段范围数据与查询关键字中包含的具体数值 进行对比分析并判断需查询单字段范围数据的具体数值范围是否处于查询关键字的数值 范围之内时,其对比分析过程如下(1)、需查询单字段范围数据预处理所述中央处理器调用误差式范围型数据预处 理模块对需查询单字段范围数据进行预处理,调取出需查询单字段范围数据中误差式范围 型数据标识符两侧的左右两个数值数据;(2)、差值比较分析调用差值比较模块将步骤(1)调取出的左右两个数值数据对 应分别与步骤⑴中存储在L_dot和R_dot中的数值进行差值比较当差值比较得出步骤 (1)中调取出的误差式范围型数据标识符左侧数据与步骤②中存储在1^_(1时中的数值相等 且步骤(1)中调取出的误差式范围型数据标识符左侧数据<步骤②中存储在[(1时中的数 值时,说明查询关键字的数值范围是否处于需查询单字段范围数据的具体数值范围之内;反之亦然。本实施例中,步骤一中所述的上下限式范围型数据标识符包括“ ”、“_”、“至”、 “到”、“≤ X≤”、“≤ X ≤”、“< X <”、“> X >”、“between. · · and. · ·,,、“· · ·和· · ·之间,,和 "...与...之间”,所述误差式范围型数据标识符为“士”,所述区域式范围型数据标识符 包括“≤”、“≥”、“<”、“>”、“not between. · · and. · · ”、“大于”、“小于”、“不大于”和“不小 于”。实际使用过程中,可以根据实际具体需要添加三种类型范围型数据的标识符。本实施例中,步骤20311中所述的查询关键字分类识别后,当判断得出所述查询 关键字为区域式范围型数据时,则步骤20312中进行范围型数据具体查询时,所述中央处 理器所调取的范围型数据查询模块为区域式范围型数据查询模块,当所述区域式范围型数 据查询模块进行查询过程中且在步骤203121中需查询字段调取之前,所述中央处理器应 先调用区域式范围型数据分类模块对查询关键字的范围型数据标识符类型进行识别且根 据识别结果对查询关键字进行分类当判断得出查询关键字的范围型数据标识符为“not between. . . and... ”时,进入步骤a ;当判断得出查询关键字的范围型数据标识符为“≤”、 “<”、“小于”和“不大于”时,进入步骤b ;否贝U,进入步骤c ;a、查询关键字预处理,其预处理过程包括以下步骤先调取查询关键字中除区域 式范围型数据标识符之外的两个限值数据;之后,再调用差值比较模块对所调取出的两个 限值数据进行差值比较,且将二者中的较大值存储至BI_dot,较小值存储至SM_dot ;步骤a中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范 围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具 体数值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下al、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中除区域式 范围型数据标识符之外的两个限值数据;再调用差值比较模块对所调取出需查询单字段范 围数据中的两个限值数据进行差值比较;a2、差值比较分析调用差值比较模块将步骤al中调取的差值比较后所获得的较 大值和较小值对应分别与步骤a中存储在BI_dot和SM_dot中的数值进行差值比较当差 值比较得出步骤al中差值比较后所获得的较大值>步骤a中存储在BI_dot的数值且步骤 al中差值比较后所获得的较小值《步骤a中存储在SM_dot的数值时,说明查询关键字的数 值范围是否处于需查询单字段范围数据的具体数值范围之内;反之亦然;b、查询关键字预处理调取查询关键字中范围型数据标识符右侧的数值数据,并 将所调取数据存储至SM中;步骤b中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范 围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具 体数值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下bl、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中范围型数 据标识符右侧的数值数据;b2、差值比较分析调用差值比较模块将步骤bl中调取的数值数据与步骤b中存 储在SM中的数值数据进行差值比较当差值比较得出步骤bl中调取的数值数据《步骤b中存储在SM中的数值数据时,说明查询关键字的数值范围是否处于需查询单字段范围数 据的具体数值范围之内;反之亦然;C、查询关键字预处理调取查询关键字中范围型数据标识符右侧的数值数据,并 将所调取数据存储至BI中;步骤c中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范 围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具 体数值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下Cl、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处 理模块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中范围型数 据标识符右侧的数值数据;c2、差值比较分析调用差值比较模块将步骤Cl中调取的数值数据与步骤c中存 储在BI中的数值数据进行差值比较当差值比较得出步骤cl中调取的数值数据>步骤c 中存储在SM中的数值数据时,说明查询关键字的数值范围是否处于需查询单字段范围数 据的具体数值范围之内;反之亦然。本实施例中,步骤20311对查询关键字中范围型数据类型进行识别后,所述中央 处理器根据识别结果获得相应范围型数据类型的查询模块入口把柄(即入口地址)。这样, 实现所述中央处理器根据范围型数据类型的识别结果自动调用相应的查询模块(包括上 下限式范围型数据查询模块、误差式范围型数据查询模块和区域式范围型数据区域式范围 型数据查询模块)进行查询。综上实际使用过程中,如在化学领域,每种材料的都有许多种属性,现在需要把这 多种属性存储起来,使之能够反映该种物质某一方面的特性。我们可以把这些属性存储在 一个表中,但是如果这个物质需要存储的属性过多的话,把这些信息只存储在一个表中,表 的属性字段多,就会显得繁琐。所以我们设计把这同一种物质的多种属性存储在不同的表 中,通过不同的表来反映同一种物质。然后又在各个表中设置相同的主键编号(定义为整 数类型的字段,主要作用是使得数据记录唯一,不重复),使得物质各种属性得到很好的显 示,同时,通过主键编号又可以保证了具有同一个编号的属性,反映的是相同的物质属性。 根据以上分析,设计得到以下三个表;表3基础信息表结构
字段名称数据类型长度可否为空备注混合炸药编号NUMBER10NOT NULL唯一性,关键词中英文名称VARCHAR250NOT NULL代号VARCHAR250NULL类别VARCHAR250NULL
2权利要求
1. 一种范围型数据的存储及查询方法,其特征在于该方法包括以下步骤步骤一、数据存储采用PC机且按照常规输入方法对需要存储的多个数据分别进行存 储,且将所存储的多个数据均存储至存储设备内所建立的一个数据表中,或者根据字段名 称信息的不同将所存储的多个数据分别存储至存储设备内所建立的多个数据表中;所述字 段名称信息为各数据所表示的参数类型名称;多个所述数据包括数值型数据和范围型数据 两种类型数据,所述数值型数据为数据的值确定且有确切值的数据,所述范围型数据系指 仅有一个范围且无确切值的数据;进行存储时,对所有数据的存储方式均相同,且以字符串形式对各数据分别进行存储; 所存储的每一个数据均包括字段名称信息、与字段名称信息相对应的具体数值和对数据进 行唯一区分的主键编号三类信息,所述字段名称信息和所述具体数值的数量为一个或多 个,且所述字段名称信息和所述具体数值一一对应;所述字段名称信息、具体数值和主键编 号均以单字段的存储方式进行存储,且实际存储时同一数据的字段名称信息、具体数值和 主键编号均分别存储于单一的一个字段内,其中范围型数据的具体数值以单字段范围数据 的存储方式进行存储,数值型数据的具体数值以单字段数据的存储方式进行存储,同一数 据中的具体数值分别与字段名称信息和主键编号之间通过关联单元进行关联且同一数据 中的具体数值分别与该数据的字段名称信息和主键编号相对应;对多个所述数据进行存储 的同时,将各数据的主键编号均存储至主键编号数据库中,并且对多个所述数据中所包含 的不同类型范围型数据标识符进行同步记录;数据查询之前,对所记录的不同类型范围型数据标识符进行汇总和分类,并通过所述 参数输入装置且根据各范围型数据标识符所对应的范围型数据类型,将所记录的范围型数 据标识符分别添加至预先建立的上下限式范围型数据标识符库、误差式范围型数据标识符 库和区域式范围型数据标识符库中,使得所述上下限式范围型数据标识符库、误差式范围 型数据标识符库和区域式范围型数据标识符库包括多个所述数据的所有类型范围型数据 标识符;步骤二、数据查询,其查询过程包括以下步骤201、查询关键字输入采用PC机的参数输入装置输入所要查询的查询关键字,所述查 询关键字中包括需查询字段的字段名称信息;202、查询操作字段分析判断所述PC机的中央处理器调用查询操作字段判断模块判 断所输入查询关键字中包含的查询操作字段是否为存储有主键编号的主键字段当判断得 出所操作字段为主键字段时,则转入步骤204 ;否则,进入步骤203 ;203、非主键编号查询所述中央处理器调用词法分析及符号识别模块对所输入的查询 关键字进行分析,判断其内是否包含范围型数据标识符若有则分离提取范围型数据标识 符,并转入步骤2031 ;否则,转入步骤2032 ;2031、范围型数据类型查询,其查询过程如下20311、查询关键字中范围型数据类型识别所述中央处理器调用范围型数据分类识别 模块将分离提取出的所述范围型数据标识符分别与所述上下限式范围型数据标识符库、误 差式范围型数据标识符库和区域式范围型数据标识符库所存储的标识符进行对比,并根据 对比结果判断出查询关键字中范围型数据的类型,且对同步记录判断结果;20312、范围型数据具体查询过程所述中央处理器调用范围型数据查询模块对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或多个,对多个数据表进行查询 时按照各数据表在存储器内的存储位置的先后顺序进行查询;查询时,对所有数据表的查 询方法均相同且对数据表中存储的所有字段的查询方法均相同,对于其中任一个需查询的 数据表而言,其具体查询过程如下(203121、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的先后 顺序对需查询数据表中存储的所有字段对应的字段名称信息进行调取,并将调取出的字段 名称信息与查询关键字中包含的字段名称信息进行对比,且将字段名称信息与查询关键字 中包含的字段名称信息一致的所有字段均添加待查询标记;(203122、待查询字段调取所述范围型数据查询模块按照存储位置的先后顺序,调取出 需查询数据表中存储且添加待查询标记的一个待查询字段;(203123、单字段范围数据分类识别、查询及主键编号保存首先,所述中央处理器调用 词法分析及符号识别模块对调取出的待查询字段进行分析,判断其内是否包含范围型数据 标识符若有则对待查询字段中存储的单字段范围数据进行查询;否则,返回步骤203122, 调取出需查询数据表中存储且添加待查询标记的下一个待查询字段;对待查询字段中存储的单字段范围数据进行查询时,所述范围型数据查询模块对所调 取待查询字段中存储的单字段范围数据进行查询,且对所有单字段范围数据的查询方法均 相同;对单字段范围数据进行查询时先调用范围型数据分类识别模块,判断需查询单字 段范围数据与查询关键字的范围型数据类型是否相同;当判断得出需查询单字段范围数据 与查询关键字的范围型数据类型相同时,对需查询单字段范围数据与查询关键字中包含的 具体数值进行对比分析,并判断查询关键字的具体数值范围是否处于需查询单字段范围数 据的具体数值范围之内;当判断得出查询关键字的数值范围处于需查询单字段范围数据的 具体数值范围之内时,将该单字段范围数据对应的主键编号保存至查询结果集内;(203124、所述中央处理器判断需查询数据表是否为空若为空,查询完毕,转入步骤 203125 ;否则,返回步骤203122,对需查询数据表中存储且添加待查询标记的下一个待查 询字段进行查询;(203125、将步骤203122中所述查询结果集内所保存的所有主键编号构造成一个枚举 向量 selstr ;(203126、采用步骤203124中所生成的枚举向量selstr且按照存储位置的先后顺序,对 需查询数据表中所存储的所有字段进行查询,得到需查询数据表的查询结果记录集;(203127、多次重复步骤203121至203126,且按照存储位置的先后顺序对需查询的其它 数据表依次进行查询,直至对需查询的所有数据表均查询完毕;(2032、数值型数据查询所述中央处理器调用数值型数据查询模块,并按照常规数值 型数据的查询方法对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或多 个,对多个数据表进行查询时按照各数据表在存储设备内的存储位置的先后顺序进行查 询;且进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数 据表中所存储的所有字段进行查询且对所有字段的查询方法均相同,对于其中任一个需查 询的数据表而言,其查询过程如下(20321、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的先后 顺序对需查询数据表中存储的所有字段对应的字段名称信息进行调取,并将调取出的字段名称信息与查询关键字中包含的字段名称信息进行对比,且将字段名称信息与查询关键字 中包含的字段名称信息一致的所有字段均添加待查询标记;`20322、待查询字段调取所述数值型数据查询模块按照存储位置的先后顺序,调取出 需查询数据表中存储且添加待查询标记的一个待查询字段;`20323、单字段数据查询及主键编号保存首先,所述中央处理器调用词法分析及符号 识别模块对调取出的待查询字段进行分析,判断其内是否包含范围型数据标识符若有,返 回步骤20322,调取出需查询数据表中存储且添加待查询标记的下一个待查询字段;否则, 对待查询字段中存储的单字段数据进行查询;对待查询字段中存储的单字段数据进行查询时,所述数值型数据查询模块对所调取字 段中存储的单字段数据进行查询,且对所有单字段数据的查询方法均相同,均采用将所输 入的查询关键字与所查询的单字段数据进行差值比较的方法进行查询当判断得出所查询 的单字段数据与查询关键字相同时,则将该单字段数据所处字段的主键编号保存至查询结 果集内;`20324、返回步骤20322,并按照存储位置的先后顺序对需查询数据表中所存储且添加 待查询标记的下一个字段进行调取与查询;且多次重复步骤20322至步骤20323,直至对需 查询数据表中所存储且添加待查询标记的所有字段均查询完毕,并转入步骤20325 ;`20325、将步骤20324中所述查询结果集内所保存的所有主键编号构造成一个枚举向 量 selstr ;`20326、采用步骤20325中所生成的枚举向量selstr且按照存储位置的先后顺序,对需 查询数据表中所存储且添加待查询标记的所有字段进行查询,得到需查询数据表的结果记 录集;`20326、多次重复步骤20321至20325,且按照存储位置的先后顺序对需查询的其它数 据表依次进行查询,直至对需查询的所有数据表均查询完毕;`204、主键编号查询所述中央处理器调用数值型数据查询模块,并按照常规数值型数 据的查询方法对需查询的所有数据表分别进行查询,需查询数据表的数量为一个或多个, 对多个数据表进行查询时按照各数据表在存储设备内的存储位置的先后顺序进行查询;且 进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数据表 中所存储的所有字段进行查询且对所有字段的查询方法均相同,对于其中任一个需查询的 数据表而言,其查询过程如下`2041、名称信息对比所述中央处理器调用名称信息对比模块,按照存储位置的先后顺 序对需查询数据表中存储的所有字段对应的主键编号进行调取,并将调取出的主键编号与 查询关键字进行对比,且将主键编号与查询关键字相同的所有字段均添加待查询标记;`2042、待查询字段调取所述数值型数据查询模块按照存储位置的先后顺序,调取出需 查询数据表中存储且添加待查询标记的一个待查询字段;`2043、单字段数据查询及主键编号保存首先,所述中央处理器调用词法分析及符号识 别模块对调取出的待查询字段进行分析,判断其内是否包含主键编号若有,对待查询字段 中存储的主键编号进行查询;否则,返回步骤2042,调取出需查询数据表中存储且添加待 查询标记的下一个待查询字段;所述数值型数据查询模块对所调取字段中存储的主键编号进行查询,且对所有主键编号的查询方法均相同,均采用将所输入的查询关键字与所查询的主键编号进行差值比较的 方法进行查询当判断得出所查询的主键编号与查询关键字相同时,则将该调取字段的主 键编号保存至查询结果集内;2044、返回步骤2042,并按照存储位置的先后顺序对需查询数据表中所存储且添加待 查询标记的下一个字段进行调取与查询;且多次重复步骤2042至步骤2043,直至对需查询 数据表中所存储且添加待查询标记的所有字段均查询完毕,并转入步骤2045 ;2045、将步骤2044中所述查询结果集内所保存的所有主键编号构造成一个枚举向量 selstr ;2046、采用步骤2045中所生成的枚举向量selstr且按照存储位置的先后顺序,对需查 询数据表中所存储且添加待查询标记的所有字段进行查询,得到需查询数据表的结果记录 集;2046、多次重复步骤2041至2045,且按照存储位置的先后顺序对需查询的其它数据表 依次进行查询,直至对需查询的所有数据表均查询完毕。
2.按照权利要求1所述的一种范围型数据的存储及查询方法,其特征在于步骤20311 中所述的查询关键字分类识别后,当判断得出所述查询关键字为上下限式范围型数据时, 则步骤20312中进行范围型数据具体查询时,所述中央处理器所调取的范围型数据查询模 块为上下限式范围型数据查询模块,采用所述上下限式范围型数据查询模块进行查询过程 中,且在步骤203122中待查询字段调取调取之前,所述中央处理器应先调用上下限式范围 型数据预处理模块对查询关键字进行预处理,其预处理过程包括以下步骤I、调取查询关键字中除上下限式范围型数据标识符之外的上下限值数据;II、调用差值比较模块对所调取出的上下限值数据进行差值比较,且将二者中的较大 值存储至B_dot,较小值存储至S_dot ;步骤203122中所述的对需查询单字段范围数据与查询关键字中包含的具体数值进行 对比分析并判断需查询单字段范围数据的具体数值范围是否处于查询关键字的数值范围 之内时,其对比分析过程如下i、需查询单字段范围数据预处理所述中央处理器调用上下限式范围型数据预处理模 块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中除上下限式范 围型数据标识符之外的上下限值数据;之后,调用差值比较模块对所调取出的上下限值数 据进行差值比较;ii、差值比较分析调用差值比较模块将步骤i差值比较后所获得的较大值和较小值 对应分别与步骤II中存储在丄如丨和S_dot中的数值进行差值比较当差值比较得出步骤 i中差值比较后所获得的较大值《步骤II中存储在8_(1时的数值且步骤i中差值比较后所 获得的较小值>步骤II中存储在3_(1(^的数值时,说明查询关键字的数值范围处于需查询 单字段范围数据的具体数值范围之内;反之亦然。
3.按照权利要求1所述的一种范围型数据的存储及查询方法,其特征在于步骤20311 中所述的查询关键字分类识别后,当判断得出所述查询关键字为误差式范围型数据时,则 步骤20312中进行范围型数据具体查询时,所述中央处理器所调取的范围型数据查询模块 为误差式范围型数据查询模块,当所述误差式范围型数据进行查询过程中且在步骤203121 中需查询字段调取之前,所述中央处理器应先调用误差式范围型数据预处理模块对查询关键字进行预处理,其预处理过程包括以下步骤①、调取查询关键字中误差式范围型数据标识符两侧的左右两个数值数据;②、将步骤①中所调取出的左右两个数值数据对应分别存储至L_dot和R_dot中;步骤203122中所述的对需查询单字段范围数据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具体数值范围是否处于查询关键字的数值范围 之内时,其对比分析过程如下(1)、需查询单字段范围数据预处理所述中央处理器调用误差式范围型数据预处理模 块对需查询单字段范围数据进行预处理,调取出需查询单字段范围数据中误差式范围型数 据标识符两侧的左右两个数值数据;(2)、差值比较分析调用差值比较模块将步骤(1)调取出的左右两个数值数据对应分 别与步骤⑴中存储在L_dot和R_dot中的数值进行差值比较当差值比较得出步骤⑴ 中调取出的误差式范围型数据标识符左侧数据与步骤②中存储在L_dot中的数值相等且 步骤(1)中调取出的误差式范围型数据标识符左侧数据<步骤②中存储在[(1(^中的数值 时,说明查询关键字的数值范围是否处于需查询单字段范围数据的具体数值范围之内;反 之亦然。
4.按照权利要求1、2或3所述的一种范围型数据的存储及查询方法,其特征在于步 骤一中所述的上下限式范围型数据标识符包括“ ”、“_”、“至”、“到”、“彡X彡”、“彡X彡”、 “< X <”、“> X >”、“between. · · and. · · ”、“· · ·和· ·.之间”和“· · ·与· · ·之间”,所述误 差式范围型数据标识符为“ 士”,所述区域式范围型数据标识符包括“<”、“>”、“<”、“>”、 "not between. · · and. · · ”、“大于”、“小于”、“不大于”和“不小于”。
5.按照权利要求4所述的一种范围型数据的存储及查询方法,其特征在于步骤20311 中所述的查询关键字分类识别后,当判断得出所述查询关键字为区域式范围型数据时,则 步骤20312中进行范围型数据具体查询时,所述中央处理器所调取的范围型数据查询模块 为区域式范围型数据查询模块,当所述区域式范围型数据查询模块进行查询过程中且在步 骤203121中需查询字段调取之前,所述中央处理器应先调用区域式范围型数据分类模块 对查询关键字的范围型数据标识符类型进行识别且根据识别结果对查询关键字进行分类 当判断得出查询关键字的范围型数据标识符为“not between. . . and...,,时,进入步骤a ; 当判断得出查询关键字的范围型数据标识符为“<”、“<”、“小于”和“不大于”时,进入步 骤b;否则,进入步骤c;a、查询关键字预处理,其预处理过程包括以下步骤先调取查询关键字中除区域式范 围型数据标识符之外的两个限值数据;之后,再调用差值比较模块对所调取出的两个限值 数据进行差值比较,且将二者中的较大值存储至BI_dot,较小值存储至SM_dot ;步骤a中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范围数 据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具体数 值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下al、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处理模 块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中除区域式范围 型数据标识符之外的两个限值数据;再调用差值比较模块对所调取出需查询单字段范围数 据中的两个限值数据进行差值比较;a2、差值比较分析调用差值比较模块将步骤al中调取的差值比较后所获得的较大值 和较小值对应分别与步骤a中存储在BI_dot和SM_dot中的数值进行差值比较当差值比 较得出步骤al中差值比较后所获得的较大值>步骤a中存储在BI_dot的数值且步骤al 中差值比较后所获得的较小值《步骤a中存储在SM_dot的数值时,说明查询关键字的数值 范围是否处于需查询单字段范围数据的具体数值范围之内;反之亦然;b、查询关键字预处理调取查询关键字中范围型数据标识符右侧的数值数据,并将所 调取数据存储至SM中;步骤b中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范围数 据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具体数 值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下bl、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处理模 块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中范围型数据标 识符右侧的数值数据;b2、差值比较分析调用差值比较模块将步骤bl中调取的数值数据与步骤b中存储在 SM中的数值数据进行差值比较当差值比较得出步骤bl中调取的数值数据《步骤b中存 储在SM中的数值数据时,说明查询关键字的数值范围是否处于需查询单字段范围数据的 具体数值范围之内;反之亦然;c、查询关键字预处理调取查询关键字中范围型数据标识符右侧的数值数据,并将所 调取数据存储至BI中;步骤c中所述查询关键字预处理结束后,步骤203122中所述的对需查询单字段范围数 据与查询关键字中包含的具体数值进行对比分析并判断需查询单字段范围数据的具体数 值范围是否处于查询关键字的数值范围之内时,其对比分析过程如下Cl、需查询单字段范围数据预处理所述中央处理器调用区域式范围型数据预处理模 块对需查询单字段范围数据进行预处理,先调取出需查询单字段范围数据中范围型数据标 识符右侧的数值数据;c2、差值比较分析调用差值比较模块将步骤cl中调取的数值数据与步骤c中存储在 BI中的数值数据进行差值比较当差值比较得出步骤cl中调取的数值数据>步骤c中存 储在SM中的数值数据时,说明查询关键字的数值范围是否处于需查询单字段范围数据的 具体数值范围之内;反之亦然。
全文摘要
本发明公开了一种范围型数据的存储及查询方法,包括以下步骤一、数据存储将多个数据均存储至存储设备内建立的数据表中,且范围型数据均以单字段的存储方式进行存储,并相应建立上下限式范围型数据标识符库、误差式范围型数据标识符库和区域式范围型数据标识符库;二、数据查询,其查询过程如下查询关键字输入、查询关键字分析判断与范围型数据查询。本发明设计合理、数据存储及查询方便、数据处理工作量小且其数据存储与查询方法符合人们平时数据的存储及查询习惯,同时直观体现出数据之间的联系,能有效解决现有范围型数据存储及查询方法存在的不符合人们日常的数据存储习惯、数据处理工作量大、更改困难、查询不便等诸多弊端。
文档编号G06F17/30GK102004804SQ20101061784
公开日2011年4月6日 申请日期2010年12月31日 优先权日2010年12月31日
发明者关博通, 廉鹏, 张江波, 张玉成, 徐司雨, 李康, 李玉芹, 江静, 牛晓霞, 王伯周, 王冰, 王博, 王浩, 耿国华, 胡荣祖, 赵凤起, 赵宏安, 赵晓梅, 陈琳, 雷元元, 高红旭 申请人:西北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1