具体实施方式
本发明现在将参考各种实施例来描述。以下描述为本发明的这些实施例的全面理解和对其允许描述提供了具体细节。然而,本领域的技术人员可以理解,本发明可以无需这些细节而实现。在其它实例中,未详细示出或描述公知的结构和功能,以避免不必要地模糊本发明的实施例的描述。
所呈现的描述中所使用术语旨在以其最广泛合理的方式来解释,即使它是与本发明的某些具体实施例的详细描述结合使用的。某些术语甚至可能在下文中着重强调;然而,旨在以任何受限的方式解释的任何术语将如具体实施方式一节中公开并具体定义。
I.
概观
数据图软件工具向用户提供访问和呈现来自诸如OLAP(在线分析处理)数据库或关系型数据源等多维数据源的数据。在某些实施例中,数据图工具向用户提供可以根据用户需求定制的灵活和动态的数据图。数据图是数据集中的数据的图形表示。例如,图1的原始数据列表102可以被图形地呈现为树结构,其根节点处为数据图的标题,区域被表示为第二层的节点,且产品的类型被表示为第三层的节点。通过选取数据图的各个节点,用户可以查看底层数据集的细节的各个层次。
数据图可以用以树结构作为一个示例的多种格式来显示。数据图工具然后可以允许用户使用诸如选取、拖放和剪切粘贴等技术来定制数据图。例如,数据图工具可以允许用户通过选取北区域下的饮料和奶制品节点并选择“组合”选项来组合这些节点。该工具然后可以调节所显示的数据图来示出这些节点已经被组合。以这种方式,用户可以操纵和定制数据图,使得它满足所期望的(例如,演示质量)格式。定制的数据图可以维持到底层数据的活动链接。从而,用户可以继续操纵定制的数据图(例如,在第二会话期间),同时仍旧维持对底层数据的准确描绘。同样,通过维持到底层数据的活动链接,数据图工具可以刷新定制数据图中的信息,从而确保呈现最新的数据。
在某些实施例中,数据图工具在绘图应用程序(例如,Microsoft Visio)的架构内实现。为了创建初始数据图,在某些实施例中,用户连接至合适的数据源(例如,OLAP数据库(或其它多维数据源)或关系型数据库)。与数据图工具相关联的用户界面允许用户为该初始数据图选择所关心的参数。例如,用户可以选择初始数据库应该在第二层为图1中的每一区域包括一个节点,并在第三层为每一类型的杂货产品包括一个节点。数据图工具然后生成该初始数据图。用户可以使用包括绘图工具在内的工具来定制该初始数据图。之后,用户可以返回并刷新数据,同时仍旧维持使用绘图工具创建的任何视觉效应和数据组织方案。
II.
用户界面
图2示出了由数据图工具生成的初始数据图200。为说明起见,该初始数据图基于来自数据源的信息,诸如图1的原始数据列表102。如图2中所示,数据图可以包括指示数据源(例如,“原始数据列表(104)”)以及最后更新时间和日期(例如,“10/13/04 10:30A.M.”)的信息框202。
在某些实施例中,数据图200被示为顶端带有根结点204的分层结构。或者,该分层结构顶端处的节点可以是标题节点,指示数据图中的信息的标题。在某些实施例中,数据图工具提供了指示该分层结构的特定维度的维度形状206。例如,维度形状206可以为分层结构的下一层指定细分方案(例如,如果维度节点指定“区域”,那么该分层结构的下一层示出区域“北”、“南”、“东”和“西”)。
在所示示例中,数据图200按区域(例如,北、南、东和西)来细分。从而,区域信息在根结点204的下一层显示。例如,节点208对应北区域,节点210对应南区域,节点212对应东区域,节点214对应西区域。在某些实施例中,用户可以选择一个节点(例如,东),然后对该单个节点细分。用户也可以对整个层或节点集来进行同样的操作。例如,在所示实施例中,数据图200的下一层包括表示杂货产品类型的节点。例如,节点216表示饮料类型,节点218表示奶制品类型,节点220表示肉类,节点222表示农产品类型。为各个区域的每一个重复这些同样的节点。然而,是否呈现这种类型的对称可取决于底层数据集以及用户选择的参数。例如,如果在北区域中不销售肉类,那么该数据图可以在北节点下不含有肉类节点。
在某些实施例中,该工具可以提供功能的两种总目录:影响整个数据图的功能,以及仅影响数据图所选部分的功能。数据图工具可在整个数据图上执行的功能的示例包括刷新功能224,它基于在底层数据中发生的任何改变而刷新数据图200中显示的信息。在大多数情形中,执行该功能不会更改任何用户对数据图的改变。
隐藏细节功能226可以隐藏数据图中的细节,使得用户可以简化视图。取消隐藏细节功能228显示数据图200中已经被隐藏的详细信息(例如,作为执行隐藏细节功能226的结果)。例如,用户可以选择隐藏细节功能226来移除杂货产品类型节点的显示,并选择取消隐藏细节功能228来重新显示细节。
添加度量功能230允许用户显示当前并没有在显示图200中示出的数据库度量。度量可以包括电子表中可对其应用不同类型的聚集(例如,求和、求平均、最小值、最大值等)的数字(例如,美元、利润、小时等)。例如,用户可能希望向区域节点添加原始数据列表的“销售”(Sales)度量,来显示该区域的合计销售。在某些实施例中,度量可以被组合成允许用户查看跨不同时间段的数据或计算百分比类型数据的计算所得度量。计算所得度量(在OLAP数据库中有时被称为“计算所得成员”)一般涉及向多维数据应用公式。例如,用户可以向显示来自该区域的合计销售的百分比的区域节点添加计算所得度量。在某些实施例中,本发明允许用户在任何时刻向图中的节点添加或从中移除度量。在某些实施例中,配置数据图工具的用户界面,使得用户不需理解维度(例如,列)和度量之间的不同。而是,用户可以点击按钮来获取他或她想要的信息,包括度量信息和维度信息。
通过下钻窗口,用户可以选择数据图上他或她想要查看的列(即,维度)(例如,月、年、类型、销售人员、销售量、单位、区域等)。例如,如果用户想要显示每一区域中的销售人员,那么用户可以提供从该下钻窗口选择销售人员维度。当选择配置列功能232时,它提供用于对所选维度进一步定制的功能。
在某些实施例中,创建数据透视表功能234允许用户基于如数据图200中所显示的信息来创建数据透视表。例如,单击允许用户自动生成表示同一底层数据的非图解视图的数据透视表。在另一示例中,创建数据透视表功能234包括显示Exel电子表中的信息的选项。
图3示出了由用户从其初始形式修改之后的数据图200。如图所示,用户已使用例如绘图工具来修改北区域节点208以使其类似星形配置。以这种方式,用户可以例如着重强调北区域相对于其它区域具有最高销售。尽管在某些实施例中,用户可以为视觉效应来修改数据图200中的一个或多个形状,但是底层数据及其内部关系维持不变。用户可以对数据图200进行的其它改变(例如,使用绘图工具)可以包括对节点的重新排列(例如,使用拖放技术)、颜色的添加或修改、标签的添加或修改、动画效果的添加、字体或样式的添加或修改等。
如图所示,在某些实施例中,使用图3中所示的选定框302,用户可以选择数据图200中在其上执行特定功能或操作的一个或多个节点。用户可以通过诸如将选定框拖至所选节点上方(如图3中所示)、在选择节点上点击来使其加亮等各种技术来选择这些节点。在所示实施例中,用户已经通过选定框302选取了饮料节点216、奶制品节点218、肉类节点220以及农产品节点222。
如上参考图2所述,在某些实施例中,该工具可以提供功能的两个总目录:影响整个数据图的功能以及仅影响数据图所选部分的功能。数据图工具可以在数据图的所选部分上执行的某些动作包括分类所呈现数据的功能304、合并功能306、取消合并功能308、折叠功能310以及钻取维度功能312。例如,如果数据图为第一和第二区域均显示杂货类型信息,但是用户仅希望查看第二区域的杂货类型信息,那么用户可以选取对应于第一区域的节点,然后选择折叠功能310。
数据图工具也可以提供允许用户复制数据图200中的一个或多个节点来创建数据图200的新的实例的工具。以这种方式,用户可以容易地以多种不同的方式操纵同一数据图。在某些实施例中,该图的新实例可以在与原始实例相同的视图或窗口中显示,或者在独立视图或窗口中显示。
根据钻取维度功能312,数据图工具可以允许用户操纵数据图如何呈现多维数据库的各个维度。维度一般包括用作数据表的列和/或行的目录。维度的示例包括月、年、类型、销售人员、区域、产品、时间、商店、顾客年龄、顾客收入、雇员等。在某些情形中,维度含有层次(或子目录)。例如,时间维度可以含有年层次、月层次、日层次、小时层次、分钟层次、以及秒层次。维度层次允许用户对于该维下钻。例如,如果用户注意到在特定月中销售较高,那么用户可能想要下钻至周或日层次来查看销售是否在该月的特定部分中较高。类似地,用户可能想要上钻至较高层次(例如,年),来查看数据模式是否在更广的范围上有效。例如,为了上钻,用户可以将他或她初始钻取的层次从周改变为年。在众多情形中,维度层次可以被组织为分层结构。
图4示出了图3的钻取维度功能312应用于节点302的选取的结果。在该情形中,所选的节点包括饮料节点216、奶制品节点218、肉类节点220以及农产品节点222。在某些实施例中,数据图工具向用户提供允许用户选择所期望的维度和层次的对话框或其它输入工具(未示出)。
当向如由用户指定的所选取的节点(216、218、220和222)应用钻取维度功能312时,结果是显示与该所选节点相关联的维度的下一层。例如,在所示实施例中,数据图200显示为各个杂货类型目录的每一个示出每一区域中的月销售的节点。例如,如节点402中所示,名为Davis的销售代表在一月份售出5,611单位的奶制品。同样,如节点404中所示,名为Jones的销售代表在二月份售出744单位的肉类。如节点406中所示,名为Smith的销售代表在一月份售出2,861单位的农产品,而如节点408中所示,名为Butterworth的销售代表在二月份售出1,450单位的农产品。
在某些实施例中,可以为单个数据图创建多个下钻实例,且可以单独维护和更新每一实例。
III.
数据结构
图5示出了可用于实现该数据图工具的底层数据结构的集合。为说明起见,将数据结构示为它们被配置成产生图2的数据图200。然而,本领域的技术人员可以理解,可以使用不同的数据结构,或相同的数据结构以不同组合来实现本发明。
用于生成所示实施例的数据图的数据结构可以包括形状对象508、细分形状对象(504和514)、记录集对象(506和516)以及信息形状对象510。
形状对象502可以用于实现数据图显示的节点。例如,形状对象(502、503、505、507、509和511)可以用于显示图2的数据图的根结点,以及区域节点(例如,北、南、东、西)和杂货产品类型节点(饮料、奶制品、肉类、农产品)。形状对象(502、503、505、507、509和511)各自可以包括关于该形状是否为根形状的布尔值、对数据图信息形状510(如下所述)的引用、表示该形状是否具有子形状的布尔值、如果该形状具有子形状对细分形状的引用、示出该形状是否是同一细分层次上的形状的聚集的布尔值、示出该形状是否是合并形状(指示该形状在数据图上隐藏)的一部分的布尔值、以及对合并形状的引用(如果该形状是合并的一部分)。
形状对象(502、503、505、507、509和511)也可以含有当作为数据图中的节点实现时形状显示的信息(例如,特定维度、度量和关系信息集)的引用。例如,每一形状可以含有对记录集对象(506或516)的引用或指针。记录集对象(506或516)可以包括来自底层数据源508的数据集,诸如行和列信息。在某些实施例中,记录集对象(506或516)含有的数据集可以基于由相应的细分形状对象(504或514)执行的查询。在某些实现中,记录集对象(506或516)的每一行可以属于数据图中的一个形状对象(502、503、505、507、509和511)。记录集对象(506或516)可以提供灵活的方式来操作来自数据源508的选择数据,因为它可以被容易地刷新且包括允许访问其数据的一组方法。然而,可以用其它技术来实现本发明。
如上所述,细分形状对象(504和514)可以提供查询来生成记录集对象(506和516)。一般而言,每一细分形状对象(504和514)提供关于数据图中的一个细分(例如,按照区域的销售、按照产品类型的销售)的信息。从而,数据图可以为数据图中的每一层次(除根以外)含有一个细分形状对象(504或514)。例如,对应于图2的数据图中的根节点204的细分形状对象504可以提供分层结构中下一层应该为何(例如,区域)的指示。当执行了记录集对象506中对应于细分形状对象504的查询结果时,细分形状对象504可以包括对于对应的记录集对象506的指针或引用。一般而言,尽管细分形状对象(504和514)自身可能不在数据图上显示或可视为形状或节点,但是可以显示细分节点表示的细分方案的指示。
信息形状对象510可以用来持有作为整体的关于数据图的信息。信息可以包括,例如,关于数据图的布局以及关于数据图的数据源的信息。另外,数据图信息形状对象510中的数据类型可以包括为数据图标识根形状的形状引用502、数据图的实例索引512、以及可以用来通过复制/粘贴动作创建新数据图的连接信息(未示出)。实例索引512可以促进数据图的单独可显示的实例,使得用于被允许分开操纵多个实例。从而,实例索引512可以包括对一个或多个数据图实例的引用或指针。
IV.
过程流程
图6和7是示出该数据图工具的过程的代表性流程图。这些流程图没有示出数据的所有功能或交换,而是提供对本系统下交换的命令和数据的理解。相关领域的技术人员可以认识到,可以重复、变化、省略或补充命令和数据的某些功能或交换,且可以容易地实现未示出的其它方面。
图6是示出本发明的一个实施例中用于创建基于多维数据的数据图的例程600的示例的流程图。在框601处,例程600接收创建新数据图的请求。该请求包括由用户提供的信息,诸如数据源的指定和关于数据图的大致内容和格式的信息。在框602处,例程600打开相关联的绘图应用程序中的模板,并根据所提供的信息应用初始设置。例如,模板可以提供其中可图形地显示和操纵数据图的视图,且可以提供为操纵数据图而特别配置的型板、宏和页面设置。
在框603处,例程600根据用户的指定为新的数据图设定数据源。在框604处,例程600生成用于在数据源上执行的概括查询。在某些实施例中,概括查询可以至少部分地基于由数据源提供的元数据。
在框605处,例程600调用创建数据图的功能,将该概括查询和数据源作为参数传入。创建数据图功能可以通过执行一连串的步骤来创建图。例如,创建数据图功能可以首先例示信息形状对象、标题形状对象以及数据图实例对象。创建数据图功能然后可以通过查询所指定的数据源来为数据图指定一个或多个数据集。一旦指定数据集,那么创建数据图功能可以生成各自被链接至数据集中的一行的一个或多个子形状对象。
在框606处,例程600显示该数据图。例如,例程600可以调用执行该任务的布局功能。布局功能可以与诸如Microsoft Visio等绘图程序相关联。一旦使用默认度量创建基本数据图之后,用户拥有修改数据图的选项,例如,如图2至图4中所示的。
图7是示出在当前数据图上执行的钻取维度例程700的示例的流程图。在框701处,例程700接收为所选取的节点集下钻的请求。在框702处,例程700公式化用于细分下一节点的查询。在判定框703处,例程700检查是否还有要细分的节点。如果存在要细分的其它节点,那么例程700循环回到框702处来公式化用于下一节点的细分的查询。然而,如果不存在要细分的其它节点,例程700继续至框704处,在那里例程700刷新数据源。在某些实施例中,数据源的刷新可以对整个下钻调用所有查询。
刷新之后,可以基于所执行的细分创建新的形状。在某些实施例中,这是通过协调数据图来执行的。从而,在框705处,例程700可以协调下一细分。这可能涉及为由执行框702处公式化的查询而产生的记录集中的每一行创建形状。在判定框706处,例程700确定是否还存在要协调的更多信息。如果在判定框706处还存在要协调的细分,那么例程700循环返回至框705来执行下一细分的协调。然而如果在判定框706不存在其它要协调的细分,那么例程700前进至框707处来显示输出数据图。例如,这可能涉及调用在屏幕上如用户之前安排的来绘制图形的布局功能。
V.
代表性系统
图8以及以下讨论提供可在其中实现本发明的合适的环境的简要概括的描述。尽管不是必须的,但本发明的各方面将在诸如由通用计算机(例如,服务器计算机、无线设备或个人/膝上型计算机)执行的例程等指令的计算机系统的通用语境中描述。相关领域的技术人员可以理解,本发明可以使用其它通信、数据处理或计算机配置来实现,包括因特网设备、手持式设备(包括个人数字助理(PDA))、可穿戴计算机、各种蜂窝或移动电话、嵌入式计算机(包括耦合至车辆的计算机)、多处理器系统、基于微处理器或可编程消费者电子产品、机顶盒、网络PC、小型机、大型机等。
本发明的各方面可以具体化为特别编程、配置或构造来执行此处详细描述的一条或多条计算机可执行指令的专用计算机或数据处理器。本发明的各方面也可以在分布式计算环境中实现,在那里,任务或模块由通过通信网络链接的远程处理设备执行。在分布式计算机环境中,程序模块可以位于本地和远程存储器存储设备中。
本发明的各方面可以被存储或分布在计算机可读介质上,包括磁性或光学可读计算机盘,作为半导体存储器、纳米技术存储器、有机或光学存储器以及其它便携式数据存储介质上的微码。的确,本发明的各方面下的计算机实现的指令、数据结构、屏幕显示以及其它数据可以在因特网或其它网络(包括无线网络)上分布,一段时间内在传播介质(例如,电磁波、声波等)的传播信号上分布,或者可以在任何模拟或数字网络(分组交换、电路交换或其它方案)上提供。
在某些实施例中,被实现为绘图应用程序的一部分的数据图工具包括模板、包含专用形状的型板以及含有实现功能的代码的绘图应用程序附件。然而,本领域的技术人员可以认识到,可以用其它方式实现同样的基础体系结构。例如,实现可以是对绘图应用程序本身是内部的。在某些实施例中,本发明允许用户连接至OLAP多维数据集Excel电子表或数据库,并交互地下钻该数据来产生图。用户可以根据用户的偏好来配置图。对绘图的操纵类似于使用数据透视表所实现的操纵。
图8示出了其中可实现数据图工具802的代表性计算机系统800。计算机系统800可以含有存储器804、CPU 806以及一个或多个IO设备808(例如,键盘、扬声器、显示屏等)。数据图工具802可以从数据存储810中采集数据以用于创建如关于图2至7所述的数据图。数据存储810可以对计算机系统800是外部的(如图所示)。或者,数据存储810可以被包含在计算机系统800内。数据图工具802可以包含UI层812、自动化层814以及引擎组件816。数据图实例管理器818与引擎组件816交互来管理数据图实例,并持有关于数据图实例的全局数据。例如,数据图实例管理器818允许用户创建同一数据图的多个实例,然后分别修改每一实例。
数据图管理器组件820包含用于在数据图上创建和执行动作的动作句柄。一般而言,数据图管理器820管理数据图实例和数据图实例内的形状。另外,它可以持有数据图实例的持久数据。数据图管理器820可以包含持有数据图内的列的持久数据的列数据管理器822的一个或多个实例,从而提供诸如下钻等关于图4和7示出和描述的动作。
与数据图实例管理器818相关联的选择管理器824观察用户的选择,并确定对当前的选择哪个下钻动作是有效的。在某些实施例中,这便于通过禁用无效动作(例如,灰化用户界面中的按钮)来向用户提供反馈。
结论
除非上下文明确以其它方式要求,遍及本描述和权利要求书,词语“包含”、“含有”等以与排他或穷举意义相反的包含意义来解释;即,是“包括,但不限于”的意义。另外,词语“此处”、“以上”“以下”以及类似引入的词语在本申请中使用时,应该指的是整个申请而不是本申请的任何特定部分。当权利要求书使用词语“或”来引用两个或更多项的列表时,该词语覆盖该词语所有以下的解释:该列中的任何项、该列中的所有项以及该列中项的任何组合。术语“数据”在此处以其集合性的含义使用,并可以意指一组一个或多个数据。
本发明的实施例的上述详细描述不旨在为详尽的,或将本发明限制于以上所揭示的精确形式。尽管以上为说明起见描述了本发明的特定实施例和实例,但是正如相关领域的技术人员可以认识到的,在本发明的范围内可能有各种等效的修改。例如,尽管以给定的顺序呈现过程或框,然而,替换实施例可以执行含有不同顺序的步骤的例程,或使用含有不同顺序的框的系统,且可以删去、移动、添加、再分、合并和/或修改某些过程或框。这些过程或框的每一个可以用各种不同的方式来实现。同样,尽管通常将过程或框示为顺序执行,但是这些过程或框可以改为并行执行,或以不同的次数执行。当上下文允许时,以上具体实施方式中使用单数或复数的词语也可以分别包括复数或单数。
此处提供的本发明的教导可以应用于其它系统,而不必是此处描述的系统。以上描述的各种实施例的元素和动作可以被组合来提供其它实施例。
可以鉴于以上具体实施方式对本发明进行这些和其它更改。尽管以上描述详细说明了本发明的某些实施例并描述了所构想的最佳模式,然而不论上文以文本形式是如何详细描述的,本发明仍旧可以用多种方式实现。如上所述,当描述本发明的某些特征或方面时,所使用的特定术语不该被认为是暗示该术语此处被重新定义来受限于与该术语相联的本发明的任何具体特性、特征或方面。一般而言,在所附权利要求书中所使用的术语不应该被解释为将本发明限制于说明书中揭示的具体实施例,除非以上具体实施方式一节中明确定义了这些术语,从而,本发明的实际范围不仅包括所揭示的实施例,还包括在权利要求下实现或实施本发明的所有等效方式。
尽管权利要求书中以某条权利要求的形式呈现本发明的某些方面,但是发明者以任何数量的权利要求形式构想了本发明的各个方面。例如,尽管本发明仅一个方面被陈述为具体化为计算机可读介质,但是其它方面可以同样地具体化为计算机可读介质。从而,发明者保留提交本申请之后添加额外的权利要求的权利,来努力获得本发明的其它方面的这些额外的权利要求形式。