用于处理数据库查询的计算机实现的方法和计算机系统的制作方法

文档序号:10534910阅读:583来源:国知局
用于处理数据库查询的计算机实现的方法和计算机系统的制作方法
【专利摘要】本发明涉及用于处理数据库查询的计算机实现的方法和计算机系统。更具体而言,涉及一种用于处理数据库中的查询的计算机实现的方法,该查询包括搜索值。数据库包括多个数据集,该数据集包括条目,其中距离统计数据被分配给该数据集。距离统计数据描述该多个数据集的数据集的条目的值与参考值之间的最小距离和最大距离。该方法包括确定搜索值和参考值之间的距离,所述确定产生搜索距离,从该多个数据集中确定对于其的搜索距离在由各自的距离统计数据描述的最小距离和最大距离所给出的限制内的数据集的子集,并且在数据集的该子集中搜索搜索值。
【专利说明】
用于处理数据库查询的计算机实现的方法和计算机系统
技术领域
[0001]本发明涉及数据库查询,并且更具体而言,涉及限制由数据库查询造成的读操作。
【背景技术】
[0002]现代数据仓库的挑战之一是每个数据库查询必须被处理的数据量。在用于每个查询的朴素方法中,对于单个查询表达式将必须搜索整个数据库。
[0003]为了限制资源消耗和对盘的输入/输出操作的量,在本领域中已知一种对包括在数据库中的数据引入低级别的统计数据的方法。在这种方法中,对非常小的数据块保持一些基本的统计数据。例如,对于每个数据块,确定特定列的条目的最小值和最大值。如果查询询问被确定为不在由该最小值和最大值给定的范围内的数据,则该数据块将根本就不从盘中被读取,因为在该数据子集中不会找到所搜索的数据。
[0004]但是,这种方法有限制,就是它对包括字符的表达式工作不高效,因为引入列的条目的最小值和最大值的方法对于排序数据库中的整数或浮点类型的条目工作得最好。

【发明内容】

