CN1726495A - 规定用于关系olap引擎的多维计算 - Google Patents
规定用于关系olap引擎的多维计算 Download PDFInfo
- Publication number
- CN1726495A CN1726495A CNA2003801064551A CN200380106455A CN1726495A CN 1726495 A CN1726495 A CN 1726495A CN A2003801064551 A CNA2003801064551 A CN A2003801064551A CN 200380106455 A CN200380106455 A CN 200380106455A CN 1726495 A CN1726495 A CN 1726495A
- Authority
- CN
- China
- Prior art keywords
- attribute
- metadata
- metadata object
- tolerance
- cube
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于规定多维计算的系统、方法和程序。接收从事实元数据对象和一个或多个维元数据对象生成的立方体模型元数据对象的子集的选择。事实元数据对象引用一个或多个度量元数据对象。使用立方体模型元数据对象和度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
Description
技术领域
本发明涉及规定用于关系(relational)在线分析处理(on-line analyticalprocessing,OLAP)引擎的多维计算。
背景技术
在线分析处理(OLAP)日益变得普及。代替查阅成堆的打印在绿栏纸上的静态报告,OLAP分析者可以交互地探查商业结果,动态地调整数据视图和询问问题,并且几乎即时地得到答案。从静态答案到固定时间表上的固定问题的这一自由允许商业分析者更有效地工作并且实现商业操作上的改善。
Nigel Pendse引入了术语“FASMI”来表现OLAP系统的特征。FASMI特征是:快速、分析、共享、多维和信息。关于进一步的信息,参见N.Pendse,“What is OLAP?”,The OLAP Report,http://www.olapreport.com/fasmi.htm。
关于快速,与OLAP中“O”的精神保持一致,该系统需要非常迅速地提供结果,这通常是在仅仅几秒内,并且很少超过20或30秒。这一性能级别对于允许分析者有效地工作而不会分心是关键的。
关于分析,考虑OLAP中的“A”,OLAP系统通常以最小量的编程来提供适于给定应用的丰富分析功能。
关于共享,OLAP系统通常是共享资源。这意味着要求OLAP系统提供适当的安全性和完整性特性。最终,这可意味着对数据库的不同单元提供不同的访问控制。
关于多维,多维性是OLAP系统的主要要求。OLAP产品在多维框架中呈现其数据。维是该系统的数据值的相关标识符或属性(attribute)(例如,产品、市场、时间、渠道、场景或客户)的集合。属于特定维的此集合的标识符(例如,“The Lord of the Rings-DVD”,“SanJose,California”,“2002”,“Retail Rental”和“John Q.Public”)通常具有某种结构,例如分级结构。有时,对于这些标识符,存在多于一个自然结构。
多维特征意味着OLAP系统可以在各个维方向之间以及在一维的各个子集和结构排列之间快速地切换。由于OLAP系统的多维性质,它们所实现的数据集合被称作立方体(cube)。关于信息,OLAP系统存储并计算信息。OLAP系统的数据经常来自一个或多个操作系统。对这些数据应用分析模型,并且在该系统中存储或者在查询时生成结果。特定OLAP系统可管理的信息量是该系统的一个特征。
很多年来,企业一直是使用星形或雪花模式(schema)在关系数据库中存储多维数据。随着时间的过去,关系数据库厂商对这些模式增加了增强查询性能的优化。在二十世纪九十年代期间,开发了很多专用数据库,其可以处理增加的计算复杂度,并且其性能通常好于关系引擎的性能。
多维OLAP(MOLAP)是指这样的OLAP系统系列,其中使用专用文件系统或索引来存储立方体数据。Express Web Publisher,EssbaseTM,TM1和Pilot Suite是基于专用存储和索引建立技术的产品的少数例子。Microsoft的OLAP出售品也包括MOLAP引擎。这些系统经常是只读系统,其周期性地被装载基本数据,然后对派生结果进行计算、存储和索引建立。MOLAP系统的可伸缩性经常受限于在其内计算和存储派生结果的批窗口的大小。为了改善可伸缩性,该系统经常具有用于将一些派生结果的计算推迟到查询时候的手段。
对于关系OLAP(ROLAP),很多年来都是使用星形模式作为用于在关系数据库中表示多维数据的手段。很多商业软件开发公司,例如MicroStrategy,Brio,Business Objects,Metacube,Hyperion和Metaphor为关系星形模式开发了批方式或交互式多维报告和探查接口。这些系统全都是在将超级聚合(aggregate)操作符添加到结构化查询语言(SQL)语言定义之前设计和实现的。
具体地说,直到几年前为止,关系数据库对于每个查询仅允许在单个级别上进行聚合计算。例如,一个带GROUP BY子句的SELECT语句将用来在季度的级别上(即,针对季度的集合)检索结果集,而另一个带GROUP BY子句的SELECT语句将用来在月的级别上(即针对月的集合)检索结果集。这迫使关系OLAP系统对数据库运行多个查询,以便在不同的级别上计算单元。
为了帮助OLAP类型查询的创建,并且提供更高级的优化,可从国际商业机器公司获得的DB2关系数据库管理系统(RDBMS)实现了三个新的超级聚合操作符:ROLLUP、CUBE和GROUPING SETS,其被添加到SQL标准,以便允许单个查询生成多个聚合。这些超级聚合操作符是对GROUP BY子句的扩展,并且规定在多个级别上生成聚合。例如,一个SELECT语句可用来获得多个级别(例如,季度和月)上的聚合计算的结果集。
注意,这些超级聚合操作符不仅仅是用于生成多个编组集合(grouping set)的简化表示。由于在单个语句中请求多个编组集合,因此DB2 RDBMS可以构建执行规划,其中该执行规划以对于计算所需的每个输入行仅被引用一次的方式生成所有编组集合。这可导致多个数量级的性能改善,尤其是当输入行集合未装入(fit in)缓冲池(即高速缓存)时,更是如此。
现有技术的系统被设计成通过发出多个查询来产生表示具有不同粒度级别的结果的多维报告。为该多个查询获得多个结果集,并且合并这些结果集来形成单个报告。这样的系统取决于对星形模式中表和列的角色的某种描述(元数据),其用于生成必要的SQL语句来检索数据以便产生多维报告。确切的元数据随着产品而不同。
多维在线分析处理(OLAP)系统(例如,出自诸如Hyperion,Cognos和Microsoft的公司)被设计成,当被提供多维立方体每条边的成员集时,自然地返回多维结果集。该多维OLAP系统还被设计成预先计算任何查询的一些或全部结果。
自从引入了关系数据库以来一直是使用SQL进行多维分析,但是关系OLAP系统不能自然地返回多维结果集,或者预先计算查询的一些或全部结果。
因此,在本技术领域内需要一种改进的关系OLAP系统。
发明内容
从而,在第一方面,本发明提供了一种用于规定多维计算的方法,包括:接收从事实(facts)元数据对象和一个或多个维(dimension)元数据对象生成的立方体模型元数据对象的子集的选择,其中事实元数据对象引用一个或多个度量(measure)元数据对象;以及使用立方体模型元数据对象和该一个或多个度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
优选地,该语句是结构化查询语言语句。
优选地,度量元数据对象的每一个规定一个或多个结构化查询语言表达式。
优选地,结构化查询语言表达式的每一个包括用于构建查询语言表达式的模板。
优选地,该模板使用从列、属性和度量的列表中引用特定列、属性或度量的标记表示法(token notation)。
优选地,结构化查询语言表达式的每一个包括列、属性和度量的列表。
优选地,基于每一个度量元数据对象中所规定的一个或多个聚合而生成结构化查询语言语句。
优选地,聚合列表包括聚合函数和对应的维集的列表。
优选地,维集为对应的聚合函数规定NULL,以便包括除了聚合列表内的另一个聚合函数中所规定的维之外的所有其它可用维。
优选地,度量元数据对象规定一个或多个结构化查询语言表达式,并且其中使用结构化查询语言表达式作为对聚合列表中的聚合的输入。
优选地,使用分级结构元数据对象中的元数据生成语句来构建ROLLUP子句。
优选地,度量元数据对象引用另一个度量元数据对象。
优选地,生成结构化查询语言语句还包括:生成用于总计(grandtotal)查询的SELECT语句。
优选地,生成结构化查询语言语句还包括:生成用于立方体模型元数据对象的子集切片(slice)的SELECT语句。
优选地,生成结构化查询语言语句还包括:生成用于立方体模型元数据对象的子集的SELECT语句。
优选地,该方法还包括:分离在该一个或多个度量元数据对象中定义的对称度量和非对称度量;为对称度量生成结构化查询语言语句;为非对称度量生成结构化查询语言语句;以及将对称和非对称度量的结构化查询语言语句组合成单个结构化查询语言语句。
优选地,该组合包括使用连接(join)。
优选地,该方法还包括:确定度量是否与一个或多个度量兼容;并且如果度量与一个或多个度量不兼容,则确定是否可以改写这些度量的任一个;并且如果可以改写这些度量的任一个,则改写这些度量。
优选地,该方法还包括:基于立方体模型元数据对象的子集的选择而生成立方体元数据对象,包括生成用于创建立方体视图的结构化查询语言语句,其中从该一个或多个度量元数据对象中的元数据生成结构化查询语言语句。
优选地,该方法还包括:在应用程序的控制之下,使用立方体模型元数据对象和一个或多个度量元数据对象,生成结构化查询语言语句来检索多维信息。
在第二方面,本发明提供了一种用于规定多维计算的系统,包括具有至少一个可编程组件以运行至少一个用于以下操作的程序的计算机系统:接收从事实元数据对象和一个或多个维元数据对象生成的立方体模型元数据对象的子集的选择,其中事实元数据对象引用一个或多个度量元数据对象;以及使用立方体模型元数据对象和该一个或多个度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
优选地,该语句是结构化查询语言语句。
优选地,度量元数据对象的每一个规定一个或多个结构化查询语言表达式。
优选地,结构化查询语言表达式的每一个包括用于构建查询语言表达式的模板。
优选地,该模板使用从列、属性和度量的列表中引用特定列、属性或度量的标记表示法。
优选地,结构化查询语言表达式的每一个包括列、属性和度量的列表。
优选地,基于每一个度量元数据对象中所规定的一个或多个聚合而生成结构化查询语言语句。
优选地,聚合列表包括聚合函数和对应的维集的列表。
优选地,维集为对应的聚合函数规定NULL,以便包括除了聚合列表内的另一个聚合函数中所规定的维之外的所有其它可用维。
优选地,度量元数据对象规定一个或多个结构化查询语言表达式,并且其中使用结构化查询语言表达式作为对聚合列表中的聚合的输入。
优选地,使用分级结构元数据对象中的元数据生成语句来构建ROLLUP子句。
优选地,度量元数据对象引用另一个度量元数据对象。
优选地,该至少一个程序还包括:生成用于总计查询的SELECT语句。
优选地,该至少一个程序还包括:生成用于立方体模型元数据对象的子集的SELECT语句。
优选地,该至少一个程序还包括:生成用于立方体模型元数据对象的子集的SELECT语句。
优选地,该至少一个程序还包括:分离在该一个或多个度量元数据对象中定义的对称度量和非对称度量;为对称度量生成结构化查询语言语句;为非对称度量生成结构化查询语言语句;以及将对称和非对称度量的结构化查询语言语句组合成单个结构化查询语言语句。
优选地,该组合包括使用连接。
优选地,该至少一个程序还包括:确定度量是否与一个或多个度量兼容;并且如果度量与一个或多个度量不兼容,则确定是否可以改写这些度量的任一个;并且如果可以改写这些度量的任一个,则改写这些度量。
优选地,该至少一个程序还包括:基于立方体模型元数据对象的子集的选择而生成立方体元数据对象,包括生成用于创建立方体视图的结构化查询语言语句,其中从该一个或多个度量元数据对象中的元数据生成结构化查询语言语句。
优选地,该至少一个程序还包括:在应用程序的控制之下,使用立方体模型元数据对象和一个或多个度量元数据对象,生成结构化查询语言语句来检索多维信息。
在第三方面,本发明提供了一种计算机程序,其包括当被装载到计算机系统中并且在其上执行时使该计算机系统执行根据第一方面的方法的所有步骤的计算机程序代码。
该计算机程序可被实施在包括用于规定多维计算的程序的产品中,其中该程序导致执行多个操作,这些操作包括:接收从事实元数据对象和一个或多个维元数据对象生成的立方体模型元数据对象的子集的选择,其中事实元数据对象引用一个或多个度量元数据对象;以及使用立方体模型元数据对象和该一个或多个度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
优选地,该语句是结构化查询语言语句。
优选地,度量元数据对象的每一个规定一个或多个结构化查询语言表达式。
优选地,结构化查询语言表达式的每一个包括用于构建查询语言表达式的模板。
优选地,该模板使用从列、属性和度量的列表中引用特定列、属性或度量的标记表示法。
优选地,结构化查询语言表达式的每一个包括列、属性和度量的列表。
优选地,基于每一个度量元数据对象中所规定的一个或多个聚合而生成结构化查询语言语句。
优选地,聚合列表包括聚合函数和对应的维集的列表。
优选地,维集为对应的聚合函数规定NULL,以便包括除了聚合列表内的另一个聚合函数中所规定的维之外的所有其它可用维。
优选地,度量元数据对象规定一个或多个结构化查询语言表达式,并且其中使用结构化查询语言表达式作为对聚合列表中的聚合的输入。
优选地,使用分级结构元数据对象中的元数据生成语句来构建ROLLUP子句。
优选地,度量元数据对象引用另一个度量元数据对象。
优选地,用于生成结构化查询语言语句的操作还包括:生成用于总计查询的SELECT语句。
优选地,用于生成结构化查询语言语句的操作还包括:生成用于立方体模型元数据对象的子集切片的SELECT语句。
优选地,用于生成结构化查询语言语句的操作还包括:生成用于立方体模型元数据对象的子集的SELECT语句。
优选地,这些操作还包括:分离在该一个或多个度量元数据对象中定义的对称度量和非对称度量;为对称度量生成结构化查询语言语句;为非对称度量生成结构化查询语言语句;以及将对称和非对称度量的结构化查询语言语句组合成单个结构化查询语言语句。
优选地,该组合包括使用连接。
优选地,这些操作还包括:确定度量是否与一个或多个度量兼容;并且如果度量与一个或多个度量不兼容,则确定是否可以改写这些度量的任一个;并且如果可以改写这些度量的任一个,则改写这些度量。
优选地,这些操作还包括:基于立方体模型元数据对象的子集的选择而生成立方体元数据对象,包括生成用于创建立方体视图的结构化查询语言语句,其中从该一个或多个度量元数据对象中的元数据生成结构化查询语言语句。
优选地,这些操作还包括:在应用程序的控制之下,使用立方体模型元数据对象和一个或多个度量元数据对象,生成结构化查询语言语句来检索多维信息。
这样,优选地,提供了一种用于规定多维计算的方法、系统和程序。接收从事实元数据对象和一个或多个维元数据对象生成的立方体模型元数据对象的子集的选择。事实元数据对象引用一个或多个度量元数据对象。使用立方体模型元数据对象和度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
本发明的所述实现提供了一种在关系OLAP系统中规定多维计算的方法、系统和程序。
附图说明
现在参照附图,其中相同的附图标记始终表示对应的部件:
图1以方框图的形式示出了根据本发明特定实现的计算环境。
图2示出了根据本发明的特定实现事实元数据对象和度量元数据对象与关系数据相关。
图3示出了根据本发明特定实现的样例星形连接模式。
图4示出了根据本发明的特定实现从关系表构建维元数据对象。
图5示出了根据本发明的特定实现,元数据对象一起装入(fit in)立方体模型,并且映射到关系表的关系星形模式。
图6示出了根据本发明的特定实现将概念元数据对象分类成三层。
图7示出了根据本发明的特定实现创建与基本/关系层对应的元数据对象。
图8示出了根据本发明特定实现的来自基本/关系层的附加元数据对象。
图9示出了根据本发明特定实现的基于星形连接模式而创建的多维层元数据对象。
图10示出了根据本发明特定实现的用来定义立方体的元数据对象的实例。
图11示出了根据本发明的特定实现创建在线分析处理(OLAP)层中每个元数据对象的一个实例。
图12示出了根据本发明特定实现的平衡分级结构的例子。
图13示出了根据本发明特定实现的非平衡分级结构的例子。
图14示出了根据本发明特定实现的不规则(ragged)分级结构。
图15示出了根据本发明特定实现的网络分级结构。
图16示出了根据本发明特定实现的一些元数据对象之间的一些关系。
图17示出了根据本发明特定实现的由两个维表和一个事实表组成的星形模式。
图18A-18E示出了根据本发明特定实现的可以针对星形模式生成的元数据对象实例的可能集合以及元数据对象的一些属性(property)。
图19示出了根据本发明特定实现的表A,其表示基本数据。
图20示出了根据本发明特定实现的表B,其表示具有聚合:SUM(Market)和Min(Time)的度量。
图21A-21D示出了根据本发明特定实现的表C,其表示具有聚合:SUM(Product)(即产品之和)、AVG(Time)(即时间上的平均值)和Max(Market)(即市场的最大值)的度量。
图22示出了根据本发明特定实现的两个全加性度量元数据对象的创建。
图23示出了根据本发明特定实现的半加性度量的创建。
图24示出了根据本发明特定实现的具有聚合的复合度量的创建。
图25示出了根据本发明特定实现的没有聚合的复合度量的创建。
图26示出了根据本发明特定实现的具有OLAP函数的度量的创建。
图27示出了根据本发明特定实现的具有聚合和多个输入的度量。
图28示出了根据本发明一些实现的来自图22-27的所有定义的度量元数据对象。
图29A、29B、29C、29D和29E示出了根据本发明特定实现的用于为一个或多个度量元数据对象生成SQL语句的逻辑。
图30示出了根据本发明特定实现的表D,其列出一些度量并且表示哪些度量是对称的或者非对称的。
图31示出了根据本发明特定实现的表E,其列出一些聚合函数并且表示哪些聚合函数是分布式的(distributive)而哪些是非分布式的(non-distributive)。
图32示出了根据本发明特定实现的表F,其列出多个度量,以及如何可将聚合步骤分解成用于这些度量的多个聚合步骤。
图33示出了计算机系统体系结构的一种实现。
具体实施方式
在下面描述中,参考形成本文一部分且示出了本发明的若干实现的附图。应当理解,在不脱离本发明的范围的情况下,可以采用其它实现并且可以进行结构和操作上的改变。
A.多维元数据介绍
在特定实现中,本发明提供了多维元数据对象以及用于使用多维元数据对象的技术。为便于引用起见,本发明的优选实施例在此将被称作“OLAP多维元数据系统100”,并且度量元数据对象将被称作“元数据对象”。
在特定实现中,OLAP多维元数据系统100在从国际商业机器公司获得的DB2通用数据库(UDB)RDBMS中实现。虽然本说明书描述了使用IBM的DB2UDB RDBMS软件,但是本领域的技术人员应当认识到本发明可使用其它RDBMS软件,例如从Oracle、IBMInformix、Sybase获得的RDBMS软件。另外,本发明可以在使用各种操作系统例如IBM z/OS、IBM AIX、Microsoft Windows2000、Microsoft WindowsXP、Linux、Solaris、HP-UX的计算机上运行。
图1以方框图的形式示出了根据本发明特定实现的计算环境。关系数据库管理系统(RDBMS)110包括多维元数据软件120(例如,存储过程应用编程接口(API))和用户接口150。RDBMS 110访问多维元数据对象130和关系数据库140。在特定实现中,多维元数据对象130和关系数据库140中的数据可以被存储在单个数据库中。
OLAP多维元数据系统100包括多维元数据软件120(例如,存储过程应用编程接口(API))、用户接口150和多维元数据对象130。多维元数据软件120用来创建、存储和访问多维元数据对象130。可选地,可以向用户或管理员提供用户接口150,以向多维元数据软件120发送命令。用户可以通过经由用户接口150提交命令来创建、访问、修改或删除多维元数据对象130。由多维元数据软件120接收并处理这些命令。例如,多维元数据软件120可以创建并存储多维元数据对象130。
在特定实现中,OLAP多维元数据系统100为RDBMS 110如DB2通用数据库(在此被称作DB2UDB)提供附加特性,其改善RDBMS 110执行OLAP处理的能力。本发明的优选实施例以流水线的方式进行(streamline)OLAP解决方案的部署和管理,并且改善OLAP工具和应用的性能。
具体地说,OLAP多维元数据系统100提供元数据对象。新的元数据对象被存储在例如数据库目录(例如,DB2UDB目录)中,其中该数据库目录描述现有关系数据的维模型和OLAP构造。数据库目录提供OLAP应用可以从其捕捉(capture)多维元数据的单个知识库(repository)。在特定实现中,元数据对象可以驻留在不同于数据库目录的数据存储库上,或者可以驻留在多个数据存储库之间。通过中央知识库中的信息,数据库优化器能够使用特定于星形模式的技术,以便优化查询的执行。
通过元数据对象,本发明可以通过在汇总表中聚合数据并且创建索引来优化OLAP查询性能。OLAP多维元数据系统100还提供元数据编程接口。具体地说,OLAP多维元数据系统100为OLAP工具和应用开发者提供基于SQL和基于可扩展标记语言(XML)的应用编程接口(API)。例如通过命令行接口(CLI)、开放数据库连接性(ODBC)、或Java数据库连接性(JDBCTM)连接,或者例如通过使用DB2UDB的嵌入SQL,应用和工具可使用单个存储过程(即,多维元数据软件120的例子)来创建、修改和检索元数据对象。在特定实现中,多个存储过程可以提供用于创建、修改和检索元数据对象的功能性。
OLAP多维元数据系统100的元数据对象描述作为智能OLAP结构的关系信息,但是由本发明提供的多维元数据对象不同于传统的OLAP对象。本发明的元数据对象存储元数据,这意味着元数据对象存储关于基本表中的数据的信息。元数据对象描述有关数据位于何处,并且还能描述基本数据内的关系。例如,事实元数据对象是存储关于相关度量、属性和连接的信息的特定元数据对象,但是不包括特定地来自基本事实表的数据。
元数据提供从其理解数据的新角度。在没有元数据对象的情况下,数据库目录仅仅知道表和列名称,并且不能存储关于这些表和列的意义或者这些表和列如何彼此相关的信息。通过元数据对象,可以存储该信息。
每个元数据对象完成表示关系数据的意义是什么的总画面(the bigpicture)的一个片断。一些元数据对象担当通过对数据进行聚合或者直接对应于关系表中的特定列来直接访问关系数据的基础。其它元数据对象描述基本元数据对象之间的关系,并且将这些基本元数据对象链接在一起。最终,所有元数据对象都可以通过彼此之间的关系而被一起编组到被称作立方体模型的元数据对象中。立方体模型表示关系表的特定编组和配置。立方体模型的目的是向给定应用或工具描述OLAP结构。立方体模型往往针对正被分析的数据描述不同用户可能想要的所有立方体。立方体模型对维和事实进行编组,并且为维提供多个分级结构的灵活性。立方体模型传达生成对星形模式数据库的复杂查询的查询设计工具和应用所需的结构信息。
多维元数据对象模型被设计成描述在关系数据库中用来表示多维数据的模式。组织这样的数据的一种方法是通过使用星形或雪花模式(在雪花模式中,维表被规格化)。然而,该模型灵活得足以处理任何类型的模式(例如,更加规格化的模式)。
A.1
多维元数据概述
多维元数据使得能够维护关于存储在数据仓库中的OLAP结构的信息。该信息先前不能在数据库目录中获得,并且时常地不被数据仓库元数据知识库记载(document)。多维元数据帮助数据仓库设计者表示表及其列之间的结构关系。一旦该元数据存在于数据库目录中,则RDBMS110的其它组件例如数据库优化器(例如,DB2UDB优化器)可以利用该结构信息,并且更快地对由这些新的OLAP元数据对象描述的数据执行查询。元数据对象还能通过提供生成对数据仓库的多维查询所需的基本结构信息来协助商业智能工具。为了捕捉OLAP结构信息,OLAP多维元数据系统100定义若干新的元数据对象。这些元数据对象能够描述频繁地用来对OLAP数据进行建模的模式例如星形连接和雪花模式的重要方面。
将元数据对象添加到数据库目录提供了完全的功能性以及与其它数据库组件的集成。新的元数据对象以与常规表相同的方式由模式拥有。元数据对象的另一个设计点是它们的大部分单独地是有用的。也就是,元数据对象提供关于底层关系模式、元数据对象是否包括在更复杂的多维结构中的信息。
立方体模型可以以多种方式来构造,但是经常被构建成表示关系星形模式或雪花模式。基于简单星形模式的立方体模型围绕着中央事实元数据对象来构建,其中该中央事实元数据对象描述来自事实表的聚合关系数据。度量元数据对象描述根据关系表中的多列的数据计算,并且被连接在一起以创建事实元数据对象。图2示出了根据本发明的特定实现事实元数据对象210和度量元数据对象220、230与关系数据250相关。
在立方体模型中维元数据对象连接到事实元数据对象,就像是在星形模式中维表连接到事实表一样。来自关系表的数据的列由连接在一起以构成维元数据对象的属性元数据对象表示。
图3示出了根据本发明特定实现的样例星形连接模式。星形连接模式具有连至中央Sales(销售)事实表300的Time(时间)310、Product(产品)320和Region(地区)330维表。为关系表中的相关维和事实表300、310、320、330列创建属性。每个维表310、320、330具有维键属性,如TimeID(时间ID)、ProductID(产品ID)或RegionID(地区ID)。地区维表330还具有City(城市)和City_Population(城市人口)属性以及名称为“CityProp AR”的属性关系。该属性关系表达City属性中的每一个值确定City_Population属性中的对应值的函数相关性。在事实表内,存在Sales(销售)和Costs(成本)的两个度量以及三个维键属性TimeID、ProductID和RegionID。
三个连接通过对应的维键属性将每个维表310、320、330连接到中央事实表300。在本例中,维表310、320、330基于TimeID、ProductID或RegionID属性与事实表300相连。图4示出了根据本发明的特定实现从关系表450构建维元数据对象406、410。例如,在元数据对象中,维元数据对象406基于属性元数据对象408而构建,并且属性元数据对象408连接到关系表中的属性452。维元数据对象410基于属性元数据对象412、414和连接元数据对象416而构建。这些属性元数据对象连接到关系表450中的属性454和456。
分级结构存储关于维内的属性如何彼此相关和被结构化的信息。作为元数据对象,分级结构提供对维进行计算和导航的方法。每维具有对应的分级结构,其具有针对每个成员属性而定义的级别。例如,Region维具有RegionH分级结构,其具有针对State(州)和City(城市)属性而定义的级别,并且还引用CityPop AR属性关系。在立方体模型中,每维可具有多个分级结构,但是本示例星形模式对于每维只定义了一个分级结构。
在星形模式中,所有维元数据对象以星形连接到中央事实元数据对象,以便创建立方体模型。连接元数据对象可以连接表以创建事实元数据对象或维元数据对象。元数据连接还能通过将事实元数据对象连接到维元数据对象而担当立方体模型内的胶粘剂(glue)。维元数据对象具有关于所有其组成分级结构、属性、属性关系和相关连接的信息。事实元数据对象具有关于所有其组成度量、属性和相关连接的信息。
图5示出了根据本发明的特定实现元数据对象500一起装入立方体模型,并且映射到关系表550的关系星形模式。立方体模型元数据对象510基于维元数据对象512、514、连接元数据对象516、518以及事实元数据对象520而构建。
立方体模型元数据对象是灵活的元数据对象,其组成部分可以被复用以针对特定的应用创建更精确的立方体元数据对象。例如,立方体模型元数据对象可以具有37个事实,但是从该立方体模型元数据对象生成的一个立方体元数据对象可以去除一个或多个维元数据对象、维元数据对象的一个或多个级别和/或一个或多个度量元数据对象。
除了立方体模型元数据对象之外,还存在被称作立方体元数据对象的更特定元数据对象。立方体元数据对象是与OLAP概念立方体最接近的元数据对象。立方体元数据对象是立方体模型元数据对象的特定实例或子集。立方体元数据对象具有从父立方体模型元数据对象派生的特定一组类似但更受限制的元数据对象,其包括:立方体维、立方体分级结构和立方体事实。例如,RegionCubeDim是作为从Region维派生的属性的子集的立方体维。ReglonCubeDim引用State和City属性,但是不引用City_Population属性或CityPop AR属性关系。RegionCubeDim引用其界定(scope)的Region维,并且所有结构信息包括连接信息与立方体模型Region维滞留在一起。
在特定实现中,立方体元数据对象具有按照每个立方体维而定义的一个立方体分级结构,而维元数据对象可以具有针对立方体模型元数据对象而定义的多个分级结构。立方体元数据对象与立方体模型元数据对象之间的这一结构差异允许采用单个SQL语句来检索立方体元数据对象。
图6示出了根据本发明的特定实现将概念元数据对象分类成三层。这些层是基本/关系层600、多维层610和OLAP层620。基本/关系层600向其它元数据对象提供基本底层结构,并且封装关系数据库的概念。多维层610包括引用基本/关系层600中的元数据对象以提供关系数据库之上的多维抽象的元数据对象。OLAP层620包含表示OLAP结构的高级元数据对象。通过对来自其它层的元数据对象进行编组,OLAP层620提供具有不同复杂度的OLAP立方体。
为了更好地理解本实施例,提供了一个例子。本例基于在数据集市(data mart)中使用的常见结构,即星形连接模式。对于星形连接模式,基于基本/关系层、多维层和OLAP层而创建元数据对象的实例。图3示出了根据本发明特定实现的简单星形连接模式,其包括事实表300即Fact、以及三个维表Time 310、Product 320和Region 340。
现有的数据库目录典型地存储表和列名称。关于这些表和列扮演什么角色以及这些表和列如何彼此相关的信息是不存在的。然而,采用OLAP多维元数据系统100,通过创建元数据对象来捕捉该信息。
图7示出了根据本发明的特定实现创建与基本/关系层对应的元数据对象。为所有维表列和在连接中使用的事实表列创建属性。为事实表中的每个事实列创建一个度量元数据对象。由三个连接元数据对象捕捉在该星形连接模式中使用的连接。连接元数据对象规定如何连接事实表和维表的对应属性。创建Region维表中的一个属性关系,以表示City和City_Population之间的关系,以及City属性中的每个值确定City_Population属性中的值的事实。
图8示出了根据本发明特定实现的来自基本/关系层的附加元数据对象。创建三个分级结构800、810和820,其表示相关属性之间的关系。这些分级结构800、810和820通过多维在多维层中使用,以便创建用来对维进行计算和导航的装置。在RegionH分级结构820中,引用CityPop AR属性关系。捕捉应用于给定分级结构的所有属性关系。还对于每个分级结构创建一个立方体分级结构850、860、870,以便在立方体上下文中使用。立方体分级结构850、860、870用来界定(scope)对于给定立方体感兴趣的分级结构的级别。立方体分级结构850、860、870还捕捉应用于其的属性关系。
图9示出了根据本发明特定实现的基于星形连接模式而创建的多维层元数据对象。为事实表Fact创建一个事实元数据对象900。SalesFacts元数据对象900包括可用的度量以及在事实到维连接中所需的属性。为作为星形连接模式的一部分的每个维表创建一个维元数据对象910、920、930。维元数据对象对高度相关的属性进行编组,在本例中这些属性来自于单个维表。维元数据对象还引用应用于维属性上的分级结构。维可以具有多个所定义的分级结构,但是在本例中,对于每维,仅定义了一个分级结构。
图10示出了根据本发明特定实现的用来定义立方体的元数据对象1000、1010、1020的实例。立方体事实、立方体维和立方体分级结构元数据对象用来界定作为立方体的一部分的属性和度量。这些元数据对象的每一个引用正被界定的元数据对象,并且所有结构信息如连接保留在主(即父)元数据对象中。所有立方体特定对象保存对从其定义它们的主对象的引用。例如,立方体分级结构元数据对象具有对从其定义该立方体分级结构元数据对象的分级结构元数据对象的引用。在特定实现中,对于多个立方体维,分配一个分级结构。在本例中,创建立方体事实SalesCubFacts 1000,并且它列出在该立方体中使用的度量(Sales)。
OLAP层由立方体模型和立方体元数据对象组成。立方体模型元数据对象描述对于给定应用感兴趣的事实和维。立方体模型元数据对象的维可具有多个所定义的分级结构,这使立方体模型元数据对象是非常灵活的结构。立方体元数据对象从立方体模型元数据对象派生,从而所有立方体维、立方体分级结构和立方体事实元数据对象从立方体模型元数据对象派生。立方体模型元数据对象和立方体元数据对象之间的差异在于在立方体元数据对象中每维定义一个分级结构,这使得有可能采用单个SQL语句检索立方体元数据对象。
图11示出了根据本发明的特定实现创建OLAP层中每个元数据对象的一个实例。在本例中创建的立方体模型捕捉从图3的示例星形连接模式生成的一个可能的立方体模型1100。基于立方体维TimeCubeDim、ProductCubeDim、RegionCubeDim和立方体事实SalesCubeFacts来创建立方体1150。
A.2
元数据对象属性
每个元数据对象具有一组通用属性,以及元数据对象特定属性。通用属性用来标识元数据对象实例,描述元数据对象实例的使用或角色,并且跟踪元数据对象实例变化。在特定实现中,以对其它数据库元数据对象命名的相同方式,使用模式对元数据对象命名。当不希望缺省用户名模式时,可能需要元数据对象的完全限定(qualification)。
表1描述了根据本发明特定实现的对于所有元数据对象都存在的通用属性。
表1
属性 | 描述 |
名称 | 元数据对象的名称 |
模式 | 拥有元数据对象的模式 |
商业名称 | 向最终用户呈现的名称。该名称可以作为对于最终用户更有意义的名称而在图形用户界面上使用 |
注释 | 关于元数据对象性质或使用的文本描述或注释 |
创建时间 | 创建元数据对象的时间 |
创建者 | 定义了元数据对象的用户(模式) |
修改时间 | 最后修改元数据对象的时间 |
修改者 | 执行了修改的用户(模式) |
除了由所有元数据对象共享的公共一组通用属性之外,每个元数据对象具有一组元数据对象特定属性。这些元数据对象特定属性描述定义元数据对象的组成部分和特性(quality)。立方体模型是逻辑星形模式的表示。立方体模型是围绕着中央事实元数据对象的相关维元数据对象的编组。每维可以具有多个分级结构,这提高了立方体模型的灵活性。关于如何连接由事实和维元数据对象使用的表的结构信息被存储在立方体模型中。另外,存储在立方体模型中的是检索OLAP数据的足够信息。理解立方体模型并且可处理特定维的多个分级结构的其它报告和OLAP工具可以受益于立方体模型的使用。
立方体模型定义复杂的一组关系,并且可用来选择性地向应用暴露相关事实和维。将维连接到中央事实元数据对象的每个连接元数据对象作为集合与对应的维存储在一起。立方体模型组成部分的子集可以由用于不同分析目的很多立方体使用。
可以创建没有事实元数据对象或任何维的空立方体模型。然而,在创建对应立方体之前完成立方体模型。OLAP多维元数据系统100通过确保立方体模型包括事实元数据对象、至少一维和现有事实与维之间的连接,以及所有属性引用合法的表来验证立方体模型。认为立方体模型完整不要求分级结构,但是,为了能够从立方体模型定义立方体,定义每维的至少一个分级结构。
每个元数据对象具有一组元数据对象特定属性,其描述定义元数据对象的组成部分和特性。根据本发明的特定实现,表2描述了立方体模型的元数据对象特定属性。
表2
属性 | 描述 |
事实 | 在立方体模型中使用的事实 |
(维、连接)集 | 在立方体模型中使用的维及其对应的连接 |
事实元数据对象编组对于给定应用感兴趣的相关度量。多个关系事实表可以通过特定属性来连接,以便映射附加的相关度量。事实元数据对象存储关于在事实到维连接中使用的属性、以及用来跨越多个数据库表映射附加度量的属性和连接的信息。因此,除了一组度量之外,事实元数据对象存储一组属性和一组连接。事实元数据对象在立方体模型中用作星形模式的中心。
事实元数据对象在星形模式中扮演事实表的角色。如同事实表所做的一样,事实元数据对象收集在数据库目录中通过度量表示的测量实体。它们不需要来自相同的表,从而允许设计者根据任何OLAP应用的要求来对度量进行编组。
根据本发明的特定实现,在表3中描述了事实元数据对象的元数据对象特定属性。
表3
属性 | 描述 |
度量集 | 事实元数据对象中所有相关度量的集合 |
属性集 | 在事实元数据对象中使用的所有属性的集合 |
连接集 | 连接所有规定的度量和属性所需的所有连接的集合 |
维元数据对象扮演星形模式中的维表的角色。维对相关属性进行编组,其中这些相关属性一起描述一个或多个度量的某方面。因此,维元数据对象提供对一起描述度量的一方面的一组相关属性进行分类的方法。在立方体模型中使用维来根据诸如Region、Prouduct或Time的逻辑类别来组织事实元数据对象中的数据。在维元数据对象特定属性中定义相关属性和将这些属性编组在一起所需的连接。
维引用一个或多个分级结构。分级结构描述维属性的关系和结构,并且可用来驱动维的导航和计算。
维还具有描述维是否是面向时间的类型。例如,被称作Time的维可能包含诸如Year(年)、Quarter(季度)和Month(月)的属性,并且它将是时间类型。被称作Region的另一维可能包含诸如Country(国家)、State(州)、City(城市)和Population(人口)的属性,并且它将是常规类型。类型信息可以由应用用来智能且适当地执行时间相关函数。
根据本发明的特定实现,在下表4中描述了维元数据对象的元数据对象特定属性。
表4
属性 | 描述 |
属性集 | 在该维中使用的所有属性的集合 |
连接集 | 连接所有规定的属性所需的所有连接的集合。这里规定连接维表所需的连接 |
分级结构集 | 应用于该维的分级结构的集合 |
类型[常规,时间] | 维类型 |
分级结构定义立方体模型的给定维内的一个或多个属性的集合之间的关系。定义这些关系提供了遍历(traverse)给定维的导航和计算装置。可以为立方体模型的维定义多个分级结构。分级结构元数据对象还引用一组将该分级结构中的属性链接到其它相关属性的属性关系。通过属性关系直接相关的属性可以作为分级结构的一部分来查询。例如,Region维的分级结构可具有City属性,并且属性关系可以将City链接到City_Population属性。该分级结构可以在包括City的查询中包括City_Population信息。
分级结构描述了属性之间的父子关系。该信息由维参考(refer to),以表示可以如何浏览维成员、以及如何聚合该维中的数据。
分级结构类型描述了该分级结构内的属性之间的关系。支持以下四种分级结构类型:平衡、非平衡、不规则(ragged)和网络。
图12示出了根据本发明特定实现的平衡分级结构1200的例子。平衡分级结构是这样一种分级结构,其有意义级别和分支具有一致的深度。每个属性的逻辑父位于直接在该属性之上的级别。平衡分级结构1200表示每个级别例如年1210、季度1220和月1230的意义和深度是一致的时间。
图13示出了根据本发明特定实现的非平衡分级结构1300的例子。非平衡分级结构是这样一种分级结构,其级别具有一致的父子关系,但是对于特定级别中的所有成员具有不一致的语义意义。另外,分级结构分支具有不一致的深度。
非平衡分级结构可以表示组织图。例如,非平衡分级结构1300在该分级结构的最高级别表示CEO,并且在其下可以分支出至少两种人,包括运营总裁(chief operating officer)和执行秘书。运营总裁也分支出更多的人,但是执行秘书不这样。在CEO与向CEO汇报的所有人之间都存在一致的父子关系。然而,直接在CEO之下的级别的语义意义由于该级别中不同的雇员类型而是不一致的。
不规则分级结构是这样一种分级结构,其中每个级别具有一致的意义,但是这些分支具有不一致的深度,因为分支级别中的至少一个成员属性未被填充。不规则分级结构可以表示地理分级结构,其中一致地使用每个级别的意义如城市或国家,但是该分级结构的深度不同。图14示出了根据本发明特定实现的不规则分级结构1400。不规则分级结构1400表示定义有洲、国家、省/州和城市级别的地理分级结构。一个分支具有作为洲的北美、作为国家的美国、作为省/州的加利福尼亚、以及作为城市的旧金山。然而,当一个成员没有在所有级别上都具有条目时,分级结构1400变得不规则。例如,另一个分支具有作为洲的欧洲、作为国家的希腊以及作为城市的雅典,但是对于省/州级别没有条目,因为这一级别不适用于希腊。在本例中,希腊和美国分支降至不同的深度,从而创建了不规则分级结构1400。
网络分级结构是这样一种分级结构,其中不规定级别的次序(order),但是级别确实具有语义意义。图15示出了根据本发明特定实现的网络分级结构1500,其描述诸如Color(颜色)、Size(尺寸)和PackageType(包装类型)的产品属性。由于这些属性级别不具有内在的父子关系,因此级别的次序可以改变。装饰品公司可能具有诸如这样的成员条目,即针对颜色的白色、针对尺寸的小以及针对包装类型的热缩塑料包。第二成员条目可能具有针对颜色的红色、针对尺寸的大以及针对包装类型的盒装。
分级结构(平衡、非平衡、不规则或网络)还规定用于该分级结构的部署机制。部署机制定义如何解释分级结构的属性。支持下面两个部署机制:标准和递归。
标准部署机制使用分级结构的级别定义,其中该分级结构中的每个属性定义一个级别。例如,Time维的平衡分级结构将由包括年、季度和月的每个所定义级别组织。标准部署可以用于所有四个分级结构类型。表5示出了根据本发明的特定实现使用标准部署来组织Time维的一些平衡分级结构属性。
表5
年 | 季度 | 月 |
2001 | 第1季度 | 一月 |
2001 | 第1季度 | 二月 |
2001 | 第1季度 | 三月 |
2002 | 第1季度 | 一月 |
2002 | 第1季度 | 二月 |
2002 | 第1季度 | 三月 |
递归部署机制使用分级结构的属性之间的内在父子关系。使用递归部署的非平衡分级结构以父子属性对表示。例如,表6示出了根据本发明特定实现的非平衡分级结构的属性对,其描述图13所示的组织图。这些父子属性对包括:执行总裁和执行秘书、执行总裁和运营总裁、运营总裁和通信总监(director of communications)、通信总监和通信专家。递归部署可以用于非平衡分级结构。
表6
父属性 | 子属性 |
执行总裁 | 执行秘书 |
执行总裁 | 运营总裁 |
运营总裁 | 通信总监 |
通信总监 | 通信专家 |
根据本发明的特定实现,在下表7中描述了分级结构元数据对象的元数据对象特定属性。
表7
属性 | 描述 |
属性列表 | 从分级结构的顶部到底部属性的有序列表。在递归分级结构的情况下,两个属性用作父和子 |
属性关系集 | 将分级结构属性链接到其它属性的所有属性关系的集合。 |
类型[平衡、非平衡、不规则、网络] | 分级结构类型 |
部署[标准,递归] | 分级结构部署 |
度量元数据对象定义测量实体,并且用于事实元数据对象中。度量在维的上下文内变得有意义。例如,300的总收益本身没有意义。当将收益度量置于诸如Region的维的上下文中,该度量变得有意义。例如,佛蒙特州的收益是300。度量元数据对象的常见例子是Revenue(收益)、Cost(成本)和Profit(利润)。
度量对象使测量实体的存在变得显式。度量由一个或多个SQL表达式定义,其中该SQL表达式可以简单到映射至一个表列,或者可以涉及多个列或者其它度量或属性。对于每个度量,定义聚合的列表以便在立方体模型或立方体的上下文中计算。该列表中的每个聚合规定诸如SUM、COUNT、MIN、MAX的聚合函数和应用聚合函数的维列表。聚合中的空维集表示要使用在该度量中未被显式引用的所有其余维。当所使用的第一聚合函数需要多于一个输入例如CORRELATION时,度量将具有多于一个SQL表达式模板。当度量具有单个SQL表达式模板时,度量可具有空的聚合列表,并且它仅参考其它度量。在这种情况下,发生被引用度量的聚合。度量和属性共享相同的名称空间,这意味着当由模式完全限定时名称在度量和属性之间必须是唯一的。度量的常见例子是Sales(销售额)、Costs(成本)、Profit(利润)等。
度量由SQL表达式的聚合来定义。表、列、属性和度量被映射到模板,以构建SQL表达式(即“SQL表达式模板”)。然后,使用所得到的SQL表达式作为对该度量的第一聚合函数的输入。如果度量具有多于一个聚合,则按照所列次序执行聚合函数,其中每个后继聚合以前一聚合的结果作为输入。如果度量元数据对象的SQL表达式仅引用其它度量,则由于被引用的度量描述任何所需聚合而省略聚合函数。
度量的SQL表达式通过两个属性的组合来创建:SQL表达式模板以及列、属性和度量的列表。SQL表达式模板使用标记表示法,其中{$$n}是标记,并且n从列表中引用特定列、属性或度量。列、属性和度量的列表是有序的,并且列、属性或度量的列表中的位置对应于标记“n”值。
SQL表达式用作对第一聚合的输入。每个聚合规定应用于对应维集的函数。聚合函数可以是由底层数据库支持的任何聚合函数,例如包括SUM、COUNT、MIN、MAX和CORRELATION。在特定实现中,每维由度量元数据对象聚合一次。如果维集为空,则将聚合函数应用于未被该列表中的另一个聚合特定使用的立方体或立方体模型中的所有维。在特定实现中,聚合函数是由RDBMS 110支持的用户定义的聚合函数。
简单度量的例子是Revenue(收益)。可以为具有三维:Product(产品)、Market(市场)和Time(时间)的立方体模型创建Revenue度量。Revenue具有SQL表达式模板(template=“{$$1}”),其表示到在列、属性和度量的单项目列表中规定的列的简单映射,其中list=“ColumnFact.Rev”。聚合列表是(SUM,<NULL>),其中SUM是聚合函数,并且<NULL>是空维集。该SQL表达式用作对SUM聚合函数的输入,从而产生这样的SQL:SUM(Fact.Rev)。
更复杂的度量Profit(利润)可能具有SQL表达式模板(template=“{$$1}-{$$2}”),其中属性、列和度量的列表是list=“MeasureRevenue,Column Fact.Cost”。通过以正确的引用替换标记,SQL表达式变成:“Revenue-Fact.Cost”。通过将收益度量引用扩展成其列引用,SQL表达式变成:“Fact.Rev-Fact.Cost”。Profit度量的聚合列表是:(SUM,<NULL>)。使用利润SQL表达式作为SUM聚合函数的输入,Profit度量的SQL是:SUM(Fact.Rev-Fact.Cost)。
如果度量具有需要两个或更多参数的聚合函数例如CORRELATION,则该度量将具有这一数目的该函数要求其作为输入的SQL表达式。也就是,参数的数目匹配SQL表达式的数目。例如,如果CORRELATION需要两个参数,则将存在两个SQL表达式。
度量还具有基于SQL数据类型的数据类型。OLAP多维元数据系统100自动地确定度量的数据类型。另外,度量和属性共享相同的名称空间。因此,当由模式完全限定时,每个名称在度量和属性之间是唯一的。根据本发明的特定实现,在下表8中描述了度量元数据对象的元数据对象特定属性。
表8
属性 | 描述 |
SQL表达式模板的列表 | 用作度量的第一聚合函数的输入的SQL表达式模板的列表。这些模板通过使用‘{$$n}’表示法来引用列、属性和度量。在模板中,n是对应于列、属性和度量的列表的序号。 |
列、属性和度量的列表 | 对于每个SQL表达式模板,提供列、属性和度量的有序列表。如在SQL表达式模板中所规定的那样应用这些列、属性和度量。 |
聚合的列表(聚合函数、维集的列表) | 规定如何计算度量的聚合的列表。每个聚合由SQL聚合函数和应用该函数的可选维集组成。 |
数据类型(模式、名称、长度、标度(scale)) | 确定属性的数据类型。基于SQL数据类型,并且由数据类型模式、名称、长度和标度组成。 |
属性表示数据库表列的基本抽象。属性由SQL表达式定义,其中该SQL表达式可以是到一个表列的简单映射,可以涉及多个列和其它属性,并且可以涉及底层数据库的所有功能性,例如用户定义的函数。在特定实现中,当在定义的SQL表达式中使用其它属性时,其它属性不能形成属性引用环。例如,如果属性A引用属性B,则属性B不能引用属性A。
属性的SQL表达式定义通过组合两个属性:SQL表达式模板以及列和属性的列表来创建。SQL表达式模板使用标记表示法,其中{$$n}是标记,其中n从该列表中引用特定列或属性。列和属性的列表是有序的,并且列或属性的列表中的位置对应于标记“n”值。
例如,SQL表达式模板(template=“{$$1}||″||{$$2}”)可以与对应的列表例如list=“Column CUSTOMER.FIRSTNAME,AttributeLastName”一起使用以串接客户的名和姓,其中在名和姓之间留有一个空格。通过以正确的列表引用替换SQL表达式模板标记,SQL表达式是:“Customer.FirstName||″||LastName”。属性引用进一步被扩展为列引用以形成SQL表达式:“Customer.FirstName||″||Customer.LastName”。
在数据仓库或数据集市的设计中,属性可以担当多个角色。属性可担当的角色是:级别、描述、维属性、维键或键。
级别属性用于分级结构中。常见的级别属性的例子是:年和季度、州和城市。描述属性用于描述类型的属性关系中,并且将附加的描述信息关联到另一个属性。例如,被称作Product(产品)的表可能具有产品代码的属性以及文本描述的描述属性。维属性用于维类型的属性关系中,并且定义另一个属性的特定特征和特性。常见的维属性的例子是Population(人口)、Size(尺寸)和Weight(重量)。维键属性用来连接事实和维元数据对象,并且表示维表中的主键,或者要在事实表中使用的来自维表的外键。键属性用来连接事实或维元数据对象内的表。键属性经常用于雪花模式中。
属性和度量共享相同的名称空间。因此,当由模式完全限定时,每个名称在属性和度量之间是唯一的。属性和度量元数据对象是关系数据库列的抽象。然而,它们由可包括多列的SQL表达式定义。度量比属性更特殊化(specialized)-它们包括用来从较低级别数据计算较高级别汇总的聚合函数(列函数)。
表9描述了根据本发明特定实现的定义属性元数据对象的元数据对象特定属性。
表9
属性 | 描述 |
SQL表达式模板 | 定义属性的SQL表达式。SQL表达式模板通过使用{$$n}表示法来引用列、和属性,其中,n是对应于列和属性的列表的序号。 |
用于SQL表达式的列和属性的列表 | 组成属性的所有列和属性的有序列表。如在SQL表达式模板中所规定的那样应用这些列和属性。 |
数据类型(模式、名称、长度、标度) | 确定属性的数据类型。基于SQL数据类型,并且由数据类型模式、名称、长度和标度组成。 |
角色[级别、描述、维属性(DIMATTR)、维键(DIMKEY)、键] | 属性担当的角色 |
属性关系一般地描述属性的关系。这些关系由左和右属性、类型、基数(cardinality)以及关系是否确定函数相关性来描述。该类型定义右属性相对于左属性是什么角色。例如,ProductName(产品名称)右属性描述ProductCode(产品代码)左属性。ProductName与ProductCode之间的关系类型是DESCRIPTION(描述)。基数描述左和右属性的实例如何相关,并且基于基数来解释它。在1∶1基数中,对于每个右属性实例,存在最多一个左属性实例。在1∶N基数中,对于每个右属性实例,存在最多一个左属性实例,而对于每个左属性实例,存在任意数目的右属性实例。在N∶1基数中,对于每个右属性实例,存在任意数目的左属性实例,而对于每个左属性实例,存在最多一个右属性实例。在N∶N基数中,对于每个右属性实例,存在任意数目的左属性实例,并且对于每个左属性实例,存在任意数目的右属性实例。
函数相关性属性(property)告诉该属性关系是否还能用作函数相关性。函数相关性定义两个属性之间的函数关系。例如,可以在诸如City(城市)和Mayor(市长)或者Product(产品)和Color(颜色)的属性之间定义函数相关性。函数相关性告诉每一个City值确定Mayor值,或者每一个Product值确定Color值。这意味着在该关系中描述的基数由设计者设置,这对于查询优化是有用的。
属性关系的一个使用在维中的分级结构的上下文内。与分级结构属性直接相关的属性可以作为分级结构的一部分来查询。这允许分级结构的每个级别定义补充给定级别的信息的属性。例如,分级结构可以具有City(城市)属性。City属性可以通过属性关系与City_Population(城市人口)属性相关。通过该属性关系信息,City_Population信息可以包括在包括City的查询中。
根据本发明的特定实现,在下表10中描述了定义属性关系元数据对象的元数据对象特定属性。
表10
属性 | 描述 |
左属性 | 在该关系中使用的左属性。 |
右属性 | 在该关系中使用的右属性。 |
类型[描述,关联] | 由属性关系描述的关系类型。该类型用来确定属性扮演什么角色。 |
基数[1∶1,1∶N,N∶1,N∶N] | 在连接中预期的基数。 |
函数相关性[是,否] | 确定该属性关系是否还是函数相关性。 |
连接元数据对象连接由两个元数据对象引用的关系表。两个元数据对象可以通过一对或多对映射到关系表列的属性元数据对象来连接。在事实到维连接中,连接元数据对象连接来自事实元数据对象的属性与来自维元数据对象的属性。在复合连接中,属性对的集合来自相同的表集合。例如,为了连接具有复合键FirstName(名)和LastName(名)的关系表1与具有复合键FName和Lname的关系表2,使用一个具有两个连接谓词(predicate)的关系连接;一个连接谓词用于Table1.FirstName和Table2.Fname,第二连接谓词用于Table1.LastName和Table2.LName。关于该复合连接的信息被存储在一个连接元数据对象中。
连接元数据对象由左属性、右属性和连接操作符的列表定义。另外,规定了连接类型和预期基数。可以在两个事实、两维或一个事实和一维之间使用连接。连接元数据对象被立方体模型、事实和维对象参考。
根据本发明的特定实现,在下表11中描述了定义连接元数据对象的元数据对象特定属性。
表11
属性 | 描述 |
(左属性,右属性,操作符)的列表 | 左属性:连接左侧的属性。右属性:连接右侧的属性。操作符:在连接中预期的操作符[=,<,>,◇,>=,<=]。 |
类型[内部,完全外部、左外部、右外部] | 预期的连接类型。 |
基数[1∶1,1∶N,N∶1,N∶N] | 在连接中预期的基数。 |
立方体是可以使用单个SQL语句表达(deliver)的OLAP立方体的非常精确定义。每个立方体从单个立方体模型派生。立方体事实和立方体维的列表是被引用的立方体模型中立方体事实和立方体维的列表的子集。立方体视图名称也被定义,其表示数据库中的立方体。因为立方体维允许每个立方体维存在一个立方体分级结构,所以立方体适于不使用多个分级结构的工具和应用。
立方体的目的是定义OLAP结构的标准关系视图。除了关系视图之外,立方体提供按照多维描述其列的角色的扩展描述(例如,XML文档)。在定义立方体的过程中,设计者选择可能元素的子集,为每维选择单个分级结构。这确保了立方体无歧义地定义单个关系结果集。立方体的简单性使得立方体有用于较不复杂的OLAP应用,例如由万维网(“Web”)服务支持的便携式设备。
根据本发明的特定实现,在下表12中描述了立方体元数据对象的元数据对象特定属性。
表12
属性 | 描述 |
立方体模型 | 从其派生立方体的立方体模型。 |
立方体事实 | 在立方体中使用的立方体事实。立方体事实从立方体模型中的事实元数据对象派生。 |
立方体维的列表 | 在立方体中使用的立方体维的有序列表。立方体维从立方体模型中的维派生。一个立方体分级结构与每个立方体维相关联。 |
立方体视图 | 数据库中表示立方体的视图 |
扩展描述 | 按照多维模型描述列的角色及其关系的XML文档 |
立方体事实元数据对象具有来自特定事实元数据对象的有序列表中的度量的子集。立方体事实元数据对象向立方体提供了界定立方体模型的事实的灵活性。从父事实元数据对象引用诸如连接和属性的结构信息。根据本发明的特定实现,在下表13中描述了定义立方体事实元数据对象的元数据对象特定属性。
表13
属性 | 描述 |
事实 | 从其派生立方体事实的事实。 |
度量列表 | 在立方体中使用的度量的有序列表。所有度量是从其派生立方体事实的事实的一部分。 |
立方体维元数据对象用来界定要在立方体中使用的维。立方体维元数据对象引用从其派生它的维以及给定立方体的相关立方体分级结构。在特定实现中,一个立方体分级结构可以应用于立方体维。从维定义中引用应用于立方体维的连接和属性。根据本发明的特定实现,在下表14中描述了定义立方体维元数据对象的元数据对象特定属性。
表14
属性 | 描述 |
维 | 从其派生立方体维的维。 |
立方体分级结构 | 应用于立方体维的立方体分级结构。 |
立方体分级结构元数据对象是分级结构的被界定(scoped)版本,并且在立方体中使用。立方体分级结构引用从其派生它的分级结构,并且可具有来自父分级结构的属性的子集。另外,立方体分级结构元数据对象引用应用于立方体上的属性关系。在特定实现中,可以为立方体的立方体维定义一个立方体分级结构。立方体分级结构元数据对象具有与从其派生该立方体分级结构元数据对象的分级结构相同的分级结构类型和部署机制。
立方体分级结构非常类似于分级结构;然而,立方体维参考单个立方体分级结构。这允许单个SELECT语句计算立方体的各个单元。
根据本发明的特定实现,在下表15中描述了定义立方体分级结构元数据对象的元数据对象特定属性。
表15
属性 | 描述 |
分级结构 | 从其派生立方体分级结构的分级结构。 |
属性列表 | 从立方体分级结构的顶部到底部所有属性的有序列表。属性的次序应当与父分级结构中的相同。 |
属性关系集 | 将立方体分级结构属性链接到其它属性的所有属性关系的集合。 |
图16示出了根据本发明特定实现的一些元数据对象之间的一些关系。箭头表示元数据对象引用另一个元数据对象。例如,立方体元数据对象1610引用立方体模型元数据对象1600。根据本发明的特定实现,在下表16中示出了更详细的元数据对象的关系描述。
表16
元数据元数据对象1 | 引用 | 元数据元数据对象2 |
立方体模型 | 零或一 | 事实 |
立方体模型 | 零或更多 | 维/连接 |
立方体 | 一 | 立方体模型 |
立方体 | 一 | 立方体事实 |
立方体 | 一或更多 | 立方体维 |
事实 | 一或更多 | 度量 |
事实 | 零或更多 | 属性 |
事实 | 零或更多 | 连接 |
维 | 一或更多 | 属性 |
维 | 零或更多 | 连接 |
维 | 零或更多 | 分级结构 |
立方体事实 | 一 | 事实 |
立方体事实 | 一或更多 | 度量 |
立方体维 | 一 | 维 |
立方体维 | 一或更多 | 属性 |
立方体维 | 一 | 立方体分级结构 |
分级结构 | 一或更多 | 属性 |
分级结构 | 零或更多 | 属性关系 |
立方体分级结构 | 一 | 分级结构 |
立方体分级结构 | 一或更多 | 属性 |
立方体分级结构 | 零或更多 | 属性关系 |
度量 | 零或更多 | 度量 |
度量 | 零或更多 | 属性 |
度量 | 零或更多 | 维 |
属性 | 零或更多 | 属性 |
属性关系 | 二 | 属性 |
连接 | 二的倍数(二的最小值) | 属性 |
根据特定实现,存在用于命名的元数据对象命名约定和规则。可以使用与在此所述不同的命名约定和规则而不脱离本发明的范围。存在两个不同的命名约定来对对象命名:普通和定界(delimited)。对于元数据对象,由于其灵活性,当对对象进行命名和引用数据库表和列时,使用定界约定。定界约定允许混合大小写名称、空格和特殊字符如国家语言字符。完整的字符集由对象所在数据库的代码页确定。
在特定实现中,除了命名约定之外,还对对象中的不同标识符应用一些规则。例如,模式具有1-30字节的长度,并且模式名称不以‘SYS’开头;名称具有1-128字节的长度;商业名称具有1-128字节的长度;注释具有0-254字节的长度;表模式(在引用列时使用)具有1-128字节的长度;表名称(在引用列时使用)具有1-128字节的长度,并且列名称(在引用列时使用)具有1-128字节的长度。
除了所施行(enforce)的关系之外,还为每个元数据对象描述附加规则。也就是,每一个元数据对象具有其自己的规则集,并且如果元数据对象遵循该元数据对象的所有元数据对象规则,则元数据对象的实例是合法的。这些规则分成三个类别:基本规则、立方体模型完整性规则和优化规则。下面对特定规则的讨论提供了用于本发明特定实现的规则集。在其它实现中,可以修改用于一个或多个元数据对象的规则集而不脱离本发明的范围。
立方体模型元数据对象的基本规则是:(1)立方体模型元数据对象参考零个或一个事实元数据对象;(2)立方体模型元数据对象参考零个或更多个维;(3)维-连接对具有维和连接两者;(4)如果在事实元数据对象的属性列表中找到连接一侧的所有属性并且在维元数据对象的属性列表中找到所有另一侧属性,则与维相关联的连接是合法的;以及(5)对于在立方体模型的事实中引用的每个度量,由立方体模型引用度量聚合中的所有显式维引用。当立方体模型引用至少一维时,具有空维集的聚合匹配前面未被引用的立方体模型中的至少一维。
立方体元数据对象的基本规则是:(1)立方体元数据对象参考一个立方体事实;(2)立方体元数据对象参考至少一个立方体维;(3)立方体事实从在立方体模型中使用的事实派生;以及(4)立方体维从在立方体模型中使用的维派生。
事实元数据对象的基本规则是:(1)事实元数据对象参考至少一个度量;(2)由事实引用的所有属性和度量是可连接的;(3)在事实元数据对象上下文中,可以在两个给定表之间定义单个连接;(4)在事实元数据对象中不存在连接环;以及(5)由事实元数据对象引用的所有连接参考事实元数据对象属性。
维元数据对象的基本规则是:(1)维元数据对象参考至少一个属性;(2)由维引用的属性是可连接的;(3)不存在连接环;(4)在维上下文中,在任何两个给定表之间定义单个连接;(5)由维引用的分级结构参考该维的属性;(6)由维的分级结构引用的属性关系参考该维的属性;以及(7)由维引用的连接参考该维的属性。
立方体事实元数据对象的基本规则是:(1)立方体事实元数据对象参考至少一个事实;(2)立方体事实元数据对象参考至少一个度量;以及(3)由立方体事实元数据对象引用的度量是事实元数据对象的一部分。
立方体维元数据对象的基本规则如下:(1)立方体维元数据对象参考一维;(2)立方体维元数据对象参考立方体分级结构;以及(3)由立方体维元数据对象引用的立方体分级结构从由立方体维元数据对象的维引用的分级结构派生。
分级结构元数据对象的基本规则是:(1)分级结构元数据对象参考至少一个属性;(2)对于递归部署,要求两个属性;(3)分级结构内的每一个属性关系具有左属性作为该分级结构的一部分;(4)该分级结构内的每一个属性关系具有1∶1或N∶1的基数;以及(5)根据本发明的特定实现如表17所示允许分级结构类型和分级结构部署的特定组合。
表17
类型/部署 | 标准 | 递归 |
平衡 | X | |
不规则 | X | |
非平衡 | X | X |
网络 | X |
立方体分级结构元数据对象的基本规则是:(1)立方体分级结构元数据对象参考一个分级结构;(2)立方体分级结构元数据对象参考至少一个属性;(3)由立方体分级结构元数据对象引用的属性是该分级结构的一部分;(4)立方体分级结构元数据对象中属性的次序与该分级结构中的相同(被定义为网络的分级结构除外);(5)分级结构内的每一个属性关系具有左属性作为该分级结构的一部分;以及(6)在立方体分级结构元数据对象中引用的属性关系也在定义立方体分级结构的分级结构中被引用。
度量元数据对象的基本规则是:(1)度量元数据对象可以具有属性、列、度量,或者不具有它们中的任一个,作为每个SQL表达式模板的参数;(2)用作SQL模板参数的属性和度量不能在属性和/或度量之间产生相关环;(3)在度量元数据对象中定义的每一个SQL模板不是空字符串;(4)SQL模板不使用聚合函数;(5)如果引用至少一个度量以及仅仅引用度量,则不需要聚合;(6)如果存在聚合,则SQL模板的数目匹配第一聚合函数的参数数目;(7)具有多个SQL模板的度量元数据对象在聚合脚本中定义至少一个聚合步骤;(8)如果度量元数据对象A参考定义多个SQL模板的度量元数据对象B,则度量元数据对象A没有聚合脚本;该规则适用于度量引用树中的所有级别;(9)多参数聚合函数用作第一聚合;(10)如果度量元数据对象定义一个或多个聚合,则一个聚合可具有空维集;(11)在度量元数据对象内,维不可以在聚合内或者跨越聚合被引用多于一次;(12)在SQL表达式模板内,标记指示符(即{$$#})以1开始编号,并且是连续的而无编号间断;以及(13)在SQL表达式内,每个列、属性和度量被引用至少一次。
属性元数据对象的基本规则是:(1)属性元数据对象可以具有属性、列表或者不具有它们中的任一个作为SQL模板的参数;(2)用作SQL模板参数的属性不能在属性之间产生相关环;(3)SQL模板不能是空字符串或空白字符串;(4)不允许聚合函数是SQL模板的一部分;(5)在SQL表达式模板内,标记指示符(即{$$#})以1开始编号,并且是连续的而无编号间断;以及(6)在SQL表达式内,每个列、属性和度量被引用至少一次。
属性关系元数据对象的基本规则是:(1)属性关系元数据对象参考两个属性;以及(2)属性关系元数据对象不能被定义为具有基数=N∶N和函数相关性=是。
连接元数据对象的基本规则是:(1)连接元数据对象参考至少一个由左属性、右属性和操作符号组成的三元组;(2)连接元数据对象中的所有左属性解析(resolve)成单个表的一个或多个列;(3)连接元数据对象中的所有右属性解析成单个表的一个或多个列;以及(4)连接元数据对象的每个三元组定义合法操作;左和右属性的数据类型,以及为它们定义的操作是兼容的。
立方体模型完整性规则扩展基本规则,以便确保立方体模型具有所需的与其它元数据对象的链接,以便允许形成有效的仓库SQL查询。立方体模型元数据对象的立方体模型完整性规则是:(1)立方体模型元数据对象参考一个事实;(2)立方体模型元数据对象参考一个或多个维。
优化规则扩展立方体模型完整性规则,以便确保可以执行仓库SQL查询的优化。
立方体模型元数据对象的优化规则是:(1)在事实到维中使用的连接具有1∶1或N∶1的基数,并且将事实表连接到维的主表。
维元数据对象的优化规则是:(1)考虑由维的连接形成的连接网络,存在至少一个表、主表,其中从该表辐射的所有连接具有N∶1或1∶1的基数。
连接元数据对象的优化规则是:(1)在参与连接的列上定义有约束;如果连接是自连接,即在等式(equality)的两侧都使用相同的列集,则定义匹配该列集的主键;在所有其它情况下,当一侧的列集不同于连接的另一侧,则主键匹配连接一侧的列,并且外键匹配其它列集以及引用该主键;(2)连接基数是1∶1、N∶1或1∶N;如果连接是自连接,则基数是1∶1,在所有其它连接的情况下,基数在定义了主键的一侧为1,而在定义了外键的一侧为N;如果外键侧也具有在其上定义的主键,则使用1作为基数;(3)在连接中使用的所有属性都解析成不可为空的SQL表达式;以及(4)连接类型是内部连接。
A.4
元数据对象例子
图17示出了根据本发明特定实现的由两个维表1710、1720和事实表1700组成的星形模式。两条线1730、1740表示事实表1700与维表1710、1720之间的连接。在特定实现中,数据库设计者使用建模工具或用户接口150可以创建元数据对象130的元数据对象实例。如果元数据对象与新的模型重叠,则在生成多维元数据期间定义的大多数元数据对象130可以被复用于新的模型
图18A-18E示出了根据本发明特定实现的可以针对图17的星形模式生成的元数据对象实例的可能集合,并且为简单起见,示出了元数据对象的一些属性。具体地说,图18A-18E中的一些被省略的属性是常见属性。例如,图18A-18E示出了立方体模型元数据对象实例1800、立方体元数据对象实例1802、事实元数据对象实例1804、立方体事实元数据对象实例1806、度量元数据对象实例1808、1810、维元数据对象实例1812、1814、立方体维元数据对象实例1816、1818、分级结构元数据对象实例1820、1822、1824、立方体分级结构元数据对象实例1826、1828、连接元数据对象实例1830、1832以及属性元数据对象实例1834-1848。
用户可以使用用户接口150来创建元数据对象。在创建空的立方体模型元数据对象之后,创建事实元数据对象和维元数据对象,并且通过创建适当的连接元数据对象将它们连接到立方体模型元数据对象。
可以修改在此讨论的元数据对象的属性,而不脱离本发明的范围。
B.
规定用于关系在线分析处理(ROLAP)引擎的多维计算
OLAP多维元数据系统100使得能够创建度量元数据对象以协助多维计算。在特定实现中,度量元数据对象包括在表8中定义的特定属性。
度量元数据对象中的度量由SQL表达式的聚合来定义。具体地说,将表列、属性和度量映射到SQL表达式模板,以构建SQL表达式。然后,使用所得到的SQL表达式作为度量元数据对象的第一聚合函数的输入。如果度量元数据对象具有多于一个聚合,则按照所列次序执行聚合函数,其中每个后继聚合以前一聚合的结果作为其输入。如果度量元数据对象的SQL表达式仅引用其它度量,则省略聚合函数,这是因为被引用的度量描述任何所需的聚合。
在计算度量时使用的SQL表达式通过组合两个属性来创建:SQL表达式模板的列表以及列、属性和度量的列表。SQL表达式模板使用标记表示法,其中{$$n}是标记,并且n引用该列表中的特定列、属性或度量。列、属性和度量的列表是有序的,并且列、属性或度量的列表中的位置对应于标记“n”值。由于大多数聚合函数接受单个表达式作为输入,因此对于大多数聚合函数,该列表中SQL表达式模板的数目为一。然而,当使用诸如CORRELATION的聚合函数时,SQL表达式模板的数目匹配由聚合函数接受的输入参数的数目。
同样地,使用SQL表达式作为对第一聚合的输入。每个聚合规定应用于对应维集的函数。该聚合函数可以是由底层RDBMS 110支持的任何聚合函数,例如包括SUM、COUNT、MIN、MAX和CORRELATION。在特定实现中,每维由度量元数据对象聚合一次。如果维集为空,则对未被该列表中的任何其它聚合特定使用的立方体或立方体模型中的所有维应用聚合函数。
多维元数据软件120使用度量元数据对象中的元数据,自动地生成用于生成立方体视图的SQL语句。
B.1
度量要求
该章节描述根据本发明特定实现的一些度量要求。
度量的一个要求是支持度量内的特定计算次序。由立方体模型元数据对象或立方体元数据对象引用的度量元数据对象集的计算次序无需相同-每个度量元数据对象可以规定与任何其它度量元数据对象的计算次序不同的计算次序。例如,出售量=SUM(收益/单价),并且利润率=SUM(利润)/SUM(收益)。图19示出了根据本发明特定实现的表A1900,其表示基本数据。名称为“衣服”的成员是裤子1902、衬衫1904和领带1906的父,并且衣服的出售量使用单价1910和收益1912来确定:(680/40)+(780/60)+(175/25)=17+13+7=37。衣服的利润率使用收益1912和利润1914来确定:(68+117+52.5)/(680+780+175)=237.5/1635=0.145。
度量的另一个要求是支持带多个输入参数的聚合函数,例如相关操作(例如,CORRELATION(Revenue,Profit))。度量对象需要为每个聚合函数输入定义独立的表达式。
度量的另一个要求是支持半加性(semi-additive)度量,例如快照度量(例如,Inventory(库存))。例如,对于Market和Product维,执行求和操作(例如,SUM(Inventory))。对于Time维,执行MIN操作(例如,MIN(Inventory))。
图20示出了根据本发明特定实现的表B 2000,其表示具有聚合:(SUM,Market)和(Min,Time)的度量。在表B 2000中,不带星号(例如,*)或加号(例如,+)的数表示基本数据。带星号的数表示(SUM,Market)的聚合。带加号的数表示(Min,Time)的聚合。例如,针对加利福尼亚2002和2004年1月的(SUM,Market)是28,并且针对加利福尼亚2002和2006年第1季度的(Min,Time)是25。
度量的附加要求是对于每维支持一个聚合函数,支持跨越多维的不同计算次序;以及针对(targeting to)复杂应用(例如,通过(SUM,Product)、(AVG,Time),(MAX,Market)查找具有最大平均库存的市场位置)。针对复杂应用是半加性度量的更一般性表示,下面参照图23对此进行进一步的描述。另外,针对复杂应用的要求由下面进一步描述的非对称度量表示。非对称度量在聚合列表中定义多个聚合。
图21A-21D示出了根据本发明特定实现的表C 2100,其表示具有聚合:(SUM,Product)(即产品之和)、(AVG,Time)(即时间上的平均值)和(Max,Market)(即市场的最大值)的度量。在表C 2100中,不带星号(例如,*)或加号(例如,+)或者短划线(例如,-)的数表示基本数据。也就是,在图21A中示出了基本数据。在图21B中,在表C 2100中,添加了(SUM,Product)的聚合数,并且它们以星号标识。例如,对于衣服2102、洛杉矶2104、2105年1月,(SUM,Product)为66。在图21C中,在表C 2100中,添加了(AVG,Time)的聚合数,并且它们以加号标识。例如,对于裤子2106、圣何塞2108、2109年第一季度(QTR1),(AVG,Time)为11。在图21D中, 添加了(MAX,Market)的聚合数,并且它们由短划线(例如,-)标识。例如,对于衬衫2110、加利福尼亚2112、2105年1月,(MAX,Market)为36。
B.2
描述度量
在本发明的特定实现中,可以创建度量元数据对象,其包括表达式列表和聚合列表。在章节A中详细地讨论了度量元数据对象。为易于理解起见,在该章节中也将讨论度量元数据对象。度量元数据对象中的表达式列表包括用于每个表达式的SQL表达式模板以及用于每个SQL表达式模板的列、属性和度量的列表。聚合列表中的每个条目包括聚合函数和对应的维集。空的维集意味着所有剩余维要用于聚合函数。在特定实现中,对于度量元数据对象,只有一个聚合可具有空的维集。
图22示出了根据本发明特定实现的两个全加性度量元数据对象(Cost 2210和Revenue 2220)的创建。在图22的例子中,存在三个维,即Product 2202、Market 2204和Time 2206。每个度量元数据对象2210、2220规定<NULL>维集,其意味着所有维都用于SUM的聚合函数。
为具有三维:Product 2202、Market 2204和Time 2206的立方体模型创建Cost度量元数据对象2210。Cost度量元数据对象2210具有SQL表达式模板2212(template=“{$$1}”),其表示到在列、属性和度量的单项目列表中规定的列的简单映射(list=“Column Fact.Cost”)。也就是,对于Cost度量元数据对象2210,表达式列表参考“{$$1}”,其是在生成SQL表达式时以列Fact.Cost替换的标记。聚合列表2214是(SUM,<NULL>),其中SUM是聚合函数,并且<NULL>是空的维集。来自SQL表达式模板2212的SQL表达式用作SUM聚合函数的输入,从而产生SQL:SUM(Fact.Cost)。
为具有三维:Product 2202、Market 2204和Time 2206的立方体模型创建Revenue度量元数据对象2220。Revenue度量元数据对象2220具有SQL表达式模板2222(template=“{$$1}”),其表示到在列、属性和度量的单项目列表中规定的列的简单映射,其中list=“ColumnFact.Rev”。也就是,对于Revenue度量元数据对象2220,表达式列表参考“{$$1}”,其是在生成SQL表达式时以列Fact.Rev替换的标记。聚合列表2224是(SUM,<NULL>),其中SUM是聚合函数,并且<NULL>是空的维集。来自SQL表达式模板2222的SQL表达式用作SUM聚合函数的输入,从而产生SQL:SUM(Fact.Rev)。
图23示出了根据本发明特定实现的半加性度量的创建。Inventory(库存)度量元数据对象2310具有SQL表达式模板2312(template=“{$$1}”),其表示到在列、属性和度量的单项目列表中规定的列的简单映射,其中list=“Column Fact.Inv”。在Inventory度量元数据对象2310中,聚合列表2314包括两个聚合SUM和AVG(即平均)。Inventory度量元数据对象2310最后聚合Time维,从而聚合列表规定用于SUM的<NULL>,其意味着在该列表中未被引用的所有维(即,不同于时间的其它维,在本例中其将是产品和市场),并且规定用于Time的AVG。首先执行SUM操作,并且使用该求和操作的结果来执行AVG操作。所得到的SQL表达式涉及多个聚合步骤。为易于理解起见,提供了所得到的SQL表达式的简单例子。例如,所得到的SQL表达式可以是AVG(S1),其中S1是SUM(Fact.Inv)的结果。
图24示出了根据本发明特定实现的具有聚合的复合度量的创建。在这种情况下,Profit(利润)度量元数据对象2410使用预定义的度量,并且确定要执行的聚合。更复杂的度量例如Profit可能具有SQL表达式模板2412(template=“{$$1}-{$$2}”),其中列、属性和度量的列表是list=“Measure Revenue,Column Fact.Cost”。也就是,该表达式列表包括“{$$1}-{$$2}”,其表示以来自Revenue度量元数据对象2220的聚合结果替换第一标记{$$1},并且以来自Cost度量元数据对象2210的聚合结果替换第二标记{$$2}。通过以正确的引用替换这些标记,SQL表达式变成:“Revenue-Fact.Cost”。通过将收益度量引用扩展成其列引用,SQL表达式变成:“Fact.Rev-Fact.Cost”。
Profit度量元数据对象2410的聚合列表2414为:(SUM,<NULL>)。在聚合列表2410中,规定<NULL>维集,以表示用于SUM操作的所有维。使用利润SQL表达式作为对SUM聚合函数的输入,Profit度量的SQL表达式是:SUM(Fact.Rev-Fact.Cost)。也就是,通过对从收益减去成本的所有减法结果进行求和来得到利润。
图25示出了根据本发明特定实现的没有聚合的复合度量的创建。在这种情况下,Profit Margin(利润率)度量元数据对象2510使用预定义的度量元数据对象(即Revenue度量元数据对象2220和Profit度量元数据对象2410),并且不要求执行任何聚合(在聚合列表2414中以<NULL>而非聚合表示)。在这种情况下,聚合来自基本度量。
Profit Margin度量元数据对象具有SQL表达式模板2512(template=“{$$1}/{$$2}”)。第一标记{$$1}以来自Profit度量元数据对象2410的聚合结果替换,而第二标记{$$2}以来自Revenue度量元数据对象2220的聚合结果替换。这样,所得到的用于Profit Margin度量的SQL表达式为SUM(Fact.Rev-Fact.Cost)/SUM(Fact.Rev)。也就是,计算利润之和,计算收益之和,并且通过将利润除以收益来获得利润率。
图26示出了根据本发明特定实现的具有OLAP函数的度量的创建。Profit Rank(利润排名)度量元数据对象2610利用RANK函数(例如,可从DB2 UDB RDBMS获得)以对利润度量进行排名。新的Profit Rank度量元数据对象2610不需要任何聚合。具体地说,ProfitRank度量元数据对象2610具有SQL表达式模板(template=“RANK()OVER(ORDER BY{$$1}”),其表示以来自Profit度量元数据对象2410的聚合结果替换第一标记{$$1}。聚合列表2614通过<NULL>而非聚合函数来表示不存在聚合。所得到的用于RANK度量的SQL表达式是RANK()OVER(ORDER BY SUM(Fact.Rev-Fact.Cost))。
图27示出了根据本发明特定实现的具有聚合和多个输入的度量。RevProfit Correlation(收益利润相关)度量元数据对象2710利用Revenue和Profit度量元数据对象2220、2410。对于RevProfitCorrelation度量元数据对象,它具有两个SQL表达式模板2712,每一个都具有以{$$1}表示的第一标记。对于SQL表达式模板2712(template=“{$$1}”),以来自Revenue度量元数据对象2220的聚合结果替换第一标记{$$1}。对于SQL表达式模板2713(template=“{$$1}”),以来自Profit度量元数据对象2410的聚合结果替换第一标记{$$1}。然后,执行相关。相关是提供两个数列彼此相关的程度的测量的统计函数。所得到的用于Correlation度量的SQL表达式是CORRELATION(Fact.Rev,(Fact.Rev-Fact.Cost))。聚合列表2714规定CORRELATION操作和用来表示所有维的<NULL>维集。
图28示出了根据本发明某些实现的来自图22-27的所有定义的度量元数据对象。一些度量元数据对象基于其它度量元数据对象而构建。例如,RevProfit Correlation度量元数据对象2710基于Revenue度量元数据对象2220和Profit度量元数据对象2410而构建,而Profit度量元数据对象2410基于Cost和Revenue度量元数据对象2210、2220而构建。
B.3
为以一个或多个度量元数据对象表示的度量生成SQL语句
多维元数据软件120生成计算由度量元数据对象表示的度量集的单个SQL语句。图29A示出了根据本发明特定实现的用于从一个或多个度量元数据对象生成SQL语句的逻辑。控制在块2900中以这样的操作开始:接收一个或多个度量元数据对象中的每一个的度量描述并且基于这些度量描述而生成该一个或多个度量元数据对象,例如图22-28所示的度量元数据对象中的一个或多个。在块2902中,接收引用所有度量元数据对象的事实元数据对象的事实描述,并且从该事实描述生成事实元数据对象。另外,事实描述引用属性元数据对象和连接元数据对象。在块2903中,接收一个或多个维元数据对象中的每一个的维描述,并且从这些维描述生成该一个或多个维元数据对象。该维描述引用一个或多个属性元数据对象、零个或更多个连接元数据对象、以及一个或多个分级结构元数据对象。每个分级结构元数据对象包括用来构建ROLLUP子句的信息。具体地说,立方体模型元数据对象可以引用若干可能的分级结构,但是在本发明的特定实现中,SQL生成要求选择单个分级结构。在块2904中,接收引用事实和一个或多个维元数据对象的立方体模型元数据对象的立方体模型描述,并且从该立方体模型描述生成立方体模型元数据对象。在块2906中,接收立方体模型元数据对象的子集的选择。在块2908中,根据该选择来生成立方体元数据对象。另外,从一个或多个度量元数据对象中的元数据生成用于创建立方体视图的SQL语句。SQL语句的生成还可以使用其它元数据对象(例如,分级结构元数据对象)中的其它元数据。
具体地说,SQL语句的生成可以从分级结构元数据对象中的元数据生成一个或多个ROLLUP操作符。ROLLUP操作符,GROUP BY子句的扩展,基于列的列表而生成多个小计编组子句。编组子句使用来自分级结构元数据对象的信息来生成。就OLAP而言,这在给定维中具有分级结构计算的相同效果。考虑诸如位置的维,其具有由国家、州和城市组成的分级结构。ROLLUP(country,state,city)子句生成表示该分级结构的计算的编组子句。n个元素(c1,c2,...,cn-1,cn)的ROLLUP的一般规定等同于下面编组子句:
(c1,c2,...,cn-1,cn)
(c1,c2,...,cn-1)
...
(c1,c2)
(c1)
注意,ROLLUP子句中的n个元素翻译成(n+1)个编组子句。OLAP应用可以具有多维(例如,在维元数据对象中定义)。用于每维的ROLLUP以关系方式返回表示OLAP立方体的结果。在单个语句中组合多于一个ROLLUP操作符产生为每个ROLLUP生成的编组子句的笛卡尔乘积。例如,在单个语句中组合下面ROLLUP操作符对ROLLUP(country,state)、ROLLUP(year,month)导致生成下面编组子句,其是构成立方体的编组子句的集合:
(国家,州,年,月)
(国家,州,年)
(国家,州)
(国家,年,月)
(国家,年)
(国家)
(年,月)
(年)
()
使用ROLLUP操作符的查询在单个结果集中包括所有生成的编组子句。因此,结果集包括所有编组子句列加上聚合列的联合。为了组合不同编组集的结果,在给定行不是成员的任何编组列中返回空(null),如下面例子所示。对于单维的ROLLUP查询的结果,参见表18。生成包括ROLLUP操作符的SELECT语句。例如,在下面SELECT语句中,从度量元数据对象生成“sum”操作符,并且从连接元数据对象生成连接。
SELECT country,state,sum(amt)AS revenue
FROM fact f,location l
WHERE f,lid=l.lid
GROUP BY ROLLUP(country,state)
表18
Country(国家) | State(州) | Revenue(收益) |
- | - | 235329.23999999999 |
加拿大 | - | 35754.639999999999 |
加拿大 | ON | 35754.639999999999 |
美国 | - | 199574.60000000001 |
美国 | CA | 103910.41 |
美国 | NY | 94665.190000000002 |
在表18的例子中,以州列中的空(以短划线示出)表示具有美国的聚合收益的行。以国家和州列中的空表示具有所有国家和州的聚合收益的行。
虽然图29A描述了使用度量元数据对象来生成立方体视图,但是在另外的实现中,可以在不创建立方体视图的情况下使用度量元数据对象。也就是,立方体视图是使用度量元数据对象的定义以便规定计算的一种方式。使用度量元数据对象的定义的另一种方式是让应用读取度量定义和立方体模型元数据,并且从这些度量定义和立方体模型元数据直接生成SQL语句。
图29B示出了根据本发明特定实现的用于从一个或多个度量元数据对象和立方体模型元数据对象生成SQL语句的逻辑。控制在块2910中以这样的操作开始:接收一个或多个度量元数据对象中的每一个的度量描述,并且基于这些度量描述而生成该一个或多个度量元数据对象,例如图22-28所示的度量元数据对象中的一个。在块2912中,接收引用所有度量元数据对象的事实元数据对象的事实描述,并且从该事实描述生成事实元数据对象。另外,该事实描述引用属性元数据对象和连接元数据对象。在块2913中,接收一个或多个维元数据对象中的每一个的维描述,并且从这些维描述生成该一个或多个维元数据对象。该维描述引用一个或多个属性元数据对象、零个或更多个连接元数据对象、以及一个或多个分级结构元数据对象。每个分级结构元数据对象包括用来构建ROLLUP子句的信息。具体地说,立方体模型元数据对象可以引用若干可能的分级结构,但是在本发明的特定实现中,SQL生成要求选择单个分级结构。在块2914中,接收引用事实和一个或多个维元数据对象的立方体模型元数据对象的立方体模型描述,并且从该立方体模型描述生成立方体模型元数据对象。在块2916中,由应用程序对立方体模型元数据对象的子集进行选择。在块2918中,在该应用程序的控制之下,使用该立方体模型元数据对象和一个或多个度量元数据对象,生成用来检索多维信息的SQL语句。SQL语句的生成还可以使用其它元数据对象(例如,分级结构元数据对象)中的其它元数据。
多维元数据软件120解决采用单个SQL语句计算多个度量中的关键问题(即度量的对称性、所涉及聚合函数的分布性、以及维在聚合脚本中出现的次序)。另外,多维元数据软件120处理各种查询类型(例如,总计查询、基于切片(Slice)的查询、以及完整立方体查询)。在总计切片中,仅返回所有维的总计。切片是子立方体,而完整立方体是整个立方体。
度量被表示为度量元数据对象。当在单个SQL语句中要计算多个度量时,本发明的实现确定这些度量是否兼容。兼容度量对于它们引用的维具有相同的聚合次序规定。如果一组度量是不兼容的,则本发明确定至少一种方式来计算要在单个SQL语句中组合的不兼容度量。在特定实现中,可以使用JOIN操作(也被称作“连接”)来组合不兼容的度量,并且该处理在图29C中作进一步的描述。在特定实现中,可以通过重构(restructure)聚合步骤使得它们兼容(也被称作“嵌套”)来组合不兼容的度量,并且该处理在图29D中作进一步的描述。在特定实现中,实现连接和嵌套的混合形式,其中连接一些度量集,并且嵌套一些度量集。
图29C示出了根据本发明特定实现的用于组合度量的逻辑的进一步详情。图29C的处理示出了用来生成用于计算所有度量的单个SQL语句的最高级逻辑。本发明的实现试图生成最少数目的兼容度量集。另外,当多个集合不可避免时,由于度量不兼容性,因此优选的集合组合是这样的组合,其具有对称度量集,所有对称度量位于其中。
在图29C中,控制在块2940中以访问度量集开始。度量集包括一个或多个度量。通过引用一个或多个元数据对象来访问这些度量。在块2942中,将该一个或多个度量元数据对象中的度量集分成对称度量集和非对称度量集。对称度量具有单个聚合操作符,并且不规定任何特定的聚合次序。在很多应用中,这样的度量是常见的。所有对称度量是兼容的。可以通过使用每维的ROLLUP操作符来生成用来计算所有对称度量的单个SQL语句。例如,在前面例子中使用的Revenue、Cost和Product度量是对称的。一些度量元数据对象可以引用一个或多个其它度量。例如,Profit Margin度量引用Profit和Revenue度量,其引用Income(收入)和Expense(开支)度量。由于Income和Expense度量是对称的,因此Profit Margin度量在对称度量集中。在块2944中,为对称度量集生成SQL语句。在块2945中,为非对称度量集生成SQL语句。可以独立地和同时地或者以任何次序处理对称和非对称度量集。在块2946中,组合对称度量集的SQL语句和非对称度量集的SQL语句,以形成用于检索多维信息的单个SQL语句。用来组合这两个语句的技术取决于非对称度量集的性质。当可以从公共的对称子立方体计算非对称集中的一些度量时,可以使用嵌套来通过将对称计算改写为基于公共对称子立方体的计算而构建的嵌套计算来组合这些度量和对称度量的计算。如果非对称集的任何度量要求以特定次序聚合多个维(即几乎没有或没有对称性)或者为立方体的多个维规定冲突的计算次序,则将这些非对称度量划分成共享相同计算次序的子集,并且生成通过内部连接而组合它们的SQL语句。然后,通过内部连接将这些不能通过嵌套而解析的具有不兼容性的非对称度量与对称度量和能够通过嵌套与对称度量组合的任何非对称度量进行组合。
图29D示出了根据本发明特定实现的用于使用嵌套来组合不兼容的度量的逻辑的进一步详情。控制在块2950中以访问度量集开始。在块2952中,以一个度量开始(例如,第一度量),选择该度量集中的下一个度量。在块2954中,确定该度量是否与前面的度量兼容。对于被处理的第一度量,该确定是该度量兼容(因为对于第一度量,不存在前面度量)。如果该度量兼容,则处理继续到块2960,否则处理继续到块2956。在块2956中,确定是否可以改写一个或多个度量,使得所选的度量与前面的度量兼容。如果可以改写一个或多个度量,则处理继续到块2958,否则,处理继续到块2964。在块2958中,改写一个或多个度量。然后,确定是否存在要被处理的另一个度量。如果是,则处理循环回到块2952,否则处理继续到块2962。在块2962中,处理改写后的度量,以生成用于检索多维信息的SQL语句。如果所选度量与前面度量不兼容并且不能被改写,则在块2964中,通过参照图29C所述的技术连接这些度量。
图29E示出了根据本发明特定实现的为对称度量集和非对称度量集生成SQL语句的逻辑(块2944、2945)的进一步详情。控制在块2970中以这样的操作开始:将度量元数据对象中的一个或多个SQL表达式模板的表达式输入到在度量元数据对象中定义的聚合列表中的第一聚合。在块2972中,以一个聚合(例如,第一聚合)开始,处理下一个聚合。处理聚合的结果是SQL语句。如果该度量包含多个聚合,则使用由第一聚合产生的SQL语句作为下一个聚合的输入。这被称作嵌套SQL语句。在块2974中,确定聚合列表中是否存在要处理的另外聚合。如果是,则处理循环回到块2972,并且将前面聚合的处理输出输入到下一个聚合中。否则,处理继续到块2976。在块2976中,输出检索多维信息的结构化查询语言语句。在特定实现中,可以将SQL语句编目(catalogue)为立方体视图,并且由立方体元数据对象引用。
就计算多个度量而言,由多维元数据软件120解决度量的对称性、所涉及聚合函数的分布性以及维出现在聚合脚本中的次序。
关于对称性,对称度量在聚合列表中定义单个聚合,而非对称度量在聚合列表中定义多个聚合。当度量没有定义聚合时,则对称性由基本度量定义。在这一情形下,如果所有其基本度量是对称的,则度量是对称的,而如果任何其基本度量是非对称的,则度量是非对称的。图30示出了根据本发明特定实现的表D 3000,其列出一些度量并且表示哪些度量是对称的或者非对称的。例如,Cost度量3002是对称的,而Inventory度量3004是非对称的。表D 3000没有提供度量的详尽列表,并且其它度量也可以被定义为对称或非对称。
关于分布性(distributiveness),当聚合函数可被分解成多个聚合步骤而不改变该聚合函数的结果时,该聚合函数是分布式的(distributive)。例如,对于SUM,其是分布式的:单个聚合步骤=SUM(2,8,11)=21,并且该单个聚合步骤可以分成两个聚合步骤,例如:聚合步骤1具有步骤1a=SUM(2,8)和步骤1b=SUM(11);以及聚合步骤2=SUM(step1a,step1b)=SUM(10,11)=21。这示出了SUM是分布式函数,因为当单个步骤被分开时,其结果没有改变。当聚合函数不能在不改变聚合函数的结果的情况下分成多个聚合步骤时,该聚合函数是非分布式的。例如,平均(AVG)、标准偏差(STDDEV)和相关(CORRELATION)是非分布式的(non-distributive)。例如,对于AVG:单个聚合步骤=AVG(2,8,11)=7,并且该单个聚合步骤可以分成两个聚合步骤,例如聚合步骤1具有步骤1a=AVG(2,8)和步骤1b=AVG(11);以及聚合步骤2=AVG(step1a,step1b)=AVG(5,11)=8。这示出了该平均是非分布式度量,因为当单个聚合步骤被分开时,其结果可能改变。
图31示出了根据本发明特定实现的表E,其列出一些聚合函数,并且表示哪些聚合函数是分布式的以及哪些是非分布式的。例如,SUM聚合函数3102是分布式的,而AVG 3104和CORRELATION 3106聚合函数是非分布式的。表E没有提供聚合函数的详尽列表,并且其它聚合函数可以被分类为分布式或非分布式。
关于维在聚合脚本中出现的次序,理想的是,让事实表的所有度量使用相同数目的聚合步骤,并且让每个聚合步骤计算相同的维集。如果两个聚合步骤使用相同的聚合函数,则可以组合这两个聚合步骤。另外,如果两个聚合函数是分布式的,则可以将该聚合步骤分成两个或更多个聚合步骤。图32示出了根据本发明特定实现的表F 3200,其列出多个度量,以及如何可将聚合步骤分解成用于这些度量的多个聚合步骤。在表D 3200中,带星号的数表示计算度量的可选方式。例如,对于Cost度量3202,第一选项是产品、市场和时间维之和,而第二选项是首先执行产品和市场维之和,然后加入时间维。
B.4
为对称度量集生成SQL语句
多维元数据软件120为对称度量生成SQL语句。为易于理解起见,在这一章节中提供了已经为一些对称度量生成的SQL语句。例如,可以在报告中存储执行为总计(Grand Total)查询或任意切片(Arbitrary Slice)查询生成的SQL语句的结果。然而,执行为完整立方体查询生成的SQL语句的结果是本身可被查询的立方体视图。
对于所有类型的查询,为每个度量生成SQL表达式遵循图29E所述的流程。
例如,对于具有对称度量的总计查询,多维元数据软件120可以生成以下Select语句:
select SUM(f.Cost)as Cost,SUM(f.Rev)as Revenue,SUM(f.Rev-
f.Cost)as Profit,
SUM(f.Revenue-f.Cost)/SUM(f.Rev)as″Profit Margin″,
RANK () OVER(ORDER BY SUM(f.Rev-f.Cost))as″Profit Rank″,
CORRELATION(f.Revenue,f.Revenue-f.Cost)as″RevProfit
Correlation″from Fact f
对于具有对称度量的任意切片查询,多维元数据软件120可以生成以下Select语句:
select SUM(f.Cost)as Cost,SUM(f.Rev)as Revenue,SUM(f.Rev- f.Cost)as Profit, SUM(f.Revenue-f.Cost)/SUM(f.Rev)as″Profit Margin″, RANK () OVER(ORDER BY SUM(f.Rev-f.Cost))as″Profit Rank″, CORRELATION(f.Revenue,f.Revenue-f.Cost)as″RevProfit Correlation″, m.Country,m.State,t.Year from Fact f,Market m,Timet where f.marketid=m.marketid AND f.timeid=t.timeid group by m.Country,m.State,t.Year
对于具有对称度量的完整立方体查询,多维元数据软件120可以生成以下Select语句:
select SUM(f.Cost)as Cost,SUM(f.Rev)as Revenue,SUM(f.Rev- f.Cost)as Profit, SUM(f.Revenue-f.Cost)/SUM(f.Rev)as″Profit Margin″, RANK () OVER(ORDER BY SUM(f.Rev-f.Cost))as″Profit Rank″, CORRELATION(f.Revenue,f.Revenue-f.Cost)as″RevProfit Correlation″, m.Country,m.State,m.Citty, t.Year,t.Quarter,t.Month, p.Line,p.Group,p.Product, from Fact f,Market m,Time t,Product p where f.marketid=m.marketid AND f.timeid=t.timeid AND f.prodid= p.prodid group by ROLLUP(m.Country,m.State,m.City), ROLLUP(t.Year,t.Quarter,t.Month), ROLLUP(p.Line,p.Group,p.Product)
B.5
为非对称度量集生成SQL语句
多维元数据软件120为非对称度量生成SQL语句。为易于理解起见,在这一章节中提供了已经为一些非对称度量生成的SQL语句。例如可以在报告中存储执行为总计查询或任意切片查询生成的SQL语句的结果。然而,执行为完整立方体查询生成的SQL语句的结果是本身可被查询的立方体视图。
通过使用嵌套SELECT语句来计算非对称度量集。每一个聚合步骤映射到在SELECT中嵌套的级别。在SELECT的最内嵌套级别计算第一聚合步骤,如在图29E的块2970中所述。使用每个级别的结果作为对直接外部嵌套SELECT的输入,如在图29E的块2972中所述。在这些级别的每一个中,对于尚未被计算且未被期望在给定级别中计算的维,在GROUP BY子句中包括粒度最小(最详细)的维属性。以这种方式,对于那些维,不发生聚合。关于聚合函数,每个级别具有以直接内部级别中的度量结果作为输入的聚合函数。对于最低级别,聚合函数的输入是在度量中定义的SQL表达式,如在图29E的块2970中所述。
例如,对于具有非对称度量的总计查询,多维元数据软件120可以生成以下Select语句:
select AVG(s.Inventory)as Inventory
from(select SUM(f.Inv)as Inventory,f.timeid
from Fact f
group by f.timeid)s
对于具有非对称度量的任意切片查询,多维元数据软件120可以生成以下Select语句:
select AVG(s.Inventory)as Inventory, s.Country,s.State,s.Year from(select SUM(f.Inv)as Inventory, F.timeid, m.Country,m.State,t.Year from Fact f,Market m,Time t where f.marketid=m.marketid AND f.timeid=t.timeid group by f.timeid,m.Country,m.State,t.Year)s group by s.Country,s.State,s.Year<br/>
对于具有非对称度量的完整立方体查询,多维元数据软件120可以生成以下Select语句:
select AVG(s.Inventory)as Inventory, s.Year,s.Quarter,s.Month, s.Country,s.State,s.CiTY, s.Line,s.Group,s.Product from(select SUM(f.Inv)as Inventory,f.timeid,m.Country, m.State,m.Cittv, t.Year,t.Quarter,t.Month,p.Line,p.Group,p.Product from Fact f,Market m,Time t,Product p <!-- SIPO <DP n="55"> --> <dp n="d55"/> where f.marketid=m.marketid AND f.timeid=t.timeid AND f.prodid=p.prodid group by f.timeid,t.Year,t.Quarter,t.Month, ROLLUP(m.Country,m.State,m.City), ROLLUP(p.Line,p.Group,p.Product))s group by ROLLUP(s.Year,s.Quarter,s.Month), s.Country,s.State,s.City,s.Line,s.Group,s.Product
B.6
为不兼容的度量集生成SQL语句
这一章节描述如何将为多个度量集(例如,对称和非对称度量集)生成的多个SQL语句组合成单个SQL语句。
在表F的例子中,不可能找到维集的公共集。存在两个选项来计算所有(即对称和非对称)度量。每个选项创建两个单独的SQL查询,并且将它们合并在一起。例如,第一选项是获得(take)所有维(“AlIDim”)的Cost、Revenue、Profit、Profit Margin、Profit Rank和RevProfitCorrelation、以及AllbutTime(除了时间的所有维)、Time的Inventory。例如,第二选项是获得所有维(“AlIDim”)的RevProfitCorrelation,以及AllbutTime、Time的Inventory、Cost、Revenue、Profit、Profit Margin、Profit Rank。
当为相同的切片或立方体生成这些SQL语句时,为对称和非对称度量集生成的多个SQL语句共享相同的属性集。因此,属性实例在所有SQL语句中都将是相同的。组合不同度量集的SQL语句的技术包括连接两个SQL语句的结果。也就是,通过用内部连接(INNER JOIN)连接为每个度量集生成的SQL语句,将它们连接成单个SQL语句。在特定实现中,所使用的连接类型是对在SQL语句的GROUP BY子句中使用的属性的内部连接。
在多个SQL语句之间的内部连接中使用的子句取决于正被组合的SQL语句的类型(即,基于切片的相对于完整立方体)。对于基于切片的SQL语句,在内部连接中使用的子句将使用该切片中的所有属性的简单与(ANDed)等式。下面是针对第一选项由多维元数据软件120生成的基于切片的SQL语句:
select r1.Inventory,r2.Cost,r2.Revenue,r2.profit, r2.Margin, r2.″profit Rank″,r2.″RevProfit Correlation″, r1.Country,r1.State,r1.Year (select AVG(s.Inventory)as Inventory, s.Countrv,s.State,s.Year from(select SUM(f.Inv)as Inventory, f.timeid,m.Country,m.State,t.Year from Fact f,Market m,Time where f.marketid=m.marketid AND f.timeid=t.timeid group by f.timeid,m.Country,m.State,t.Year)s group by s.Country,s.State,s.Year)r1 INNER JOIN (select SUM(f.Cost)as Cost,SUM(f.Rev)as Revenue, SUM(f.Rev -f.Cost)as profit SUM(f.Revenue-f.Cost)/SUM(f.Rev)as Margin, RANK () OVER(ORDER BY SUM(f.Rev-f.cost))as″Profit Rank″, CORRELATION(f.Revenue,f.Revenue-f.Cost)as″RevProfit Correlation″, m.Country,m.State,t.Tear from Fact f,Market m,Time t where f.marketid=m.marketid AND f.timeid=t.timeid group by m.Country,m.State,t.Year)r2 ON r1.Country=r2.Country AND r1.State=r2.State AND R1.Year= r2.Year
在总计切片中,仅返回所有维的总计。如果正被查询的切片是总计切片,则没有正被编组的属性,因此,在连接子句中使用暂时常量属性(transient constant attribute)。暂时常量属性与Grand Total(总计)列相关联,并且描述是否为给定属性保存了聚合。下面是针对第一选项由多维元数据软件120生成的总计切片SQL语句:
select r1.Inventory, r2.Cost,r2.Revenue,r2.profit,r2.Margin,r2.″profit Rank″, r2.″RevProfit Correlation″ (select AVG(s.Inventory)as Inventory,l as GrandTotal from(select SUM(f.Inv)as Inventory,f.timeid from Fact f group by f.timeid)s )r1 INNER JOIN (select SUM(f.Cost)as Cost,SUM(f.Rev)as Revenue,SUM(f.Rev- f.Cost)as profit, SUM(f.Revenue-f.Cost)/SUM(f.Rev)as″Profit Margin″, RANK () OVER(ORDER BY SUM(f.Rev-f.cost))as″Profit Rank″, CORRELATION(f.Revenue,f.Revenue-f.Cost)as″RevProfit Correlation″, 1 as GrandTotal from Fact f)r2 ON r1.GrandTotal=r2.GrandTotal
对于完整立方体类型的SQL语句,连接子句还考虑属性实例也将包含聚合表示这一事实。由于此原因,将暂时属性添加到正被组合的基本SQL语句。这些新的暂时常量属性描述是否为给定属性保存了聚合。然后,当属性实例包含特定成员或者包含聚合时,连接子句连接这些属性实例。下面是针对第一选项由多维元数据软件120生成的基于立方体的SQL语句,其示出了使用以AGG(即聚合)为后缀的暂时常量属性:
select r1.Inventory,r2.Cost,r2.Revenue,r2.profit, r2.Margin, r2.″profit Rank″,r2.″RevProfit Correlation″, r1.Year,r1.Quarter,r1.Month,r1.Country,r1.state,r1.City, r1.Line, r1.Group,r1.Product (select AVG(s.Inventory)as Inventory,s.Year,s.Quarter, s.Month, s.Country,s.State,s.City,s.Line,s.Group,s.Product, GROUPING(s.Year)as YearAgg,GROUPING(s.Quarter)as QuarterAgg,GROUPING(s.Month)as MonthAgg, s.CountryAgg,s.StateAgg,s.CityAgg,s.LineAgg,s.GroupAgg, s.ProductAgg from(select SUMM(f.Inv)as Inventory,f.imeid,t.Year, t.Quarter, t.Month,m.Country,m.State,m.City,p.Line,p.Group, p.Product, GROUPING(m.Country)as CountryAgg,GROUPING(m.State)as StateAgg, GROUPING(m.City)as CityAgg, GROUPING(p.Line)as LineAgg,GROUPING(p.Group)as GroupAgg, GROUPING(p.Product)as ProductAgg from Fact f,Market m,Time t,Product p where f.Marketid=m.marketid AND f.timeid= t.timeid AND f.pordid=p.prodid group by f.timeid,t.Year,t.Quarter,t.Month, <!-- SIPO <DP n="59"> --> <dp n="d59"/> ROLLUP(m.Country,m.State,m.City),ROLLUP(p.Line,p.Group, p.Product))s group by ROLLUP(s.Year,s.Quarter,s.Month),s.Country, s.State, s.City,s.Line,s.Group,s.Product, s.CountryAgg,s.StateAgg,s.CityAgg,s.LineAgg,s.GroupAgg, s.ProductAgg)r1 INNER JOIN (select SUM(f.Cost)as Cost,SUM(f.Rev)as Revenue, SUM(f.Rev -.Cost)as Profit, SUM(f.Revenue-f.Cost)/SUM(f.Rev)as″Profit Margin″, RANK () OVER(ORDER BY SUM(f.Rev-f.Cost))as″Profit Rank″, CORRELATION(f.Revenue,f.Revenue-f.Cost)as ″RevProfit Correlation″, m.Country,m.State,m.City,t.Year,t.Quarter, t.Month,p.Line, p.Group,p.Product, GROUPING(m.Country)as CountryAgg, GROUPING(m.State) as StateAgg,GROUPING(m.City)as CityAgg, GROUPING(t.Year)as YearAgg,GROUPING(t.Quarter) as QuarterAgg,GROUPING(t.Month)as MonthAgg, GROUPING(p.Line)as LineAgg,GROUPING(p.Group)as GroupAgg,GROUPING(p.Product)as ProductAgg From Fact f,Market m,Time t,Product p where f.marketid=m.marketid AND f.timeid=t.timeid AND <!-- SIPO <DP n="60"> --> <dp n="d60"/> f.prodid= p.prodid group by ROLLUP(m.Country,m.State,m.City),ROLLUP(t.Year, t.Quarter,t.Month),ROLLUP(p.Line,p.Group,p.Product))r2 ON(r1.Country=r2.Country OR(r1.CountryAgg=1 AND r2.CountryAgg=1))AND (r1.State=r2.State OR(r1.StateAgg=1 AND r2.StateAgg=1)) AND (r1.City=r2.City OR(r1.CityAgg=1 AND r2.CityAgg=1))AND (r1.Year=r2.Year OR(r1.YearAgg=1 AND r2.YearAgg=1)) AND (r1.Quarter=r2.Quarter OR(r1.QuarterAgg=1 AND r2.QuarterAgg=1))AND (r1.Month=r2.Month OR(r1.MonthAgg=1 AND r2.MonthAgg=1)) AND (r1.Line=r2.Line OR(r1.LineAgg=1 AND r2.LineAgg=1)) AND (r1.Group=r2.Group OR(r1.GroupAgg=1 AND r2.GroupAgg=1)) AND (r1.Product=r2.Product OR(r1.ProductAgg=1 AND r2.ProductAgg=1))
虽然上面例子示出了两个度量集,但是本发明的实现可以组合多于两个度量集。而且,虽然这里的例子涉及SQL语句,但是可用来访问数据库的其它语句也在本发明的范围之内。
在特定实现中,不是组合为多个度量集生成的SQL语句,而是重构聚合集,使得它们是兼容的。例如,可以组合Sales和Inventory度量的计算。由于Sales度量对所有维使用SUM,而Inventory度量对除了时间之外的所有维使用SUM,因此Sales度量的计算可以分成两个步骤。第一步骤是对除了时间之外的所有维的SUM,并且最后步骤是对时间的SUM(由于SUM是分布式的,因此这起作用)。Sales的这一计算次序现在与Inventory所需的步骤兼容。
IBM、DB2、Z/OS和AIX是国际商业机器公司在美国和/或其它国家的商标。Windows是Microsoft公司在美国和/或其它国家的商标。Solaris和JDBC是SUN Microsystems在美国和/或其它国家的商标。Linux是Linus Torvalds在美国和/或其它国家的商标。HP-UX是在美国和/或其它国家的Open Group UNIX 95有商标产品。Pilot Suite是Pilot Software在美国和/或其它国家的商标。Express是Oracle公司在美国和/或其它国家的商标。Essbase是Hyperion Solution公司在美国和/或其它国家的商标。TM1是Applix公司在美国和/或其它国家的商标。
另外的实现细节
所述的用于维护关于网络组件的信息的技术可被实现为使用标准编程和/或工程技术以产生软件、固件或其任意组合的方法、设备或产品。在此使用的术语“产品”是指在硬件逻辑电路(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等等)或者计算机可读介质例如磁存储介质(例如,硬盘驱动器、软盘、磁带等等)、光存储装置(CD-ROM、光盘等)、易失性和非易失性存储器装置(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑电路等等)中实现的代码或逻辑。计算机可读介质中的代码由处理器访问和执行。其中实现了优选实施例的代码还可通过传输介质或从网络上的文件服务器访问。在这种情况下,其中实现了该代码的产品可以包括传输介质如网络传输线、无线传输介质,通过空间传播的信号、无线电波、红外线信号等等。因此,该“产品”可以包括其中实施了代码的介质。另外,该“产品”可以包括在其中实施、处理和执行代码的硬件和软件组件的组合。当然,本领域的技术人员应当认识到,在不脱离本发明范围的情况下,可以对该配置进行各种修改,并且该产品可以包括在本技术领域内公知的任何信息承载介质。
图29A、29B、29C、29D和29E的逻辑描述了以特定次序发生的特定操作。在可选的实现中,可以以不同的次序执行、修改或删除某些逻辑操作。而且,可以向上述逻辑添加步骤,并且仍然遵循所述实现。此外,可以顺序地发生在此描述的操作,或者可以并行处理某些操作,或者可以通过分布式过程执行被描述成由单个过程执行的操作。
图29A、29B、29C、29D和29E的逻辑被描述成用软件实现。该逻辑可以是主机系统的操作系统的一部分或者应用程序。在另外的实现中,可以将该逻辑保持在存储区或者只读存储器或者其它硬连线类型的装置中。优选的逻辑可以用硬件或者可编程和不可编程门阵列逻辑电路实现。
图33示出了计算机系统100的体系结构的一种实现。计算机系统100可以实现具有处理器3302(例如,微处理器)、存储器3304(例如,易失性存储器装置)和存储装置3306(例如,非易失性存储区,如磁盘驱动器、光盘驱动器、磁带驱动器等)的计算机体系结构3300。存储装置3306可以包括内部存储装置或附连或网络可访问存储装置。以在本技术领域内公知的方式将存储装置3306中的程序装载到存储器3304中,并且由处理器3302执行。该体系结构还包括用来支持与网络的通信的网卡3308。输入装置3310用来向处理器3303提供用户输入,并且可包括键盘、鼠标、输入笔、麦克风、触摸式显示屏或者在本技术领域内公知的任何其它激活或输入机制。输出装置3312能够呈现从处理器3302或其它组件传送的信息,例如显示监视器、打印机、存储装置等。
前面对本发明的优选实现的描述是为了示例说明和描述的目的而提供的。它并不旨在是详尽的或者将本发明局限于所公开的确切形式。根据上述教导,各种修改和变更是可能的。
Claims (10)
1.一种用于规定多维计算的方法,包括:
接收从事实元数据对象和一个或多个维元数据对象生成的立方体模型元数据对象的子集的选择,其中事实元数据对象引用一个或多个度量元数据对象;以及
使用立方体模型元数据对象和该一个或多个度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
2.如权利要求1所述的方法,其中该语句是结构化查询语言语句。
3.如权利要求1所述的方法,其中度量元数据对象的每一个规定一个或多个结构化查询语言表达式。
4.如权利要求3所述的方法,其中结构化查询语言表达式的每一个包括用于构建查询语言表达式的模板。
5.如权利要求4所述的方法,其中该模板使用从列、属性和度量的列表中引用特定列、属性或度量的标记表示法。
6.如权利要求3所述的方法,其中结构化查询语言表达式的每一个包括列、属性和度量的列表。
7.如权利要求1所述的方法,其中基于每一个度量元数据对象中所规定的一个或多个聚合而生成结构化查询语言语句。
8.如权利要求7所述的方法,其中聚合列表包括聚合函数和对应的维集的列表。
9.一种用于规定多维计算的系统,包括具有至少一个可编程组件以运行至少一个用于以下操作的程序的计算机系统:
接收从事实元数据对象和一个或多个维元数据对象生成的立方体模型元数据对象的子集的选择,其中事实元数据对象引用一个或多个度量元数据对象;以及
使用立方体模型元数据对象和该一个或多个度量元数据对象中的元数据生成用于检索多维信息的语句,其中度量元数据对象的每一个规定一个或多个聚合。
10.一种计算机程序,包括当被装载到计算机系统中并在其上执行时使该计算机系统执行如权利要求1至8中的任一项所述的方法的所有步骤的计算机程序代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/341,763 | 2003-01-13 | ||
US10/341,763 US7953694B2 (en) | 2003-01-13 | 2003-01-13 | Method, system, and program for specifying multidimensional calculations for a relational OLAP engine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1726495A true CN1726495A (zh) | 2006-01-25 |
CN100424686C CN100424686C (zh) | 2008-10-08 |
Family
ID=32711577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801064551A Expired - Fee Related CN100424686C (zh) | 2003-01-13 | 2003-12-17 | 规定用于关系olap引擎的多维计算 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7953694B2 (zh) |
JP (1) | JP2006513474A (zh) |
CN (1) | CN100424686C (zh) |
AU (1) | AU2003288564A1 (zh) |
CA (1) | CA2510747C (zh) |
WO (1) | WO2004063942A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171648A (zh) * | 2008-10-07 | 2011-08-31 | 渣普控股有限公司 | 将关系数据库与olap立方体同步 |
CN103164222A (zh) * | 2013-02-25 | 2013-06-19 | 用友软件股份有限公司 | 多维建模系统和多维建模方法 |
CN104657370A (zh) * | 2013-11-19 | 2015-05-27 | 中国移动通信集团天津有限公司 | 一种实现多维立方体关联的方法和装置 |
CN108304505A (zh) * | 2018-01-18 | 2018-07-20 | 上海达梦数据库有限公司 | 一种sql语句的处理方法、装置、服务器及存储介质 |
CN108572963A (zh) * | 2017-03-09 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
Families Citing this family (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447687B2 (en) * | 2002-05-10 | 2008-11-04 | International Business Machines Corporation | Methods to browse database query information |
US7181450B2 (en) * | 2002-12-18 | 2007-02-20 | International Business Machines Corporation | Method, system, and program for use of metadata to create multidimensional cubes in a relational database |
US7716167B2 (en) | 2002-12-18 | 2010-05-11 | International Business Machines Corporation | System and method for automatically building an OLAP model in a relational database |
CA2419502A1 (en) * | 2003-02-21 | 2004-08-21 | Cognos Incorporated | Time-based partitioned cube |
US7895191B2 (en) * | 2003-04-09 | 2011-02-22 | International Business Machines Corporation | Improving performance of database queries |
WO2005008534A2 (en) * | 2003-07-11 | 2005-01-27 | Computer Associates Think, Inc. | System and method for generating sql using templates |
US8315972B2 (en) * | 2003-09-26 | 2012-11-20 | Microsoft Corporation | Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema |
US8548170B2 (en) | 2003-12-10 | 2013-10-01 | Mcafee, Inc. | Document de-registration |
US7756739B2 (en) * | 2004-02-12 | 2010-07-13 | Microsoft Corporation | System and method for aggregating a measure over a non-additive account dimension |
US20050216451A1 (en) * | 2004-02-19 | 2005-09-29 | Urs Enzler | Generation of database queries from predefined query strings |
US7707143B2 (en) * | 2004-06-14 | 2010-04-27 | International Business Machines Corporation | Systems, methods, and computer program products that automatically discover metadata objects and generate multidimensional models |
US20050283494A1 (en) * | 2004-06-22 | 2005-12-22 | International Business Machines Corporation | Visualizing and manipulating multidimensional OLAP models graphically |
US7480663B2 (en) * | 2004-06-22 | 2009-01-20 | International Business Machines Corporation | Model based optimization with focus regions |
US7490106B2 (en) * | 2004-07-09 | 2009-02-10 | Microsoft Corporation | Multidimensional database subcubes |
US7694278B2 (en) * | 2004-07-09 | 2010-04-06 | Microsoft Corporation | Data cube script development and debugging systems and methodologies |
US20060020608A1 (en) * | 2004-07-09 | 2006-01-26 | Microsoft Corporation | Cube update tool |
US20060010058A1 (en) * | 2004-07-09 | 2006-01-12 | Microsoft Corporation | Multidimensional database currency conversion systems and methods |
US7483918B2 (en) | 2004-08-10 | 2009-01-27 | Microsoft Corporation | Dynamic physical database design |
WO2006021944A1 (en) * | 2004-08-12 | 2006-03-02 | Leanway Automatic Areanas Ltd. | Enhanced database structure configuration |
US7567962B2 (en) * | 2004-08-13 | 2009-07-28 | Microsoft Corporation | Generating a labeled hierarchy of mutually disjoint categories from a set of query results |
US7516149B2 (en) * | 2004-08-30 | 2009-04-07 | Microsoft Corporation | Robust detector of fuzzy duplicates |
US7610300B2 (en) * | 2004-11-30 | 2009-10-27 | International Business Machines Corporation | Automated relational schema generation within a multidimensional enterprise software system |
US7418438B2 (en) * | 2004-11-30 | 2008-08-26 | International Business Machines Corporation | Automated default dimension selection within a multidimensional enterprise software system |
US7593955B2 (en) * | 2004-11-30 | 2009-09-22 | International Business Machines Corporation | Generation of aggregatable dimension information within a multidimensional enterprise software system |
US7505888B2 (en) * | 2004-11-30 | 2009-03-17 | International Business Machines Corporation | Reporting model generation within a multidimensional enterprise software system |
US7444331B1 (en) * | 2005-03-02 | 2008-10-28 | Symantec Corporation | Detecting code injection attacks against databases |
US7584205B2 (en) * | 2005-06-27 | 2009-09-01 | Ab Initio Technology Llc | Aggregating data with complex operations |
US8099674B2 (en) | 2005-09-09 | 2012-01-17 | Tableau Software Llc | Computer systems and methods for automatically viewing multidimensional databases |
US7765224B2 (en) * | 2005-11-18 | 2010-07-27 | Microsoft Corporation | Using multi-dimensional expression (MDX) and relational methods for allocation |
US7415454B2 (en) * | 2005-11-18 | 2008-08-19 | Microsoft Corporation | Allocation performance by query optimization |
CN101093495B (zh) * | 2006-06-22 | 2011-08-17 | 国际商业机器公司 | 基于网状关系维的数据处理方法和系统 |
US7809735B2 (en) * | 2006-10-11 | 2010-10-05 | Yahoo! Inc. | Infrastructure for more efficient processing to generate of ad-hoc reports |
US8200604B2 (en) * | 2007-06-29 | 2012-06-12 | Microsoft Corporation | Multi-platform business calculation rule language and execution environment |
US8020144B2 (en) * | 2007-06-29 | 2011-09-13 | Microsoft Corporation | Metadata-based application deployment |
US7702622B2 (en) * | 2007-06-29 | 2010-04-20 | Microsoft Corporation | Advanced techniques for SQL generation of performancepoint business rules |
US9177079B1 (en) | 2009-01-22 | 2015-11-03 | Joviandata, Inc. | Apparatus and method for processing multi-dimensional queries in a shared nothing system through tree reduction |
US9477702B1 (en) * | 2009-01-22 | 2016-10-25 | Joviandata, Inc. | Apparatus and method for accessing materialized and non-materialized values in a shared nothing system |
US8041740B1 (en) | 2008-03-04 | 2011-10-18 | Amdocs Software Systems Limited | Database system, method, and computer program product for recording entity state and type information for use during subsequent processing of data |
US9692856B2 (en) * | 2008-07-25 | 2017-06-27 | Ca, Inc. | System and method for filtering and alteration of digital data packets |
US8401990B2 (en) * | 2008-07-25 | 2013-03-19 | Ca, Inc. | System and method for aggregating raw data into a star schema |
US20100030728A1 (en) * | 2008-07-29 | 2010-02-04 | Oracle International Corporation | Computing selectivities for group of columns and expressions |
US9253154B2 (en) | 2008-08-12 | 2016-02-02 | Mcafee, Inc. | Configuration management for a capture/registration system |
US8463739B2 (en) * | 2008-08-28 | 2013-06-11 | Red Hat, Inc. | Systems and methods for generating multi-population statistical measures using middleware |
US8495007B2 (en) * | 2008-08-28 | 2013-07-23 | Red Hat, Inc. | Systems and methods for hierarchical aggregation of multi-dimensional data sources |
US8214408B2 (en) * | 2008-09-29 | 2012-07-03 | Teradata Us, Inc. | Method, database system and computer program for joining temporal database tables |
US9020882B2 (en) | 2008-11-26 | 2015-04-28 | Red Hat, Inc. | Database hosting middleware dimensional transforms |
US8473442B1 (en) | 2009-02-25 | 2013-06-25 | Mcafee, Inc. | System and method for intelligent state management |
US8447722B1 (en) | 2009-03-25 | 2013-05-21 | Mcafee, Inc. | System and method for data mining and security policy management |
US9292592B2 (en) * | 2009-05-29 | 2016-03-22 | Red Hat, Inc. | Object-based modeling using composite model object having independently updatable component objects |
US9009006B2 (en) | 2009-05-29 | 2015-04-14 | Red Hat, Inc. | Generating active links between model objects |
US8606827B2 (en) * | 2009-05-29 | 2013-12-10 | Red Hat, Inc. | Systems and methods for extracting database dimensions as data modeling object |
US9292485B2 (en) | 2009-05-29 | 2016-03-22 | Red Hat, Inc. | Extracting data cell transformable to model object |
US8930487B2 (en) * | 2009-05-29 | 2015-01-06 | Red Hat, Inc. | Object-based modeling using model objects exportable to external modeling tools |
US9105006B2 (en) | 2009-05-29 | 2015-08-11 | Red Hat, Inc. | Generating floating desktop representation of extracted model object |
US8417739B2 (en) * | 2009-05-29 | 2013-04-09 | Red Hat, Inc. | Systems and methods for object-based modeling using hierarchical model objects |
US20100318537A1 (en) * | 2009-06-12 | 2010-12-16 | Microsoft Corporation | Providing knowledge content to users |
CA2708911C (en) | 2009-07-09 | 2016-06-28 | Accenture Global Services Gmbh | Marketing model determination system |
US8521755B2 (en) * | 2009-08-31 | 2013-08-27 | Accenture Global Services Limited | Flexible cube data warehousing |
US8417734B2 (en) * | 2009-08-31 | 2013-04-09 | Red Hat, Inc. | Systems and methods for managing sets of model objects via unified management interface |
US9152435B2 (en) * | 2009-08-31 | 2015-10-06 | Red Hat, Inc. | Generating a set of linked rotational views of model objects |
US9152944B2 (en) | 2009-08-31 | 2015-10-06 | Red Hat, Inc. | Generating rapidly rotatable dimensional view of data objects |
US20110054854A1 (en) * | 2009-08-31 | 2011-03-03 | Eric Williamson | Systems and methods for generating dimensionally altered model objects |
US8365195B2 (en) * | 2009-08-31 | 2013-01-29 | Red Hat, Inc. | Systems and methods for generating sets of model objects having data messaging pipes |
JP5175903B2 (ja) | 2009-08-31 | 2013-04-03 | アクセンチュア グローバル サービスィズ ゲーエムベーハー | 適応分析多次元処理システム |
EP2483812A4 (en) * | 2009-09-29 | 2016-10-05 | Zap Holdings Ltd | EXTENSION CONTENT-BASED APPROACH TO THE FORM AND FUNCTION OF A PROFESSIONAL INTELLIGENCE SYSTEM |
US8447755B1 (en) * | 2009-09-29 | 2013-05-21 | Aquire Solutions, Inc. | Systems and methods of analyzing changes and data between hierarchies |
US8909678B2 (en) * | 2009-09-30 | 2014-12-09 | Red Hat, Inc. | Conditioned distribution of data in a lattice-based database using spreading rules |
US20110078199A1 (en) * | 2009-09-30 | 2011-03-31 | Eric Williamson | Systems and methods for the distribution of data in a hierarchical database via placeholder nodes |
US8984013B2 (en) * | 2009-09-30 | 2015-03-17 | Red Hat, Inc. | Conditioning the distribution of data in a hierarchical database |
US8996453B2 (en) * | 2009-09-30 | 2015-03-31 | Red Hat, Inc. | Distribution of data in a lattice-based database via placeholder nodes |
US9031987B2 (en) * | 2009-09-30 | 2015-05-12 | Red Hat, Inc. | Propagation of data changes in distribution operations in hierarchical database |
US8396880B2 (en) * | 2009-11-30 | 2013-03-12 | Red Hat, Inc. | Systems and methods for generating an optimized output range for a data distribution in a hierarchical database |
US8589344B2 (en) * | 2009-11-30 | 2013-11-19 | Red Hat, Inc. | Systems and methods for generating iterated distributions of data in a hierarchical database |
US9189535B2 (en) * | 2009-12-01 | 2015-11-17 | International Business Machines Corporation | Compensating for unbalanced hierarchies when generating OLAP queries from report specifications |
US9990416B2 (en) * | 2009-12-02 | 2018-06-05 | Business Objects Software Limited | Analysis groups for semantic layer |
US8315174B2 (en) * | 2009-12-31 | 2012-11-20 | Red Hat, Inc. | Systems and methods for generating a push-up alert of fault conditions in the distribution of data in a hierarchical database |
US8543535B2 (en) * | 2010-02-24 | 2013-09-24 | Oracle International Corporation | Generation of star schemas from snowflake schemas containing a large number of dimensions |
US9535965B2 (en) | 2010-05-28 | 2017-01-03 | Oracle International Corporation | System and method for specifying metadata extension input for extending data warehouse |
US10353891B2 (en) | 2010-08-31 | 2019-07-16 | Red Hat, Inc. | Interpolating conformal input sets based on a target output |
US9342793B2 (en) | 2010-08-31 | 2016-05-17 | Red Hat, Inc. | Training a self-learning network using interpolated input sets based on a target output |
US8806615B2 (en) | 2010-11-04 | 2014-08-12 | Mcafee, Inc. | System and method for protecting specified data combinations |
US9355383B2 (en) | 2010-11-22 | 2016-05-31 | Red Hat, Inc. | Tracking differential changes in conformal data input sets |
US10366464B2 (en) | 2010-11-29 | 2019-07-30 | Red Hat, Inc. | Generating interpolated input data sets using reduced input source objects |
US8364687B2 (en) | 2010-11-29 | 2013-01-29 | Red Hat, Inc. | Systems and methods for binding multiple interpolated data objects |
US8346817B2 (en) | 2010-11-29 | 2013-01-01 | Red Hat, Inc. | Systems and methods for embedding interpolated data object in application data file |
US8290969B2 (en) | 2011-02-28 | 2012-10-16 | Red Hat, Inc. | Systems and methods for validating interpolation results using monte carlo simulations on interpolated data inputs |
US9489439B2 (en) | 2011-02-28 | 2016-11-08 | Red Hat, Inc. | Generating portable interpolated data using object-based encoding of interpolation results |
US8768942B2 (en) | 2011-02-28 | 2014-07-01 | Red Hat, Inc. | Systems and methods for generating interpolated data sets converging to optimized results using iterative overlapping inputs |
US8862638B2 (en) | 2011-02-28 | 2014-10-14 | Red Hat, Inc. | Interpolation data template to normalize analytic runs |
US10102236B2 (en) * | 2011-11-15 | 2018-10-16 | Pvelocity Inc. | Method and system for providing business intelligence data |
US8666968B2 (en) * | 2011-12-23 | 2014-03-04 | Sap Ag | Executing runtime callback functions |
US9069373B2 (en) * | 2011-12-23 | 2015-06-30 | Sap Se | Generating a runtime framework |
US9348874B2 (en) * | 2011-12-23 | 2016-05-24 | Sap Se | Dynamic recreation of multidimensional analytical data |
US8700561B2 (en) * | 2011-12-27 | 2014-04-15 | Mcafee, Inc. | System and method for providing data protection workflows in a network environment |
CN102663114B (zh) * | 2012-04-17 | 2013-09-11 | 中国人民大学 | 面向并发olap的数据库查询处理方法 |
US10169442B1 (en) | 2012-06-29 | 2019-01-01 | Open Text Corporation | Methods and systems for multi-dimensional aggregation using composition |
US10235441B1 (en) * | 2012-06-29 | 2019-03-19 | Open Text Corporation | Methods and systems for multi-dimensional aggregation using composition |
JP5784239B2 (ja) | 2012-09-14 | 2015-09-24 | 株式会社日立製作所 | データ分析方法、データ分析装置及びその処理プログラムを格納した記憶媒体 |
US9633076B1 (en) | 2012-10-15 | 2017-04-25 | Tableau Software Inc. | Blending and visualizing data from multiple data sources |
CN103793422B (zh) | 2012-10-31 | 2017-05-17 | 国际商业机器公司 | 基于增强星型模型的立方体元数据及查询语句生成 |
US10860526B2 (en) * | 2012-12-01 | 2020-12-08 | The Regents Of The University Of California | System and method of managing large data files |
US9747313B2 (en) * | 2012-12-19 | 2017-08-29 | Sap Se | Timeline index for managing temporal data |
US9430453B1 (en) | 2012-12-19 | 2016-08-30 | Emc Corporation | Multi-page document recognition in document capture |
US20140365519A1 (en) * | 2013-06-10 | 2014-12-11 | Targit A/S | Intelligent processing of user input to a business intelligence software application |
US10223401B2 (en) | 2013-08-15 | 2019-03-05 | International Business Machines Corporation | Incrementally retrieving data for objects to provide a desired level of detail |
JP6045706B2 (ja) * | 2013-08-21 | 2016-12-14 | 株式会社日立製作所 | データ処理システム、データ処理方法およびデータ処理装置 |
US20150134676A1 (en) * | 2013-11-11 | 2015-05-14 | International Business Machines Corporation | Amorphous data query formulation |
US9489386B2 (en) | 2014-03-19 | 2016-11-08 | International Business Machines Corporation | Inferred operations for data analysis |
US10255336B2 (en) | 2015-05-07 | 2019-04-09 | Datometry, Inc. | Method and system for transparent interoperability between applications and data management systems |
US10268745B2 (en) | 2015-05-29 | 2019-04-23 | Oracle International Corporation | Inherited dimensions |
US11294924B1 (en) * | 2015-07-16 | 2022-04-05 | Tableau Software, Inc. | Systems and methods for using multiple aggregation levels in a single data visualization |
US10594779B2 (en) | 2015-08-27 | 2020-03-17 | Datometry, Inc. | Method and system for workload management for data management systems |
US10353879B2 (en) * | 2015-11-18 | 2019-07-16 | Sap Se | Database catalog with metadata extensions |
US10133778B2 (en) * | 2015-11-20 | 2018-11-20 | Sap Se | Query optimization using join cardinality |
US10289665B2 (en) * | 2016-10-27 | 2019-05-14 | Sap Portals Israel Ltd. | Creating and consuming multi-dimensional representations |
US11086895B2 (en) | 2017-05-09 | 2021-08-10 | Oracle International Corporation | System and method for providing a hybrid set-based extract, load, and transformation of data |
US11048725B2 (en) * | 2017-07-25 | 2021-06-29 | Sap Se | Methods and systems for unified data sources |
US11620315B2 (en) | 2017-10-09 | 2023-04-04 | Tableau Software, Inc. | Using an object model of heterogeneous data to facilitate building data visualizations |
US11537276B2 (en) | 2018-10-22 | 2022-12-27 | Tableau Software, Inc. | Generating data visualizations according to an object model of selected data sources |
US11966406B2 (en) | 2018-10-22 | 2024-04-23 | Tableau Software, Inc. | Utilizing appropriate measure aggregation for generating data visualizations of multi-fact datasets |
US10996835B1 (en) | 2018-12-14 | 2021-05-04 | Tableau Software, Inc. | Data preparation user interface with coordinated pivots |
US11436213B1 (en) | 2018-12-19 | 2022-09-06 | Datometry, Inc. | Analysis of database query logs |
US11294869B1 (en) | 2018-12-19 | 2022-04-05 | Datometry, Inc. | Expressing complexity of migration to a database candidate |
US11468043B1 (en) | 2018-12-20 | 2022-10-11 | Datometry, Inc. | Batching database queries for migration to a different database |
US10990612B2 (en) * | 2018-12-28 | 2021-04-27 | Microsoft Technology Licensing, Llc | Metric-centric transformations of multidimensional database data |
US11030256B2 (en) | 2019-11-05 | 2021-06-08 | Tableau Software, Inc. | Methods and user interfaces for visually analyzing data visualizations with multi-row calculations |
US11366858B2 (en) | 2019-11-10 | 2022-06-21 | Tableau Software, Inc. | Data preparation using semantic roles |
US10997217B1 (en) | 2019-11-10 | 2021-05-04 | Tableau Software, Inc. | Systems and methods for visualizing object models of database tables |
USD959477S1 (en) | 2019-12-20 | 2022-08-02 | Sap Se | Display system or portion thereof with a virtual three-dimensional animated graphical user interface |
USD959447S1 (en) | 2019-12-20 | 2022-08-02 | Sap Se | Display system or portion thereof with a virtual three-dimensional animated graphical user interface |
USD959476S1 (en) | 2019-12-20 | 2022-08-02 | Sap Se | Display system or portion thereof with a virtual three-dimensional animated graphical user interface |
US11205296B2 (en) * | 2019-12-20 | 2021-12-21 | Sap Se | 3D data exploration using interactive cuboids |
US11281668B1 (en) | 2020-06-18 | 2022-03-22 | Tableau Software, LLC | Optimizing complex database queries using query fusion |
US11461328B2 (en) | 2020-09-21 | 2022-10-04 | Oracle International Corporation | Method for using a sematic model to transform SQL against a relational table to enable performance improvements |
US11556533B2 (en) * | 2020-11-12 | 2023-01-17 | Oracle International Corporation | Method for generating views based on a semantic model, that allows for autonomous performance improvements and complex calculations |
US11537594B2 (en) | 2021-02-05 | 2022-12-27 | Oracle International Corporation | Approximate estimation of number of distinct keys in a multiset using a sample |
Family Cites Families (159)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115547A (en) | 1993-03-29 | 2000-09-05 | Trilogy Development Group, Inc. | Flash configuration cache |
US5594897A (en) | 1993-09-01 | 1997-01-14 | Gwg Associates | Method for retrieving high relevance, high quality objects from an overall source |
AU6702594A (en) | 1993-12-17 | 1995-07-03 | Taligent, Inc. | Object-oriented distributed communications directory service |
US5586311A (en) | 1994-02-14 | 1996-12-17 | American Airlines, Inc. | Object oriented data access and analysis system |
US5692107A (en) | 1994-03-15 | 1997-11-25 | Lockheed Missiles & Space Company, Inc. | Method for generating predictive models in a computer system |
US5537524A (en) | 1994-04-25 | 1996-07-16 | Hypercubic Tunneling Industries, Inc. | Process for converting two dimensional data into a multidimensional flow model |
US5706494A (en) * | 1995-02-10 | 1998-01-06 | International Business Machines Corporation | System and method for constraint checking bulk data in a database |
US5926815A (en) | 1995-07-27 | 1999-07-20 | James, Iii; J. Colin | Binary sort access method and apparatus |
US5832496A (en) | 1995-10-12 | 1998-11-03 | Ncr Corporation | System and method for performing intelligent analysis of a computer database |
US5748188A (en) | 1995-10-12 | 1998-05-05 | Ncr Corporation | Hypertext markup language (HTML) extensions for graphical reporting over an internet |
US5870746A (en) | 1995-10-12 | 1999-02-09 | Ncr Corporation | System and method for segmenting a database based upon data attributes |
US5832475A (en) | 1996-03-29 | 1998-11-03 | International Business Machines Corporation | Database system and method employing data cube operator for group-by operations |
US5767854A (en) | 1996-09-27 | 1998-06-16 | Anwar; Mohammed S. | Multidimensional data display and manipulation system and methods for using same |
US6144962A (en) | 1996-10-15 | 2000-11-07 | Mercury Interactive Corporation | Visualization of web sites and hierarchical data structures |
US5978788A (en) | 1997-04-14 | 1999-11-02 | International Business Machines Corporation | System and method for generating multi-representations of a data cube |
JP4155363B2 (ja) | 1997-06-19 | 2008-09-24 | 富士通株式会社 | データ表示装置、データ表示方法、およびデータ表示用プログラムを記録した記録媒体 |
US5905985A (en) | 1997-06-30 | 1999-05-18 | International Business Machines Corporation | Relational database modifications based on multi-dimensional database modifications |
US5943668A (en) | 1997-06-30 | 1999-08-24 | International Business Machines Corporation | Relational emulation of a multi-dimensional database |
US6205447B1 (en) | 1997-06-30 | 2001-03-20 | International Business Machines Corporation | Relational database management of multi-dimensional data |
US5926818A (en) | 1997-06-30 | 1999-07-20 | International Business Machines Corporation | Relational database implementation of a multi-dimensional database |
US6292797B1 (en) | 1997-08-07 | 2001-09-18 | New York University | Method for determining actionable patterns in a database |
US5960423A (en) | 1997-08-15 | 1999-09-28 | Microsoft Corporation | Database system index selection using candidate index selection for a workload |
GB2330221B (en) | 1997-10-09 | 2002-07-03 | Ibm | Optimisation of relational database queries |
US6539371B1 (en) | 1997-10-14 | 2003-03-25 | International Business Machines Corporation | System and method for filtering query statements according to user-defined filters of query explain data |
US6023695A (en) | 1997-10-31 | 2000-02-08 | Oracle Corporation | Summary table management in a computer system |
US6092064A (en) | 1997-11-04 | 2000-07-18 | International Business Machines Corporation | On-line mining of quantitative association rules |
US6134532A (en) | 1997-11-14 | 2000-10-17 | Aptex Software, Inc. | System and method for optimal adaptive matching of users to most relevant entity and information in real-time |
US5918232A (en) | 1997-11-26 | 1999-06-29 | Whitelight Systems, Inc. | Multidimensional domain modeling method and system |
US6628312B1 (en) | 1997-12-02 | 2003-09-30 | Inxight Software, Inc. | Interactive interface for visualizing and manipulating multi-dimensional data |
US6362823B1 (en) | 1998-01-05 | 2002-03-26 | N-Dimensional Visualization | Intellectual structure for single-point visual representation of n-dimensional points using broken-line parallel coordinates |
US6003036A (en) * | 1998-02-12 | 1999-12-14 | Martin; Michael W. | Interval-partitioning method for multidimensional data |
US6594653B2 (en) | 1998-03-27 | 2003-07-15 | International Business Machines Corporation | Server integrated system and methods for processing precomputed views |
US6385609B1 (en) | 1998-04-23 | 2002-05-07 | Lucent Technologies Inc. | System and method for analyzing and displaying telecommunications switch report output |
US6289352B1 (en) | 1998-05-29 | 2001-09-11 | Crystal Decisions, Inc. | Apparatus and method for compound on-line analytical processing in databases |
US6324533B1 (en) | 1998-05-29 | 2001-11-27 | International Business Machines Corporation | Integrated database and data-mining system |
US6327574B1 (en) | 1998-07-07 | 2001-12-04 | Encirq Corporation | Hierarchical models of consumer attributes for targeting content in a privacy-preserving manner |
US6226647B1 (en) | 1998-07-24 | 2001-05-01 | Oracle Corporation | Method, article of manufacture, and apparatus for constructing a multi-dimensional view containing two-pass value measure results |
EP1121653A4 (en) | 1998-10-02 | 2006-06-14 | Ncr Corp | ANALYTICAL MODEL OF LOGIC DATA |
US7162464B1 (en) | 1998-10-02 | 2007-01-09 | Ncr Corporation | Data mining assists in a relational database management system |
US6317750B1 (en) | 1998-10-26 | 2001-11-13 | Hyperion Solutions Corporation | Method and apparatus for accessing multidimensional data |
US6546381B1 (en) | 1998-11-02 | 2003-04-08 | International Business Machines Corporation | Query optimization system and method |
US5991754A (en) * | 1998-12-28 | 1999-11-23 | Oracle Corporation | Rewriting a query in terms of a summary based on aggregate computability and canonical format, and when a dimension table is on the child side of an outer join |
US6449609B1 (en) | 1998-12-28 | 2002-09-10 | Oracle Corporation | Using materialized view to process a related query containing a one to many lossless join |
US6574791B1 (en) | 1999-01-15 | 2003-06-03 | International Business Machines Corporation | Component based designer for modifying and specializing wizards |
CN1347529A (zh) * | 1999-01-15 | 2002-05-01 | 米泰吉公司 | 数据仓库环境下使信息可视化的方法 |
US6308168B1 (en) | 1999-02-09 | 2001-10-23 | Knowledge Discovery One, Inc. | Metadata-driven data presentation module for database system |
US6567796B1 (en) | 1999-03-23 | 2003-05-20 | Microstrategy, Incorporated | System and method for management of an automatic OLAP report broadcast system |
US8607138B2 (en) | 1999-05-28 | 2013-12-10 | Microstrategy, Incorporated | System and method for OLAP report generation with spreadsheet report within the network user interface |
US6711585B1 (en) | 1999-06-15 | 2004-03-23 | Kanisa Inc. | System and method for implementing a knowledge management system |
US6438537B1 (en) | 1999-06-22 | 2002-08-20 | Microsoft Corporation | Usage based aggregation optimization |
US6374234B1 (en) | 1999-06-22 | 2002-04-16 | Microsoft Corporation | Aggregations performance estimation in database systems |
US6477536B1 (en) | 1999-06-22 | 2002-11-05 | Microsoft Corporation | Virtual cubes |
US6707454B1 (en) | 1999-07-01 | 2004-03-16 | Lucent Technologies Inc. | Systems and methods for visualizing multi-dimensional data in spreadsheets and other data structures |
US6665682B1 (en) | 1999-07-19 | 2003-12-16 | International Business Machines Corporation | Performance of table insertion by using multiple tables or multiple threads |
US6842758B1 (en) | 1999-07-30 | 2005-01-11 | Computer Associates Think, Inc. | Modular method and system for performing database queries |
US6581054B1 (en) | 1999-07-30 | 2003-06-17 | Computer Associates Think, Inc. | Dynamic query model and method |
US6408292B1 (en) | 1999-08-04 | 2002-06-18 | Hyperroll, Israel, Ltd. | Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions |
US6385604B1 (en) | 1999-08-04 | 2002-05-07 | Hyperroll, Israel Limited | Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements |
US6546395B1 (en) | 1999-08-30 | 2003-04-08 | International Business Machines Corporation | Multi-dimensional restructure performance by selecting a technique to modify a relational database based on a type of restructure |
US6636853B1 (en) | 1999-08-30 | 2003-10-21 | Morphism, Llc | Method and apparatus for representing and navigating search results |
US6542895B1 (en) | 1999-08-30 | 2003-04-01 | International Business Machines Corporation | Multi-dimensional restructure performance when adding or removing dimensions and dimensions members |
CA2281331A1 (en) | 1999-09-03 | 2001-03-03 | Cognos Incorporated | Database management system |
US6339776B2 (en) | 1999-10-04 | 2002-01-15 | International Business Machines Corporation | Dynamic semi-structured repository for mining software and software-related information |
US6898603B1 (en) | 1999-10-15 | 2005-05-24 | Microsoft Corporation | Multi-dimensional data structure caching |
US6484179B1 (en) | 1999-10-25 | 2002-11-19 | Oracle Corporation | Storing multidimensional data in a relational database management system |
FR2806183B1 (fr) * | 1999-12-01 | 2006-09-01 | Cartesis S A | Dispositif et procede pour la consolidation instantanee, l'enrichissement et le "reporting" ou remontee d'information dans une base de donnees multidimensionnelle |
US6721727B2 (en) | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US6356900B1 (en) | 1999-12-30 | 2002-03-12 | Decode Genetics Ehf | Online modifications of relations in multidimensional processing |
US6633885B1 (en) | 2000-01-04 | 2003-10-14 | International Business Machines Corporation | System and method for web-based querying |
US6871140B1 (en) | 2000-02-25 | 2005-03-22 | Costar Group, Inc. | System and method for collection, distribution, and use of information in connection with commercial real estate |
JP2001243242A (ja) | 2000-02-25 | 2001-09-07 | Hitachi Ltd | 問合せ処理方法およびそれを実施するデータベース管理システムその処理プログラムを格納した記録媒体 |
JP2001243244A (ja) | 2000-02-28 | 2001-09-07 | Hitachi Ltd | 多次元データベースの検索方法、検索装置、および多次元データベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体。 |
US20020029207A1 (en) | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
CA2407974A1 (en) | 2000-03-16 | 2001-09-20 | Poly Vista, Inc. | A system and method for analyzing a query and generating results and related questions |
US20010026276A1 (en) | 2000-03-17 | 2001-10-04 | Kiyomi Sakamoto | Map display device and navigation device |
US6574619B1 (en) * | 2000-03-24 | 2003-06-03 | I2 Technologies Us, Inc. | System and method for providing cross-dimensional computation and data access in an on-line analytical processing (OLAP) environment |
US6831668B2 (en) | 2000-04-03 | 2004-12-14 | Business Objects, S.A. | Analytical reporting on top of multidimensional data model |
US6768986B2 (en) | 2000-04-03 | 2004-07-27 | Business Objects, S.A. | Mapping of an RDBMS schema onto a multidimensional data model |
US20020091681A1 (en) | 2000-04-03 | 2002-07-11 | Jean-Yves Cras | Report then query capability for a multidimensional database model |
US6366903B1 (en) | 2000-04-20 | 2002-04-02 | Microsoft Corporation | Index and materialized view selection for a given workload |
US6615201B1 (en) | 2000-04-25 | 2003-09-02 | Lucent Technologies | Computer network management |
US6643661B2 (en) | 2000-04-27 | 2003-11-04 | Brio Software, Inc. | Method and apparatus for implementing search and channel features in an enterprise-wide computer system |
CA2306928C (en) | 2000-04-28 | 2004-05-25 | Ibm Canada Limited-Ibm Canada Limitee | Selectivity estimation for processing sql queries containing having clauses |
US20010037228A1 (en) * | 2000-05-05 | 2001-11-01 | Iaf Consulting, Inc. | System and method for using metadata to flexibly analyze data |
JP3659318B2 (ja) | 2000-05-09 | 2005-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 空間データマイニング装置 |
US6995768B2 (en) | 2000-05-10 | 2006-02-07 | Cognos Incorporated | Interactive business data visualization system |
JP2002007435A (ja) | 2000-06-20 | 2002-01-11 | Nec Corp | 対話的分析データベースシステム及び対話的分析プログラムを記録した記録媒体 |
US20020002469A1 (en) | 2000-06-21 | 2002-01-03 | Scott Hillstrom | System and method for hiring lawyers and managing the process entailed in the pursuit of clients' legal claims |
US6633882B1 (en) | 2000-06-29 | 2003-10-14 | Microsoft Corporation | Multi-dimensional database record compression utilizing optimized cluster models |
WO2002003251A2 (en) | 2000-06-29 | 2002-01-10 | Alphablox Corporation | Caching scheme for multi-dimensional data |
US6681223B1 (en) | 2000-07-27 | 2004-01-20 | International Business Machines Corporation | System and method of performing profile matching with a structured document |
US6684207B1 (en) | 2000-08-01 | 2004-01-27 | Oracle International Corp. | System and method for online analytical processing |
US6604110B1 (en) | 2000-08-31 | 2003-08-05 | Ascential Software, Inc. | Automated software code generation from a metadata-based repository |
US7788212B2 (en) | 2000-09-05 | 2010-08-31 | Big Think Llc | System and method for personalization implemented on multiple networks and multiple interfaces |
JP2002123530A (ja) | 2000-10-12 | 2002-04-26 | Hitachi Ltd | 多次元データの可視化方法及び装置 |
US20020122078A1 (en) | 2000-12-07 | 2002-09-05 | Markowski Michael J. | System and method for organizing, navigating and analyzing data |
US6687693B2 (en) | 2000-12-18 | 2004-02-03 | Ncr Corporation | Architecture for distributed relational data mining systems |
US20020091679A1 (en) | 2001-01-09 | 2002-07-11 | Wright James E. | System for searching collections of linked objects |
US6671689B2 (en) | 2001-01-19 | 2003-12-30 | Ncr Corporation | Data warehouse portal |
EP1370947A4 (en) | 2001-02-13 | 2009-05-27 | Candera Inc | STORAGE VIRTUALIZATION SERVER SILICON BASE |
US6643646B2 (en) | 2001-03-01 | 2003-11-04 | Hitachi, Ltd. | Analysis of massive data accumulations using patient rule induction method and on-line analytical processing |
US6651055B1 (en) | 2001-03-01 | 2003-11-18 | Lawson Software, Inc. | OLAP query generation engine |
US6823333B2 (en) | 2001-03-02 | 2004-11-23 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | System, method and apparatus for conducting a keyterm search |
US6741981B2 (en) | 2001-03-02 | 2004-05-25 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) | System, method and apparatus for conducting a phrase search |
US6697793B2 (en) | 2001-03-02 | 2004-02-24 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | System, method and apparatus for generating phrases from a database |
US6721728B2 (en) | 2001-03-02 | 2004-04-13 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | System, method and apparatus for discovering phrases in a database |
US20030061207A1 (en) | 2001-03-07 | 2003-03-27 | Leonid Spektor | Query filter for querying a multitude of databases |
US20020138316A1 (en) | 2001-03-23 | 2002-09-26 | Katz Steven Bruce | Value chain intelligence system and methods |
US6931418B1 (en) | 2001-03-26 | 2005-08-16 | Steven M. Barnes | Method and system for partial-order analysis of multi-dimensional data |
US6711579B2 (en) | 2001-04-20 | 2004-03-23 | Sree Ayyanar Spinning And Weaving Mills Limited | Data storage schema independent programming for data retrieval using semantic bridge |
US6636860B2 (en) | 2001-04-26 | 2003-10-21 | International Business Machines Corporation | Method and system for data mining automation in domain-specific analytic applications |
US6850925B2 (en) | 2001-05-15 | 2005-02-01 | Microsoft Corporation | Query optimization by sub-plan memoization |
US6775662B1 (en) * | 2001-05-21 | 2004-08-10 | Oracle International Corporation | Group pruning from cube, rollup, and grouping sets |
US7007039B2 (en) | 2001-06-14 | 2006-02-28 | Microsoft Corporation | Method of building multidimensional workload-aware histograms |
US6697808B1 (en) | 2001-06-19 | 2004-02-24 | Microstrategy, Inc. | Method and system for performing advanced object searching of a metadata repository used by a decision support system |
US7430562B1 (en) | 2001-06-19 | 2008-09-30 | Microstrategy, Incorporated | System and method for efficient date retrieval and processing |
GB2377046A (en) | 2001-06-29 | 2002-12-31 | Ibm | Metadata generation |
US6968344B2 (en) | 2001-07-26 | 2005-11-22 | Tata Consultancy Services Limited | Method and apparatus for object-oriented access to a relational database management system (RDBMS) based on any arbitrary predicate |
US6865573B1 (en) | 2001-07-27 | 2005-03-08 | Oracle International Corporation | Data mining application programming interface |
EP1423804A4 (en) | 2001-08-10 | 2006-11-08 | Datavine Res Services | METHOD AND APPARATUS FOR ACCESSING, INTEGRATION, AND ANALYSIS OF HETEROGENEOUS DATA SOURCES BY HANDLING METADATA OBJECTS |
KR100656528B1 (ko) | 2001-09-10 | 2006-12-12 | 한국과학기술원 | 영역-합 질의를 위한 동적 업데이트 큐브와 하이브리드질의 검색방법 |
US20030115207A1 (en) | 2001-09-25 | 2003-06-19 | Bowman David M. | Hierarchical hybrid OLAP analytics generators |
US7487111B2 (en) | 2001-10-19 | 2009-02-03 | U-Haul International, Inc. | Online marketplace for moving and relocation services |
US20030081002A1 (en) | 2001-10-30 | 2003-05-01 | Microsoft Corporation | Method and system for chaining and extending wizards |
US6714940B2 (en) | 2001-11-15 | 2004-03-30 | International Business Machines Corporation | Systems, methods, and computer program products to rank and explain dimensions associated with exceptions in multidimensional data |
US6654764B2 (en) | 2001-11-15 | 2003-11-25 | International Business Machines Corporation | Systems, methods, and computer program products to interpret, explain, and manipulate exceptions in multidimensional data |
US8140568B2 (en) | 2001-12-13 | 2012-03-20 | International Business Machines Corporation | Estimation and use of access plan statistics |
US6823334B2 (en) | 2002-03-07 | 2004-11-23 | International Business Machines Corporation | Metadata system for managing data mining environments |
US7284204B2 (en) | 2002-03-29 | 2007-10-16 | International Business Machines Corporation | System, method, and visual user interface for evaluating and selecting suppliers for enterprise procurement |
US7171427B2 (en) | 2002-04-26 | 2007-01-30 | Oracle International Corporation | Methods of navigating a cube that is implemented as a relational object |
US20030206201A1 (en) | 2002-05-03 | 2003-11-06 | Ly Eric Thichvi | Method for graphical classification of unstructured data |
US6957225B1 (en) | 2002-05-07 | 2005-10-18 | Oracle International Corporation | Automatic discovery and use of column correlations in tables |
US7149983B1 (en) | 2002-05-08 | 2006-12-12 | Microsoft Corporation | User interface and method to facilitate hierarchical specification of queries using an information taxonomy |
US6947929B2 (en) | 2002-05-10 | 2005-09-20 | International Business Machines Corporation | Systems, methods and computer program products to determine useful relationships and dimensions of a database |
US7447687B2 (en) | 2002-05-10 | 2008-11-04 | International Business Machines Corporation | Methods to browse database query information |
US7191169B1 (en) | 2002-05-21 | 2007-03-13 | Oracle International Corporation | System and method for selection of materialized views |
US7281013B2 (en) | 2002-06-03 | 2007-10-09 | Microsoft Corporation | Workload analysis tool for relational databases |
US7346601B2 (en) | 2002-06-03 | 2008-03-18 | Microsoft Corporation | Efficient evaluation of queries with mining predicates |
US7051038B1 (en) | 2002-06-28 | 2006-05-23 | Microsoft Corporation | Method and system for a reporting information services architecture |
WO2004012379A2 (en) | 2002-07-30 | 2004-02-05 | Deepfile Corporation | Method and apparatus for managing file systems and file-based data storage |
US6996556B2 (en) | 2002-08-20 | 2006-02-07 | International Business Machines Corporation | Metadata manager for database query optimizer |
US7668885B2 (en) | 2002-09-25 | 2010-02-23 | MindAgent, LLC | System for timely delivery of personalized aggregations of, including currently-generated, knowledge |
US7181450B2 (en) | 2002-12-18 | 2007-02-20 | International Business Machines Corporation | Method, system, and program for use of metadata to create multidimensional cubes in a relational database |
US7472127B2 (en) | 2002-12-18 | 2008-12-30 | International Business Machines Corporation | Methods to identify related data in a multidimensional database |
US7716167B2 (en) | 2002-12-18 | 2010-05-11 | International Business Machines Corporation | System and method for automatically building an OLAP model in a relational database |
US7136850B2 (en) | 2002-12-20 | 2006-11-14 | International Business Machines Corporation | Self tuning database retrieval optimization using regression functions |
US7472109B2 (en) | 2002-12-30 | 2008-12-30 | International Business Machines Corporation | Method for optimization of temporal and spatial data processing |
US7203671B1 (en) | 2003-02-11 | 2007-04-10 | Federal Home Loan Mortgage Corporation | System and method for validating the technical correctness of an OLAP reporting project |
US8122044B2 (en) | 2003-03-12 | 2012-02-21 | Microsoft Corporation | Generation of business intelligence entities from a dimensional model |
US7275024B2 (en) | 2003-03-12 | 2007-09-25 | Microsoft Corporation | Automatic generation of a dimensional model for business analytics from an object model for online transaction processing |
US7895191B2 (en) | 2003-04-09 | 2011-02-22 | International Business Machines Corporation | Improving performance of database queries |
US7139764B2 (en) | 2003-06-25 | 2006-11-21 | Lee Shih-Jong J | Dynamic learning and knowledge representation for data mining |
US7188090B2 (en) | 2003-06-30 | 2007-03-06 | Microsoft Corporation | Drill-through queries from data mining model content |
US7610306B2 (en) | 2003-06-30 | 2009-10-27 | International Business Machines Corporation | Multi-modal fusion in content-based retrieval |
US7266565B2 (en) | 2003-09-24 | 2007-09-04 | Tablecode Software Corporation | Table-oriented application development environment |
US7246116B2 (en) | 2004-04-22 | 2007-07-17 | International Business Machines Corporation | Method, system and article of manufacturing for converting data values quantified using a first measurement unit into equivalent data values when quantified using a second measurement unit in order to receive query results including data values measured using at least one of the first and second measurement units |
US7707143B2 (en) | 2004-06-14 | 2010-04-27 | International Business Machines Corporation | Systems, methods, and computer program products that automatically discover metadata objects and generate multidimensional models |
US7480663B2 (en) | 2004-06-22 | 2009-01-20 | International Business Machines Corporation | Model based optimization with focus regions |
US20050283494A1 (en) | 2004-06-22 | 2005-12-22 | International Business Machines Corporation | Visualizing and manipulating multidimensional OLAP models graphically |
-
2003
- 2003-01-13 US US10/341,763 patent/US7953694B2/en not_active Expired - Fee Related
- 2003-12-17 CN CNB2003801064551A patent/CN100424686C/zh not_active Expired - Fee Related
- 2003-12-17 AU AU2003288564A patent/AU2003288564A1/en not_active Abandoned
- 2003-12-17 WO PCT/GB2003/005490 patent/WO2004063942A1/en active Application Filing
- 2003-12-17 JP JP2004566154A patent/JP2006513474A/ja active Pending
- 2003-12-17 CA CA2510747A patent/CA2510747C/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171648A (zh) * | 2008-10-07 | 2011-08-31 | 渣普控股有限公司 | 将关系数据库与olap立方体同步 |
CN103164222A (zh) * | 2013-02-25 | 2013-06-19 | 用友软件股份有限公司 | 多维建模系统和多维建模方法 |
CN104657370A (zh) * | 2013-11-19 | 2015-05-27 | 中国移动通信集团天津有限公司 | 一种实现多维立方体关联的方法和装置 |
CN104657370B (zh) * | 2013-11-19 | 2018-09-04 | 中国移动通信集团天津有限公司 | 一种实现多维立方体关联的方法和装置 |
CN108572963A (zh) * | 2017-03-09 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
CN108304505A (zh) * | 2018-01-18 | 2018-07-20 | 上海达梦数据库有限公司 | 一种sql语句的处理方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA2510747C (en) | 2011-12-13 |
JP2006513474A (ja) | 2006-04-20 |
US20040139061A1 (en) | 2004-07-15 |
US7953694B2 (en) | 2011-05-31 |
CN100424686C (zh) | 2008-10-08 |
WO2004063942A1 (en) | 2004-07-29 |
AU2003288564A1 (en) | 2004-08-10 |
CA2510747A1 (en) | 2004-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1726495A (zh) | 规定用于关系olap引擎的多维计算 | |
CN1262958C (zh) | 使用元数据在关系数据库中创建多维数据集的方法和系统 | |
CN1604082A (zh) | 用于任意数据模型的映射体系结构 | |
CN1144145C (zh) | 用于数据仓库的选择聚集层和交叉产品层的方法和装置 | |
CN101036141A (zh) | 具有持久性、用户可访问的位图值的数据库管理系统 | |
CN1749999A (zh) | .net数据类型和实例的持久存储 | |
CN1585945A (zh) | 用于将xml模式映射到对象关系数据库系统的机制 | |
CN1766886A (zh) | 用于数据管理和/或转换的数据结构、数据库系统及方法 | |
CN1317116A (zh) | 值一实例连接的计算机实现的数据库 | |
CN1761956A (zh) | 基于片段的串行化系统与方法 | |
CN101048732A (zh) | 面向对象的数据集成服务体系结构 | |
US20050010550A1 (en) | System and method of modelling of a multi-dimensional data source in an entity-relationship model | |
US20040215626A1 (en) | Method, system, and program for improving performance of database queries | |
CN101044484A (zh) | 信息处理装置、方法以及程序 | |
US20060047622A1 (en) | Using join dependencies for refresh | |
CN1592905A (zh) | 自动产生数据库查询的系统和方法 | |
US20130013590A1 (en) | Searching and Displaying Data Objects Residing in Data Management Systems | |
CN1670729A (zh) | 使用隐含谓词的改善的查询优化器 | |
CN1866253A (zh) | 把Web服务映射到本体 | |
CN1828527A (zh) | 用于跨不同应用程序框架的数据服务的平台 | |
CN1752963A (zh) | 文档信息处理设备、文档信息处理方法及处理程序 | |
CN101044479A (zh) | 用于关系数据库系统中基于本体的语义匹配的系统 | |
CN1823335A (zh) | 抽象数据链接和联接接口 | |
US20050091199A1 (en) | Method and system for generating SQL joins to optimize performance | |
CN101013424A (zh) | 执行关系数据库搜索的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081008 Termination date: 20201217 |
|
CF01 | Termination of patent right due to non-payment of annual fee |