聚集查询处理的制作方法

文档序号:6477172阅读:131来源:国知局

专利名称::聚集查询处理的制作方法
技术领域
:本发明主要地涉及数据在线分析处理领域。具体而言,本发明涉及针对在数据库中表现有不同形式的动态发现的实体而无需为实体的属性明确解析正确值的聚集查询。
背景技术
:现代企业情报日常大量利用从数据仓库中存储的数据库获得的客户和交易数据。通常可以通过向一个或者多个关联关系数据库提出分析查询来获得这样的企业情报。分析查询的执行可能需要如下数据处理,该数据处理涉及到大量表格化计算、时序分析和取回各种聚集数据。这些数据通常组织成列和行或者元组的表,其中许多表包括多个元组和多个列。这样的数据处理一般称为在线分析处理(OLAP)并且可以包括设计成访问和处理用于由企业据分析员J吏用的原始数据的软件。企业情报因此需要集成诸多不同来源。来自不同来源的比如客户、供应商和产品这样的维度信息经常重叠并且在不同系统中表现有不同形式。即使企业内的运营系统通常也是孤立的而无数据完整性。将相异数据来源汇集在一起的企业购置或者合并和合伙以及内部应用数据与比如可以由零售商和联合数据馈送生成的外部数据一起越来越多的使用可能使该情形更为严重。实体发现是确定多个实例是否实际上为相同实体(比如客户、供应商或者产品)的过程。这样的过程可以自动化并且通常通过检查和组合实体属性之间的相似性来工作。例如,考虑两个客户实例<约翰,辛普森,555-123-4568,圣何塞〉和<约翰,辛普森,555-123-4567,旧金山〉。名字、姓氏和电话之间的高度相似性可以是两个客户为一个实体的标志。实体解析是为实体的属性确定正确值的过程。对于上例,正确值可以是<约翰,辛普森,555-123-4567,旧金山〉。通常,实体解析在数据仓库上静态地进行并且颇为耗时。然而,这样的方式很少正确。可能需要附加校正,因为更多实例变得可用致使静态解析过时。相同实体在不同系统中表现有不同属性值这一现象称为"数据不一致",而对应数据库称为"未解析的数据库"。如果未正确地对待数据不一致,则它可能对企业情报应用具有有害影响。对未解析的数据库直接进行聚集通常生成错误结果。为了说明现有技术,参考表1和表2,这些表提供了具有从两个不同运营系统集成的销售数据的销售活动例子。客户数据运营系统姓名客户ID城市州1约翰旧金山力口州2约翰尼c2圣何塞力口州1杰克c3旧金山力口州1威廉姆c4旧金山力口州2比尔c5圣何塞力口州表1在表1中,客户ID标记d、C3和C4标识的客户(即实例)可以源于第一运营系统,而客户ID标记C2和Cs标识的客户可以源于第二运营系统。在表2中给出了与表1中列举的客户对应的交易数据<table>tableseeoriginaldocumentpage7</column></row><table>可以进行一个分析查询以例如确定对查询"疾减^"和/z/为、邀-夕^奢^和,^^、?"的答复。对于表1和表2中呈现的数据,未解析的聚集结果可以由表3给出<table>tableseeoriginaldocumentpage7</column></row><table>表3本领域技术人员可以理解特定客户在不同数据来源中在不同形式之下出现是很普遍的。实体发现过程可以用来提供比如图4中所示这样的实体映射实体映射<table>tableseeoriginaldocumentpage7</column></row><table>表4通过考察可见来自第一数据来源的客户Q很可能与来自第二数据来源的客户C2是相同的客户。因而,实体ID标记ei可以用来指代客户Q和C2。类似地,来自第一数据来源的客户Q很可能与来自第二数据来源的客户Cs是相同的客户。实体ID标记e3可以用来指代客户C4和Cs。在现有技术中,通过为这样的实体选择正确维度数据,仓库管理员可以使用这一信息来人工解析数据。<table>tableseeoriginaldocumentpage8</column></row><table>从这样的实体发现和解析过程获得的并且根据现有技术进行的表3和表4的解析聚集例子可以提供表6中给出的结果<table>tableseeoriginaldocumentpage8</column></row><table>可以理解如客户的实例的实际维度信息可能未知。虽然可以应用不同技术以便识别相同或者等效客户,但是将"正确"维度信息(例如地址、年龄、收入范围)分配给对应实体这一问题是动态任务。也就是说,随着更多数据变得可用,实体发现和解析持续改变,从而解析的聚集结果改变。因而,表6中的结果很可能不正确,因为产生该结果的常规过程无法考虑将不同实例的身份建立为相同客户这一步骤。数据的不一致可能在比如时间、位置、客户年龄和收入范围这样的域的更高分级水平消失。例如,在表5和表6中可见针对州加州的聚集结果正确,因为在针对给定客户数据的州水平的不一致在州水平消失。根据上文清楚的是需要一种对不一致数据进行聚集的有原则和正确的方式。
发明内容本发明包括一种用于在预先存在的数据库中进行聚集的方法,该方法包括从预先存在的数据库搜集数据库信息,该数据库信息包括不一致维度表和事实表;对不一致维度表和事实表运行实体发现过程以产生实体映射表;在查询时间使用实体映射表以提供不一致维度表的所有可能解析;针对所有可能解析高效地进行聚集;并且为包括sum、count、min和max的聚集函数返回具有上界和下界的严格范围。本发明也包括一种用于变换数据仓库中的数据的装置,该装置包括用于存储数据的数据存储设备;与计算机通信的计算机程序,该计算机程序用于实现包括以下步骤的方法使用用于维度表的实体映射表以生成具有实体列表的辅助表,该辅助表还具有用于实体列表的分级状态和概率条目;针对所有可能解析进行聚集并且针对聚集函数的结果返回严格范围以及均值和方差。现在将参照以下附图仅作为例子描述具体实施例方式图1是根据本发明一个实施例的使用基于实体的企业情报查询过程从数据仓库导出的查询结果的图解图示;图2是对如可以用图1的数据仓库实现的根据本发明一个实施例的基于实体的企业情报查询过程进行描述的流程图;并且图3是图2的基于实体的企业情报查询过程中所用解析数据库的图示。具体实施例方式以下具体描述是对实现本发明的目前设想的最佳实施方式的描述。该描述不应理解为有限制意义而是仅用于举例说明本发明的主要原理这一目的,因为本发明的范围最好由所附权利要求限定。根据本发明的一个实施例,基于实体的企业情报(EBI)查询过程的创新方法作用在于将不一致数据加载到数据仓库中、执行实体发现过程并且在查询时间动态地使用可能的实体解析而不是使用确切、传送和加载(FTL)脚本来静态地解析实体。这一方式避免大量初始ETL处理并且与递增仓库维护更好地匹配。EBI查询过程提供用于对未解析的数据库进行聚集的基本框架并且针对所有核心聚集函数利用用于按组查询和向上钻取/向下钻取查询的独特算法。现有技术(1)没有解决在利用一些根本OLAP操作如向上钻取的查询之下未解析数据库的聚集并且(2)缺乏用于对这样的未解析数据库进行的OLAP查询的有原则的语义所必需的一些概念,比如"无保证的"答案这一观念。对照而言,公开的EBI方法作用在于增强在线分析处理(OLAP)模型以在查询结果中并入维度数据的不一致。具体而言,EBI方法作用在于进行向上钻取操作并且为单个聚集提供答案,其中该答案不是单个数字、而是可能值的紧密范围、不确定性状态指示符以及——在某些条件之下——均值和方差。公开的EBI方法提供(1)实体解析的初始步骤;(2)在用于可能未出现于一致数据库中的答案的语义中对"无保证的"观念的使用;(3)对于OLAP应用而言根本的向上钻取操作的计算;以及(4)对中间结果的具体化。此外,当已经完成实体解析并且对不一致数据直接运行查询时产生"有保证的答案"。在图1中示出了标量数据仓库10,该仓库包括以一致维度表11、13和不一致维度表15为例的多个数据表以及以事实表17为例的多个事实表。所示配置可以在操作系统如OS/2、WindowsTM和Unix的控制之下使用一个或者多个计算机程序来实施并且可以实施于单个计算机上、多个计算机上或者计算机网络中。借助标准编程和工程设计方法以产生对应软件、固件和/或硬件产品,本领域技术人员可以利用本说明书将图1的配置实施为过程、机器或者制造产品。具体而言,所示配置可以有形地实施于制造产品如计算机可读介质、数据存储设备和/或数据通信设备中。10可以经由EBI查询过程20来应用查询21,该过程20访问凝:据仓库10以从千净维度表11和13、不一致维度表15以及事实表17获取数据。其目的在于提供可以由EBI查询过程20返回的查询结果23的集合。假设一致维度表11和13无需解析。与一致维度表11和13不同,不一致维度表15是未解析的数据表并且可能需要解析(比如以上表1的客户数据为例)以产生解析的数据表。事实表17可以包括比如以上表2中的交易事实数据为例的数据。如现有4支术中理解的那样,EBI查询过程20可以包括乂人存储器、数据存储设备和/或数据通信设备加载到在操作系统的控制之下的计算机设备(未示出)的计算机软件。可以参照图2中的流程图30描述本发明的EBI查询过程20。在步骤31从数据仓库10获得一致维度表11和13、不一致维度表15以及事实表17。在步骤33可以对事实表17和不一致维度表15进行实体发现过程以产生实体映射表49。举例而言,对表1中的客户数据和表2中的交易事实数据进行的实体发现过程可以产生表4中列举的实体映射数据。表1的客户数据的客户标识符(即客户ID)列可以利用对于各现实的实体而言有恰好一个元组集这样的方式分割成集合。各集合可以包括表4的实体映射之一。表4包括两个属性一个属性用于这里称为"实体标识符"(即实体ID)的集合标识符,而另一属性用于这里称为"实例标识符"的从不一致的表获得的标识符。本领域技术人员可以理解可以经由解析函数将实体标识符解析成对应实例标识符并且经由映射表将实例标识符映射成实体标识符。对于表4中的实体映射,d元组和C2元组(包括第一集合组)均对应于相同实体e!,C3元组对应于实体e2(包括第二集合组),而Q元组和Cs元组(包括第三集合组)均对应于相同实体e3。这里称为"对应数据库的映射"的从各组选择正确元组的过程产生解析的维度表。根据本方法,考虑解析数据库的所有可能方式,因为预先未知哪个元组是正确元组。可以通过应用将各实体关联到恰好一个实例的解析函数来获得解析的维度表。因而,在步骤35可以从实体映射表49产生两个或者更多解析函数。解析函数可以定义如下。令M为实体映射表。令五W为Af中的实体标识符集合,而令//rf为M中的实例标识符集合。在如下情况下,则认为/是用于7lf的解析函数如果/是从五W到/W的总函数,从而如果/(e):/,则M将e映射成/。可以参照表l的客户数据和表4的实体映射来描述生成解析函数的过程,据此可以导出以下四个解析函数力、/2、/3和/4:,/;^)=a;,/;"、)=c3;她》《4(,)/*2(ei)=C;/2(%)-C3;/2(e3)=C"5(2)/;如,户C2;_/;(e2)=C'3;/3(e;)=C4(3)^(A^C:2;/:《e2.)=C3;/4《e3'》=C5W概括而言,对于表4的实体映射,所有可能解析函数用客户C3的数据解析实体e2。可以用客户C1或者C2的数据解析实体e,,并且可以用客户C4或者C5的数据解析实体e3。可以通过取得各实体ei并且保留与解析函数选择的实例对应的属性来解析不一致维度表,比如表l的客户数据。令D为数据仓库,而M为用于D的不一致维度表的实体映射表。令/为用于M的解析函数。令及为D的不一致维度表。如果及,是通过以下操作从及获得的表,则认为及,是用于(及,/)的解析表(i)去除其实例标识符不在解析函数/的映像中的元组;并且(ii)用实体标识符&V/取代各元组的实例标识符/,Vf,使得(五iV/,力W)在M"中。在一个示例实施例中,数据仓库包含至多一个不一致维度表以便保证产生完整答案并且不错过答案。如本领域中理解的那样,如果完成实体解析并且对不一致数据库直接运行查询,则结果应用于可以具有多个不一致维度表的数据库。例如参见Fuxman等人的论文"EfficientManagementofInconsistentDatabases",其中查询类限于合取查询的恰当子集。公开的EBI方法提供(1)实体解析的初始步骤;(2)在用于可能未出现于每个可能的一致数据库中的答案的语义中对"无保12证"观念的使用;(3)对于OLAP应用而言才艮本的向上钻取才乘作的计算;(4)对中间结果的具体化;以及(5)用于处理所有合取查询的手段。因而,如果已经完成实体解析并且已经对不一致数据直接运行查询,则在Fuxman等人的论文中呈现的技术和本发明的EBI方法为"有保证的,,答案返回相同结果。应当理解在Fuxman等人的论文中呈现的技术不适用于"无保证的"答案而实际上适用于具有任何数目的不一致的表的数据库。例如,可以如在步骤37中那样使用上述(1)中的函数力来解析不一致维度表15,比如包括客户数据的表1以用实体标识符取代身份标识符以获得表7A的解析的客户数据<table>tableseeoriginaldocumentpage13</column></row><table>表7A类似地,在步骤37中可以使用上述(2)中的函数/2来解析表1的客户数据以获得表7B的解析的客户数据<table>tableseeoriginaldocumentpage13</column></row><table>表7B类似地,在步骤37中可以使用上述(3)中的函数/3来解析表1的客户数据以获得表7C的解析的客户数据解析的客户数据-"3<table>tableseeoriginaldocumentpage14</column></row><table>表7C并且最后在步骤37中可以使用上述(4)中的函数/4来解析表1的客户数据以获得表7D的解析的客户数据解析的客户数据<table>tableseeoriginaldocumentpage14</column></row><table>表7D针对所有可能解析具有相同信息的实体(比如总是表现加州旧金山的'e2,)表示为"一致"实体。其余实体表示为"不一致"实体。本领域技术人员可以理解,虽然假设表2中的交易事实数据是干净的,但是该数据可以包括未解析的实例标识符、也就是指向不一致维度表实例标识符的外来关键字。在表2的交易事实数据中,交易Trl和Tr2分别对应于不同实例d和C2。然而,实例d和C2根据表4的实体映射均对应于相同实体e,。在一个例子实施例中,用实体e!取代实例d和C2。以表8中的数据为例,在表2的交易事实数据中解析的事实数据交易ID客户ID销售额Trl61$20Tr2Ci$50Tr3C2$30Tr4C3$90Tr563$40表8令D为数据仓库,而Af为用于D的不一致维度表的实体映射表。如果ir是通过以下操作从及获得的表,则认为/r是用于(D,f)的解析的交易数据表用实体标识符£W取代各元组的实例标识符/iW,使得(五iV/,//</)在M中。在步骤39可以产生解析的数据库40,该数据库包括来自数据仓库10的一致维度表11-13、解析的维度表43(包括在表7A-7D的解析的客户数据中发现的数据)和比如在表8的解析的事实数据中发现的解析的事实数据表45。具体而言,令D为数据仓库,而M为用于D的不一致维度表的实体映射表。令f为用于M的解析函数。然后,如果D包括以下各项,则D是用于(D,f)的解析的数据库a.用于(D,f)的至少一个解析的事实表;并且b.用于D的每个不一致维度表R的至少一个解析的维度表(Rf);以及c.D的多个一致维度表。本发明的EBI查询过程20可以考虑以下形式的OLAP查询Selw;tG,议欲fe,asEwhereWgroupbyG其中C是用于分组的属性集(例如<城市,州>),而"gg)是具有函数"gg的聚集表达式。EBI查询过程20也可以考虑SQL的MIN、MAX、SUM和COUNT运算符,但是为了简化示例,仅考虑一个聚集表达式。查询过程结果可以扩展到具有多个聚集表达式的查询。'select,分句可以将聚集表达式改名为属性E。希望强调如下查询,其中group-by从句中的所有属性出现在select从句中。如本领域技术人员可以理解的那样,SQL查询一般可以具有在group-by从句中但未出现在select从句中的一些属性,但是反之未必成立。在用于查询应答的语义的定义中,可以针对在对查询的答案中的各G值提供范围。为聚集表达式给出的范围具有以下性质。首先,范围是"正确"的,因为该聚集的值落在用于各解析的数据库的范围内。第二,范围是"紧密"的,因为存在至少一个如下解析的数据库,其中该聚集的值等于下界,并且也存在至少一个如下解析的数据库,其中该聚集的值等于上界。正式而言,具有解析认知的查询答案可以定义如下令2)为数据库,而M为用于D的不一致的表的实体映射表。令《为查询。将对解析的数据库/),进行的查询《的结果表示为《(A0。令E为对《的聚集表达式进行改名的属性。具有解析认知的查询答案[a,b]满足对于每个解析的数据库Z),a^g(D)^b,并且对于一些解析的数据库Z)a,=a,并且对于一些解析的数据库/>6,《(/>6)=b。如果对于(",M)存在至少一个解析的数据库/使得^^q(/),则分组(比如<旧金山,力。州〉)在对(Z),M)的《的具有解析认知的答案中。注意如果分组,/G7出现在从每个解析的数据库获得的结果中,则将分组表示为"有保证的分组"。否则,将分组表示为"无保证的分组"。这些术语可以更明确地定义如下令D为数据仓库,而令M为用于Z)的不一致表的映射表。令《为查询,而(?为分组属性集。然后,对于用于(Z),M)的每个解析的数据库Z),如果^7eq(:",则分组^C/是对(/),M)的《的有保i正分组。对于用于(Z),M)的一些解析的数据库/>,如果^eqf巧,则分组^C/是对(Z),M)的《的无保证分组。为了说明本发明的EBI查询过程20,如在步骤41中那样可以16对解析的数据库40运行以下查询《7。selectcfty^stat.e+min(amount)Frommstomef,transactionwherecustomer,cid=traasactioii,cidgroupbycity,state将^应用于表7A-7D中的各解析的客户数据的结果是以下解析的查询表9A-9D:用于"7的解析的查询结果城市州销售额旧金山力口州$20表9A用于"2的解析的查询结果城市州销售额旧金山加;Hl$20圣何塞加外|$40表9B用于Z)3的解析的查询结果城市州销售额圣何塞力口步卄$20旧金山加州$30表9C用于/^的解析的查询结果城市州销售额圣何塞力口州$20旧金山力口州$30表9D可以从上述解析的查询表9A-9D获得用于《/的具有解析认知的答案。分组<旧金山,加州〉是"有保证"的分组,因为它出现在每个解析的数据库中。用于min(金额)的下界是$20,因为这是从解析的数据库A和Z)2获得的结果。上界是如在2)3和/)4中获得的$30。17分组<圣何塞,力口州〉是"不保证的"分组,因为它未出现在z^中。用于圣何塞的下界是$20(来自2)3和/)4),而上界是$40(来自Z>2)。在本方法中,概念上为上述例子考虑所有可能解析,并且可以执行根据EBI查询过程的group-by查询以产生表10中所示结果EBI聚集结果<table>tableseeoriginaldocumentpage18</column></row><table>表10表10表明用于<旧金山,加州〉的查询结果严格地在$20与$30之间。针对所有解析在<旧金山,加州>中总是有至少一个客户,并且结果状态如上文说明的那样为有保证的。然而,用于圣何塞分组的无保证状态意味着有至少一个如下解析,其中在<圣何塞,加州〉中无客户并且聚集结果可以无定义。然而,对于所有其它<圣何塞,加州〉解析,查询结果严格地落在在$20与$40之间。如果并且只有对于分组有一致条目,则该特定分组才有保证。在本例中,实体e2对于表7A-7D中的所有解析的客户数据而言总是在<旧金山,加州〉中。在以下段落中,将其中分组的所有参与条目为不一致的情况表示为"全不一致"。因此可以将解析的数据库2)中的各组的确定性状态确定为有保证或者无保证的。注意在上表4中,实体e2与4又一个客户关联,其中该客户来自<旧金山,加州〉。因此,无论如何解析上表1的客户数据,e2将继续与〈旧金山,加州>关联。也就是说,e2始终在〈旧金山,加州>中。由于旧金山出现在表7A-7D中的各解析的数据中,所以本领域技术人员可以推断对查询《7的上述答案正确。作为比较,不能保证表4中的任何实体来自<圣何塞,加州〉。通过对解析的数据库40使用EBI查询过程20,如图3中所示,已经增强OLAP模型以在查询结果中并入维度数据的不一致并且为单个聚集提供更准确的答案。另外,EBI查询过程20提供的答案不是如在表6的常规结果中那样准确概率低的数字而实际上是以表10为例的准确数值范围。这归因于已经有利地重新设定group-by查询以计算所请求的聚集的上界和下界。具体而言,以下聚集特有公式可以用于为用于任何特定分组的计数聚集函数计算下界和上界下界全不一致1*否则|C|上界全不一致|I|*否则|C|+|I|其中"*"意味着对应分组无保证。"ICI"是一致条目的数目;并且"ill"是不一致条目的数目。如果所有条目不一致,则计数聚集函数的下界是零并且无保证。否则它等于一致条目的数目|C|。如果并且只有所有条目不一致,则上界才是无保证的并且等于不一致条目的数目|1|。如果有至少一个一致条目,则上界等于一致条目的数目ICI与不一致条目的数目|1|之和。用于为求和聚集函数计算下界和上界的对应公式可以如下下界全不一致并且全正min(I+)*全不一致并且一些为负Sum(I-)*否则Sum(C)+Sum(I-)下界全不一致并且全负如果所有不一致条目为负则max(I-)*全不一致并且一些为正Sum(I+)*否贝'JSum(C)+Sum(I+)其中"*"意味着对应分组是无保证的。19"I+"对应于不一致条目的正测量;并且"I-"对应于不一致条目的负测量;并且如果并且只有所有条目不一致并且为正(或者零),则用于求和聚集函数的下界才是不一致测量中的最小测量。如果所有条目不一致并且有负的不一致测量,则下界等于负的不一致测量(如果有)之和。在两种情况下,由于所有条目不一致,则结果是无保证的(在上表中由"*"表示)。如果有至少一个一致条目,则下界等于一致测量之和与负的不一致测量之和的和。如果并且只有所有条目不一致并且所有不一致测量为负,则上界才等于最大负的不一致测量。如果并且只有所有条目不一致并且有至少一个正的不一致测量,则上界等于正的不一致条目之和。在两种情况下,由于所有条目不一致,则结果是无保证的(在上表中由"*,,表示)。如果有至少一个一致条目,则上界是有保证的并且等于一致测量之和与正的不一致条目之和的和。对于最小聚集函数并且参照表10,可以通过对未解析的数据库中的表1和表2执行查询^来获得"下界"列中的值。为了获得"上界"列中的值,先有必要将各实体关联到由它的客户进行的交易的最小值。这一关联的结果在这里表示为"MinTransaction"。来自表l、2和4的未解析的数据库的MinTransaction结果可以包括表11中给出的数据实体MinTransaction结果实体ID最小值Cl2062306340表11对于无保证的答案,发现聚集组中的所有条目(一致和不一致)最大值就足够了。在表10的例子中,圣何塞的上界是$40,这是表11中的最大值,因为圣何塞没有有保证的实体。因此可以通过为除20了具有最大值的实体之外的所有实体选择与圣何塞不同的城市来解析包括表l、表2和表4的未解析的数据库。对于有保证的查询答案,可以仅考虑对应聚集组的一致实体。例如在表10中,旧金山的上界是$30,这是表11的实体MinTransaction结果中仅有的一致实体e2的值。其原因在于一致实体出现在每个解析的数据库中。如果不一致实体具有更小的值,则可解析的数据库。例如,实体ei具有值S20并且可以关联到〈旧金山,加州〉。然而,在解析的数据库"3和"4中,e!关联到〈圣何塞,加州〉、但是不影响用于旧金山的最小数量。可以用以下代码导出下界(lowBound):selectGc戮iri《mea_sure》ssiowBoundFromdimensionDjoinfactFonF.instenceM=D,in.stenceldgroupbyG可以如下导出上界(upBound)。将项Entitieslnfo表示为以下查询selectent丄tyM,Clir』《measure〕asminMeasure,essewhenc加ftt《distinctG)-1then**ccmsistent',20else''inconsistent'*asstastusfromdimension:DjoinentityResolutionERonD,instanceId=ER,instanceldjoinfactFonir!stanceIdERin,stanceJ5ig-jrouf5byentityId将GuaranteedGroups表示为以下查询selectentitylci,GfromentityRescdutionERjoinEntity工n.foEIcmER,entityld=El,entityldWherestatus="consistent"将NonGuaranteedGroups表示为以下查询21selectenti.tyld,GfromentityResolutionERWTierenotexists(select*fromEntity工nfoEIwhereE工,entit'yld-Elentit'y工damdstaitus="consistent*')可以用以下代码获得上界和确定性状态selectmax《纖inMeasure)asupBoumdf,,助r广gu紅3nteed"asstatusfromEntity工nfoEIonELsntityld=NG,e'ntityldgroupt>yGselect(3,max《rniriMeasure)asupBound,"guaranteed"asstetusfromEntityInfoEIjoinG濕.ranteedGroupsCionELentityld鹏GentityldwbexeEIstatus-界corisisterit"gioupbyG一般而言,可以通过为各分组获得最小交易来直接计算下界。可以如下获得上界。先获得关于实体的两条相关信息(即查询Entitieslnfo)。一条相关信息是实体的一致性状态(一致或者不一致)。另一条相关信息是从事实表获得的测量属性的最小值(即minMeasure)。可以获得具有有保证状态的分组(即查询GuaranteedGroups)和具有无保证状态的分组(即查询NonGuaranteedGroups)。在上表10的例子中,<旧金山,力"刊〉是有保证的分组,而<圣何塞,加州>是无保证的分组。可以将具有解析认知的答案作为两个子查询的并集来获得。第一子查询涉及有保证的组;第二子查询涉及无保证的组。进行这一区别是因为如上所述可以根据对应分组的一致性状态来不同地计算上界。对于无保证的分组,可以将上界作为与分组关联的最大值来获得o对于有保证的分组,分析可以强调与组关联的一致实体(即EI.status="consistent")。应该理解一般而言有保证的组可以具有不一致的实体。在上表7A-7D的解析的客户数据中,有保障的组<旧金山,加州〉包括不一致的实体^和^以及一致实体e2。然而,在上界的计算中不考虑不一致实体。在现有技术中,计算向上钻取查询可以包括重用在一个分级水平获得的结果以计算下一分级水平。然而,这一方法可能并不适合于计算对未解析的数据库的向上钻取查询,因为可能没有正确地计算上界信息。也就是说,group-by查询(或者初始向上钻取查询)的结果不能在不引入错误的情况下并且在不违反所得数据范围是严格的这一条件的情况下直接聚集到更高分级水平EBI查询过程20允许将数据范围直接聚集到更高分级水平并且提供对数据范围的高效补偿。例如,可以在两个步骤中进行向上钻取查询。第一步骤(即直接向上钻取查询)对用于更低分级水平if的先前聚集查询(例如group-by查询或者向上钻取查询)的结果直接工作并且产生对用于更高分级水平好+J的结果的近似。第二步骤(即补偿)然后针对在分级水平^不一致而在分级水平i7+J变得一致的条目通过考虑条目在分级水平好+/的一致性状态来修复结果。例如,对于最小聚集函数下界近似全不一致Min(L)*否则Min(L)上界近似全不一致Max(U)*否则Min(U)如果并且只有所有条目不一致,则针对分级水平^Th的下界近似才是无保证的并且等于在分级水平i/的下界中的最小值。如果有至少一个一致条目,则针对分级水平H+7的下界近似是有保证的并且等于在分级水平H的下界中的最小值。类似地,如果并且只有所有条目不一致,则针对分级水平/T+7的上界近似才是无保证的并且等于在分级水平丑的上界中的最大值。如果有至少一个一致条目,则针对分级水平/TK的上界近似是有保证的并且等于在分级水平丑23的上界中的最小值。可以用以下7>式确定针对在水平/7不一致而在水平H+7变得一致的具有测量V的条目的补偿下界全不一致使有保证的该公式通过考虑在分级水平E不一致而在分级水平H+7变得一致的所有条目来最后确定下界和上界。对于下界,如果之前所有条目不一致而现在有至少一个一致条目,则使分组是有保证的。类似地,对于上界,如果之前所有条目不一致而现在有至少一个一致条目,则使分组是有保证的并且将上界设置成min(V)。如果之前有至少一个一致条目,则最终上界是上界近似和v中的最小值。一种计算向上钻取查询的替代方法可以包括返回到基本表并且'4艮据暂存器"计算具有解析认知的结果。然而,这不切实际,因为根据基本表计算查询可能计算成本高。根据本方法,在各分级水平计算最少数量的辅助信息。如图3中所示,在执行EBI查询过程20期间用解析的数据库40维护包括在各水平变得一致的条目的辅助表47。辅助表47可以包括一个或者多个如下条目,该条目将概率值或者一致性状态(即一致或者不一致)之一分配给用于对应分级水平的实体映射表49中的一个或者多个条目。更低分级水平的下界可以用来计算更高分级水平的下界。可以使用以下代码来运行这一过程,其中NonGuaranteedw表示如下表,该表包含在先前分级水平不一致的条目,而Resultw表示用于先前分级水平的具有解析认知的结果。可先如下获得下界selectG,dsulti,〗*lowBouM〗aslowBoundf.roinResults-ia夸BecomeConsistenti表示为以下查询selecten.tity工d,minM€33ui:.efromInccmsistentr.;iCwhereco加tEditinet否则全不一致否则无操作Min(V)并且有保证的Min(U,V)24将UpperBoundsCompensation表示为以下查询selectG,min<BecouieConsist:ent"iuinMeasijre〉asfrom.BecomeCoDsistent£^!夸UpperBoundsPreviousLevel表示为以下查询fro腦Rssulti-i.Wherest為tus-,'consigiteritw可以如下获得具有解析认知的结果的上界selectG,Ellin〖UpperBound3,upBoutxi)asupBouncifrom(selectG,upBounclfi:UpperBound3Coropens.ationunion為lifr'OTiUpperBoundsPreviousLevei》UpperBoun.ds向上述算法的输入包括待计算的查询《、来自先前水平的结果Result和包含辅助信息的表示为NonGuaranteedw的一个表。这一信息包括在先前水平不一致的实体。在除了基础水平之外的各水平,可以^口下通过^f吏用表Inconsistenti-i来i十算Inconsistent"SelectentityId,minM餘surefromInconsisteritr—:Cwh氛recount(《:iistinctG》>1本领域技术人员可以理解条件c。喊(distinctG〗〉l可以由关联到多个组的实体满足,因此不一致。当从基础水平向上钻取时,可以如下/人基础表获^寻辅助表Inconsistento:Selectent丄tylcl,rnin《me為sure)a爲minMeasure,fromdimensionDjoinentityResoiutionERonD.instanceId=ER.instanceldjoinfactFonF.instanceld-ER.instanceIdwheiecount(distinc:tG)>1groupbyentity工d可以通过聚集来自先前结果的最小值来直接获得下界。可以如下计算上界。获得表BecomeConsistent"并且该表保持在先前水平不一致、但是在当前水平变得一致的实体。例如,当从城市水平向上钻取至州水平(即加州)时,^和^这两个实体变得一致。也就25是说,。和^在城市水平不一致,因为这些实体可能来自圣何塞或者旧金山。然而,实体。和^在州水平一致,因为二者显然来自加利福尼亚。可以从辅助表(即查询UpperBoundsCompensation)获得针对所有组的最小值。可以根据在用于有保证的聚集组的先前水平(即最小值。可以通过从在UpperBounds-Compensation和UpperBoundsPreviousLevel中获得的结果取最小值来获得上界。需要类似过程用于向上钻取其它聚集函数如count、sum和max的聚集。在许多情形中,如表12中所示具有用于不一致条目的属性的概率(pj):_实体映射概率实体ID客户IDPi0.2c20.8c2c31.0c40.4c3c50.6表12除了用于聚集的紧密范围之外,还可以计算均值和方差。如果rj是对应测量,则对于基本聚集函数(count,sum,avg)而言具有E[count],S額[pjV〖ccmnt.〗,Sum[pj《1-)〗£〖sunt]jpj〗V[Si加];S繊[.t:jA2pj《1-pj5]E〕[avg]〖$um〗/£〖count〕-a+aA2V[count]》/E^2〖co磁、t:]Cov[s画,eourit.]=Swi[pipj+S輔〖pjrj]=Sumrjpj《l'pj〗]26当然应当理解前文涉及本发明的示例实施例并且可以进行修改而不脱离如所附权利要求中阐述的本发明范围。权利要求1.一种用于在预先存在的数据库中执行聚集查询的方法,所述方法包括以下步骤从所述预先存在的数据库搜集数据库信息,所述数据库信息包括不一致维度表和事实表;对所述不一致维度表和所述事实表运行实体发现过程以产生实体映射表;使用所述实体映射表以将所述不一致维度表解析到可能的解析的维度表;并且对所述可能的解析的数据库运行所述查询以获得查询结果,所述可能的解析的数据库包括所述解析的维度表。2.根据权利要求1所述的方法,其中所述数据库信息还包括辅助表,所述辅助表包括用于所述解析的维度表中的信息的状态信息。3.根据权利要求2所述的方法,其中所述辅助表包括在所选分级水平变得一致的实体。4.根据权利要求1所述的方法,其中所述使用所述实体映射表以解析所述不一致维度表的步骤包括根据所述映射表生成解析函数的步骤。5.根据权利要求4所述的方法,其中所述使用所述实体映射表以解析所述不一致维度表的步骤包括应用所述解析函数以将实体关联到一个实例的步骤。6.根据权利要求1所述的方法,还包括使用所示实体映射表以将所述事实表解析成解析的事实表的步骤。7.根据权利要求1所述的方法,其中所述对解析的数据库运行所述查询的步骤包括计算上界和下界的步骤。8.根据权利要求7所述的方法,其中更低分级水平的下界用来计算用于更高分级水平的下界。9.根据权利要求7所述的方法,其中可以通过为所述查询结果中的聚集组获得最小交易来计算所述下界。10.根据权利要求1所述的方法,其中所述查询结果包括请求的聚集的数据范围。11.根据权利要求IO所述的方法,还包括将所述数据范围聚集到更高分级水平的步骤。12.根据权利要求11所述的方法,其中所述聚集步骤包括执行向上钻取查询的步骤。13.—种用于进行基于实体的查询过程以变换数据仓库数据库中的数据的方法,所述方法包括以下步骤使用至少一个解析函数将不一致维度表解析成解析的维度表;使用所述至少一个解析函数将事实表解析成解析的事实表;并且为所述解析的维度表和所述解析的事实表中的数据计算聚集函数;所述聚集函数具有包括上界和下界的严格范围。14.根据权利要求13所述的方法,其中所述将所述不一致维度表解析成解析的维度表的步骤包括从所述不一致维度表去除元组的步骤,所述去除的元组不具有在所述至少一个解析函数的映像中的实例标识符。15.根据权利要求13所述的方法,还包括将所述不一致维度表中的多个元组中的各元组分配给有保证的组或者无保证的组的步骤,所述有保证的组包括多个有保证的分组,各所述有保证的分组具有在各解析函数的映像中的实例标识符,根据映射表来生成所述解析函数,通过对所述不一致维度表和所述事实表运行实体发现过程来获得所述映射表。16.根据权利要求15所述的方法,还包括将具有解析认知的答案作为两个子查询的并集来获得的步骤,第一子查询涉及所述有保证的组,而第二子查询涉及所述无保证的组。17.根据权利要求13所述的方法,其中所述将所述不一致维度表解析成解析的维度表的步骤包括用实体标识符取代所述不一致维度表中的身份标识符的步骤。18.根据权利要求13所述的方法,还包括对所述聚集函数执行向上钻取查询以产生用于更高分级水平的近似结果的步骤。19.一种用于在数据仓库中执行聚集查询的装置,所述装置包括用于存储所述数据的数据存储设备;与计算机通信的计算机程序,所述计算机程序用于实现包括以下步骤的方法使用实体映射表以将事实表解析成解析的事实表;并且使用解析的数据表和所述解析的事实表以生成具有实体列表的辅助表,所述辅助表还具有用于所述实体列表的分级状态和概率条目。20.根据权利要求19所述的装置,其中所述辅助表包括至少一个条目,其将有效性状态或者概率值之一分配给所述实体映射表中的至少一个条目。21.—种用于进行基于实体的查询过程以变换数据仓库数据库中的数据的装置,所述装置包括与计算机通信的计算机程序,在由所述计算机执行时实现根据权利要求13-18中的任一权利要求所述的步骤。22.—种计算机程序产品,在由计算机执行时使所述计算机实现根据权利要求1-18中的任一权利要求所述的步骤。全文摘要公开一种用于进行查询以变换在预先存在的数据库中的数据的方法,该方法包括从预先存在的数据库搜集数据库信息,该数据库信息包括不一致维度表和事实表;对不一致维度表和事实表运行实体发现过程以产生实体映射表;使用实体映射表以将不一致维度表解析成解析的维度表;并且对解析的数据库运行查询以获得查询结果,该解析的数据库包括解析的维度表。文档编号G06F17/30GK101681368SQ200880015990公开日2010年3月24日申请日期2008年5月29日优先权日2007年6月29日发明者A·富克斯曼,B·赖因瓦尔德,P·J·哈斯,Y·西斯玛尼斯,玲王申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1