具体实施方式
现参考附图描述本发明,其中类似的标号用于指类似的元素。在下面描述中,为了说明的目的,列出许多具体的细节,以提供对本发明的透彻理解。然而明显的是,本发明可以不采用这些具体细节来实施。在其它示例中,以框图形式示出众知的结构和设备,以便于描述本发明。
本专利中使中的术语“组件”意指有关计算机的实体,包括硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不限于在处理器上运行的进程、处理器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在一台服务器上运行的应用程序或服务器都能是计算机组件。一个或多个组件能驻留在进程和/或执行的线程中,且一个组件能位于一台计算机上和/或分布在两台或更多计算机之间。“线程”是在进程中由操作系统内核调度执行的实体。本领域中众知,每个线程具有与之关联的“环境”,它是与该线程的执行关联的易失数据。线程的环境包括系统注册表的内容和属于该线程的进程的虚拟地址。因此,包括线程的环境的实际数据在执行时变化。
本发明提供系统和方法,它们通过自动生成数据透视帮助用户便于数据库的数据挖掘。在本发明的一个实例中,用户选择感兴趣的数据并指定目标变量、累计函数以及确定得出的表应该如何复杂的“复杂性”参数。然后本发明利用机器学习技术来标识哪些条件变量要包括在数据透视中,如在微软的Excel的电子表格数据透视表(数据透视表是数据察看工具,它允许用户识别和综合电子表格和/或数据库表中选中的列和行数据,以获得感兴趣的数据的希望的视图或“透视”)的顶上集合或左边集合。此外,这些变量的每一个的粒度由连续和离散变量的自动离散化来确定。连续变量的范围被自动评估,并对最优变量范围分配新的代表变量。这允许本发明提供具有对目标变量的最佳预测符/条件变量的数据的最佳视图/透视。类似地,本发明还能用于提供OPAP立方体等的维度(预测符/条件变量)。OLAP立方体是累计数据的多维视图,它允许通过快速、可靠、交互过程来深入了解信息。
在图1中,示出按本发明的一方面的自动数据透视生成系统100的框图。自动数据透视生成系统100包括接收输入数据104和访问数据库106的数据透视生成组件102。组件102自动生成输出数据108,这包括但不限于,数据透视表和/或OLAP立方体等。本发明的其它实例也能用作对给定的目标变量的预测符/条件变量的自动生成源。因此,本发明能在系统中使用而不完全地生成(即不采用累计函数)完整的数据透视表和/或OLAP立方体等。输入数据104提供诸如目标变量和感兴趣的数据等信息。这些参数允许本发明自动分析和生成最佳预测目标变量的条件变量。数据透视生成组件102访问数据库106以基于输入数据104检索用于生成数据透视的有关数据。输入数据104通常从用户110发出,他选择用于生成数据透视的参数。
本领域的技术人员可以理解,本发明能利用由可任选的其它数据源112表示的附加数据和来源。其它数据源112能提供参数给输入数据104和/或数据透视生成组件102。其它数源112能包括但不限于:环境上下文数据(如用户上下文环境)、用户概况数据、综合系统利用信息(如被设计成倾向于节省开销的结果的系统),以及可得到的替换数据库数据(如关于从提供目标变量的更好预测符的可选源来选择和/或检索数据的分析信息)等。
在本发明的另外实例中,用户110能与数据透视生成组件102交互,并提供有关自动数据透视生成的用户控制/反馈。例如,用户110能在构造数据透视前察看、调整和/或拒绝自动选择的条件变量。诸如适当的数据库选择、数据源和/或连续条件变量的范围的适合程度等附加的控制/反馈能由本发明使用。这些示例仅是说明性的,并不意味限制本发明的范围。
参考图2,画出按本发明的一方面的自动数据透视生成系统200的另一框图。自动数据透视生成系统200包括数据透视生成组件202,它从用户208接收输入数据210-220,并基于输入数据210-220和数据库222自动生成输出数据224。在本发明的此实例中,输入数据210-220包括:感兴趣的数据210、目标变量212、复杂性参数214、实用性参数216、累计函数218和其它输入数据220。通常,用户208提供输入数据210-220,然而本发明的其它实例能从用户208以外的来源接受输入数据210-220。同样,不是本发明的所有实例都需要由输入数据210-220表示的所有数据。本发明的实例只用感兴趣的数据210和目标变量212作为输入数据也能合适地运作。本发明的这些实例能假设默认的固定复杂性参数和/或利用内部/或外部生成的动态复杂性参数作为输入数据复杂性参数214。类似地,实用性参数216能是可任选的输入数据和/或基于用户的偏爱和/或概况等内部生成的数据。本发明的其它实例生成条件变量作为输出数据224,且从不利用/需要累计函数218。在构造数据透视期间利用如用于数据透视表的求和函数的累计函数218。其它输入数据220能包括但不限于:环境数据、用户概况数据、用户偏爱和综合系统功能目标等。
数据透视生成组件202包括变量确定组件204和数据透视构建器组件206。在本发明的典型实例中,变量确定组件204接收感兴趣的数据210、目标变量212、和复杂性参数214。组件204利用这些输入基于数据库222标识和确定目标变量212的最佳预测符/条件变量。变量确定组件204还自动确定条件变量的粒度,包括标识的连续条件变量的范围。它们用机器学习技术以便于寻找目标变量212的最佳预测符。数据透视构建器组件206接收选择的条件变量,并基于这些条件变量、数据库222和累计函数218构造数据透视。数据透视构建器组件206输出数据透视作为输出数据224。该数据透视能是但不限于,数据透视表和/或OLAP立方体等。在本发明的其它实例中,数据透视构建器组件206是可任选的,且输出数据224包括来自变量确定组件204来的已标识条件变量,从而取消了对累计函数218的利用。
变量确定组件204能利用条件变量特征输入来控制/影响条件变量的标识。本发明的其它例不利用这些条件变量特征输入。这些输入包括复杂性参数214和实用性参数216等。变量确定组件204在其机器学习过程中利用条件变量特征输入以便将希望的特征加入到数据透视中。这些特征包括但不限于,数据透视的复杂性和数据透视的实用性等。本领域的技术人员理解,在本发明的范围中可以加入其它特征。
转向图3,示出按本发明的一方面的自动数据透视生成系统300的又一个框图。自动数据透视生成系统300包括数据透视生成组件302,它接收输入数据304,并基于输入数据304及数据库(未示出)自动生成输入数据306。输入数据304包括但不限于,目标变量和感兴趣的数据。数据透视生成组件302包括:可任选的数据前置过滤器组件308、变量确定组件310、和数据透视构建器组件312。可任选的数据前置过滤器组件308接收输入数据304,并基于例如可任选的用户上下文数据320执行对输入数据304的过滤。这允许输入数据304在处理之前被调整好,以允许在数据透视生成组件302如何利用及利用什么数据方面有灵活性。变量确定组件310包括:变量优化器组件314、决策树生成器组件316、和决策树估值器组件318。变量优化器组件314从数据前置过滤器组件308接收可任选地过滤的输入数据,并通过采用如完全决策树学习程序那样的机器学习技术来标识目标变量的最佳预测符。(若树中每条路径对在树中使用的每个预测符变量确定一组唯一的值范围,且对这些变量的值的每个组合被该树所覆盖,则该决策树是完整的)。因此,在本发明的此实例中,从无预测符变量开始(对应于无预测符的平凡(trivial)决策树),变量确定组件310以贪心(greedy)的方式如下地确定预测符变量及其粒度的最佳组。决策树生成组件316从变量优化器组件314接收初始数据,并生成带着比当前最佳决策树多一个预测符变量或当前最佳决策树中的变量的另外一个分割(split)的完整决策树。由决策树值组件318对此替换完整决策树的得分进行估值。然后,变量优化器组件314接收决策树得分,并作出关于该特定的树现在是否为当前最高得分的完整决策树的判断。变量确定组件310继续决策树的构建、估值和优化判断,直到找到条件变量及其粒度的最高得分集。数据透视构建器组件312接收最优条件变量,并利用累计函数322来自动构造数据透视,作为输出数据306输出。
利用上述示例系统以采用由本发明提供的过程。这些过程允许甚至无经验的用户进行有效的数据挖掘。本发明通过采用提供数据透视的自动生成的机器学习技术来达到此目的。为了更好地理解这些技术如何加入到本发明,了解如数据透视表那样的各种数据透视的编译组件是有帮助的。数据透视表是有效地组合和比较来自数据库的大量数据的交互式表。能操纵其行和列以察看源数据的各种不同综合,包括显示所感兴趣区域的细节。当用户希望分析有关的总和时,尤其当有长的数字列表要累加并希望比较有关每个数字的若干因素时,能利用这些数据透视。
数据透视表的更技术性的描述是允许用户在调整某些其它变量的值的同时察看目标变量的累计函数的表。条件变量在数据透视表中被划分成两个集合一顶层集合和左边集合。对于在顶层集合中变量的域的叉积中值的每个各异集合,表包括一列。对于在左边集合中变量的域的叉积中值的每个各异的集合,表包括一行。例如,若顶层集合包括分别带2个和3个状态的两个离散的变量,它将导致带6个列的表一且类似地,由左边集合变量确定诸行。当数据限于对应于每一单元格的顶层集合和左边集合的给定集合值时,表中的该单元格包含对目标变量的累计函数。
例如,假设存在包括区域销售、代理销售、和月销售的销售数据。数据的子集可以象图4所示那样,图4画出表示来自数据库的数据的表400。数据中的变量(即列)是区域402、代理404、月406、和销量408。使用销量408作为目标变量和Sum()作为累计函数,通过选择区域402作为对数据透视表的顶层集合的条件变量(即指定,顶层集合包含单个变量区域402),选择代理404作为对表的左边集合的条件变量(即指定,左边集合包含单元变量代理404),并设置累计函数为Sum(),可以利用数据透视表来察看每个区域和每个代理的销售总和。这就产生图5中所示的表500,它示出给定目标函数(如销量)的数据透视(如数据透视表)。
对如上所述的简单数据例子,可容易地选择合适的条件变量(即预测符变量),以在数据透视表中使用。对于具有可从中选择的许多变量和/或许多数据记录的更复杂的情况,则困难得多。本发明部分地解决了在这方面的两个相关问题。如在下面将更详细描述,本发明对这些变量的每一个自动地选择条件变量和细节(粒度)。
实质上,本发明首先标识一组输入变量和那些变量的粒度。然后,如为了通过对相应的完整决策树进行估值来生成数据透视表的目的,对任何输入变量和它们对应的粒度的集合确定其质量。定义完整的决策树,使得树中的每条路径规定了在该树中利用的每个预测符变量的一组唯一的值的范围,且该树覆盖了这些变量的值的每个组合。例如,在图6中示出完整的决策树的图600。在此例中,有三个输入变量A、B和C,其中A和B是二进制变量而C是三进制变量。在此例中,二进制状态用值0和1来表示。然而0和1值仅是代表性的,本领域的技术人员理解,这些状态能是离散实体和/或连续实体的范围。对变量A、B、C的值的2*2*3=12种不同的可能组合的每一组,完整决策树也提供单独的叶节点。(多个可能中的)一个完整决策树在变量A上具有根分割,然后是在变量B上的下一层的所有分割,然后是在变量C的第三层上的所有分割,如图600所示。虚线602表示可能的最优估值路径,使得可能的组合#3提供最高的估值得分。
使用“正常”的决策树试探同时标识候选的预测符变量和它们对应的粒度。因此,对任一个给定的决策树,由该树将预测符变量定义为在该树中分割的每个变量,而粒度由分割点本身来定义。例如,假设一树在三进制变量X上包含一分割,它使x=2向下到一个分枝,而X=1或3向下到另一分枝;且该树在连续变量Y上包含一分割,它使Y<5向下到一个分枝,而Y≥5向下到另一分枝。然后此树定义两个‘新’变量X′和Y′,它们均是离散的:X′具有两个值:“2”和“1或3”,而Y′具有两个值“<5”和“≥5”。例如,若新的分割加到树中的X上,其中X=1向下到一个分枝,而X=2或3向下到另一分枝。此新的树定义了新的变量X″,它具有三个值(1,2和3)。因而,通过由诸分割确定的范围的交集定义了预测符变量的状态。因此,单个决策树被转换成一组预测符变量和那些变量的对应值。
由本发明采用的试探允许学习单个决策树,并随后搜索该决策树的子树以找出一组好的预测符变量和粒度。通常考虑的第一子树是根节点,它不对应于任何预测符变量。从此树开始,考虑的‘下一’树通过从该全树添加单个分割而选择。因此,在第一树之后,唯一可能的下一树是具有单个根分割的树。若存在多个可以添加的分割,利用具有最佳预测符变量和粒度得分的分割(即估算对应的完全树得分)。若没有另外的分割增加得分(或若当前树已扩展到全树),则停止当前树扩展。
在本发明的一个实例中用户只要(1)选择感兴趣的数据,(2)指定目标变量,(3)指定累计函数,以及(4)指定确定得到的表应如何复杂的“复杂性”参数。然后本发明利用机器学习技术来标识在顶层集合和左边集合中包括哪些变量。此外,通过自动离散化连续及离散变量确定这些变量的每一个的粒度。传统上,若连续变量被指定为顶层集合或左边集合的成员,则数据中该变量的每个分别的值被处理成不同的分类状态。例如,若数据包含变量“年龄”,且在数据中存在98个不同的年龄值,则传统的数据透视表将“年龄”作为具有98个状态的分类变量来处理。将“年龄”添加到数据透视表的顶层(左边)集合的结果是列(行)数乘以98;按每个单独的不同年龄察看数据看来不是有用的。本发明自动检测连续变量的感兴趣的范围,并创建对应于那些范围的新变量。例如,本发明能确定,知道年龄是>25还是≤25是重要的;在此情况下,本发明创建一新的分类变量,它的两个值对应于这些范围,且将此新变量插入到数据透视中。对如颜色等分类变量,本发明的自动离散化能将状态组合在一起。例如,若存在三种颜色,红、绿、和蓝,本发明能检测,相对于其它颜色,红色是最感兴趣的(变换的)变量,且利用它作为数据透视表的顶层集合或左边集合的成员。
本发明的一个实例通过利用下述事实操作,即数据透视表能被解释为给定顶层集合和左边集合中的所有变量时目标变量的完整表(或等价地,完整决策树)。存在标准的学习算法,它标识在此情况哪个变量对预测目标变量是最佳的。例如,若潜在的预测符变量都是离散的,能采用贪心搜索算法来选择预测符。当存在连续变量,搜索算法也能考虑添加那些变量的各种离散化版本作为预测符。类似地,搜索算法能考虑分类变量的各状态的各种组合。
本发明的另一实例利用下述非常简单的搜索算法来标识预测符。首先,对目标变量利用标准的贪心算法来学习(正规的)决策树。然后,利用该决策树贪心地添加预测符变量。重要的是注意,决策树的任何子树定义带有那些变量的对应离散化的一组预测符变量。通过以只包括根节点的子树开始,通过包括叶子节点的子节点来贪心地扩张子树,直到对相应变量的完整决策树得分不再增加。在此过程中,特定的子树可能不是完整的。在此情况下,对在此阶段的考虑的变量,树被扩展到完整树。
本领域的技术人员理解,能以许多方法定义完整决策树得分。本发明的一个实例利用一种得分,它将对决策树的数据配合(如,通过给定预测符对目标的条件对数似然性测量)与按此树构造的数据透视表的视觉复杂性(如,通过数据透视表中单元格数测量一由预测符变量的状态的叉积给出)相平衡。完整决策树的得分如下定义:
得分=条件对数似然性-c*视觉复杂性;
其中c是由用户选择的“复杂性”因子。此外,用户可对所得的数据透视表中变量数目和/或单元格数目指定阈值。
例如,在图7中,示出按本发明的一方面的学习的决策树的图700。最初,子树简单地就是节点A 702,对应于没有预测符。通过考虑包括叶节点B 704和C 706的树来扩展决策树。此子树具有对应的单个二进制预值符D“年龄”(年龄的离散化版本),其状态为“<25”和“>25”。此子树是完整的,且假设通过添加D“年龄”作为目标变量的预测符来改善完整决策树,节点C 706是下次考虑扩展的,所以新的叶节点是B 704、D 708、E 710。现在存在两个预测符:D“年龄”和“性别”。此决策子树是不完整的,但能通过也在B 704下面添加(虚构的)“性别”分割使其成为完整的。假设带这两个预测符的完整决策树的得分要比单带D“年龄”的得分好,则扩展D 708,使得子树的叶节点是B 704、F 712、G 714、E 710。现仍有两个预测符,但年龄的离散化是不同的:此子树定义了具有状态{<25,(25,65),≥65}的变量D“年龄2”。再次构造对应的(虚构的)完整决策树,且若对预测符D“年龄2”和“性别”的完整决策树的得分比对预测符D“年龄”和“性别”的更好,则替代地使用D“年龄2”。在此例中,总存在单个叶节点要扩展。若存在多个叶节点,则每个扩展如前那样记分,且接着提交最好地改善完整决策树得分的扩展(若有的话)。
此示例本发明的最后方面是,给出一组预测符变量,决定哪个变量要包括在顶层集合,以及哪个变量要包括在左边集合中。可作出此挑选,使得图表在视觉上最吸引人。例如,变量能被排列成使得出的数据透视表中的列数近似地等于行数。
本领域的技术人员理解,本发明可用于自动构造数据透视的其它方面,如OLAP立方体中的维度层次结构。具体说来,变量的组合及离散化确定了此层次结构。
考虑示出的和上面描述的示例系统,按照本发明能实现的方法参考图8-11的流程图将被更好地理解。虽然为了说明简单起见,方法被示作并描述成一系列框,然而可以理解,本发明不受各框的次序限制,因为按本发明的某些框能以不同的顺序发生和/或与这里示出及描述的其它框同时发生。此外,为实现按本发明的方法,不是所有示出的框都是必须的。
本发明能在由一个或多个组件执行的如程序模块的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、数据结构等,它们完成特定任务或实现特定的抽象数据类型。通常,在本发明的各种示例中程序模块的功能可以根据要求组合或分布。
在图8中,示出按本发明的一方面便于自动数据透视生成的方法的流程图。方法800通过输入目标变量、感兴趣的数据和可任选的累计函数(804)开始(802)。累计函数用于构造数据透视;然而,本发明甚至在实际构造数据透视之前能完成处理并使条件变量可用。因此,累计函数在确定给定目标的条件变量方面不是必需的。然后,通过利用机器学习技术自动确定最佳地预测目标变量的条件变量(806)。机器学习技术能包括但不限于,决策树学习、人工神经网络、贝叶斯学习方法、和基于实例的学习等。原则上,对每个提出的条件变量进行估值,直到利用机器学习技术确定了一组最优变量及其粒度。这是自动的步骤,在本发明的其它实例中它也能受用户的影响。用户能选择审阅选择的条件变量、它们的特征(如细节、粒度、范围等),和/或处理的其它方面,并通过限制、修改、和/或重新初始化它们来影响这些元素的确定。一旦自动选定条件变量,采用选择的条件变量和累计函数生成数据透视(808)。数据透视能包括但不限于,数据透视表和/或OLAP立方体等。如前所述,在本发明的其它实例中,数据透视的实际生成是可任选的,本发明能只输出条件变量而不生成数据透视。实际数据透视的视图也能由本发明自动地调节(810),然后流程结束(812)。机器学习技术和/或用户界面限制等被应用于得到的初始数据透视视图。这允许数据透视被额外地增强以供用户察看,通过由本发明提供的自动过程增加在传播从数据库挖掘的信息方面的价值。
参考图9,示出按本发明便于自动数据透视生成的方法900的另一流程图。此方法900画出用于自动确定给定目标变量的最佳预测符的特征的过程,和表示连续变量的感兴趣的范围的新的变量的生成。方法900通过提供选定的条件变量(904)开始(902)。选择的条件变量是通过前面描述的现有机器学习技术来选择的,并能包括离散和连续的变量。然后通过变量的自动离散化确定所选择条件变量的粒度(906)。变量的离散化能利用诸如完整决策树过程等机器学习技术。通常选择根据机器学习技术获得的带最高得分的离散变量用于数据透视生成。若选择的条件变量包括连续变量,则检测该连续变量的感兴趣的范围(908)。感兴趣的范围包括但不限于:高信息内容密度范围、用户偏爱的范围(即用户控制的输入),高概率/似然性范围、和/或有效的数据视图范围等。一旦选定范围,本发明能创建对应于该范围的新变量(910)。对于分类变量,自动离散化步骤能将状态组合起来用于数据透视。然后,输出新的条件变量(若有的话)和/或条件特征(912),流程结束(914)。
转向图10,画出按本发明的一方面便于自动数据透视生成的方法1000的又一流程图。方法1000通过输入目标变量、感兴趣的数据、变量选择参数、和可任选的累计函数(1004)开始(1002)。如前注意到,累计函数用于构造数据透视。然而,本发明甚至在实际构造数据透视之前能完成处理并使条件变量可用。因此,累计函数在确定给定目标的条件变量方面不是必需的。在本发明的此示例中,选择条件变量基于通过机器学习技术确定最佳预测目标变量的变量,同时考虑变量选择参数(1006)。采用的机器学习技术能包括,例如完整决策树学习过程。变量选择参数能包括但不限于,例如复杂性和/或实用性等的参数。因此,用户能通过输入复杂性参数和/或实用性参数来影响自动数据透视生成过程。因而,机器学习过程不仅考虑条件变量的最佳预测符方面,还考虑诸如复杂性和/或实用性等其选择参数。因此,在本发明的此示例中,从无预测符变量开始(对应于无预测符的平凡决策树),以贪心的方式作出确定,如下所述地选择一组最佳的预测符变量及其粒度。输入初始数据,且生成具有比当前最佳决策树多一个的预测符或当前最佳决策树中变量的另外一个的分割的完整决策树。然后估算此替换完整决策树的得分,以判断该特定树现在是否为当前的最高得分完整决策树。继续决策树的构造、估值和最优判断,直到找到条件变量和它们的粒度的最高得分组。一旦确定了条件变量及其特征,利用这些变量及其特征生成数据透视(1008),流程结束(1010)。应注意,为实现本发明,数据透视的实际生成不是必需的。它可用于只提供条件变量。
观察图11,示出按本发明一方面便于自动数据透视生成的方法1100的再一个流程图。方法1100是通过决策树机器学习技术采用的试探性过程。方法1100通过首先借助贪心算法学习目标变量的正规决策树(1104)开始(1102)。然后将当前最佳正规子树初始化成根节点并对其记分(1106)。当前最佳正规子树得分被设置成此得分(1107)。然后作出判断,当前最佳正规子树是否等于学习的正规决策树(1108)。若是,流程结束(1110)。若否,最佳替换得分被设置成负无穷大(1112)。然后创建替换的子树,它具有比当前最佳子树多一个的分割,并用学习的正规决策树编译(1114)。从替换子树构造替换完整子树(1118),并对其记分(1120)。然后作出关于替换完整子树得分是否大于最佳替换完整子树得分的判断(1122)。若大于,则在作出是否还有“多一个分割”的替换子树要考虑的判断(1126)前,最佳替换(不完整的)子树被设置成等于该替换(不完整的)子树,且最佳替换得分等于该替换得分(1124)。若有替换子树要考虑,则创建下一个替换子树(1114),并如上讨论地继续。若不存在替换子树要考虑,作出最佳的替换得分是否大于最佳的正规子树得分的判断(1128)。若否,流程结束(1110)。若大于,则最佳正规子树被设置成等于当前的最佳替换子树,且最佳正规子树得分设置成等于该最佳替换得分(1130)。然后流程返回到1108,判断当前最佳正规子树是否等于学习的正规决策树,并如上所述地继续。此试探过程能用于估计条件变量及其范围和/或粒度等的选择。
为提供用于实现本发明的各方面的附加环境,图12及下面的讨论旨在提供其中能实现本发明的各方面的合适的计算环境1200的简单而一般的描述。虽然上面以在本地计算机和/或远程计算机上运行的计算机程序的计算机可执行指令的一般上下文描述了本发明,然而本领域的技术人员理解,本发明也能组合其它程序模块实现。一般而言,程序模块包括例程、程序、组件、数据结构等,它们完成特定任务和/或实现特定的抽象数据类型。此外,本领域的技术人员理解,本发明的方法能用其它计算机系统配置实施,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计算机、手持计算设备、基于微处理器和/或可编程消费品电子设备等,它们的每一个在操作上能与一个或多个关联设备通信。本发明所示的方面也能在分布式计算环境中实施,其中,某些任务能由通过通信网络连接的远程处理设备完成。然而,本发明的某些(如果不是所有的话)方面能在独立的计算机上实施。在分布式计算环境中,程序模块能位于本地和/或远程存储器存储设备中。
本专利使用的术语“组件”意指计算机有关的实体,可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件能是但不限于:在处理器上运行的进程、处理器、对象、可执行代码、执行的线程、程序和计算机。作为说明,在服务器上运行的应用程序和/或服务器能是组件。此外,组件能包括一个或多个子组件。
参考图12,用于实现本发明的各个方面的示例性环境1200包括一传统的计算机1202,它包括处理单元1204、系统存储器1206和将包括系统存储器的各种系统组件耦合到处理单元1204的系统总线1208。处理单元1204可以是市场上买得到的或专用的处理器。此外,处理单元能作为从一个以上处理器形成的多处理器实现,它们能如并行地连接。
系统总线1208能是若干种类总线结构的任一种,包括存储器总线或存储控制器、外围总线、和使用各种传统总线体系结构的任一种的局部总线,如PCI、VESA、微通道、ISA和EISA,这里仅列出少数。系统存储器1206包括只读存储器(ROM)1210和随机存取存储器(RAM)1212。基本输入/输出系统(BI0S)1214包含如在起动时帮助在计算机1202中的各元件间传递信息的基本例程,一般存储在ROM 1210中。
计算机1202还能包括,例如硬盘驱动器1216、读写可移动盘1220的磁盘驱动器1218、读写CD-ROM盘1224或其它光介质的光盘驱动器1222。硬盘驱动器1216、磁盘驱动器1218和光盘驱动器1222分别通过硬盘驱动器接口1226、磁盘驱动器接口1228、和光盘驱动器接口1230连接到系统总线1208。驱动器1216-1222和它们相关的计算机可读介质为计算机1202提供数据、数据结构、计算机可读指令等的非易失存储。虽然计算机可读介质的以上描述指硬盘、可移动磁盘和CD,然而本领域的技术人员理解,其它类型的计算机可读介质,如磁带盒、闪存卡、数字视频盘、Bernoulli盒式磁带等,也能用于示例性操作环境1200,此外任何那样的介质能包含用于实现本发明的方法的计算机可执行指令。
包括操作系统1232、一个或多个应用程序1234、其它程序模块1236、和程序数据1238的若干程序模块能存储在驱动器1216-1222和RAM 1212中。操作系统1232能是任何合适的操作系统或操作系统的组合。作为例子,应用程序1234和程序模块1236能包括按本发明的一方面的自动数据透视生成方案。
用户能通过如键盘1240和定位设备(如鼠标1242)那样的一个或多个用户输入设备将命令和信息输入到计算机1202。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、无线遥控器、扫描仪等。这些和其它输入设备常通过耦合至系统总线1208的串行端口接口1244连接至处理单元1204,但能通过其它接口连接,如并行端口、游戏端口或通用串口总线(USB)。监视器1246或其它类型的显示设备也通过如视频适配器1248的接口连接至系统总线1208。除监视器1246外,计算机1202可包括其它外围输出设备(未示出),如扬声器、打印机等。
可以理解,计算机1202能使用到一个或多个远程计算机1260的逻辑连接在网络环境中操作。远程计算机1260能是工作站、服务器计算机、路由器、对等设备或其它公共网络节点,并通常包括对于计算机1202描述的许多或所有元件,虽然为了简单起见,在图12中只示出存储器存储设备1262。图12中画出的逻辑连接包括局域网(LAN)1264和广域网(WAN)1266。那样的网络环境常见于办公室、企业范围计算机网络、内联网和因特网。
在LAN网络环境中使用时,计算机1202能通过如网络接口或适配器1268连接到局域网1264。在WAN网络环境中使用时,计算机1202通常包括调制解调器(如电话、DSL、电缆等)1270,或连接到LAN上的通信服务器,或具有其它用于通过如因特网等WAN 1266建立通信的其它装置。相对于计算机1202是内置或外接的调制解调器1270通过串行端口接口1244连接至系统总线1208。在网络环境中,程序模块(包括应用程序1234)和/或程序数据1238能存储在远程存储器存储设备1262中。可以理解,示出的网络是示例性的,在实现本发明的一方面时可以使用在计算机1202和1260之间建立通信链路的其它装置(如有线或无线的)。
按在计算机编程领域的技术人员的实践,本发明已参考由如计算机1202或远程计算机1260等计算机完成的操作的动作和符号表示来描述,除非另外指明。那样的动作和操作有时被称为计算机执行的。可以理解,那些动作和符号表示的操作包括由处理单元1204对代表数据比特的电信号的处理,此处理导致电子信息表示的转换或缩减,并将数据比特保持在存储系统(包括系统存储器1206、硬盘1216、软盘1220、CD-ROM 1224、和远程存储器1262)的存储位置中,从而重新配置或更改计算机系统的操作,并作信号的其它处理。保持那些数据比特的存储器位置是物理装置,它们具有对应数据比特的特定的电、磁、或光的特性。
图13是本发明能与之交互的样本计算环境1300的另外框图。系统1300还示出包括一个或多个客户机1302的系统。客户机能是硬件和/或软件(如线程、进程、计算设备)。系统1300还包括一个或多个服务器1304。服务器1304也能是硬件和/或软件(如线程、进程、计算设备)。服务器1304能容纳线程,以例如通过采用本发明来完成转换。在客户机1302和服务器1304之间可能的通信能以适合于在两个或多个计算机进程之间传输的数据包形式进行。系统1300包括通信架构1308,它能用于方便在客户机1302和服务器1304之间的通信。客户机1302连接到一个或多个客户机数据存储1310,它们能用于存储对客户机1302本地的信息。类似地,服务器1304连接到一个或多个服务器数据存储1306,它们能用于存储对服务器1304本地的信息。
在本发明的一个示例中,在两个或多个便于数据透视生成的计算机组件之间传输的数据包至少部分地包括有关数据透视生成系统的信息,该系统至少部分地利用包括数据库的目标变量的用户指定的数据,以便从数据库自动地生成目标变量的数据透视的至少一个条件变量。
可以理解,本发明的系统和/或方法可以在便于计算机组件和非计算机组件的自动数据透视生成中使用。此外,本领域的技术人员认识到,本发明的各系统和/或方法可广泛地用在与电子有关的技术方面,包括但不限于计算机、服务器、和/或手持式电子设备等。
上面的描述包括本发明的诸例子。当然,不可能为了描述本发明的目的而描述各组件或方法的每个可想象的组合,但本领域的普通技术人员认识到,本发明的更多的组合及置换是可能的。因而,本发明旨在包括落入附后的权利要求书的精神和范围内的所有那些更换、修改和变种。此外,对于在详细描述和权利要求中的术语“包括”,该术语以类似于术语“包含”的方式意为广义的,如“包含”在权利要求中用作过渡词时所解释的。