从数据库提取信息的方法和设备的制作方法

文档序号:6579544阅读:251来源:国知局
专利名称:从数据库提取信息的方法和设备的制作方法
技术领域
本发明涉及从数据库提取信息的技术,尤其涉及与包括第 一主计算和第二主计算的 一 系列主计算有关的技术,其中第一
主计算对表示数据库的数据集运行第 一 选择项以产生第 一 结 果,并且第二主计算对该第一结果运行第二选择项以产生第二
结果。
背景技术
经常期望从数据库提取特定信息,并且具体地,汇总数据 库中的大量数据并以易懂的方式将汇总后的数据呈现给用户。 这种数据处理通常由计算机来执行,并且可能要求计算机的极 大的存储性能和处理能力。该数据处理可以旨在例如通过以数
据透视表或以2D和3D图表图形地可视化所选择的数据来创建 通常已知为多维立方体的大型数据结构,反过来用户可以访问 该数据结构从而研究该数据库的数据。根据美国申请7058621 已知用于创建这种多维立方体的高效算法的例子,在此通过引 用而包含该申请。
与对数据库中的数据运行的多数其它算法相同,该现有技 术算法涉及一系列主计算,其中, 一个主计算的结果被后续的 主计算用作输入数据。例如,在美国申请7058621的内容中,将 数据库中的数据记录读取至主存储器,因而用户可以选择一个
或多个变量,并且可选地选择各个这种变量的值或值的范围, 从而使该算法提取数据库中的数据记录的相应子集。所提取出 的子集形成了中间结果。然后,通过对所提取出的子集计算所 选择的数学函数的值来计算该多维立方体,其中,基于所选择
8的计算变量的集合进行数学函数的求值,并且由所选择的分类 变量的集合给出该立方体的维度。
尽管现有技术算法是高效的,然而特别地如果要分析大量 数据,则可能仍需要执行大量运算以创建该多维立方体。在这 种情况下,该算法可能对处理硬件设置不期望的高要求,并且/ 或者造成不期望的长的计算时间。

发明内容
本发明的目的是至少部分克服现有技术的上述限制中的一 个或多个限制。
通过根据独立权利要求的方法、计算机可读介质和设备至 少部分实现了将从以下说明得知的目的和其它目的,其中,由 从属权利要求限定本发明的实施例。
本发明的第 一 方面是 一 种计算机实现的方法,用于从数据 库提取信息,所述方法包括一系列主计算,所述一系列主计算 包括第一主计算和第二主计算,所述第一主计算对表示所述数 据库的数据集运行第 一 选择项以产生第 一 结果,并且所述第二 主计算对所述第一结果运行第二选择项以产生第二结果,所述
方法还包括通过以下步骤高速緩存所述第一结果和所述第二结
果计算步骤,用于计算作为至少所述第一选择项的函数的第 一选择标识符值,并且计算作为至少所述第二选择项和所述第 一结果的函数的第二选择标识符值;以及存储步骤,用于将所 述第一选择标识符值和所述第一结果以及所述第二选择标识符 值和所述第二结果分别作为关联对象存储在数据结构中。所提 取出的信息可以包括数据库中的数据的分组、排序或聚合。
因而,在根据第一方面的方法中,第一结果和第二结果被 高速緩存在计算机存储器中并且在所述方法的后续迭代中可重新使用,从而减少了执行用于提取信息的第一主计算和/或第二 主计算的需要。该重新使用可以包括在后续迭代期间计算第一 选择标识符值和/或第二选择标识符值,并且访问数据结构从而 可能检索到第 一结果和/或第二结果。
在一个实施例中,所述方法还包括使用步骤,所述使用步 骤用于使用所述数据结构以基于所述第一选择项和所述第二选
择项寻找所述第二结果,其中,所述使用步骤包括以下子步骤 (a)计算作为至少所述第 一 选择项的函数的所述第 一 选择标识 符值;(b)基于所述第 一 选择标识符值搜索所述数据结构的对象 以定位所述第一结果;(c)如果在子步骤(b)中找到了所述第一结 果,则计算作为所述第 一 结果和所述第二选择项的函数的所述 第二选择标识符值,并且基于所述第二选择标识符值搜索所述 数据结构的对象以定位所述第二结果;(d)如果在子步骤(b)中未 找到所述第一结果,则执行所述第一主计算以产生所述第一结 果,计算作为所述第 一 结果和所述第二选择项的函数的所述第
二选择标识符值,并且基于所述第二选择标识符值搜索所述数 据结构的对象以定位所述第二结果;以及(e)如果在子步骤(c) 或(d)中未找到所述第二结果,则执行所述第二主计算以产生所 述第二结果。
在一个实施例中,所述方法还包括计算作为所述第一结果 的函数的第一结果标识符值的步骤,其中,所述存储步骤还包 括以下步骤将所述第 一 选择标识符值和所述第 一 结果标识符 值作为关联对象存储在所述数据结构中;以及将所述第 一 结果 标识符值和所述第 一 结果作为关联对象存储在所述数据结构 中。
在一个实施例中,所述方法还包括使用步骤,所述使用步 骤用于使用所述数据结构以基于所述第 一选择项和所述第二选择项寻找所述第二结果,其中,所述使用步骤包括以下子步骤 (a)计算作为至少所述第 一 选择项的函数的所述第 一 选择标识 符值;(b)基于所述第 一 选择标识符值搜索所述数据结构的对象 以定位所述第一结果标识符值,并且基于所述第一结果标识符 值搜索所述数据结构的对象以定位所述第一结杲;(c)如果在子 步骤(b)中找到了所述第一结果,则计算作为所述第一结果和所 述第二选择项的函数的所述第二选择标识符值,并且基于所述 第二选择标识符值搜索所述数据结构的对象以定位所述第二结 果;(d)如果在子步骤(b)中未找到所述第一结果标识符值或所述 第一结果,则执行所述第一主计算以产生所述第一结果,计算 作为所述第一结果和所述第二选择项的函数的所述第二选择标 识符值,并且基于所述第二选择标识符值搜索所述数据结构的 对象以定位所述第二结果;以及(e)如果在子步骤(c)或(d)中未 找到所述第二结果,则执行所述第二主计算以产生所述第二结 果。
在一个实施例中,在计算所述第二选择标识符值时,由所 述第一结果标识符值来表示所述第一结果。
在一个实施例中,所述方法还包括使用步骤,所述使用步 骤用于使用所述数据结构以基于所述第一选择项和所述第二选 择项寻找所述第二结果,其中,所述使用步骤包括以下子步骤 (a)计算作为至少所述第 一选择项的函数的所述第一选择标识
符值;(b)基于所述第 一 选择标识符值搜索所述数据结构的对象 以定位所述第一结果标识符值;(c)如果在子步骤(b)中找到了所 述第 一 结果标识符值,则计算作为所述第 一 结果标识符值和所 述第二选择项的函数的所述第二选择标识符值,并且基于所述 第二选择标识符值搜索所述数据结构的对象以定位所述第二结 果;(d)如果在子步骤(b)中未找到所述第一结果标识符值,则执行所述第一主计算以产生所述第一结果,计算作为所述第一结 果的函数的所述第 一 结果标识符值,计算作为所述第 一 结果标 识符值和所述第二选择项的函数的所述第二选择标识符值,并 且基于所述第二选择标识符值搜索所述数据结构的对象以定位
所述第二结果;(e)如果在子步骤(c)中未找到所述第二结果,则 基于所述第 一 结果标识符值搜索所述数据结构的对象以定位所 述第一结果,并且执行所述第二主计算以产生所述第二结果; (f)如果在子步骤(e)中未找到所述第一结果,则执行所述第一主 计算以产生所述第 一 结果,并且执行所述第二主计算以产生所 述第二结果;以及(g)如果在子步骤(d)中未找到所述第二结果, 则执行所述第二主计算以产生所述第二结果。
在一个实施例中,所述方法还包括计算作为所述第二结果 的函数的所述第二结果标识符值的步骤,其中,所述存储步骤 还包括以下步骤将所述第二选择标识符值和所述第二结果标 识符值作为关联对象存储在所述数据结构中;以及将所述第二 结果标识符值和所述第二结果作为关联对象存储在所述数据结 构中。
在一个实施例中,各个标识符值在统计上是唯一的。 在一个实施例中,各个标识符值是通过哈希函数生成的数 字指紋。例如,所述数字指紋可以包括至少256位。
在一个实施例中,所述方法还包括选"^性删除步骤,所述 选择性删除步骤用于至少基于包含所述关联对象的数据记录的 大小,在所述数据结构中选择性地删除所述数据记录。所述选 择性删除步骤可以用于促进删除包含所述第 一结果的数据记 录。在一个这种实施例中,所述方法包括将各数据记录与权重 值相关联的步骤,其中,作为各数据记录的使用率参数、各数 据记录的计算时间参数和各数据记录的大小参数的函数而计算出所述权重值。可以通过计算由W^l^T/M给出的权重函数的值 来计算所述权重值,其中,U是所述使用率参数,T是所述计算 时间参数,并且M是所述大小参数。所述使用率参数的值在每 当访问数据记录时递增,同时作为时间的函数指数递减。所述 选择性删除步骤可以基于所述数据结构中的数据记录的所述权 重值。此外,所述选择性删除步骤可以基于所述数据结构的当 前大小和阈值之间的比4交而触发。
在一个实施例中,所述数据库是动态数据库,并且作为至 少所述第 一 选择项和所述数据集的函数而计算出所述第 一 选择 标识符值。
在一个实施例中,所述第一选择项定义所述数据集中的字 段和各个字段的条件的集合,所述第一结果表示所述数据集的 子集,所述第二选择项定义数学函数、所述第一结果中所包括 的一个或多个计算变量以及所述第一结果中所包括的一个或多 个分类变量,所述第二结果是多维立方体数据结构,所述多维 立方体数据结构包含针对各分类变量的每个唯一值对所述一个 或多个计算变量运行所述数学函数的结果。
本发明的第二方面是一种存储有计算机程序的计算机可读 介质,所述计算机程序用于在由计算机执行时执行根据第一方 面所述的方法。
本发明的第三方面是一种用于从数据库提取信息的设备, 所述设备包括用于执行一系列主计算的部件,所述一系列主计 算包括第一主计算和第二主计算,所述第一主计算对表示所述 数据库的数据集运行第 一 选择项以产生第 一 结果,并且所述第 二主计算对所述第 一 结果运行第二选择项以产生第二结果,所 述设备还包括通过以下操作来高速緩存所述第 一 结果和所述第 二结果的部件计算作为至少所述第 一 选择项的函数的第 一 选择标识符值,并且计算作为至少所述第二选择项和所述第 一 结
果的函数的第二选择标识符值;以及将所述第 一 选择标识符值
和所述第一结果以及所述第二选择标识符值和所述第二结果分
别作为关联对象存储在数据结构中。
第三方面的设备同样具有第一方面的方法的优点,并且可 以进一步包括与以上针对第 一方面所述的任意实施例相对应的
其它特征。
通过以下根据所附权利要求书和附图的详细说明,本发明 的其它目的、特征、方面和优点将变得明显。