[0005]本发明的目标是提供用于处理数据库中的查询的改进的计算机实现的方法、计算机程序产品和对应的控制系统,如在独立权利要求中所给出的。本发明的实施例在从属权利要求中给出。如果本发明的实施例不相互排斥,则它们可以彼此自由地组合。
[0006]在一方面,本发明涉及用于处理数据库中的查询的计算机实现的方法,其中该查询包括搜索值。数据库包括多个数据集并且该数据集包括条目,例如像整数值、字符值、字符串或任何其它类型的数据。数据集具有分配给其的距离统计数据。距离统计数据描述该多个数据集中的数据集的条目的值与参考值之间的最小距离和最大距离。
[0007]—旦包括搜索值的查询被接收,用于处理查询的方法就以确定搜索值与参考值之间的距离开始,其中所述确定产生搜索距离。一旦搜索距离已被确定,就从该多个数据集中确定对于其的搜索距离在由各自的距离统计数据描述的最小距离和最大距离给定的限制内的数据集的子集。然后,对搜索值的搜索只在数据集的所述子集中进行。
[0008]如这里所引入的,“距离”描述对两个表达式之间的相似性的测度。如后面将描述的,表达式之间的这种相似性可以以多种方式计算。一个简单的例子是汉明(Hamming)距离的计算,汉明距离代表两个表达式共同具有的位数。另外,在本公开内容的意义上,“距离”可以指两个数字之间的距离。在这种情况下,距离将是两个数字之间的数值差。
[0009]实施例可以具有这样的优点:通过所描述的一方面搜索值和参考值的相似性与另一方面参考值和数据集的内容的相似性的比较,可以实现最有可能包括被搜索的值的数据集的预选择。如果例如确定数据集与搜索值相比与参考值更不相似,则将不必从该数据集搜索搜索值,因为搜索值很不可能被包括在该数据集中。因此,在数据库中对搜索值的搜索可以被限定到减少数量的数据集,由此减少用于在数据库中找到搜索值的I/O操作次数和对应的计算工作量。[ΟΟ? O]在一些实施例中,参考值是多个参考值之一,其中距离统计数据包括对于每个参考值的最小距离和最大距离。在这种情况下,对每个参考值执行搜索距离的确定,从而产生搜索距离集合。然后,对该搜索距离集合中的每个搜索距离执行数据集的子集的确定。必须注意的是,根据本实施例,数据集的子集将只包括匹配搜索距离在由对于每个参考值的最小距离和最大距离给定的限制内的条件的数据集。因此,如果至少对于一个参考值该搜索距离不在数据集的最小距离和最大距离之间,则该数据集将不被包括在要搜索搜索值的数据集的子集中。
[0011]实施例可以具有这样的优点:通过引入多个参考值而不是单个参考值,从该多个数据集中对数据集的预选择的粒度可以提高。依赖于搜索值,会有可能单个参考值将产生搜索距离在由各自的距离统计数据的最小/最大距离给定的限制内的大量数据集。如果搜索值与参考值高度不相似,或者换句话说,如果搜索值与参考值之间的距离非常高,情况尤其如此。但是,搜索值到第二参考值的距离可能小得多,由此在确定第二参考值与数据库的数据集的相似性时产生更多的信息。因此,对数据集的子集的预选择可以通过引入越来越多的参考值来改进,因为随着参考值的数量增加,找到与搜索值非常相似的一个参考值的可能性也将增加。
[0012]在一些实施例中,该方法还包括从该多个搜索距离中确定最小搜索距离和相应的第一参考值。在这种情况下,从该多个数据集中确定数据集的子集只考虑对于第一参考值的最小距离和最大距离。
[0013]实施例可以具有这样的优点:通过确定最小搜索距离来确定与搜索值最相似的参考值,可以确定将为给定的搜索值提供关于数据集的内容的最有代表性的信息的距离统计数据集合。如果所确定的第一参考值与数据集的内容之间的相似性非常高,则搜索值和该数据集的内容之间的相似性也将非常高。
[0014]在一些实施例中,参考值的字符数小于或等于数据集的每个条目的最大字符数。例如,如果数据集没有条目的长度超过十个字符,则不应当选择使其长于十个字符的参考值。
[0015]实施例可以具有这样的优点:通过将参考值的字符数限制到条目的最大字符数,不会引入参考值与数据集的条目之间的不必要的不相似性。例如参考汉明距离,如果没有条目比十个字符长但参考值是例如13个字符长,则数据集的条目与参考值之间的不相似性将总是大于或等于3。
[0016]在一些实施例中,数据集和数据集的条目按字典顺序排序,其中参考值是完全相同的字符的序列。例如可以使用26个参考值,其中参考值是例如拉丁语字母表的十个完全相同的字母的序列。在这种情况下,例如包括数据库的前十个条目的数据集将比例如数据库的最后十个条目具有与包括全A的参考值的统计上更高的相似性,因为数据库的前面的条目或者至少其子集将以字母“Α”开始。因此,数据库条目的字符中的至少一个字符与参考值的字符相同。作为结果,如果参考值如前面所描述的那样被选择,则参考值将与指示条目的第一起始字符到条目的第二起始字符之间的过渡的索引类似地起作用。
[0017]在一些实施例中,参考值是任意的字符序列。
[0018]在又一实施例中,参考值的字符序列适应于被包括在数据集的条目中的值的字符序列。例如,如果数据库包括五个条目,这些条目以词“conf idence”、“contract”、“constitut1n”、“control”和“connect1n”开始,则选择也以字母“con”开始的参考值会是可行的。另一个例子将是包括全都以“WWW”开始的因特网地址的数据库。另一种使参考值适应于数据集的条目中所包括的值的可能性可以是确定某个字符在数据库的条目的某一位上的频率。然后,参考值可以被选择为使得它只包括被发现在条目的各个位上具有最高频率的那些字符。
[0019]在一些实施例中,参考值被选择为使得对于每个参考值,该参考值与其余参考值之间的距离等于或大于该参考值与具有相同字符数的表达式之间的最大可能距离。如果例如距离是通过比较两个表达式的各个位来确定的(Hamming距离),则包括八位的参考值应当离所有其它参考值至少具有距离8。
[0020]实施例可以具有这样的优点:通过选择不相似性最大的参考值,通过比较搜索值与参考值所获得的信息被最大化。例如,如果两个参考值非常相似,则搜索值与参考值的比较会对两个参考值都产生相同的距离。因此,与其中仅一个参考值被使用的情况相比,数据集的对应距离统计数据将不会带来任何附加的信息。因此,通过引入两个相似的参考值不会获得太多的信息。但是,如果参考值完全不相似,则与搜索值的比较将给出关于数据集的内容的更多信息。
[0021]在一些实施例中,包括在条目中的数据是字符(CHAR)和/或可变字符字段(VARCHAR)数据。
[0022]在一些实施例中,在条目的值或搜索值与参考值之间确定的距离是最小编辑距离。最小编辑距离反映从第一表达式到达第二表达式所需的编辑操作的最小数目。例如,为了从表达式“Stop”到达表达式“step”,只需要用字母“e”代替字母V’。因此,这两个表达式之间的最小编辑距尚将是I。
[0023]在一些实施例中,编辑距离是根据Levenshtein度量来确定的。从第一表达式到达第二表达式必须要执行的操作通常是字母的替换、字母的删除或字母的插入。根据Levenshte in度量,这些操作当中的每一个都具有被分配的成本值。通过对从第一表达式到达第二表达式所必需的所有操作的总成本进行计数,可以确定两个表达式之间的Levenshte in 距离。
[0024]实施例可以具有这样的优点=Levenshtein度量容易计算并且因此用于数据集的距离统计数据可以例如在用条目填充数据库时被计算,由此不会在确定对应的距离值时造成过多的开销。
[0025]在另一方面,本发明涉及用于确定用于数据集的距离统计数据的方法,该数据集包括条目。该方法包括定义至少一个参考值并且为每个条目确定该条目的值与参考值之间的距离。这种确定产生距离集合。从这个距离集合确定最小距离和最大距离。然后,所确定的最小距离和最大距离都作为距离统计数据被分配给数据集。
[0026]在还有另一方面,本发明涉及包括执行所述方法的方法步骤的计算机可执行指令的计算机程序产品。
[0027]如本领域技术人员将认识到的,本公开内容的各方面可以体现为系统、方法或计算机程序产品。因此,本公开内容的各方面可以采取可以在本文被统称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件方面和硬件方面的实施例的形式。此外,本公开内容的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有在其上体现的计算机可读程序代码。
[0028]可以使用一种或多种计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是,例如但不限于,电、磁、光、电磁、红外线或者半导体系统、装置或设备,或者以上所述的任何合适组合。计算机可读存储介质的更具体例子(非穷尽列表)将包括以下:具有一条或多条电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(R0M)、可擦式可编程只读存储器(EPR0M或者闪存存储器)、光纤、便携式压缩盘只读存储器(CDROM)、光学存储设备、磁性存储设备或者以上所述的任何合适组合。在本文的上下文中,计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或者与其联合使用的程序的任何有形介质。
[0029]计算机可读信号介质可以包括例如在基带中或者作为载波的一部分的传播数据信号,计算机可读程序代码被体现在该传播数据信号中。这种传播信号可以采取多种形式中的任何一种,包括但不限于电磁、光或者其任何合适的组合。计算机可读信号介质可以是非计算机可读存储介质并且可以传送、传播或运输由指令执行系统、装置或设备使用或者与其联合使用的程序的任何计算机可读介质。
[0030]体现在计算机可读介质上的程序代码可以利用任何适当的介质传输,该介质包括但不限于无线、有线线路、光纤电缆、RF等,或者前述这些的任何合适组合。
[0031]用于执行本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来写,该编程语言包括面向对象的编程语言,诸如Java、Smalltalk、C++等,及常规的过程化编程语言,诸如“C"编程语言或类似的编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全地在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任何类型的网络连接到用户计算机,该网络包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,利用因特网服务提供商来通过因特网连接)。
【附图说明】
[0032]在下面,仅仅作为例子参考附图更详细地解释本发明的实施例,其中:
[0033]图1绘出了描述计算两个表达式之间的距离的第一种可能性的图示。
[0034]图2绘出了描述计算两个表达式之间的距离的第二种可能性的图示。
[0035]图3绘出了数据库和对应的距离统计数据的例子。
[0036]图4绘出了用于确定数据集的子集的方法的流程图。
[0037]图5绘出了计算机系统的框图。
【具体实施方式】
[0038]图1是关于如何确定两个表达式之间的距离的例子。在这里绘出的例子中,有两对表达式:“INTENT1N” 和 “EXECUT1N” 作为第一对,以及 “EFFICIENT” 和 “INEFFICIENT” 作为第二对。在图1所绘出的第一个例子中,确定表达式“INTENT1N”与“EXE⑶ΤΙ0Ν”之间的汉明距离。
[0039]汉明距离描述两个表达式有多少位不同。如图la)中所示,两个表达式的前五位不相同。后四位,“T”、“I”、“O”和“N”对于两个表达式是相同的位。因此,表达式“INTENT1N”与?ΧΕ⑶ΤΙ0Ν”之间的汉明距离是五,因为对于这两个表达式有五位不相同。确定两个表达式之间的汉明距离可以是确定距离的容易方式,但是,两个表达式可能非常相似而两个表达式之间的汉明距离非常大。例如,如图1b)中所绘出的,第一个表达式是“EFFICIENT”并且第二个表达式是“INEFFICIENT”。由于两个表达式的公共部分“EFFICIENT”的各个字符被偏移了两个字母,因此两个表达式之间的汉明距离将是10,因为只有第六位“I”对两个表达式是相同的。因此,尽管两个表达式非常相似,但是汉明距离被确定为非常高。
[0040]用于确定两个表达式之间的距离的另一个例子在图2中绘出并且被称为最小编辑距离。最小编辑距离描述为了从第一个表达式到达第二个表达式必须要执行多少编辑步骤。就像在图1a)中,用于图2a)中的例子的两个表达式是“INTENT1N”和“EXECUT1N”。
[0041 ]在第一步,表达式“INTENT1N”的三个字母被其它字母替换。被替换的位是该表达式的第二、第三和第五位。字母的替换在本文中由“s”指示。在后续步骤中,该表达式的第一个字母被删除,如由“d”指示的。为了从这样找出的表达式到达表达式“ΕΧΕ⑶ΤΙ0Ν”,字母“C”必须插入在“Ε”和“U”之间,如由小“i”指示的。因此,需要五个编辑步骤来从表达式“INTENT1N”到达表达式“ΕΧΕ⑶TI ON”:三个字母替换、一个字母删除和一个字母插入。当然,可以有其它途径从第一个表达式到达第二个表达式,但是,如由名字“最小”编辑距离指示的,最小编辑距离总是对应于编辑步骤的最小次数。
[0042]如果在图2a)中绘出的例子中每个操作具有成本值I,则这将导致两个表达式之间为5的总距离。但是,还有可能向不同的操作分配其它成本值。例如,用另一个字母替换字母可以被分配成本值2。在这种情况下,表达式“INTENT1N”与“EXE⑶ΤΙ0Ν”之间的距离将是8。成本值向各个编辑操作的这种分配可以适应于数据库中条目的类型。
[0043 ] 回到之前提到的两个表达式“EFFICIENT”与“ I NEFFICIENT”的相似性的例子,“EFFICIENT”与“INEFFICIENT”之间的最小编辑距离将是2,因为只须插入两个字母来从“EFFICIENT”到达“INEFFICIENT”,如图2b)中所示。因此,与之前所描述的这两个表达式之间的汉明距离将是11相比,这两个表达式之间的距离将是2。因此,在定义使用哪种距离时要谨慎。
[0044]图1中所绘出的例子仅仅针对包括字母的表达式。但是,如果数据库包括例如数字(整数、浮点数、…),则两个数字之间的距离可以被定义为两个数字之间的数值差。但是,也有可能使用最小编辑距离来从一串数字到达另一串数字。
[0045]图3是包括20个条目的数据库100的例子。这20个条目是词escape、ahead、solo、stopwatch、slowdown、confidence、Cherokee、iron、company、earth、resistor、magnitude、wave、firearm、cement、contract、marker、distance、length 和mouse ο 这 20 个表达式被细分成四个数据集102、104、106和108,每个数据集包括五个表达式。分配给这些数据集的是距离统计数据110。在下文中,将讨论那些距离统计数据110的确定以及数据库查询的例子。
[0046]在图3中所绘出的例子中,两个参考值是10次字母“O”的序列作为参考值I(Ref1)以及10次字母“E”的序列作为参考值2(Ref2)。选择10位的参考值长度是看似有道理的,因为数据库中的最长条目,即“confidence”,也包括十位。
[0047]关注第一个数据集102,包括在第一个数据集102中的表达式到第一参考值(Ref1)的各个距离的确定在下文中描述。
[0048]第一个表达式“escape”没有与参考值Ref1共同的字母。如果距离被定义为两个表达式之间的最小编辑距离,其中每个编辑操作具有成本值I,则表达式“escape”与十个O的序列之间的距离是10。由于后续表达式“ahead”也没有与参考值共同的字母,因此对应的距离也是10。第一个数据集102的第三个表达式是“solo”。因为词“solo”与第一参考值如^有两个共同的字母,所以第三个数据库条目与第一参考值Ref1之间的距离是8。第一个数据集102的第四个条目“stopwatch”与Ref1只有一个共同的字母,因此距离是9。第一个数据集102的第五个条目“slowdown”与第一参考值有共同的两位,因此距离是8。
[0049]因此,对于第一个数据集102,条目离第一参考值的最小距离是8,其中第一个数据集102的条目离第一参考值的最大距离是10。这个信息存储在距离统计数据110中。
[0050]相应地进行用于其余数据集104、106和108的距离统计数据的确定。在图3中给出数据集离第一参考值的最小距离和最大距离的结果。对是10次字母“E”的第二参考值Ref2也进行距离值的相同确定。虽然第一个数据集102中的第一个表达式“escape”离第一参考值Ref i有距离10,但是表达式“escape”与第二参考值Ref 2之间的距离仅为8,因为表达式“escape”包括两个e。因此,对于第二参考值的距离统计数据与对于第一参考值的距离统计数据不同。
[0051]由于如前所述的距离统计数据的确定将不产生显著的计算工作量,因此可以例如在一旦数据库加载有条目时执行距离统计数据的确定。为此,参考值应当在用条目填充数据库之前或之后很短时间内被定义。
[0052]为了给出数据库查询的例子,例如可以接收对表达式“Cherokee”的查询。为了限制对图3中所绘出的数据库的读操作,第一步将是确定要搜索的表达式与参考值中的一个之间的搜索距离。例如,项“Cherokee”与第一参考值Ref1之间的距离是9。如可以从距离统计数据110看到的,每个数据集提供包括值9的距离范围。因此,如果第一参考值被用于选择数据集的子集,则对项“Cherokee”的搜索将必须在每个数据集中执行。
[0053]但是,如果利用第二参考值Ref2确定搜索距离,则确定项“Cherokee”离第二参考值Ref2具有距离7。如从图2中所绘出的表可以看到的,只有第二个数据集104提供包括距离7的距离范围。因此,根据本公开内容,对项“Cherokee”的搜索将只在第二数据集104中执行,因为距离统计数据指示项“Cherokee”将不会在数据集102、106和108中找到。因此,为了找到被包括在数据库查询中的搜索值,将只须搜索数据库的四分之一。
[0054]图4是示出用于处理数据库中的查询的方法的流程图。根据实施例,查询包括搜索值。在第一方法步骤200中,通过确定搜索值与参考值之间的距离确定搜索距离。
[0055]一旦在步骤200中确定了搜索距离,就在步骤202中访问第一数据集的距离统计数据。在步骤204中,确定搜索距离是否在由被包括在数据集的距离统计数据中的最小距离和最大距离给定的限制内。如果确定搜索距离不在由数据集的距离统计数据给定的限制内,则该数据集不添加到要搜索搜索值的数据集的子集并且因此对于搜索206来说被忽略。然后,方法回到步骤202并且访问用于另一数据集的距离统计数据。
[0056]但是,如果确定搜索距离实际上在由被包括在数据集的距离统计数据中的最小距离和最大距离给定的限制内,则在步骤208中该数据集被添加到数据集的子集。然后,对被包括在数据库中、要被搜索搜索值的每个数据集重复步骤202、204、206和208,其中步骤202、204、206和208的重复产生接下来被搜索搜索值的数据集的子集。
[0057]图5示出了系统300中形式为通用计算设备的计算机系统(或服务器)312。计算机系统312的部件可以包括但不限于,一个或多个处理器或处理单元316、存储器系统328、以及将包括存储器系统328的各种系统部件耦合到处理器316的总线318。
[0058]计算机系统312通常包括各种计算机系统可读介质。这种介质可以是可由计算机系统312访问的任何可用介质,并且包括易失性介质和非易失性介质,可移除介质和不可移除介质。
[0059]存储器系统328可以包括形式为易失性存储器的计算机系统可读介质,诸如随机存取存储器(RAM)和/或高速缓存存储器。存储器系统可以包括一个或多个活动的缓冲存储器设备。活动的缓冲设备可以包括多个存储器元件(例如,芯片)。活动的缓冲存储器设备可以包括形成的三维(“3D”)存储器设备的存储器层,其中芯片的各个列形成与处理单元316通信的保管库(vault)。活动的缓冲存储器设备可以包括可同时被多个处理元件访问的分区,其中分区可以是任何合适的存储器段,包括但不限于保管库。
[0060]处理单元316可以向存储器系统发出请求,从而利用动态数组数据结构和关联的元数据来实现应用。
[0061]计算机系统312还可以与以下设备通信:一个或多个外部设备314,诸如键盘、定点设备、显示器324等;使用户能够与计算机系统312交互的一个或多个设备;和/或使计算机系统312能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由(一个或多个)1/0接口 322发生。还有,计算机系统312可以经由网络适配器320与一个或多个网络通信,该一个或多个网络诸如局域网(LAN)、通用的广域网(WAN)和/或公共网络(例如,因特网)。如所绘出的,网络适配器320经由总线318与计算机系统/服务器312的其它部件通信。
[0062]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0063]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任何合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任何合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0064]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0065]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任何组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0066]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0067]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0068]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0069]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
【主权项】
1.一种用于处理数据库中的查询的计算机实现的方法,所述查询包括搜索值,所述数据库包括多个数据集,所述数据集包括条目,其中距离统计数据被分配给所述数据集,所述距离统计数据描述所述多个数据集中的数据集的条目的值与参考值之间的最小距离和最大距离,所述方法包括: 确定所述搜索值与所述参考值之间的距离,所述确定产生搜索距离; 从所述多个数据集中确定对于其的搜索距离在由各自的距离统计数据描述的最小距离和最大距离给定的限制内的数据集的子集;及 在数据集的所述子集中搜索所述搜索值。2.如权利要求1所述的计算机实现的方法,其中所述参考值是多个参考值之一,其中所述距离统计数据包括对于所述参考值中的每一个的最小距离和最大距离,其中所述搜索距离的确定是对所述参考值中的每一个执行的,从而产生搜索距离集合,其中数据集的所述子集的确定是对所述搜索距离集合中的每个搜索距离执行的。3.如权利要求2所述的计算机实现的方法,其中所述方法还包括从多个搜索距离中确定最小搜索距离和相应的第一参考值,其中在从所述多个数据集中确定数据集的所述子集时只考虑对于第一参考值的最小距离和最大距离。4.如权利要求1所述的计算机实现的方法,其中所述参考值的字符数小于或等于数据集的每个条目的最大字符数。5.如权利要求1所述的计算机实现的方法,其中数据集和数据集的条目按字典顺序排序,其中所述参考值是相同字符的序列。6.如权利要求1所述的计算机实现的方法,其中所述参考值是字符的任意序列。7.如权利要求1所述的计算机实现的方法,其中所述参考值的字符序列适应于被包括在数据集的条目中的值的字符序列。8.如权利要求1所述的计算机实现的方法,其中所述参考值被选择为使得对于每个参考值,该参考值与其余参考值之间的距离大于或等于该参考值与具有相同字符数的表达式之间的最大可能距离。9.如权利要求1所述的计算机实现的方法,其中被包括在条目中的数据是字符(CHAR)和/或可变字符字段(VARCHAR)数据。10.如权利要求1所述的计算机实现的方法,其中在条目的值或搜索值与参考值之间确定的距离是最小编辑距离。11.如权利要求10所述的计算机实现的方法,其中所述编辑距离是根据Levenshtein度量来确定的。12.如权利要求1所述的计算机实现的方法,还包括: 为多个条目定义至少一个参考值,从而确定所述多个条目中的条目的值与所述参考值之间的距离,所述确定产生距离集合,其中所述多个条目中的每个条目与数据集关联; 从所述距离集合确定最小距离和最大距离;及 向数据集分配所确定的最小距离和最大距离作为距离统计数据。13.—种用于处理数据库中的查询的计算机系统,所述查询包括搜索值,所述数据库包括多个数据集,所述数据集包括条目,其中距离统计数据被分配给所述数据集,距离统计数据描述所述多个数据集中的数据集的条目的值与参考值之间的最小距离和最大距离,所述计算机系统包括: 一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储设备,以及存储在所述一个或多个存储设备当中的至少一个上的程序指令,所述程序指令经由所述一个或多个存储器当中的至少一个由所述一个或多个处理器当中的至少一个执行,其中所述计算机系统能够执行包括以下步骤的方法: 确定所述搜索值与所述参考值之间的距离,所述确定产生搜索距离; 从所述多个数据集中确定对于其的搜索距离在由各自的距离统计数据描述的最小距离和最大距离给定的限制内的数据集的子集;及 在数据集的所述子集中搜索所述搜索值。14.如权利要求13所述的计算机系统,其中所述参考值是多个参考值之一,其中所述距离统计数据包括对于每个参考值的最小距离和最大距离,其中所述搜索距离的确定是对所述参考值中的每一个执行的,从而产生搜索距离集合,其中数据集的所述子集的确定是对所述搜索距离集合中的每个搜索距离执行的。15.如权利要求14所述的计算机系统,其中所述方法还包括从所述多个搜索距离中确定最小搜索距离和相应的第一参考值,其中在从所述多个数据集确定数据集的所述子集时只考虑对于第一参考值的最小距离和最大距离。16.如权利要求13所述的计算机系统,其中所述参考值的字符数小于或等于数据集的每个条目的最大字符数。
【文档编号】G06F17/30GK105893453SQ201610078349
【公开日】2016年8月24日
【申请日】2016年2月4日
【发明人】L·加扎, A·M·格鲁斯泽基, T·卡扎尔斯基, K·K·斯基布斯基, T·斯特兰多姆斯基
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1