数据查询方法、装置、设备以及计算机存储介质与流程

文档序号:23727252发布日期:2021-01-26 17:36阅读:86来源:国知局
数据查询方法、装置、设备以及计算机存储介质与流程

[0001]
本发明实施例涉及数据库技术领域,具体涉及一种数据查询方法、装置、设备以及计算机存储介质。


背景技术:

[0002]
在数据库的存储与应用中,经常出现多个数据与多个数据之间相互存在关联,如第一列表中的每个元素与第二列表中的一或多个元素关联,与此同时第二列表中的每个元素与第一列表中的一或多个元素关联。
[0003]
目前在对上述这种多对多的关联数据进行查询时,如查询某元素是否与第一列表中某一行的元素关联,一般需要将第一列表中该行的元素作为主键,将待查询的元素与该行元素的关联元素一一进行比对,而现有技术中的关联元素之间一般是用分隔符隔开的,这样就导致一方面数据查询速度慢和效率较低,且不利于反向查找。另一方面每增加一种关联关系,都需要新建一个包含多列的关联数据表,导致数据库的存储成本较大。


技术实现要素:

[0004]
鉴于上述问题,本发明实施例提供了一种数据查询方法,用于解决现有技术中存在的多对多数据查询时低效的问题。
[0005]
根据本发明实施例的一个方面,提供了一种数据查询方法,所述方法包括:获取数据查询请求,所述数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段;根据所述待查询字段及所述目标输出字段,确定目标数据关系表;所述目标数据关系表中包括所述待查询字段与所述目标输出字段的对应关系;所述目标输出字段中每一个字段值包括一个第一元素;所述待查询字段中的每一个字段值包括至少一个第二元素;所述目标数据关系表中还包括组合字段,所述组合字段中的组合字段值根据所述待查询字段中的字段值中的所述至少一个第二元素通过第一转换规则转换得到;将所述待查询元素按照第二转换规则转换得到查询值;所述第二转换规则与所述第一转换规则相对应;根据所述查询值与所述组合字段中的组合字段值进行匹配,确定所述查询值匹配的所述组合字段中的组合字段值作为目标字段值;确定所述目标字段值在所述目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值;将所述目标输出字段值作为查询结果输出。
[0006]
在一种可选的方式中,所述第二元素为十进制字符串,所述第一转换规则包括第三转换规则和第四转换规则;所述方法还包括:分别将各个所述十进制字符串补全至目标长度;将补全后的各个所述十进制字符串根据所述第三转换规则转换为子二进制字符串;所
述第三转换规则为将所述十进制字符串中的每一位字符值转换为一个子二进制字符串;将各个所述子二进制字符串进行拼接,得到组合二进制字符串;将所述组合二进制字符串按照所述第四转换规则转换成组合十进制字符串;所述第四转换规则为计算所述组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将各个所述组合十进制字符串分别作为所述组合字段的各个组合字段值。
[0007]
在一种可选的方式中,所述十进制字符串中每个字符值分别对应所述子二进制字符串的一个字符位;所述方法进一步包括:将所述子二进制字符串中包含的字符位划分为第一字符位和第二字符位,其中,所述第一字符位分别与所述十进制字符串中每个字符值对应,所述第二字符位不存在所述十进制字符串中的字符值与其对应;将所述第一字符位上的字符值确定为第一预设值,将所述第二字符位上的字符值确定为第二预设值。
[0008]
在一种可选的方式中,所述方法还包括:确定每一个所述子二进制字符串对应的字符值在所述十进制字符串中的字符位次序;将所述各个子二进制字符串按照所述字符位次序进行拼接,得到所述组合二进制字符串。
[0009]
在一种可选的方式中,所述方法还包括:将所述查询值与所述组合字段中的第一组合字段值进行与运算,所述第一组合字段值为所述组合字段值中的任意一个组合字段值;获取运算结果,将与所述查询值相同的所述运算结果所对应的第一组合字段作为所述目标字段值。
[0010]
在一种可选的方式中,所述方法还包括:获取数据更新请求,所述数据更新请求中包括待更新元素、所述待更新元素对应的待更新字段以及更新后元素;将所述待更新元素按照第七转换规则转换得到待更新字段值,所述第七转换规则与所述第一转换规则对应;分别将所述待更新字段值与所述组合字段中的各个字段值进行匹配,确定匹配到的所述组合字段中的字段值作为第一字段值;确定所述第一字段值在所述目标数据关系表中所对应的待更新字段中的字段值,作为第二字段值;根据所述更新后元素对所述第二字段值进行更新;根据更新后的所述第二字段值按所述第七转换规则进行转换,得到第三字段值;根据所述第三字段值对所述第一字段值进行更新。
[0011]
在一种可选的方式中,所述第二转换规则包括第五转换规则和第六转换规则,所述方法进一步包括:将所述待查询十进制值按所述第五转换规则转换为待查询子二进制字符串;所述第五转换规则为将所述待查询十进制值中的每一位字符值转换为一个待查询子二进制字符串;将各个所述待查询子二进制字符串进行拼接,得到待查询组合二进制字符串;
将所述待查询组合二进制字符串按照所述第六转换规则转换为待查询组合十进制字符串;所述第六转换规则为计算所述待查询组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将所述待查询组合十进制字符串作为所述查询值。
[0012]
根据本发明实施例的另一方面,提供了一种数据查询装置,包括:获取模块,用于获取数据查询请求,所述数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段;第一确定模块,用于根据所述待查询字段及所述目标输出字段,确定目标数据关系表;所述目标数据关系表中包括所述待查询字段与所述目标输出字段的对应关系;所述目标输出字段中每一个字段值包括一个第一元素;所述待查询字段中的每一个字段值包括至少一个第二元素;所述目标数据关系表中还包括组合字段,所述组合字段中的组合字段值根据所述待查询字段中的字段值中的所述至少一个第二元素通过第一转换规则转换得到;转换模块,用于将所述待查询元素按照第二转换规则转换得到查询值;所述第二转换规则与所述第一转换规则相对应;匹配模块,用于根据所述查询值与所述组合字段中的组合字段值进行匹配,确定所述查询值匹配的所述组合字段中的组合字段值作为目标字段值;第二确定模块,用于确定所述目标字段值在所述目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值;输出模块,用于将所述目标输出字段值作为查询结果输出。
[0013]
根据本发明实施例的另一方面,提供了一种数据查询设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如前述任意一项实施例中所述的数据查询方法的操作。
[0014]
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使数据查询设备执行如前述任意一项所述的数据查询方法的操作。
[0015]
本发明实施例通过获取数据查询请求,数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段;根据待查询字段及目标输出字段,确定目标数据关系表;目标数据关系表中包括待查询字段与目标输出字段的对应关系,其中,目标输出字段中每一个字段值包括一个第一元素,待查询字段中的每一个字段值包括至少一个第二元素;同时,目标数据关系表中还包括组合字段,组合字段中的组合字段值根据待查询字段中的字段值中的至少一个第二元素通过第一转换规则转换得到;将待查询元素按照第二转换规则转换得到查询值,第二转换规则与第一转换规则相对应。再根据查询值与组合字段中的组合字段值进行匹配,确定查询值匹配的组合字段中的组合字段值作为目标字段值。最后确定目标字段值在目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值;将目标输出字段值作为查询结果输出。
[0016]
本发明能够按照第一转换规则确定关联元素对应的组合字段值,将待查询元素按
照与第一转换规则对应的第二转换规则转换之后得到查询值,将查询值与各个组合字段值进行一次匹配,从而实现多对多数据中关联数据的快速查询的目的,从而解决了现有技术中在进行关联元素的查询时将与主键元素关联的元素逐个进行比对的效率较低的问题,提高了数据查询的效率。
[0017]
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0018]
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本发明实施例提供的数据查询方法的流程示意图;图2示出了本发明实施例提供的数据查询装置的结构示意图;图3示出了本发明实施例提供的数据查询设备的结构示意图。
具体实施方式
[0019]
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
[0020]
图1示出了本发明实施例提供的数据查询方法的流程图,该方法由数据查询设备执行。具体的设备可以包括手机、笔记本电脑等计算机处理设备。如图1所示,该方法包括以下步骤:步骤101:获取数据查询请求,所述数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段。
[0021]
举例说明,待查询元素是123,待查询字段是学生id,目标输出字段是课程id,每一个学生id对应于一个学生姓名,每一个课程id对应于一个课程名称。意即要查询学生id为123的学生所关联的课程id。学生id与课程id之间的对应关系可以参考表1。其中课程id为“1,3”表示学生id“120”分别与课程id为“1”以及“3”的课程对应,“,”为不同课程id之间的分隔符。
[0022]
表1学生id课程id1201,31231,21263在本发明的一个实施例中,对于数字型关联元素,按照各个字段之间的关系进行存储。数字型关联元素指的是各个字段上的元素是数字,即如上表1中所示。而对于非数字型关联元素,可以预先为每个字段中的非数字型元素分配唯一的数字型元素,再将各个字段对应的数字型元素按照非数字型元素之间的关系进行关联存储,如首先存储课程id与课程名之间的对应关系以及学生id与学生姓名之间的对应关系,分别参考表2与表3。
[0023]
表2课程id课程名称1数据结构2计算机组成原理3密码学表3学生id学生姓名120张三123李四126王五步骤102:根据所述待查询字段及所述目标输出字段,确定目标数据关系表;所述目标数据关系表中包括所述待查询字段与所述目标输出字段的对应关系;所述目标输出字段中每一个字段值包括一个第一元素;所述待查询字段中的每一个字段值包括至少一个第二元素;所述目标数据关系表中还包括组合字段,所述组合字段中的组合字段值根据所述待查询字段中的字段值中的所述至少一个第二元素通过第一转换规则转换得到。
[0024]
在本发明的一个实施例中,目标数据关系表可以参考表4。
[0025]
表4课程id学生id组合字段1120,1232101257212321012563120,1262101313按照表4中示出的方式对多对多的数据关系进行存储的有益效果在于:对于100个课程与1000个学生之间的关联关系,现有技术中的存储方式是分别将学生以及课程作为主键,建立不同主键的两张数据关系表进行存储。在现有技术这种方式下,需要存储的数据最大行数为100*1000。而采用本发明的方法生成目标数据表后,对于上述数据关系的存储只需要100行,由此,本发明的数据查询方法在提高数据查询速度的同时,大大节省了数据存储的成本。
[0026]
首先,所述第二元素为十进制字符串,第一转换规则包括第三转换规则和第四转换规则。在所述根据所述待查询字段及所述目标输出字段,确定目标数据关系表之前,还包括步骤1021-步骤1025:步骤1021:分别将各个所述十进制字符串补全至目标长度。
[0027]
举例说明,待查询字段中包括的第二元素可以是123、14、331、1058。由于本发明实施例中在对待查询字段进行查询时,是针对待查询字段中的每一个字段值中的每一个字符分别进行查询,如在待查询字段123的情况下,首先查找所述待查询字段中的每一个字段值中是否存在个位上为3的第二元然后在查找到的个位上为3的第二元素中进一步查找是否存在十位上为2的元素,最后在前述找到的第二元素中查找十位上为1的第二元素,其他更高的位数以此类推。
[0028]
因此,首先需要对第二元素的包含的字符个数进行统一化。步骤1021还包括:步骤10211:分别获取所述各个所述十进制字符串的长度,确定长度最大的所述十进制字符串的
长度作为所述目标长度。
[0029]
结合步骤1021中的举例,目标长度为1058对应的4个字符位。
[0030]
步骤10212:将长度小于所述目标长度的所述十进制字符串的空缺位根据第三预设值进行补全。
[0031]
在本发明的一个实施例中,第三预设值为0,即对于长度小于目标长度的第二元素进行高位补零,如将123、14和331分别补全为0123、0014和0331。
[0032]
步骤1022:将补全后的各个所述十进制字符串根据所述第三转换规则转换为子二进制字符串;所述第三转换规则为将所述十进制字符串中的每一位字符值转换为一个子二进制字符串。
[0033]
结合前述举例,针对补全后的十进制字符串0123、0014、0331和1058,首先根据其在个位上包含的字符值3、4、1、8确定个位对应的二进制字符串。以此类推,再依次确定每一个字符值在十位、千位以及百位对应的二进制字符串作为对应的子二进制字符串。
[0034]
步骤1022还包括:步骤10221:将所述子二进制字符串中包含的字符位划分为第一字符位和第二字符位,其中,所述第一字符位分别与所述十进制字符串中每个字符值对应,所述第二字符位不存在所述十进制字符串中的字符值与其对应。
[0035]
考虑到十进制字符串中可能包括0到9十个十进制字符值,因此每一个十进制字符值对应于一个子二进制字符串中的一个预设字符位,如十进制字符串中的0对应子二进制字符串的最末位,十进制字符串中的1对应子二进制字符串的次末位,十进制字符串中的9对应于子二进制字符串的最高位等,其中每一个子二进制字符串对应一个。
[0036]
步骤10222:将所述第一字符位上的字符值确定为第一预设值,将所述第二字符位上的字符值确定为第二预设值。
[0037]
在本发明的一个实施例中,将第一预设值设为1,将第二预设值设为0。针对各个十进制字符串0123、0014、0331和1058,其个位上的字符值分别为3、4、1、8,而字符值3、4、1、8依次对应于子二进制字符串从右至左的第4位、第5位、第2位以及第9位。因此个位的字符值对应的子二进制字符串为0100011010。以此类推,十进制字符串0123、0014、0331和1058在千位、百位以及十位上的十进制字符值对应的子二进制字符串为0000000011、0000001011以及0000101110。
[0038]
步骤1023:将各个所述子二进制字符串进行拼接,得到组合二进制字符串。
[0039]
将各个子二进制字符串按照对应的字符值的次序进行拼接,即从右至左分别是对应个位、十位、百位直至十进制字符串中最高位上的字符值对应的子二进制字符串。
[0040]
步骤1023还包括步骤10231-步骤10232:步骤10231:确定每一个所述子二进制字符串对应的字符值在所述十进制字符串中的字符位次序。
[0041]
如子二进制字符串0100011010对应的字符值为3、4、1、8在十进制字符串0123、0014、0331和1058的个位上,而子二进制字符串0000101110对应的字符值2、1、3、5在十进制字符串0123、0014、0331和1058的十位上。而在十进制中字符位次序从低到高依次是个位、十位、千位以此类推。
[0042]
步骤10232:将所述各个子二进制字符串按照所述字符位次序进行拼接,得到所述组合二进制字符串。
[0043]
将各个子二进制字符串按照对应的字符位次序进行拼接,即从右至左分别是对应个位、十位、百位直至十进制字符串中包括的字符值对应的最高位对应的子二进制字符串。
[0044]
例如,前述步骤10222中的子二进制字符串组成的组合二进制字符串为11000000101100001011100100011010。
[0045]
步骤1024:将所述组合二进制字符串按照所述第四转换规则转换成组合十进制字符串;所述第四转换规则为计算所述组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定。
[0046]
举例说明,在组合二进制字符串为1010时,其对应的组合十进制字符串为1*2*2*2(2的3次方)+1*2(2的1次方),得到10。前述步骤10222中的组合二进制字符串11000000101100001011100100011010按照第四转换规则转换得到组合十进制字符串3232807194。
[0047]
在本发明的一个实施例中,如果存在组合十进制字符串溢出的情况下,可以将各个子二进制字符串分块进行拼接,即将各个第二元素的至少一个十进制位上的字符确定对应的组合字段值,如分别确定个位以及十位上对应的第一组合二进制字符串1011100100011010,以及百位和千位上对应的第二组合二进制字符串110000001011。将组合字段拆分为第一组合字段和第二组合字段,用于分别表征第二元素在个位和十位上的组合字段值以及在百位和千位上的组合字段值。在查询时,对待查询元素也按十进制位拆分为多个二进制字符串,分别根据各个十进制位对应的组合字段值在对应字符位的组合字段值下进行查询。
[0048]
步骤1025:将各个所述组合十进制字符串分别作为所述组合字段的各个组合字段值。
[0049]
步骤103:将所述待查询元素按照第二转换规则转换得到查询值;所述第二转换规则与所述第一转换规则相对应。
[0050]
首先,所述待查询元素为待查询十进制值,类似于前述步骤中组合字段中各个组合字段值的确定方法,对应的待查询元素也要根据待查询十进制值的每一个十进制字符值确定对应的待查询组合二进制字符串,然后将待查询组合二进制字符串进行拼接,得到查询值。
[0051]
第二转换规则与第一转换规则对应,第二转换规则中包括第五转换规则和第六转换规则。其中,第五转换规则和计算原理与步骤102中的第三转换规则类似。即,第五转换规则为将所述待查询十进制值中的每一位字符值转换为一个待查询子二进制字符串。第六转换规则的计算原理与步骤102中的第四转换规则类似。
[0052]
步骤103还包括:步骤1031:将所述待查询十进制值根据所述第五转换规则转换为待查询子二进制字符串;所述第五转换规则为将所述待查询十进制值中的每一位字符值转换为一个待查询子二进制字符串。
[0053]
在本发明的一个实施例中,首先需要将待查询元素补全至目标位数,如将123按照步骤10211-10212中的补全方法补全为0123。然后将补全后的0123中包含的字符值0、1、2、3分别按照第五转换规则转换为对应的待查询子二进制字符串,0000000001、0000000010、0000000100、0000001000。
[0054]
步骤1032:将各个所述待查询子二进制字符串进行拼接,得到待查询组合二进制字符串。
[0055]
将上述四个待查询子二进制字符串进行拼接1000000001000000001000000001000作为待查询子二进制字符串,拼接的方式与步骤102中相同,不再赘述。
[0056]
步骤1033:将所述待查询组合二进制字符串按照所述第六转换规则转换成待查询组合十进制字符串;所述第六转换规则为计算所述待查询组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值二进制位的序号确定。
[0057]
根据第六转换规则将待查组合二进制字符串1000000001000000001000000001000转换为对应的十进制值字符串为1075843080。
[0058]
步骤1034:将所述待查询组合十进制字符串作为所述查询值。
[0059]
将待查询组合十进制字符串1075843080作为查询值。
[0060]
步骤104:根据所述查询值与所述组合字段中的组合字段值进行匹配,确定所述查询值匹配的所述组合字段中的组合字段值作为目标字段值。
[0061]
要查询各个组合字段值中某一位是否存在某个字符值,需要进行与运算。
[0062]
步骤104还包括:步骤1041:将所述查询值与所述组合字段中的第一组合字段值进行与运算,所述第一组合字段值为所述组合字段值中的任意一个组合字段值。
[0063]
步骤1042:获取运算结果,将与所述查询值相同的所述运算结果所对应的第一组合字段作为所述目标字段值。
[0064]
举例说明,查询值1075843080与组合字段中的组合字段值3232807194的与运算结果为1075843080,因此目标字段值为3232807194。而由前述步骤1024中的说明,组合字段值3232807194对应的包含的第二元素分别为123、14、331和1058,其中包括待查询元素123,说明查询结果是正确的。
[0065]
步骤105:确定所述目标字段值在所述目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值。
[0066]
意即,在查找到目标字段值之后,查找在目标数据关系表中与该目标字段值在同一行的在目标输出字段下的字段值进行输出,从而输出了与待查询元素关联的目标元素。
[0067]
步骤106:将所述目标输出字段值作为查询结果输出。
[0068]
待查询字段是学生id,目标输出字段是课程id,每一个学生id对应于一个学生姓名,每一个课程id对应于一个课程名称。意即要查询id为123的学生所关联的课程id。最终的查询结果即为学生id为123的学生对应的课程id。在可选的实施例中,可以进一步获取与目标输出字段值对应的信息,如课程id对应的课程名称,进行一并输出。
[0069]
在可选的实施例中,随着数据之间关联关系的变化还需要对目标数据表中的对应数据进行更新,因此还包括步骤1071-步骤1076。
[0070]
步骤1071:获取数据更新请求,所述数据更新请求中包括待更新元素、所述待更新元素对应的待更新字段以及更新后元素。
[0071]
举例说明,待更新元素也是一个待更新十进制值,如123,待更新字段为学生id,更新后元素为124。
[0072]
步骤1072:将所述待更新元素按照第七转换规则转换得到待更新字段值。
[0073]
根据前述步骤,待更新元素转换得到待更新字段值的过程类似于步骤中将待查询元素转换得到待查询值的过程,即首先将123中包含的三个字符值1、2、3分别转换为对应的待更新二进制字符串,0000000010、00000000100、0000001000。再将上述三个待更新子二进
制字符串按照次序进行拼接得到待更新组合二进制字符串10000000001000000001000。然后确定待更新组合二进制字符串10000000001000000001000对应的十进制字符串4198408,将4198408作为待更新字段值。
[0074]
步骤1073:根据所述待更新字段值与所述组合字段中的字段值进行匹配,确定匹配到的所述组合字段中的字段值作为第一字段值。
[0075]
根据所述待更新字段值与所述组合字段中的字段值进行匹配的过程参考步骤104。在未匹配到情况下,还可以返回预设的提示信息给更新数据的发送者。
[0076]
步骤1074:确定所述第一字段值在所述目标数据关系表中所对应的待更新字段中的字段值,作为第二字段值。
[0077]
待更新字段为学生id,第二字段值为123、14、331和1058。
[0078]
步骤1075:根据所述更新后元素对所述第二字段值进行更新。
[0079]
对第二字段值进行更新的过程可以是将第二字段值中的与待更新元素匹配的第二元素替换为更新后元素,即第二字段值在更新前为123、14、331和1058,更新后为124、14、331和105。
[0080]
步骤1076:根据更新后的所述第二字段值按照所述转换规则进行计算,得到第三字段值,根据所述第三字段值对所述第一字段值进行更新。
[0081]
对所述第一字段值进行更新的过程为将第一字段值替换为第三字段值。
[0082]
图2示出了本发明实施例提供的数据查询装置的结构示意图。如图2所示,该装置200包括:获取模块201、第一确定模块202、转换模块203、匹配模块204、第二确定模块205以及输出模块206,其中,获取模块201,用于获取数据查询请求,所述数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段;第一确定模块202,用于根据所述待查询字段及所述目标输出字段,确定目标数据关系表;所述目标数据关系表中包括所述待查询字段与所述目标输出字段的对应关系;所述目标输出字段中每一个字段值包括一个第一元素;所述待查询字段中的每一个字段值包括至少一个第二元素;所述目标数据关系表中还包括组合字段,所述组合字段中的组合字段值根据所述待查询字段中的字段值中的所述至少一个第二元素通过第一转换规则转换得到;转换模块203,用于将所述待查询元素按照第二转换规则转换得到查询值;所述第二转换规则与所述第一转换规则相对应;匹配模块204,用于根据所述查询值与所述组合字段中的组合字段值进行匹配,确定所述查询值匹配的所述组合字段中的组合字段值作为目标字段值;第二确定模块205,用于确定所述目标字段值在所述目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值;输出模块206,用于将所述目标输出字段值作为查询结果输出。
[0083]
在一种可选的方式中,所述第二元素为十进制字符串,所述第一转换规则包括第三转换规则和第四转换规则;所述第一确定模块202还用于:分别将各个所述十进制字符串补全至目标长度;将补全后的各个所述十进制字符串根据所述第三转换规则转换为子二进制字符串;所述第三转换规则为将所述十进制字符串中的每一位字符值转换为一个子二进制字符串;
将各个所述子二进制字符串进行拼接,得到组合二进制字符串;将所述组合二进制字符串按照所述第四转换规则转换成组合十进制字符串;所述第四转换规则为计算所述组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将各个所述组合十进制字符串分别作为所述组合字段的各个组合字段值。
[0084]
在一种可选的方式中,所述十进制字符串中每个字符值分别对应所述子二进制字符串的一个字符位;所述第一确定模块202还用于:将所述子二进制字符串中包含的字符位划分为第一字符位和第二字符位,其中,所述第一字符位分别与所述十进制字符串中每个字符值对应,所述第二字符位不存在所述十进制字符串中的字符值与其对应;将所述第一字符位上的字符值确定为第一预设值,将所述第二字符位上的字符值确定为第二预设值。
[0085]
在一种可选的方式中,所述第一确定模块202还用于:确定每一个所述子二进制字符串对应的字符值在所述十进制字符串中的字符位次序;将所述各个子二进制字符串按照所述字符位次序进行拼接,得到所述组合二进制字符串。
[0086]
在一种可选的方式中,所述匹配模块204还用于:将所述查询值与所述组合字段中的第一组合字段值进行与运算,所述第一组合字段值为所述组合字段值中的任意一个组合字段值;获取运算结果,将与所述查询值相同的所述运算结果所对应的第一组合字段作为所述目标字段值。
[0087]
在一种可选的方式中,所述获取模块201还用于:获取数据更新请求,所述数据更新请求中包括待更新元素、所述待更新元素对应的待更新字段以及更新后元素;将所述待更新元素按照第七转换规则转换得到待更新字段值,所述第七转换规则与所述第一转换规则对应;分别将所述待更新字段值与所述组合字段中的各个字段值进行匹配,确定匹配到的所述组合字段中的字段值作为第一字段值;确定所述第一字段值在所述目标数据关系表中所对应的待更新字段中的字段值,作为第二字段值;根据所述更新后元素对所述第二字段值进行更新;根据更新后的所述第二字段值按所述第七转换规则进行转换,得到第三字段值;根据所述第三字段值对所述第一字段值进行更新。
[0088]
在一种可选的方式中,所述第二转换规则包括第五转换规则和第六转换规则,所述待查询元素为待查询十进制值,所述转换模块203还用于:将所述待查询十进制值按所述第五转换规则转换为待查询子二进制字符串;所述第五转换规则为将所述待查询十进制值中的每一位字符值转换为一个待查询子二进制字符串;将各个所述待查询子二进制字符串进行拼接,得到待查询组合二进制字符串;将所述待查询组合二进制字符串按照所述第六转换规则转换为待查询组合十进制字符串;所述第六转换规则为计算所述待查询组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将所述待查询组合十进制字符串作为所述查询值。
[0089]
本发明的数据查询装置的实施过程与前述任一实施例中的数据查询方法的实施过程相同,不再赘述。本发明的数据查询装置能够按照第一转换规则确定关联元素对应的组合字段值,将待查询元素按照与第一转换规则对应的第二转换规则转换之后得到查询
值,将查询值与各个组合字段值进行一次匹配,从而解决了现有技术中在进行关联元素的查询时将与主键元素关联的元素逐个进行比对的效率较低的问题,提高了数据查询的效率。
[0090]
图3示出了本发明实施例提供的数据查询设备的结构示意图,本发明具体实施例并不对数据查询设备的具体实现做限定。
[0091]
如图3所示,该数据查询设备可以包括:处理器(processor)302、通信接口(communications interface)304、存储器(memory)306、以及通信总线308。
[0092]
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于数据查询方法实施例中的相关步骤。
[0093]
具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。
[0094]
处理器302可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。数据查询设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0095]
存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0096]
程序310具体可以被处理器302调用使数据查询设备执行以下操作:获取数据查询请求,所述数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段;根据所述待查询字段及所述目标输出字段,确定目标数据关系表;所述目标数据关系表中包括所述待查询字段与所述目标输出字段的对应关系;所述目标输出字段中每一个字段值包括一个第一元素;所述待查询字段中的每一个字段值包括至少一个第二元素;所述目标数据关系表中还包括组合字段,所述组合字段中的组合字段值根据所述待查询字段中的字段值中的所述至少一个第二元素通过第一转换规则转换得到;将所述待查询元素按照第二转换规则转换得到查询值;所述第二转换规则与所述第一转换规则相对应;根据所述查询值与所述组合字段中的组合字段值进行匹配,确定所述查询值匹配的所述组合字段中的组合字段值作为目标字段值;确定所述目标字段值在所述目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值;将所述目标输出字段值作为查询结果输出。
[0097]
在一种可选的方式中,程序310具体还可以被处理器302调用使数据查询设备执行以下操作:分别将各个所述十进制字符串补全至目标长度;将补全后的各个所述十进制字符串根据所述第三转换规则转换为子二进制字符串;所述第三转换规则为将所述十进制字符串中的每一位字符值转换为一个子二进制字符串;将各个所述子二进制字符串进行拼接,得到组合二进制字符串;将所述组合二进制字符串按照所述第四转换规则转换成组合十进制字符串;所述第四转换规则为计算所述组合
二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将各个所述组合十进制字符串分别作为所述组合字段的各个组合字段值。
[0098]
在一种可选的方式中,程序310具体还可以被处理器302调用使数据查询设备执行以下操作:将所述子二进制字符串中包含的字符位划分为第一字符位和第二字符位,其中,所述第一字符位分别与所述十进制字符串中每个字符值对应,所述第二字符位不存在所述十进制字符串中的字符值与其对应;将所述第一字符位上的字符值确定为第一预设值,将所述第二字符位上的字符值确定为第二预设值。
[0099]
在一种可选的方式中,程序310具体还可以被处理器302调用使数据查询设备执行以下操作:确定每一个所述子二进制字符串对应的字符值在所述十进制字符串中的字符位次序;将所述各个子二进制字符串按照所述字符位次序进行拼接,得到所述组合二进制字符串。
[0100]
在一种可选的方式中,程序310具体还可以被处理器302调用使数据查询设备执行以下操作:将所述查询值与所述组合字段中的第一组合字段值进行与运算,所述第一组合字段值为所述组合字段值中的任意一个组合字段值;获取运算结果,将与所述查询值相同的所述运算结果所对应的第一组合字段作为所述目标字段值。
[0101]
在一种可选的方式中,程序310具体还可以被处理器302调用使数据查询设备执行以下操作:获取数据更新请求,所述数据更新请求中包括待更新元素、所述待更新元素对应的待更新字段以及更新后元素;将所述待更新元素按照第七转换规则转换得到待更新字段值,所述第七转换规则与所述第一转换规则对应;分别将所述待更新字段值与所述组合字段中的各个字段值进行匹配,确定匹配到的所述组合字段中的字段值作为第一字段值;确定所述第一字段值在所述目标数据关系表中所对应的待更新字段中的字段值,作为第二字段值;根据所述更新后元素对所述第二字段值进行更新;根据更新后的所述第二字段值按所述第七转换规则进行转换,得到第三字段值;根据所述第三字段值对所述第一字段值进行更新。
[0102]
在一种可选的方式中,程序310具体还可以被处理器302调用使数据查询设备执行以下操作:将所述待查询十进制值按所述第五转换规则转换为待查询子二进制字符串;所述第五转换规则为将所述待查询十进制值中的每一位字符值转换为一个待查询子二进制字符串;将各个所述待查询子二进制字符串进行拼接,得到待查询组合二进制字符串;将所述待查询组合二进制字符串按照所述第六转换规则转换为待查询组合十进制字符串;所述第六转换规则为计算所述待查询组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将所述待查询组合十进制字符串作为所述查询值。
[0103]
本发明的数据查询设备的实施过程与前述任一实施例中的数据查询方法的实施过程相同,不再赘述。本发明的数据查询设备能够按照第一转换规则确定关联元素对应的组合字段值,将待查询元素按照与第一转换规则对应的第二转换规则转换之后得到查询
值,将查询值与各个组合字段值进行一次匹配,从而解决了现有技术中在进行关联元素的查询时将与主键元素关联的元素逐个进行比对的效率较低的问题,提高了数据查询的效率。
[0104]
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在数据查询设备上运行时,使得所述数据查询设备执行上述任意方法实施例中的数据查询方法。
[0105]
可执行指令具体可以用于使得数据查询设备执行以下操作:获取数据查询请求,所述数据查询请求中包含待查询元素、待查询元素对应的待查询字段以及目标输出字段;根据所述待查询字段及所述目标输出字段,确定目标数据关系表;所述目标数据关系表中包括所述待查询字段与所述目标输出字段的对应关系;所述目标输出字段中每一个字段值包括一个第一元素;所述待查询字段中的每一个字段值包括至少一个第二元素;所述目标数据关系表中还包括组合字段,所述组合字段中的组合字段值根据所述待查询字段中的字段值中的所述至少一个第二元素通过第一转换规则转换得到;将所述待查询元素按照第二转换规则转换得到查询值;所述第二转换规则与所述第一转换规则相对应;根据所述查询值与所述组合字段中的组合字段值进行匹配,确定所述查询值匹配的所述组合字段中的组合字段值作为目标字段值;确定所述目标字段值在所述目标数据关系表中所对应的目标输出字段中的字段值,作为目标输出字段值;将所述目标输出字段值作为查询结果输出。
[0106]
在一种可选的方式中,所述第二元素为十进制字符串,所述第一转换规则包括第三转换规则和第四转换规则;所述可执行指令使所述数据查询设备执行以下操作:分别将各个所述十进制字符串补全至目标长度;将补全后的各个所述十进制字符串根据所述第三转换规则转换为子二进制字符串;所述第三转换规则为将所述十进制字符串中的每一位字符值转换为一个子二进制字符串;将各个所述子二进制字符串进行拼接,得到组合二进制字符串;将所述组合二进制字符串按照所述第四转换规则转换成组合十进制字符串;所述第四转换规则为计算所述组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将各个所述组合十进制字符串分别作为所述组合字段的各个组合字段值。
[0107]
在一种可选的方式中,所述十进制字符串中每个字符值分别对应所述子二进制字符串的一个字符位;所述可执行指令使所述数据查询设备执行以下操作,进一步包括:将所述子二进制字符串中包含的字符位划分为第一字符位和第二字符位,其中,所述第一字符位分别与所述十进制字符串中每个字符值对应,所述第二字符位不存在所述十进制字符串中的字符值与其对应;将所述第一字符位上的字符值确定为第一预设值,将所述第二字符位上的字符值确定为第二预设值。
[0108]
在一种可选的方式中,所述可执行指令使所述数据查询设备执行以下操作:
确定每一个所述子二进制字符串对应的字符值在所述十进制字符串中的字符位次序;将所述各个子二进制字符串按照所述字符位次序进行拼接,得到所述组合二进制字符串。
[0109]
在一种可选的方式中,所述可执行指令使所述数据查询设备执行以下操作:将所述查询值与所述组合字段中的第一组合字段值进行与运算,所述第一组合字段值为所述组合字段值中的任意一个组合字段值;获取运算结果,将与所述查询值相同的所述运算结果所对应的第一组合字段作为所述目标字段值。
[0110]
在一种可选的方式中,所述可执行指令使所述数据查询设备执行以下操作:获取数据更新请求,所述数据更新请求中包括待更新元素、所述待更新元素对应的待更新字段以及更新后元素;将所述待更新元素按照第七转换规则转换得到待更新字段值,所述第七转换规则与所述第一转换规则对应;分别将所述待更新字段值与所述组合字段中的各个字段值进行匹配,确定匹配到的所述组合字段中的字段值作为第一字段值;确定所述第一字段值在所述目标数据关系表中所对应的待更新字段中的字段值,作为第二字段值;根据所述更新后元素对所述第二字段值进行更新;根据更新后的所述第二字段值按所述第七转换规则进行转换,得到第三字段值;根据所述第三字段值对所述第一字段值进行更新。
[0111]
在一种可选的方式中,所述第二转换规则包括第五转换规则和第六转换规则,所述待查询元素为待查询十进制值,所述可执行指令使所述数据查询设备执行以下操作:将所述待查询十进制值按所述第五转换规则转换为待查询子二进制字符串;所述第五转换规则为将所述待查询十进制值中的每一位字符值转换为一个待查询子二进制字符串;将各个所述待查询子二进制字符串进行拼接,得到待查询组合二进制字符串;将所述待查询组合二进制字符串按照所述第六转换规则转换为待查询组合十进制字符串;所述第六转换规则为计算所述待查询组合二进制字符串中的每一个字符值的2的n次方值,并求和;其中,所述n根据所述字符值的二进制位的序号确定;将所述待查询组合十进制字符串作为所述查询值。
[0112]
本发明的计算机可读介质的实施过程与前述任一实施例中的数据查询方法的实施过程相同,不再赘述。本发明的计算机可读介质能够按照第一转换规则确定关联元素对应的组合字段值,将待查询元素按照与第一转换规则对应的第二转换规则转换之后得到查询值,将查询值与各个组合字段值进行一次匹配,从而解决了现有技术中在进行关联元素的查询时将与主键元素关联的元素逐个进行比对的效率较低的问题,提高了数据查询的效率。
[0113]
本发明实施例提供一种数据查询装置,用于执行上述数据查询方法。
[0114]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使数据查询设备执行上述任意方法实施例中的数据查询方法。
[0115]
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可
读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的数据查询方法。
[0116]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0117]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0118]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
[0119]
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0120]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1