现在将参考所附示意图更详细地说明本发明的实施例,其 中,使用相同的附图标记来标识相应的元件。
图l示出包括从数据库提取信息的一系列计算的处理,其 中,将标识符和结果选择性地存储在计算机存储器中并且从该 计算机存储器选择性地检索标识符和结果。
图2示出图1中的处理的一个实施例。
图3示出图1中的处理的另 一 实施例。
图4示出图1中的处理的又一实施例。
图5示出图1中的处理的又一实施例。
图6是图5中的处理的典型流程图。
图7是以具体背景实现的图5中的处理的概述。
图8是用于实现本发明实施例的基于计算机的环境的框图。
具体实施例方式
本发明涉及从数据库提取信息的技术。为了便于理解,首 先将针对一般例来说明一些基本原理。然后,将针对具体实现说明不同的方面、特征和优点。 一般例
图l示出用于从数据库DB提取信息的计算机实现的处理的 示例,其中可以将该信息存4诸在实现该处理的计算才几外部,也 可以不将该信息存储在实现该处理的计算机外部。提取处理包 括例如通过将原始数据集或范围R 0读取至计算机的主存储器 (例如,RAM)来从数据库DB提取该原始数据集RO。该原始数据 集R0可以包括数据库DB的全体内容或其子集。
图1的处理包括进行运算以基于原始数据集R 0生成最终结 果R2的主计算过程P1、 P2的序列。具体地,第一过程P1对原始 数据集RO进行运算以产生中间结果Rl,并且第二过程P2对该中 间结果进行运算以产生最终结果R2。
由第 一 选择项S1控制第 一 过程P1,该第 一 选择项S1可以从 用户输入产生,也可以不从用户输入产生。类似地,由第二选 择项S2控制第二过程P2 ,该第二选择项S2可以从用户输入产 生,也可以不乂人用户输入产生。各选择项S1、 S2可以包括变量 和/或数学函数的任意组合,其中数学函数分别定义了对各个过 程的输入数据即数据集R0和中间结果R1的细化。
图l还示出提取处理通过运行第 一过程P1和第二过程P2以 将数据项存储在存储器10中并从存储器10检索数据项而与计算 机存储器10(—般为RAM或高速緩沖存储器)进行交互。在所示 的例子中,第一过程P1运行,以存储并4佥索通常由ID表示的标 识符和中间结果Rl,并且第二过程P2运^",以存4诸并#全索通常 由ID表示的标识符、中间结果R1和最终结果R2。在下面,将标 识符和结果存储在计算机存储器10中的过程还被称为"高速緩 存"。
一般由过程P1、 P2作为其它标识符和/或选择项S1、 S2和/或结果R1、 R2等的一个或多个处理参数的函数来生成不同的标 识符。不同的函数不一定用于生成不同的识别符。用于生成标 识符的函数可以是生成相关处理参数的数字指紋的哈希算法 (hashing algorithm)。适当地配置该/这些函数,以使得参数值的 各唯一组合产生在针对处理内的全部不同的标识符所生成的全 部标识符值中唯一的标识符值。在上下文中,"唯一"不仅包括 理论上的唯一标识符值而且包括统计上的唯一标识符值。这种 函数的 一 个非限制性的例子是生成至少2 5 6位的数字指紋的哈 希算法。
在图2中进一步所示的一个实施例中,第一过程P1用于计 算作为第 一 选择项Sl的函数的第 一 选择标识符值ID1 ,即 IDl=f(Sl),并且第二过程P2用于计算作为第二选择项S2和中间 结果R1的函数的第二选择标识符值ID3,即ID3二f(S2,Rl)。第一 过程P1还用于将ID1和中间结果R1作为关联对象存储在计算机 存储器中的数据结构12中,并且第二过程P2用于将ID3和R2作 为关联对象存储在数据结构12中。因而,计算机存储器10中的 数据结构12用于存储不同种类的对象集合,即不同类型的对象。
本实施例使得能够通过减少执行用于分别计算中间结果 R1和最终结果R2的主计算过程P1、 P2的必要性,减少提取处理 的应答时间并且/或者减少实现该提取处理的计算机的处理要 求。例如,该提取处理可被配置为只要有可能就使用数据结构 12,以基于第一选择项S1和第二选择项S2来寻找最终结果R2。 因而,当处理发现需要计算最终结果R2时,基于S1和S2,它可 以生成IDl二f(Sl),并基于ID1访问数据结构12。如果以前在第 一过程P1中使用过同 一第 一选择项S1,则所生成的ID1的值可 能在数据结构12中找到,并与相应的中间结果R1相关联。因而, 代替利用过程P 1进行计算,可以从数据结构12中检索中间结果
16Rl。如果在数据结构12中未找到中间结果R1,则处理可以使第 一过程P1计算中间结果R1。此外,在获得了中间结果R1之后, 处理可以生成ID3二f(Rl,S2),并基于ID3访问数据结构12。而且, 如果以前利用过程P2执行过相同的运算,则所生成的ID3的值 可能在数据结构12中找到,并与相应的最终结果R2相关联。由 此,代替利用过程P2进行计算,可以从数据结构12中检索最终 结果R2。
在图3中进一步所示一个实施例中,第一过程P1还用于计 算作为中间结果R1的函数的第 一 结果标识符值ID 2 。第 一 过程 Pl还用于将ID1和ID2作为关联对象存储在数据结构12中,并将 ID2和中间结果R1作为关联对象存储在数据结构12中。
即使两个或更多个第一选择项S1产生相同的中间结果R1, 由于仅将各中间结果R1存储在数据结构12中l次,因此本实施 例使得能够减小处理所需要的计算机存储器的大小。当中间结 果R1大时本实施例尤其适合,其中在对来自数据库的信息进行 处理时经常是这种情况。
第 一 结果标识符值ID 2的该计算还使得能够执行图4所示 的又一实施例,其中,在计算第二选择标识符值ID3时,由第 一结果标识符值ID2来表示中间结果R1,即ID3=f(ID2,S2)。
由于可以才艮据基于ID2而不是中间结果R1所生成的ID3从 数据结构12检索最终结果R2,因此本实施例导致将中间结果R1 存储在数据结构12中的需要减少。这使得即使已从数据结构12 清除了中间结果Rl,也能够高效地计算最终结果R2。例如,该 处理可被配置为只要有可能就使用数据结构12 ,以基于第 一 选 择项S1和第二选择项S2寻找最终结果R2。因而,当处理发现需 要计算最终结果R2时,基于S1和S2,如果以前在第一过程P1 中使用过同一第一选择项S1,则可以生成IDl二f(Sl),并基于ID1访问数据结构12乂人而一佥索与ID1相关耳关的ID2。然后,如果以前 第二过程P 2对同 一 中间结果R1和同 一 第二选择项S 2进行过运 算,则处理可以生成ID3^f(ID2,S2),并基于ID3访问数据结构 12从而检索与ID3相关联的最终结果R2。在该例子中,即使已 经删除了中间结果Rl,也可以从数据结构12中检索最终结果 R2。
在图5所示的一个实施例中,第二过程P2还用于计算作为 最终结果R2的函数的第二结果标识符值ID4。第二过程P2还用 于将ID3和ID4作为关联对象存储在数据结构12中,并将ID4和 最终结果R 2作为关联对象存储在数据结构12中。
即使两个或更多个第二选择项S2产生相同的最终结果R2, 由于仅将各最终结果R2存储在数据结构12中l次,因此本实施 例使得能够减小处理所需要的计算机存储器的大小。当最终结 果R2大时,本实施例尤其适合。
迄今为止,假定数据库DB以及数据集RO是静态的。如果该 数据库是动态的,则可以适当地生成作为第 一 选择项S1和数据 集R0的函数的第一选择标识符ID1,即IDl二f(Sl,RO)。利用这种 变形,针对图1 5所述的全部实施例等同地可应用于动态数据 库,即随时可能变化的数据库。
图6是示出用于对动态数据库运行的图5中的实施例的一个 典型实现的流程图。处理以输入数据集R0(步骤600)、第一选择 项S1(步骤602)和第二选择项S2(步骤604)而开始。然后,作为 S1和R0的函数生成第一选择标识符ID1的值(步骤606)。基于ID1 在数据结构中进行查找(步骤608)。如果在该数据结构中找到了 ID1的值,即在先前迭代中已高速緩存了ID1的值,则处理检索 与ID1的值相关联的第 一结果标识符ID2的值(步骤610),并且进 入步骤612。如果在步骤6 0 8中在数据结构中未找到ID1的值,则处理通 过对RO运行SH吏第 一过程P1计算R1(步骤614)。然后,作为R1 的函数生成ID2的值(步骤616),并且将ID1、 ID2和R1的值以关 联对ID1:ID2和ID2:R1存储在数据结构中(步骤618)。然后,处 理进入步骤612。
在步骤612中,作为S2和ID2的函数生成第二选择标识符 ID3的值。然后,基于ID3在数据结构中进行查找(步骤620)。如 果在数据结构中找到了ID3的值,即在先前迭代中已高速緩存 了 ID 3的值,则处理检索与ID 3的值相关联的第二结果标识符 ID4的值(步骤622)。基于ID4在数据结构中进行进一步的查找 (步骤624)。如果在数据结构中找到了ID4的值,即在先前迭代 中已高速緩存了ID4的值,则处理检索与ID4的值相关联的最终 结果R2(步骤626)。
如果在步骤620中在数据结构中未找到ID3的值,则基于在 步骤610或步骤616中确定出的ID2的值在数据结构中进行进一 步的查找(步骤628)。如果在数据结构中找到了ID2的值,即在 先前迭代中已高速緩存了ID2的值,则处理检索与ID2的值相关 联的中间结果R1(步骤630)。然后,处理通过对R1运行S2使第 二过程P2计算R2(步骤632)。为了更新该数据结构,该处理还生 成作为R2的函数的ID4的值(步骤634),并将ID3、 ID4和R2的值 以关联对ID3:ID4和ID4:R2存储在数据结构中(步骤636)。
如果在步骤628中在数据结构中未找到ID2的值,则处理通 过对R0运行S1使第 一过程P1计算R1(步骤638),并将ID2和R1 的值以关联对ID2:R1存储在数据结构中(步骤640)。然后,处理 进入步骤632。然而,应当认识到,如果在步骤614中已计算出 了中间结果R1,则不必进行步骤628、 630、 638和640。在这种 情况下,如果在步骤620中未找到ID3,则处理可以直接进入步骤632,在步骤632中,通过对R1运行S2使第二过程P2计算R2。 如果在步骤624中在数据结构中未找到ID 4的值,则处理通 过对R1运行S24吏第二过程P2计算R2(步骤642)。为了更新该数 据结构,处理还生成作为R2的函数的ID4的值(步骤644),并将 ID4和R2的值以关联对ID4:R2存储在数据结构中(步骤646)。
技术人员容易理解,尽管图2 4中的实施例使用了标识符 的不同组合,但产生了相应的存储和检索处理。为了表现简洁, 在流程图中没有示出这些处理,而仅将这些处理作为前述概要 部分中的典型实施例而给出。
可以理解,可以使用线性或非线性的任何数据结构12来存 储标识符和结果。然而,为了处理速度,可以优选使用排序列 表、哈希表或AVL树等的二值树等具有高效索引系统的数据结 构12。
具体实施例、实现和示例
在以下,将更详细地说明和举例示出本发明的实施例。
在本发明的实施例中,在针对新数据和新计算的后续请求 的处理中使用了先前的计算和结果。为此,提取处理被设计成 在处理数据请求期间对结果进行高速緩存。当处理后续请求时, 该提取处理判断是否已生成并高速緩存了适当的先前结果。如 果是,则在处理后续请求时使用先前的结果。由于不需要重新 生成先前的计算,因此可以显著减少后续请求的处理时间。
在本发明的实施例中,数字标识符(数字指紋)用于识别高 速緩存的信息,并且以这种方式,在与先前计算相比以不同的 方式得到时,也可以重新使用高速緩存的结果。
在本发明的实施例中,将数字标识符自身存储在高速緩沖 存储器中。具体地,将计算过程的输入的标识符连同该计算过 程的输出的标识符一起存储。因而,当已从高速緩冲存储器清除了所需要的复杂中间结果时,也可以得到多级运算的最终结 果。仅需要中间结果的数字标识符。
在本发明的实施例中,通过可以存储表、数据子集、数组 和数字标识符等不同种类的对象的数据结构来实现该高速緩冲 存储器。
因而,本发明的实施例可以用于最小化或至少减少用户的 应答时间,其中该用户4吏用最近由同一或其它用户已扭^亍的查 询来查询数据存储。
本发明的实施例还可以用于在两个查询或计算恰好产生相 同的结果的情况下,通过针对几个不同的查询或计算重新使用 相同高速緩存条目,来最小化或至少减少高速緩冲存储器的存 储器使用。
本发明的实施例可应用于从关系型数据库、后关系型数据 库、面向对象数据库和分级数据库等任意类型的已知数据库提 取任意类型的信息。还可以将因特网看作为在本发明的情况下 的数据库。
图7公开了作为包括数据库查询的提取处理或信息搜索的 本发明的具体实施例,其中基于查询结果执行后续的图表计算。
表示为"图表结果(Chart Result)"的图表计算的结果一般是例如 以如在背景技术部分中说明的多维立方体的形式按一 维、二维 或多维而聚合、排序或分组的数据。
在第一步骤中,定义信息搜索的范围(Scope)。在数据库查
以及它们是如何连接的来定义该范围。对于因特网搜索,该范 围可以是通常还以 一 个或多个表的形式组织的所找到的网页的 索引。因而,第一步骤的输出是数据集(参见图1 6中的R0)。 在第二步骤中,用户在数据集中进行选择,从而使推理机(Inference Engine)计算数据集上的多个过滤器的值。该推理机可以是例如数据库引擎、查询工具或商务智能工具。例如,在对保持放置定单的数据的数据库进行查询时,该查询可以要求定单年份是"2007"并且产品组是"乳制品"。因而,可以由所包括的字段的列表以及针对各个字段所选择的值或者,更广泛地说,条件的列表来唯一地定义该选择。
基于该选择(参见图1~6中的S1),推理机执行计算过程(参见图1 6中的P1),以生成表示范围(参见图1 6中的RO)的一部分的数据子集(参见图1 6中的R1)。因而,该数据子集可以包含来自该范围的一组相关数据记录,或者对这些相关数据记录的参考(例如,索引、指针或二值编号)的列表。在以上例子中,相关数据记录将仅是与年份"2007"和产品组"乳制品"有关的数据记录。
如果以前从未进行选择,则运行图7中的推理机以计算数据子集。然而,如果以前进行过计算,则作为替代,运行推理机以通过访问特定的数据结构"高速緩冲存储器"而重新使用先前的结果。
下一步骤经常是基于数据子集进行例如聚合和/或排序和/或分组等的进一步计算。在图7的例子中,通过基于数据子集和所选择的图表属性的集合(参见图1 6中的S2)计算图表结果的图表引擎来进行后续计算。由此,图表引擎执行图表计算过程(参见图1~6中的P2)以生成图表结果(参见图1 6中的R2)。如果以前从未进行这些计算,则运行图7中的图表引擎以生成图表结果。然而,如果以前进行过这些计算,则作为替代,运行图表引擎以通过访问前述高速緩冲存储器来重新使用先前的结果。然后,可以以数据透4见表或以2D和3D图表图形地对用户可一见化该图表结果。
22图7还示出使用高速緩冲存储器的处理,其中f表示运行以
生成数字标识符的哈希算法,ID1 ID4表示由此生成的数字标识符,并且实线箭头表示用于生成标识符ID1 ID4的数据流。此外在图7中,虚线箭头表示高速緩沖存储器查找。
在图7中,当用户进行新的选择时,推理机计算数据子集。此外,基于范围和选择中的过滤器生成选择和范围的标识符ID1。随后,基于数据子集定义, 一般为定义数据子集的内容的位序列,生成该数据子集的标识符ID2。最终,使用ID1作为查找标识符将ID2置于高速緩冲存储器中。同样,使用ID2作为查找标识符将数据子集定义置于高速緩冲存储器中。
在图7中,图表计算以类似的方式发生。这里,存在两个信息集数据子集和相关图表属性。后者一般是但不限于数学函数、计算变量以及分类变量(维度)。这两个信息集均用于计算图表结果,并且这两个信息集还用于生成向图表计算的输入的标识符ID3。在前述步骤中已生成了ID2,并且作为图表计算过程中的第一步骤,生成ID3。
根据ID 2和相关图表属性形成标识符ID 3 。可以将ID 3看作
包括计算具体图表结果所需要的全部信息的具体图表生成实例的标识符。另外,根据图表结果定义, 一般为定义图表结果的位序列,创建图表结果标识符ID4。最终,使用ID3作为查找标识符将ID4置于高速緩沖存储器中。同样,使用ID4作为查找标识符将图表结果定义置于高速緩沖存储器中。
在该具体例子中,在推理过程和图表计算过程两者中进行了结果的两级高速緩存。在该推理过程中,ID1和ID2分别表示不同的事物选择和数据子集定义。如果两个不同的选择产生相同的数据子集(这是极有可能的),则两级高速緩存(ID1:ID2;ID2:数据子集)使得仅对数据子集高速緩存 一 次。在以下将此表
23示为对象叠合(Object Folding),即高速缓冲存储器中的几个数据对象共享同一高速緩冲存储器条目。类似地,在图表计算过程中,ID3和ID4分别表示不同的事物图表生成实例和图表结果定义。如果两个不同的图表生成实例产生相同的图表结果(这是极有可能的),则两级高速緩存(ID3:ID4; ID4:图表结果)使得仅对该图表结果高速緩存一次。
此外,通过高速緩存ID3,如果已从高速緩沖存储器清除该数据子集定义,则也可以重新创建图表结果。由于数据子集定义可以非常大因而如果实现了高速緩沖存储器清除机制则该数据子集定义趋于被从高速緩冲存储器清除,这是适当的优势。以下将进一 步说明这种机制的非限制性例子。
在提取处理期间,如图7中的虚线箭头所示,根据选择、相关图表属性等计算出标识符,并且这些标识符用于查找可能高速緩存的计算结果。如果找到标识符,则将重新使用相应的高速缓存的结果。如果没有找到,则提取处理将生成新的标识符,并且与各自的结果一起对它们进行高速緩存。
为了进一步举例说明提取处理,考虑定单年份"2007"和产品组"乳制品,,的上述选择。第 一 步骤是生成作为该选择的函数的数字标识符ID1 (例如,以十六进制计数法编写的)
为了简洁,在以下例子中由每个标识符的最初的4个字符来表示各标识符。因此,作为替代,IDl变为"31dc"。此外,为了清楚,以下的图解表在lt字标识符之前包括标识符标记,例如"ID1:"。在实际方案中,这是不需要的。
后续的提取处理如下当已生成ID1时,在高速緩冲存储器中查找该ID1。第一次进行选择时,在高速緩冲存储器中将不会找到该标识符,因此必须以普通方式计算由此得到的数据子集。一旦进行了该操作,则可以根据该数据子集生成ID2为
例如"d2b8"。然后,高速緩存IDl,指向ID2;并且高速緩存ID2,指向定义由此得到的数据子集的位序列。该位序列在大小可能相当大。以下在表l中示出了高速緩冲存储器的内容。
表l:
ID高速緩存的值
IDl:31dcID2:d2b8
ID2:d2b8<由此得到的数据子集中的数据记录>
下次进行相同的选择时,处理将不同现在在高速緩沖存储器中找到了IDl,指向"ID2:d2b8",反过来该"ID2:d2b8,,用于第二次查找,从而代替耗时间的计算,寻找、取出并使用由此得到的数据子集的位序列。
现在者虑进行了不同的选择但是产生了相同的由此得到的数据子集的情况。例如,可能发生用户准确地选择了在未明确要求"奶制品"的情况下已购买了 "奶制品,,的客户以及除了 "奶制品"以外什么也没买的客户。现在将ID 1生成为例如"f 142",并且在高速緩沖存储器中将未找到ID1。因而,必须以普通方式计算由此得到的数据子集。 一旦进行了该操作,则可以从数据子集生成ID2,并且该ID2是已存储在高速缓冲存储器中的"d2b8,,。因此,该算法仅需要向高速緩冲存储器添加一个条目,即"IDl:fl42,,指向"ID2:d2b8,,的一个条目。以下在表2中示出了高速緩冲存储器的内容。表2:_
ID 高速緩存的值
IDl:fl42 ID2:d2b8 IDl:31dc ID2:d2b8 ID2:d2b8 <由此得到的数据子集中的数据记录>
此时没有节省计算时间,但是重新使用了高速緩存条目以 防止高速緩冲存储器不必要地增长。现在,"IDl:fl42"和 "IDl:31dc"两者都指向包含相同的由此得到的数据集 "ID2:d2b8,,的高速緩存条目,并且可以在稍后的查找中使用这 两者。因而,这是前述"对象叠合"的例子。
当进行后续的图表计算时,高速緩存数字标识符的又一优 点将变得清楚。因此,假定已经进行了上述选择,并且已经进 行了后续的图表计算。已经分别将ID3和ID4生成为"e40A"和 "7505",并将它们存储在高速緩冲存储器中。以下在表3中示出 了高速緩冲存储器的内容。
表3: _
ID 高速緩存的值
IDl:fl42 ID2:d2b8
IDl:31dc ID2:d2b8
ID2:d2b8 <由此得到的数据子集中的数据记录>
ID3:e40A ID4:7505
ID4:7505 <表示图表结果的数字的矩阵〉
26在表3中的5个条目中,一个条目极有可能比全部其它的条
目大得多包含定义了可能大的数据子集的全体位序列的 "ID2:d2b8"。如以下将进一步说明,当维护高速緩存时/如果维 护高速缓存,则其大小使得"ID2:d2b8"成为要被清除的候选。 因此,稍后高速緩冲存储器的内容可能如以下的表4所示。
_
ID 高速緩存的值
IDl:fl42 ID2:d2b8
IDl:31dc ID2:d2b8
ID3:e40A ID4:7505
ID4:7505 <表示图表结果的数字的矩阵>
然而,由于对数字标识符进行了高速緩存,因此仍可以在
无需重新计算中间数据子集的情况下获得图表结果。替代地, 当进行选择时,计算ID1。接着,在高速緩冲存储器中进行对ID1 的查找,结果检索到了ID2。随后,根据相关图表属性和ID2的 组合生成了ID3。在高速緩冲存储器中进行对ID3的查找,并且 检索到了ID4。最终,在高速緩沖存储器中进行对ID4的查找, 并且再生图表结果。因此,在无需任何大量计算的情况下,仅 基于可以通过快速且高效处理的操作所生成的数字标识符,找 到了图表结果。
根据以上可以理解,数字标识符应当是唯一的,以使得高 速緩冲存储器中各个标识符的含义是明确的。在 一 个实施例中, 使用哈希算法或函数生成数字标识符。哈希算法是接受任意大 小的输入(消息)并返回被称为哈希值(消息摘要)的固定大小的串的变换。该算法一般切断并混合,例如替换或调换该输入以 创建其数字指紋。最简单和最古老的哈希算法是通过质数运算 的简要模块。哈希算法用于包括加密技术的各种计算目的。一 般而言,哈希算法应当在仍实际为确定性的同时通过以等同的 "可能性"生成任意可能的固定大小的串,尽可能地表现为随机 函数。
存在几种已知的并且经常使用的可以用于生成上述数字标
识符的哈希算法。不同的哈希算法针对不同的目的是最优的, 其中一些哈希算法针对高效且快速地计算哈希值的目的是最优
的,而另 一些哈希算法设计用于高加密安全性的目的。具有高 加密安全性的算法被设计成使得难以在合理的时间内计算出与 给定的哈希值相匹配的消息,并且难以找到生成与第 一 给定消
息相同的哈希值的消息的第二消息。这种哈希算法包括S H A (安 全哈希算法)和MD5 (Message-Digest algorithm 5, 消息摘要算 法5)。高效处理的哈希算法一般展现了较低的加密安全性。这 种哈希算法包括被设计成在通常维持非常低的沖突率(collision
偏移基开始,该偏移基原则上可以是任意随机串的值,但传统 上 一 般总是为贯穿原始的FNV-0算法的以十六进制码的发明者 签名。为了生成256位FNV哈希值,通常使用以下的偏移基
对于向哈希算法的输入中的各字节,首先将偏移乘以大的 质数,然后与来自输入的字节相比较,并最终计算出按位对称 差(XOR),以形成下一循环的哈希值。在7>开文献中可以找到 适当的质数。任意大的质数都可以,但其中一些比另一些更加 抗冲突。
28可以使用合理地抗沖突的任何哈希算法来生成数字标识 符。在一个实施例中,使用具有高抗冲突性和低加密安全性的 快速哈希算法来生成标识符。
在一个具体实施例中,可以通过连结各自使用不同的质数
乘数而生成的4个6 4位F N V哈希来创建2 5 6位标识符。通过使用4 个较短的哈希并连结这些哈希,可以更快速地生成标识符。为 了进一步加速标识符的生成,可以对算法进行修改,从而不在 每次循环时仅使用输入的 一 个字节,而是替代地使用4个字节。 这可能导致加密安全性的丢失,但抗冲突性保持大致相同。
长度为至少256位的标识符可以产生有益的抗冲突性。256 位哈希值表示存在约1E+77个可能的标识符值。可以将该数量 与已估计为lE+80的宇宙中的原子的数量进行比较。这意味着 冲突的风险,即两个不同的选择/数据子集/图表属性/图表结果 产生相同的标识符的风险不仅非常小,而且可忽略的。因此, 我们可以确定地说沖突的风险小到可以接受。这意味着,尽管 哈希算法理论上未生成唯一标识符,然而统计上生成了唯一标 识符。然而,可以理解,对于特定用途,64^立或128位等的位长 度较短的标识符可以在统计上充分唯一 。
如上所述,可以实现清除机制以清除高速緩沖存储器中的 旧的或未使用的条目。 一个策略可以是消除高速緩冲存储器中 的低使用率的条目。然而,可以实现更高级的清除机制以支持 处理器使用率和存储器使用率这两者的最优化。这种高级清除 机制的一个实施例对使用率、计算时间和存储器需求这三个参 数进行运算。
使用率参数是可以考虑是否"最近但不经常"访问条目和是 否"经常但最近没有,,访问条目两者的数值。可以通过将各个条 目与使用率参数U相关联来实现该操作,其中该使用率参数U
29在每次访问该条目时增加例如一个单位,^旦是该-使用率参ftu 的值随着时间的过去以指数方式或者按照任何其它函数减小。 在一个实现中,周期性地将高速緩冲存储器中的U的所有值减 少固定量。因而,与放射性衰变类似,使用率参数具有半衰期。 现在U的值将反映已访问了该条目多少次以及在多近的时间访 问了该条目。
如果计算条目所需要的处理器时间相当长,则在高速緩冲 存储器中应当将该条目保持较久。相反,如果计算所需要的处 理器时间短,则重新计算的成本小,并且将该条目保持在高速 緩沖存储器中的好处也小。因而,将各个条目与表示所估计出
的计算时间的时间参数T相关联。
如果存储条目所需要的存储器空间相当大,则需要大量的 高速緩冲存储器资源以保持该条目,并且与需要较少的存储器 空间的条目相比较,应当更快将该条目从高速緩冲存储器清除。 相反,需要小的存储器空间的条目可以在高速缓冲存储器中保 持较长时间。因此,将各个条目与表示所估计出的存储器需求 的存储器参数M相关联。
对于高速緩冲存储器中的各个条目,通过由W二U-T/M 给出的权重函数W来评价U、 T和M参数的值。
对于条目的W的大的值表示存在好的理由将该条目保持在 高速緩沖存储器中。因而,应当将具有大的W值的条目保持在 高速緩沖存储器中,并且应该清除具有小的W值的条目。
高效的清除机制可以包括根据W值对高速緩冲存储器进行 排序,并从一端即具有最小W值的条目开始清除排序后的高速 緩冲存储器。保持排序后的高速緩沖存储器的一个可能的但非 必需的方法是将标识符、结果和U、 T、 M和W值作为AVL (Adelson- Velsky和Landis)树即自平衡二值搜索树而存储。清除机制可以间歇地清除W值落在预定阈值以下的全部的 条目。
可选地,可以由计算机上可用存储器的量或可用存储器相 对总存储器的比来控制清除机制。因而,每当高速緩冲存储器 的大小达到存储器阈值时,清除机制基于各自的W值从高速緩 冲存储器条目去除条目。通过设置存储器阈值,可以使高速援 冲存储器大小适合本地硬件状况,例如,用处理能力换取存储 器。例如,可以通过为计算机添加更多的主存储器并增加存储 器阈值来补偿计算机中的较低的处理器。由此,更多的结果将 被保留在高速緩冲存储器中,并且将减少处理的需求。
本发明的实施例还涉及用于进行前述的算法、方法、处理 和过程中任一个的设备。可以针对所需要的目的专门构造该设 备,或者该设备可以包括由计算机中所存储的计算机程序选择 性地启动或重新配置的通用计算机。
图8是用于实现本发明实施例中的任意实施例的基于计算 机的环境的框图。用户l与包括处理器3的数据处理系统2交互, 其中处理器3执行操作系统软件以及实现本发明实施例的 一 个 或多个应用程序。用户通过使用鼠标、键盘和触摸垫等的一个 或多个众所周知的输入装置4向数据处理系统2输入信息。可选 地,可以通过卡读取器、光学读取器或其它计算机系统等的其 它类型的输入装置在需要或无需用户干涉的情况下输入信息。 可以通过在显示器5上显示字符、图形符号、窗口和按钮等向用 户给出视觉反馈。数据处理系统进一步包括前述存储器IO。由
并且从存储器10检索适当的信息。存储器10 —般包括主存储器 (RAM、高速緩冲存储器等)和非易失性从存储器(硬盘、闪速存 储器和可移除介质)。可以将数据库存储在数据处理系统的存储器10中,或者可以经由数据处理系统2中的通信接口 6在外部存
储装置上访问该数据库。
参考一些实施例已经在上面主要说明了本发明。然而,如 本领域的技术人员容易理解,在仅由所附的专利权利要求书定 义和限定的本发明的范围和精神内,除以上公开的实施例以外 的其它实施例也是可以的。
例如,本发明不仅可应用于计算多维立方体,而且还可用 于使用 一 系列计算从数据库提取信息的任意情况。
此外,创造性的提取处理可应用于包括多于两个的连续计 算的一系列计算。例如,与前面所述的中间结果类似,可以高 速緩存该一 系列计算中的两个或更多个中间结果中的每一个中 间结果,并且随后进行检索。
此外,创造性的提取处理无需高速緩存和随后检索最终结 果,但替代地可以运行以在一 系列计算中仅高速緩存并检索一 个或多个中间结果。
此外,应当注意,可以省略从数据库揭:耳又初始数据集或范 围的初始步骤,并且替代地可以对数据库直接运行该提取处理。 相关申请交叉引用
本申请要求2008年7月18日提交的瑞典专利申请0801708-9 以及2008年7月18日提交的美国临时申请61/081,761的优先权, 在此通过引用包含其全部内容。
权利要求
1.一种计算机实现的方法,用于从数据库提取信息,所述方法包括一系列主计算,所述一系列主计算包括第一主计算(P1)和第二主计算(P2),所述第一主计算(P1)对表示所述数据库的数据集(R0)运行第一选择项(S1)以产生第一结果(R1),并且所述第二主计算(P2)对所述第一结果(R1)运行第二选择项(S2)以产生第二结果(R2),所述方法还包括通过以下步骤高速缓存所述第一结果(R1)和所述第二结果(R2)计算步骤,用于计算作为至少所述第一选择项(S1)的函数的第一选择标识符值(ID1),并且计算作为至少所述第二选择项(S2)和所述第一结果(R1)的函数的第二选择标识符值(ID3);以及存储步骤,用于将所述第一选择标识符值(ID1)和所述第一结果(R1)以及所述第二选择标识符值(ID3)和所述第二结果(R2)分别作为关联对象存储在数据结构中。
2. 根据权利要求l所述的方法,其特征在于,还包括使用 步骤,所述使用步骤用于使用所述数据结构以基于所述第一选 择项(S1)和所述第二选择项(S2)寻找所述第二结果(R2),其中,所述使用步骤包括以下子步骤(a) 计算作为至少所述第 一 选择项(S1)的函数的所述第 一 选 择标识符值(ID1);(b) 基于所述第 一 选择标识符值(ID1)搜索所述数据结构的对象以定位所述第 一 结果(R1);(c) 如果在子步骤(b)中找到了所述第一结果(R1),则计算作 为所述第 一 结果(R1)和所述第二选择项(S2)的函数的所述第二 选择标识符值(ID3),并且基于所述第二选择标识符值(ID3)搜索 所述数据结构的对象以定位所述第二结果(R2);(d) 如果在子步骤(b)中未找到所述第一结果(R1),则执行所述第一主计算(P1)以产生所述第一结果(R1),计算作为所述第一结果(Rl)和所述第二选择项(S2)的函数的所述第二选择标识 符值(ID3),并且基于所述第二选择标识符值(ID3)搜索所述数据 结构的对象以定位所述第二结果(R2);以及(e)如果在子步骤(c)或(d)中未找到所述第二结果(R2),则执 行所述第二主计算(P2)以产生所述第二结果(R2)。
3. 根据权利要求l所述的方法,其特征在于,还包括计算 作为所述第 一结果(R1)的函数的第 一结果标识符值(ID2)的步 骤,其中,所述存储步骤还包括以下步骤将所述第一选择标 识符值(ID 1)和所述第 一 结果标识符值(ID2)作为关联对象存储 在所述数据结构中;以及将所述第 一 结果标识符值(ID 2)和所述 第 一 结果(R1)作为关联对象存储在所述数据结构中。
4. 根据权利要求3所述的方法,其特征在于,还包括使用 步骤,所述使用步骤用于使用所述数据结构以基于所述第一选 择项(S1)和所述第二选择项(S2)寻找所述第二结果(R2),其中, 所述使用步骤包括以下子步骤(a) 计算作为至少所述第 一选择项(S1)的函数的所述第 一选 择标识符值(ID1);(b) 基于所述第 一 选择标识符值(ID1)搜索所述数据结构的 对象以定位所述第 一 结果标识符值(ID 2),并且基于所述第 一 结 果标识符值(ID2)搜索所述数据结构的对象以定位所述第 一 结果(Rl);(c) 如果在子步骤(b)中找到了所述第一结果(R1),则计算作 为所述第 一 结果(R1)和所述第二选择项(S 2)的函数的所述第二 选择标识符值(ID3),并且基于所述第二选择标识符值(ID3)搜索 所述数据结构的对象以定位所述第二结果(R 2);(d) 如果在子步骤(b)中未找到所述第 一 结果标识符值(ID2)或所述第 一结果(R1),则执行所述第一主计算(P1)以产生所述第一结果(R1),计算作为所述第一结果(R1)和所述第二选择项 (S2)的函数的所述第二选择标识符值(ID3),并且基于所述第二 选择标识符值(ID 3)搜索所述数据结构的对象以定位所述第二 结果(R2);以及(e)如果在子步骤(c)或(d)中未找到所述第二结果(R2),则执 行所述第二主计算(P2)以产生所述第二结果(R2)。
5. 根据权利要求3所述的方法,其特征在于,在计算所述 第二选择标识符值(ID3)时,由所述第 一 结果标识符值(ID2)来表 示所述第一结果(R1)。
6. 根据权利要求5所述的方法,其特征在于,还包括使用 步骤,所述使用步骤用于使用所述数据结构以基于所述第一选 择项(S1)和所述第二选择项(S2)寻找所述第二结果(R2),其中, 所述使用步骤包括以下子步骤(a) 计算作为至少所述第 一选择项(S1)的函数的所述第一选 择标识符值(ID1);(b) 基于所述第 一 选择标识符值(ID 1)搜索所述数据结构的 对象以定位所述第 一 结果标识符值(ID 2);(c) 如果在子步骤(b)中找到了所述第 一 结果标识符值 (ID2),则计算作为所述第 一 结果标识符值(ID2)和所述第二选择 项(S2)的函数的所述第二选择标识符值(ID3),并且基于所述第 二选择标识符值(ID 3)搜索所述数据结构的对象以定位所述第 二结果(R2);(d) 如果在子步骤(b)中未找到所述第 一 结果标识符值 (ID2),则执行所述第 一 主计算(P 1)以产生所述第 一 结果(R 1), 计算作为所述第 一结果(R1)的函数的所述第 一结果标识符值 (ID2),计算作为所述第 一 结果标识符值(ID2)和所述第二选择项(S2)的函数的所述第二选择标识符值(ID3),并且基于所述第二 选择标识符值(ID 3)搜索所述数据结构的对象以定位所述第二 结果(R2);(e) 如果在子步骤(c)中未找到所述第二结果(R2),则基于所 述第 一 结果标识符值(ID2)搜索所述数据结构的对象以定位所 述第 一结果(R1),并且执行所述第二主计算(P2)以产生所述第 二结果(R2);(f) 如果在子步骤(e)中未找到所述第 一 结果(R1),则执行所 述第一主计算(P1)以产生所述第一结果(R1),并且执行所述第 二主计算(P2)以产生所述第二结果(R2);以及(g) 如果在子步骤(d)中未找到所述第二结果(R2),则执行所 述第二主计算(P2)以产生所述第二结果(R2)。
7. 根据权利要求l、 3或5所述的方法,其特征在于,还包 括计算作为所述第二结果(R 2)的函数的所述第二结果标识符值 (ID4)的步骤,其中,所述存储步骤还包括以下步骤将所述第 二选择标识符值(ID3)和所述第二结果标识符值(ID4)作为关联 对象存储在所述数据结构中;以及将所述第二结果标识符值 (ID4)和所述第二结果(R2)作为关联对象存储在所述数据结构中。
8. 根据前述任一权利要求所述的方法,其特征在于,各个 标识符值在统计上是唯 一 的。
9. 根据前述任一权利要求所述的方法,其特征在于,各个 标识符值是由哈希函数生成的数字指紋。
10. 根据权利要求9所述的方法,其特征在于,所述数字指 紋包括至少256位。
11. 根据前述任一权利要求所述的方法,其特征在于,还 包括选择性删除步骤,所述选择性删除步骤用于至少基于包含所述关联对象的数据记录的大小,在所述数据结构中选择性地 删除所述数据记录。
12. 根据权利要求ll所述的方法,其特征在于,所述选择 性删除步骤用于促进删除包含所述第一结果(R1)的数据记录。
13. 根据权利要求11或12所述的方法,其特征在于,还包 括将各数据记录与权重值相关联的步骤,其中,作为各数据记 录的使用率参数、各数据记录的计算时间参数和各数据记录的 大小参数的函数而计算出所述权重值。
14. 根据权利要求13所述的方法,其特征在于,通过计算 由W二IPT/M给出的权重函数的值来计算所述一又重值,其中,U 是所述使用率参数,T是所述计算时间参数,并且M是所述大小 参数。
15. 根据权利要求13或14所述的方法,其特征在于,所述 使用率参数的值在每当访问数据记录时递增,同时作为时间的 函数指数递减。
16. 根据—又利要求13 15中任一项所述的方法,其特征在 于,所述选择性删除步骤基于所述数据结构中的数据记录的所 述权重值。
17. 根据权利要求11 16中任一项所述的方法,其特征在于, 所述选择性删除步骤基于所述数据结构的当前大小和阈值之间 的比4交而触发。
18. 根据前述任一权利要求所述的方法,其特征在于,所 述数据库是动态数据库,并且作为至少所述第 一 选择项(S1)和 所述数据集(R0)的函数而计算出所述第一选择标识符值(ID1)。
19. 根据前述任一权利要求所述的方法,其特征在于,所 述信息包括所述数据库中的数据的分组、排序或聚合。
20. 根据前述任一权利要求所述的方法,其特征在于,所述第 一选择项(S1)定义所述数据集(R0)中的字^:和各个字段的 条件的集合,所述第 一结果(R1)表示所述数据集(R0)的子集, 所述第二选择项(S 2)定义数学函数、所述第 一 结果(R1)中所包 括的一个或多个计算变量以及所述第一结果(R1)中所包括的一 个或多个分类变量,所述第二结果(R2)是多维立方体数据结构, 所述多维立方体数据结构包含针对各分类变量的每个唯一值对 所述一个或多个计算变量运行所述数学函数的结果。
21. —种存储有计算机程序的计算机可读介质,所述计算 机程序用于在由计算机执行时执行根据权利要求1 20中任一 项所述的方法。
22. —种用于从数据库提取信息的设备,所述设备包括用 于执行一系列主计算的部件,所述一系列主计算包括第一主计 算(P1)和第二主计算(P2),所述第一主计算(P1)对表示所述数据 库的数据集(RO)运行第 一选择项(S1)以产生第 一结果(R1),并且 所述第二主计算(P2)对所述第 一结果(R1)运行第二选择项(S2) 以产生第二结果(R 2),所述设备还包括通过以下操作来高速緩 存所述第 一 结果(R1)和所述第二结果(R2)的部件计算作为至少所述第 一选择项(Sl)的函数的第 一选择标识 符值(ID1),并且计算作为至少所述第二选择项(S2)和所述第一 结果(R1)的函数的第二选择标识符值(ID3);以及将所述第 一 选择标识符值(ID1)和所述第 一 结果(Rl)以及 所述第二选择标识符值(ID 3)和所述第二结果(R2)分别作为关 联对象存储在数据结构中。
全文摘要
本发明涉及一种从数据库提取信息的方法和设备。使用计算机实现的方法从数据库提取信息,该方法包括一系列主计算,在该一系列主计算中,第一主计算对数据集运行第一选择项以产生第一结果,第二主计算对第一结果运行第二选择项以产生第二结果。将第一结果和第二结果高速缓存在计算机存储器中以在方法的后续迭代中重新使用,由此减少执行用于提取信息的第一主计算和/或第二主计算的需要。该高速缓存过程包括计算作为至少第一选择项的函数的第一选择标识符值,并且计算作为至少第二选择项和第一结果的函数的第二选择标识符值;以及将第一选择标识符值和第一结果以及第二选择标识符值和第二结果分别作为关联对象存储在数据结构中。
文档编号G06F17/30GK101635001SQ20091016132
公开日2010年1月27日 申请日期2009年7月20日 优先权日2008年7月18日
发明者哈坎·沃尔格 申请人:QlikTech国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1