专利名称:一种复合字段的数据存储及查询方法
技术领域:
本发明属于数据存储及查询技术领域,尤其是涉及一种复合字段的数据存储及查询方法。
背景技术:
日常工作、生产和学习中会接触到大量的复合数据的处理问题,以下列举几个实例进行说明例1 为了满足关系型数据库的要求,对某高校教师的建档信息进行存储时,通常均按照如表1所示的信息存储表进行存储表1某高校教师建档信息存储表
权利要求
1. 一种复合字段的数据存储及查询方法,其特征在于该方法包括以下步骤步骤一、数据存储采用PC机且按常规数据存储方法对需要存储的多个数据分别进行存储,并将所存储的多个所述数据均存储至所述PC机的存储设备内预先建立的数据表中; 所述数据表满足第三范式要求,且所述数据表的数量为一个或多个;各数据表的数据存储方法均相同;实际进行存储时,所有数据的存储方式均相同且以字符串形式对各数据分别进行存储;所存储的每一个数据均包括字段名称信息、与字段名称信息相对应的具体数值和对数据进行唯一区分的主键编号三类信息,且所述字段名称信息和所述具体数值一一对应;所述字段名称信息、具体数值和主键编号均以单字段的存储方式进行存储,且实际存储时同一数据的字段名称信息、具体数值和主键编号均分别存储于单一的一个字段内,同一数据中的具体数值与字段名称信息和主键编号之间均通过关联单元进行关联且同一数据中的具体数值分别与该数据的字段名称信息和主键编号相对应;与同一个主键编号相关联的所有字段名称信息和与各字段名称信息相对应的具体数值组成一个独立的存储记录;实际进行存储时,各数据表中的存储方法均相同,均以主键编号为单位进行存储;对于任一个数据表来说,存储之前,先人为按照存储先后顺序对本数据表中需存储的所有主键编号进行前后排序,之后再开始进行存储;实际存储时,按照主键编号的排序,先对前一个主键编号及与其相关联的所有字段名称信息和与各字段名称信息相对应的具体数值进行存储,且待前一个主键编号及与其相关联的所有字段名称信息和与各字段名称信息相对应的具体数值均存储完成并形成一个独立的存储记录后,再对后一个主键编号及与其相关联的所有字段名称信息和与各字段名称信息相对应的具体数值进行存储;实际存储时,各存储记录的存储方法均相同;且对任一个存储记录进行存储时,均需人为判断该存储记录中是否包含复合字段当判断得出包含复合字段时,需在所述存储设备内存储与各复合字段相对应的查询数量字段,并将与各复合字段相对应的复合字段属性存入所述存储设备内预先建立的属性信息库内,所述查询数量字段和所述复合字段属性均与该存储记录中的主键编号相关联,且各复合字段的查询数量字段和复合字段属性均相关联;所述复合字段的数量为一个或多个;所述复合字段包括属性相同的多个字段名称信息,所述查询数量字段内存储有查询数量η且η为所述复合字段中所包括字段名称信息的数量,所述复合字段属性为属性相同的多个字段名称信息的共同属性;步骤二、数据查询,其数据查询过程如下.201、查询关键字输入采用PC机的参数输入装置输入所要查询的查询关键字;.202、查询操作字段分析判断所述PC机的中央处理器调用查询操作字段判断模块判断所输入查询关键字中包含的查询操作字段是否为存储有主键编号的主键字段当判断得出查询操作字段为主键字段时,则转入步骤204;否则,进入步骤203 ;.203、非主键编号查询所述中央处理器调用词法分析模块对所输入的查询关键字进行分析,并结合所述属性信息库内所存储信息,判断所述查询关键字中的需查询字段是否包括属性为复合字段属性的字段名称信息当判断得出需查询字段包括属性为复合字段属性的字段名称信息时,转入步骤2031,且需查询字段中所包括的复合字段属性为需查询复合字段属性;否则,转入步骤2032;.2031、复合字段查询所述中央处理器调用复合字段信息查询模块对需查询的所有数据表分别进行查询,且进行查询时按照各数据表在存储器内的存储位置的先后顺序进行查询;查询时,对所有数据表的查询方法均相同且对数据表中存储的所有存储记录的查询方法均相同,均按照存储位置的前后顺序进行查询;对于其中任一个需查询的数据表而言,其具体查询过程如下.20311、待查询存储记录调取所述复合字段信息查询模块按照存储位置的先后顺序, 调取出需查询数据表中存储的一个存储记录;.20312、信息查询所述复合字段信息查询模块按照存储位置的先后顺序,且按照常规数据查询方法对所调取存储记录中所包含的字段名称信息逐一进行查询,并对符合查询结果的字段名称信息进行标记;标记过程中,所述中央处理器对当前所标记字段名称信息的总数量m进行同步统计,并将数量m与查询数量字段内所存储的查询数量η进行差值比较, 且当比较得出m > η时,完成所调取存储记录的查询过程;本步骤中,所述查询数量字段为与步骤203中所述需查询复合字段属性相关联的查询数量字段;.20313、查询结果保存将所调取存储记录的主键编号,同步存入查询结果集内;.20314、按照步骤20311至20313中所述的调取与查询方法,且按照存储位置的先后顺序对需查询数据表中所存储的下一个存储记录进行调取与查询;.20315、多次重复步骤20314,直至需查询数据表中所存储的所有存储记录均查询完毕, 并转入步骤20316 ;.20316、将步骤20315中所述查询结果集内所保存的所有信息存储至所述存储设备内预先建立的查询结果数据表中;.20317、多次重复步骤20311至20316,且按照存储位置的先后顺序对需查询的其它数据表依次进行查询,直至需查询的所有数据表均查询完毕;.2032、非复合字段查询所述中央处理器采用常规数据查询方法,且按照各数据表在存储器内的存储位置的先后顺序,对需查询的所有数据表进行查询,直至需查询的所有数据表均查询完毕并获得查询结果数据表;.204、主键编号查询所述中央处理器调用数值型数据查询模块,并按照常规数值型数据的查询方法对需查询的所有数据表分别进行查询,且实际查询时按照各数据表在存储设备内的存储位置的先后顺序进行查询;且进行查询时,对所有数据表的查询方法均相同,均需按照存储位置的先后顺序对各数据表中所存储的所有存储记录进行查询且对所有存储记录的查询方法均相同,对于其中任一个需查询的数据表而言,其查询过程如下.2041、待查询存储记录调取所述数值型数据查询模块按照存储位置的先后顺序,调取出需查询数据表中存储的一个待查询存储记录;.2042、单字段数据查询及主键编号保存所述数值型数据查询模块先调取出待查询存储记录中所包括的主键编号,再采用将所输入的查询关键字与所调取的主键编号进行差值比较的方法进行查询当判断得出所调取的主键编号与查询关键字相同时,则将所调取存储记录中包含的主键编号保存至查询结果集内,之后进入步骤2043 ;否则,直接进入步骤 2043 ;.2043、按照步骤2041和步骤2042中所述的调取与查询方法,且按照存储位置的先后顺序对需查询数据表中所存储的下一个存储记录进行调取与查询;.2044、多次重复步骤2043,直至需查询数据表中所存储的所有存储记录均查询完毕,并转入步骤2045 ;·2045、将步骤2044中所述查询结果集内所保存的所有主键编号存储至所述存储设备内预先建立的查询结果数据表中;·2046、多次重复步骤2041至2045,且按照存储位置的先后顺序对需查询的其它数据表依次进行查询,直至需查询的所有数据表均查询完毕。
2.按照权利要求1所述的一种复合字段的数据存储及查询方法,其特征在于步骤 20313中进行查询结果保存时,将所调取存储记录的主键编号以及步骤20312中标记出的所有字段名称信息和与标记出的各字段名称信息相对应的具体数值,均存入查询结果集内。
3.按照权利要求1或2所述的一种复合字段的数据存储及查询方法,其特征在于步骤20313中进行查询结果保存时,将当前所调取的存储记录全部存入查询结果集内。
4.按照权利要求1或2所述的一种复合字段的数据存储及查询方法,其特征在于步骤20317、步骤2032和步骤2046中所述需查询的所有数据表均查询完毕后,还需通过所述 PC机的显示器对查询获得的查询结果数据表进行同步显示。
5.按照权利要求1或2所述的一种复合字段的数据存储及查询方法,其特征在于步骤20312中按照常规数据查询方法对所调取存储记录中所包含的字段名称信息逐一进行查询之前,需先判断所述查询关键字中的需查询字段是否包括与所述需查询复合字段属性相对应的具体数值信息,当判断得出需查询字段包括与所述需查询复合字段属性相对应的具体数值信息时,需按照存储位置的先后顺序对所调取存储记录中所存储的字段名称信息及相对应的具体数值分别进行查询,且对各字段名称信息及相对应的具体数值的查询方法均相同,此时与所述需查询复合字段属性相对应的具体数值信息为需查询数据信息;对于其中任一个字段名称信息及相对应的具体数值进行查询时,其查询过程如下I、字段名称信息属性查询所述复合字段信息查询模块按照常规数据查询方法,对所查询字段名称信息的属性进行查询当查询得出所查询字段名称信息的属性与需查询复合字段属性相同时,进入步骤II ;否则,进入步骤VI ;II、符合属性查询条件的字段名称信息数量统计步骤I中,当查询得出所查询字段名称信息的属性与需查询复合字段属性相同时,所述中央处理器还需对当前查询到的与需查询复合字段属性相同的所有字段名称信息数量m进行同步统计;III、具体数值查询所述中央处理器调用数值处理模块,且按照常规数值查询方法,对与所查询字段名称信息相对应的具体数值进行查询当查询得出所查询的具体数值与需查询数据信息相同时,则所述中央处理器对所查询字段名称信息及相对应的具体数值分别进行标记,进入步骤IV ;否则,进入步骤V ;步骤IV、查询结果保存将所查询字段名称信息相关联的主键编号,同步存入查询结果集内;步骤V、查询数量差值比较所述中央处理器对步骤II中统计得出的数量m与查询数量字段内所存储的查询数量η进行差值比较当比较得出m > η时,完成所调取存储记录的查询过程,进入步骤VII ;否则,进入步骤VI ;本步骤中,所述查询数量字段为与步骤203中所述需查询复合字段属性相关联的查询数量字段;VI、按照步骤I至V中所述的调取与查询方法,且按照存储位置的先后顺序对所查询存储记录中所存储的下一个字段名称信息及相对应的具体数值进行调取与查询;VII、多次重复步骤VI,直至所查询存储记录中所存储的所有字段名称信息及相对应的具体数值均查询完毕。
6.按照权利要求5所述的一种复合字段的数据存储及查询方法,其特征在于步骤IV 中进行查询结果保存时,将所查询字段名称信息相关联的主键编号以及步骤III中标记出的所查询字段名称信息及相对应的具体数值,均存入查询结果集内。
7.按照权利要求5所述的一种复合字段的数据存储及查询方法,其特征在于步骤IV 中进行查询结果保存时,将当前所调取的存储记录均存入查询结果集内。
8.按照权利要求1或2所述的一种复合字段的数据存储及查询方法,其特征在于步骤一中对多个所述数据进行存储的同时,将各数据的主键编号均存储至主键编号数据库中。
全文摘要
本发明公开了一种复合字段的数据存储及查询方法,包括以下步骤一、数据存储并多个数据均存储至满足第三范式要求的数据表中,各存储记录均包括字段名称信息、具体数值和主键编号三类信息;存储复合字段时,增加与主键编号相关联的查询数量字段和复合字段属性;二、数据查询;对复合字段进行查询时,对于任一存储记录,先读取查询数量字段中的查询数量n,查询过程中统计符合查询条件的字段名称信息数量m,当m≥n时完成一个存储记录的查询过程;之后,继续进行查询直至所有数据表均查询完毕。本发明设计合理、存储及查询方便且数据处理量小、查询效率高,能解决复合字段查询时存在的查询效率低、花费时间长、不能快速且高效查找等问题。
文档编号G06F17/30GK102243664SQ201110241029
公开日2011年11月16日 申请日期2011年8月22日 优先权日2011年8月22日
发明者关博通, 张玉成, 徐司雨, 李康, 李玉芹, 江静, 牛晓霞, 王冰, 王博, 王浩, 耿国华, 胡荣祖, 赵凤起, 赵宏安, 陈林, 雷元元, 高红旭 申请人:西北大学, 西安近代化学研究所