首页 / 专利库 / 企业组织 / 商业智能 / 动态查询模型和方法

动态查询模型和方法

阅读:967发布:2021-02-12

专利汇可以提供动态查询模型和方法专利检索,专利查询,专利分析的服务。并且一种用于生成 数据库 查询的方法,包括存储用于查询数据库的预定义查询模型。根据 请求 向用户显示预定义查询模型的可 访问 部分。接收和使用用户对预定义查询模型的可访问部分的编辑,以生成用户 修改 的查询模型。然后根据用户修改的查询模型启动查询。,下面是动态查询模型和方法专利的具体信息内容。

1.一种用于生成数据库查询的方法,包括:存储用于查询数据库的预定义查询模型;向用户显示所述预定义查询模型的可访问部分;接收用户对所述预定义查询模型的所述可访问部分的编辑;根据用户对所述预定义查询模型的可访问部分的编辑,生成用户修改的查询模型;和根据所述用户修改的查询模型启动对数据库的查询。
2.根据权利要求1所述的方法,显示所述预定义查询模型的所述可访问部分的动作包括:显示定义所述预定义查询模型的可访问数据元素的图形视图。
3.根据权利要求1所述的方法,其中可访问数据元素的所述图形视图包括:可访问的各表格、各表格中的各列、和各表格之间的结合(joins)。
4.根据权利要求1所述的方法,还包括:从用户接收用于所述预定义查询模型的请求;确定用户对所述预定义查询模型的特权;和根据用户的特权确定所述预定义查询模型的可访问部分。
5.根据权利要求1所述的方法,还包括:仅向用户显示所述预定义查询模型的可访问部分。
6.根据权利要求1所述的方法,还包括:从用户接收用于所述预定义查询模型的请求;确定用户对所述预定义查询模型的特权;根据用户的特权确定所述预定义查询模型的受保护部分;和将所述预定义查询模型的受保护部分从显示状态对用户隐藏起来。
7.根据权利要求1所述的方法,还包括:从用户接收用于所述预定义查询模型的请求;确定用户对所述预定义查询模型的特权;根据用户的特权确定所述预定义查询模型的受保护部分;和禁止用户对所述预定义查询模型的受保护部分的编辑。
8.根据权利要求1所述的方法,其中用户修改的查询模型包括:依据所述预定义查询模型修改的数据库表格结合。
9.根据权利要求1所述的方法,其中用户修改的查询模型包括:所述预定义查询模型所缺少的数据库表格。
10.根据权利要求1所述的方法,还包括:从用户接收编辑所述预定义查询模型的请求;向用户显示至少是数据库中数据元素的可访问部分的图形视图。
11.根据权利要求1所述的方法,还包括:根据所述用户修改的查询模型自动地生成数据库查询;和启动所述数据库查询。
12.一种用于在商业智能入口中生成数据库查询的方法,包括:在服务器上存储用于查询数据库的预定义查询模型;至少将所述预定义查询模型的可访问部分下载给客户机;在客户机上显示所述预定义查询模型的可访问部分;接收用户在客户机上对所述预定义查询模型的可访问部分的编辑;根据用户对所述预定义查询模型的可访问部分的编辑,生成用户修改的查询模型;和根据所述用户修改的查询模型,启动数据库的查询。
13.根据权利要求12所述的方法,还包括:将所述预定义查询模型下载给客户机;在客户机上生成用户修改的查询模型;将用户修改的查询模型上载给服务器;和启动服务器上的数据库的查询。
14.根据权利要求12所述的方法,显示所述预定义查询模型的可访问部分的动作包括:显示定义所述预定义查询模型的可访问数据元素的图形视图。
15.根据权利要求12所述的方法,其中可访问数据元素的图形视图包括:可访问的各表格、各表格中的各列、和各表格之间的结合(joins)。
16.根据权利要求12所述的方法,还包括:在服务器上从客户机的用户接收用于所述预定义查询模型的请求;确定用户对所述预定义查询模型的特权;和根据用户的特权确定所述预定义查询模型的可访问部分。
17.根据权利要求12所述的方法,还包括:在客户机上仅显示所述预定义查询模型的可访问部分。
18.根据权利要求12所述的方法,还包括:在服务器上从客户机的用户接收用于所述预定义查询模型的请求;确定用户对所述预定义查询模型的特权;根据用户的特权确定所述预定义查询模型的受保护部分;从客户机上的显示隐藏所述预定义查询模型的受保护部分。
19.根据权利要求12所述的方法,还包括:在服务器上从客户机的用户接收用于所述预定义查询模型的请求;确定用户对所述预定义查询模型的特权;根据用户的特权确定所述预定义查询模型的受保护部分;禁止在客户机上对所述预定义查询模型的受保护部分的编辑。
20.根据权利要求12所述的方法,其中用户修改的查询模型包括:从所述预定义查询模型修改的数据库表格结合(joins)。
21.根据权利要求12所述的方法,其中用户修改的查询模型包括:所述预定义查询模型所缺少的数据库表格。
22.根据权利要求12所述的方法,还包括:在客户机上接收对所述预定义查询模型进行编辑的请求;在客户机上显示至少是数据库中数据元素的可访问部分的图形视图。
23.根据权利要求12所述的方法,还包括:根据用户修改的查询模型,在服务器上生成数据库查询;和启动服务器上的数据库查询。

说明书全文

动态查询模型和方法

技术领域

发明一般涉及分析数据处理领域,特别涉及用于执行定制数据库查询的动态查询模型和方法。

背景技术

商业智能系统主要是作为决策支持系统(DSS)和执行信息系统(EIS)开始的。决策支持系统(DSS)和执行信息系统(EIS)是从现有的联机交易处理(OLTP)系统提供附加信息的增值系统。
随着商业智能系统的发展,它们将决策支持系统(DSS)的功能性与执行信息系统(EIS)的功能性集成在一起,并增加了联机分析处理(OLAP)工具和管理报告工具。这些混合商业智能系统逐渐地从大型机环境转移到分布式服务器/桌面环境,以允许更多的用户访问
近些年来,中央式数据仓库(data warehouses)和数据中心(datamarts)的出现已经造成在机构内等待分析、利用和分配的有效数据急剧增加。然而,这种数据仓库和数据中心通常是为信息传递而不是为交易处理而最佳化的。结果,数据仓库和数据中心仅提供将存储的数据转换成有用的和关键的策略信息的有限的方案。同时,通过提供用于分析大量存储信息的复杂分析工具以支持机构内的有效规划和决策,商业智能系统取得了主导地位。
商业智能系统和其它分析工具通常提供预定义查询模型,以帮助初学者用户和其它信息消费者从数据库中获得信息。然而,这种预定义查询模型的问题是,它们是一般性的,不适合特殊用户需要。为了获得特定的相关信息,用户必须自己写定制查询,其通常需要有高级的数据库知识。结果,尽管使用预定义查询模型能够使所有用户获得一些信息,但是多数用户不能获得与他们特别相关的信息。

发明内容

本发明提供了一种基本上消除或者减少了与以前的系统和方法关联的缺点和问题的动态查询模型和方法。具体地说,为用户提供了用于定制的预定义查询模型。这样就允许用户快速地和容易地使预定义查询适合于他们的特定需要。
根据本发明的一个实施例,生成数据库查询的方法包括:存储查询数据库的预定义查询模型。请求时,向用户显示该预定义查询模型的可访问部分。接收对预定义查询模型的可访问部分的用户编辑,并用来生成用户修改的查询模型。然后根据用户修改的查询模型开始查询。
具体地说,根据本发明的特定实施例,所述显示是定义预定义查询模型的可访问数据元素的图形视图。可访问数据元素的图形视图包括可访问图表、栏和图表、以及这两种图表的结合。在该实施例和其它实施例中,用户修改的查询模型可以包括数据库图表、数据库栏、以及缺少或修改预定义查询模型的结合表。
本发明的技术优点包括提供一个改进的商业智能入口,它允许查询模型更智能地被生成,以及在机构内使用。具体地说,商业智能入口允许使用数据元素的图形视图构建和修改默认查询模型。在可能的情况下,查询模型内的特定数据被自动地链接。所以,用户不需要专的数据库知识就可以容易地定义查询以及随后进行修改。
本发明的另一个技术优点包括提供一种允许用户容易地获得和分析有意义的信息的查询模型和方法。具体地说,向用户提供用于修改和定制的预定义查询模型。因此,初学者用户和其他信息消费者可以修改查询,以适合于他们的特殊需要。这便于所有用户强有地进行数据分析并且允许初学者用户有效地使用可用信息以在他们的机构内改善操作。
本领域的熟练技术人员将能够从下面的附图说明书权利要求书中容易地了解本发明的其他技术优点。

附图说明

为了更完整地理解本发明和其优点,下面结合附图进行如下的说明,其中相同的参考标记代表相同的部件,其中:图1是说明根据本发明的一个实施例的商业智能入口的方框图;图2是说明用于初始化根据本发明的一个实施例的图1的商业智能入口的方法的流程图
图3是说明用于生成根据本发明一个实施例的图1的商业智能入口中的预定义查询模型的方法的流程图;图4是说明用于配置和维护根据本发明的一个实施例的图1的商业智能入口中的客户机应用程序的流程图;图5是说明用于基于根据本发明的一个实施例的预定义查询模型生成和执行一个查询模型的方法的流程图;图6是说明根据本发明的一个实施例的图1的模化查询引擎的操作的流程图;图7是说明根据本发明的一个实施例的图6的模块化查询引擎的操作的流程图;图8是说明根据本发明的一个实施例的多维存储模型的方框图;图9是说明图8的多维存储模型的示例性数据的方框图;图10是说明用于生成根据本发明的一个实施例的图8的多维存储模型的方法的流程图;图11是说明在根据本发明的一个实施例的图1的公文夹中显示相关视图的屏幕图;和图12是说明用于在根据本发明的一个实施例的相关视图之间进行导航(navigating)的窗口标签的屏幕图。

具体实施方式

图1说明了根据本发明一个实施例的商业智能入口(portal)10。一般地说,商业智能入口10提供跨越企业的综合数据访问和信息共享,以及复杂的多维分析工具。该分析工具是高度自动化的和直观的,以允许宽范围的用户在进行战略决策时利用存储的信息。这样,商业智能入口10最大化用户从他们的数据中接收的决策支持利益,同时最小化实施和管理系统的成本。
在图1所示的实施例中,商业智能入口10实现了三层级分布式结构,包括由一个或多个网络18连接的一个数据库层级12、一个服务器层级级14和一个客户机层级16。服务器和客户机层级14和16是基于Java的,以支持网际通信协议(TCP/IP)、多客户机和服务器平台、对多种数据源的组合连接、和跨越企业的入口10的完全可移植性。另外,基于Java的服务器和客户机层级14和16提供开放式API结构,该结构可适用于处理数据库中的结构化数据和非结构化数据。客户机/服务器网络18包括公司的企业网,而服务器/数据库网络18包括部分公共和私有网络。可以理解,商业智能入口10可以用其它合适的结构、编程语言、和链接来实现。
参照图1,数据库层级12包括一个或多个数据库20。如下面更详细所述,每个数据库20以包含所有连接到该数据库20的必要信息的别名而显露,包括数据库登录。数据库别名的使用防止了对本地数据库的直接用户访问,以便维护数据库20的完整性。对此示例性实施例,数据库20的每个可以是任何Java数据库连接(JDBC)或目标数据库连接(ODBC)适应的数据库,以及适当的数据仓库或数据中心。
服务器层级14包括一个或多个服务器30。服务器30每一个包括一组可以在不同平台上操作的基于Java的应用程序。如下面更详细所述,服务器30为商业智能入口10提供分层安全、中央管理、快速多线程组合数据访问、和多维数据分析。
服务器30包括目录32、目录管理器34、安全管理器36、查询生成器38、数据库访问系统40、高速缓存管理器42、多维模型管理器44、和客户机管理员46。目录32存储所有由商业智能入口10的管理员和用户创建的配置、文件和工作成果。这集中了文件的管理,消除了客户机系统上的冗余和过时副本,允许文件在企业间共享,并为文件提供连续的安全性。目录管理器34管理服务器30内的全部共享信息。可以理解,这些配置、文件和工作成果也可以另外在商业智能入口10中适当地存储并管理。
目录32包括一个或多个由系统管理员配置的数据库别名50、用户简档52、安全组54、和预定义查询模型56。目录32还包括一个或多个存储由系统用户创建的相关视图60的公文夹58。如上所述,数据库别名50包含所有连接到数据库20必要的信息。数据库别名50的使用防止了直接用户数据库访问,以维持本地数据库20中的数据完整性,并使非技术用户可能安全地访问公司数据,而不用担心被毁坏。另外,数据库别名50还用作对物理数据库20的组合连接,并且因此减小了支持大量客户机所必需的数据库连接的数量。
用户简档52每一个都为用户定义了优先权的指定范围和一个或多个用户对其具有访问权的安全组54。用户简档52由系统管理员生成并维护。安全组54用由系统管理员分配给每个组54的安全权和优先权实现分层安全模型。提供管理员安全组以允许管理员对系统的充分的访问权,包括增加、修改、和删除系统中的安全组54和用户简档52的许可。用户继承的最终的安全权和优先权是如用户简档52中定义的他或她的个人的权力和他或她所属于的每个安全组54的权力的统一。这样,暴露给用户的系统特性通过从安全组54分配或个人用户简档52持有的许可或优先权的扩展使用被控制。因此,管理员可以具有连接到数据库20并增加或删除用户的能力,而有能力的用户可能不具有这个许可。作为替代,有能力的用户可以具有对全范围的数据分析和协作特征的访问权,而信息消费者仅仅能够运行并修改预先由管理员或有能力的用户定义的报告或图表。
预定义查询模型56自身含有特定数据库的逻辑模型,该特定数据库的逻辑模型是为了使较少技术背景的用户容易地和直观地作出查询创建而建立的。预定义查询模型56还从数据库20中抽取数据,仅暴露数据库20中的与将使用特定查询模型56的用户的组或各组相关的那些部分。预定义查询模型56包括来自数据库的相关表、数据库表内的字段和共同定义查询的各数据库表之间的链接。预定义查询模型56形成由用户创建的所有查询的基础。这样,预定义查询模型56控制任何特定用户组将具有访问权的任何数据库20中的元素。此外,预定义查询模型56建立可以限制任何用户组进行查询的类型的机制。具体地,该机制定义最大计算机资源,或控制器,它们可以被用来执行查询和允许在各表之间结合,以防止可能冲击商业智能入口10的完整性的失控或恶意查询。
公文夹58提供了一种存储用户创建或获得的视图60的文件系统。此外,为了在内部生成视图60,公文夹58可以包括,例如,字处理文件、电子数据表文件和网页的视图60。公文夹58的每一个都是一个复合文件,它能够恢复视图60或其它有关数据集的收集。视图60可以直接被存储在公文夹58中,或者在公文夹58中相互链接。
对公文夹58的访问由为用户建立的安全参数确定,并且还由公文夹58中的视图60的生成器确定。在一个实施例中,用户永远不会看见他们不具有访问优先权的公文夹58。另外,可以定制公文夹58,以当公文夹58中的视图60已经被更新或另外修改时向相关的用户提供通知。这样,系统操作的安全性被维护得完整,有利于企业内的协作和信息共享。
视图60提供用于显示诸如表格、图形、报告、数据透视表(pivot)和网页的多种格式。视图60既可以是代表当前数据的现场(live)视图,也可以是在特定时间点的数据的瞬像视图。另外,如下更详细所述,现场视图60可以被安排为以规则的间隔自动更新、当第一次打开时更新等等。瞬像视图60可以被设置为覆盖在先的瞬像或为历史分析创建瞬像或翻转视图60的序列。视图60和公文夹58可以由用户进行私人保存或可以在一个或多个安全组54中共享,以有助于协作和进行决策。
安全管理器36管理商业智能入口10中的安全。具体地,安全管理器36包括用于生成和维护用户简档52和安全组54的预定义安全任务。安全管理器36还提供允许用户简档52和安全组54从父级继承优先权的安全层次。这样,系统管理员可以容易地建立并维护商业智能入口10的安全。
查询生成器38提供数据库元素的图形视图,以在定义查询模型中帮助系统管理员和有能力的用户。预定义的每个查询模型56定义数据库连接、从数据库显露的表格和栏目的集合(family)、允许的结合类型和联合、元数据、执行控制器、和查询的别名。预定义查询模型56可以在以后由大量的用户进行修改和使用,以执行安全的查询。
数据库访问系统40包括功能性和软件,用于访问和查询数据库20,并且用于将查询结果返回给服务器30,由用户进行处理、分析和报告。对于示例的实施例,数据库访问系统40包括查询调度程序72、SQL生成器74、连接管理器76、和Java数据库连接(JDBC)78。
查询调度程序72初始化被调度的查询。如上所述,任何视图60,包括包含于视图60中的数据和计算,都可以根据几个选项被设置为从数据库20刷新,该几个选项包括指定的时间调度程序。这允许视图60被轻易地刷新以反映数据的当前状态,并允许用户总是用最新的信息进行工作。另外,可以自动地调度瞬像视图60根据同样的查询创建瞬像视图60的历史库。因此,例如,可以调度视图60在每个星期一、星期三和星期五的的下午10点钟进行更新,并经由共享的公文夹58自动地分配给一组用户。
SQL生成器74从用户接收用户修改或更新的查询模型,并生成用于由连接管理器76执行的原文的SQL查询。这样,由用户以图形显示和编辑的查询模型被自动地转换为可执行的数据库指令,并在其后执行。这允许初学者用户和其他信息消费者用很少的或根本不用编程的知识就可以充分地使用商业智能入口10并从中获益。
在一个实施例中,SQL生成器74包括对话指定生成器和生成原文SQL的SQL语法分析树。对话指定生成器对应于由商业智能入口10访问或与其连接使用的数据库20的不同类型。对话指定生成器可以包括,例如Oracle、Sybase、DB2、和SQL生成器。
连接管理器76从SQL生成器74接收原文SQL查询请求,并与数据库20通信,以通过Java数据库连接(JDBC)78执行被请求的查询。在示例的实施例中,连接管理器包括模块化查询引擎80,该引擎包括智能数据集82和数据驱动器84的程序库。如下更详细所述,每个数据驱动器84执行预定义的数据库操作。智能数据集82在必要时从程序库中选择并排序数据驱动器,以执行查询请求。结果,标准化了数据库访问方法并且不需要为每个应用程序定制数据集。
高速缓存管理器42包括具有多个页92的高速缓存90和处理线程94。高速缓存42响应于查询请求接收从数据库20提取的数据,并将它们馈送给页92。高速缓存管理器42与驱动高速缓存90的处理线程94异步运行,以将数据馈送给页92。可以理解,数据可以另外由服务器30进行适当地接收、存储、和初始处理。
多维模型管理器44生成并处理多维存储模型100。如下更详细所述,多维存储模型100利用非稀疏(non-sparse)结构以最小化模型100的尺寸。模型100的减小的尺寸改善了处理次数,并在数据分析期间允许有效的数据透视(pivot)和展示(drill)操作。另外,模型100使用开放式结构以允许在已经构建了该模型后动态地执行计算。结果,用户可以创建新的计算以分析在模型100的原始定义期间的不期望的数据交叉。这减少了支持数据透视(pivot)和展示(drill)操作必需的时间和资源。
客户机管理员46提供入口10从其管理客户机的中心点。客户机管理员46提供自动管理客户机应用程序的零管理结构,以最大化用户的执行和最小化网络流量,同时保证客户机总是使用最新的应用程序。
客户机层级16包括多个客户机110。客户机110可以在其它客户机和服务器30的本地,或与其远离。在一个实施例中,客户机110提供对服务器30的全部访问权,包括系统管理。如上所述,所有客户机110的功能由存储在服务器30上的健壮(robust)的许可组控制。许可被授权给单个用户和用户的安全组。这样,商业智能入口10的健壮的功能性被适当地控制,并定量地供给企业的所有用户,对较少技术的用户也不会看起来过于复杂。
客户机110包括客户机API 112和图形用户界面(GUI)114。在示例的实施例中,客户机110被设计为具有其为Java片或Java豆(bean)的所有构件。在这个实施例中,如下面更详细所述,当与服务器30建立连接时,客户机110识别它的构件。这允许有效管理客户机110和将附加的功能性集成进客户机110。
客户机API 112包括一组定义客户机110如何与服务器30通信的Java级(classes)。因为客户机API 112允许任何Java程序与服务器30通信,所以企业可以有效地为它的客户机110增加附加的、定制的能力。
图形用户界面114包括一组管理面板116、一组用户面板118、一组向导120、查询编译器122、一组阅读器124、和属性检查器126。管理和用户面板116和118提供用于指导管理员和用户进行他们各自操作的图形显示。
向导120将创建过程分为一个或多个逻辑步骤,并指导管理员和用户进行创建过程。这有助于初学者用户和其他信息消费者在执行查询和分析结果时不用详细的编程知识。这样,企业内的所有用户能够有效地使用商业智能入口10以提取有意义的数据,并因此提高了他们在企业内的操作区域。
查询编译器122指定数据从哪里来、显示什么实质性的数据、和它如何被存储。查询编译器122提供预定义查询模型56的图形视图,以允许用户直观地理解和修改模型56,以适合特定的需求。在一个实施例中,查询编译器122只允许用户查看那些他们有优先权的模型56的数据元素。查询编译器122将预定义查询模型56的用户编辑作为可以上载到服务器30并被服务器30执行的用户修改的查询模型128而存储。
阅读器124创建了对表格、图形、报告、数据透视表、网页等等的查看的结合。阅读器124允许用户容易地从数据的任何视图60转换到任何其它视图,并对数据进行分类和筛选。视图60也可以输出给HTML,用于在网络服务器上发布或在目录32中共享。如上所述,数据视图60可以是现场的或瞬像的。视图60或视图60的公文夹58可以在单个用户自己的目录区域内私人保存,也可以在一个或多个安全组54中分配和共享,以帮助协作和进行决策。
在阅读器124内,表格阅读器130将信息显示为一系列的列或行。因为表格视图提供了如何组织信息的整体概念,所以它典型地用作开发概念的开始点。在表格视图中,用户可以增加筛选器,增加计算的字段,并增加概要和次总信息。可以重新排列、隐藏和另外修改各列。可以在不同的层次上分类和查看内容。
报告阅读器132以报告的格式显示数据。报告视图提供了健壮的、联合的报告格式并且有助于自动的报告生成和分配。用户可以在报告的交互图形设计视图中自由地安排各字段和各列,同时增加计算、次总和、分组、标题、页脚、题目和图形。
图形阅读器134以宽范围的2维或3维格式显示数据的图形视图。这些格式可以包括:例如杆形、饼形、线形、分散形和放射形的图形。在用图形工作时,用户可以通过筛选数据、使用原始数据的子集改变图形类型或内容,并提取多维数据。也可以在空闲时,通过按不同的次序将记录分类以及改变图形属性来改变图形视图。
数据透视表阅读器136提供沿着多个方向显示多维或立体数据的数据透视表视图。这允许用户沿着不同的方向将信息分割成片或方块,以获得对企业的活动或成绩的不同的观点。数据透视表视图支持在多个方向上的分层,并允许用户执行向下展示、向上展示或贯通性展示分析。如下面更详细所述,多维视图生成于多维存储模型100。
浏览器阅读器138提供嵌入式、交叉平台网络浏览器。这允许用户访问工作成果和基于web(网络)的互联网或互联网环境。在其它视图中创建的报告或对象可以输出给HTML,用于粘贴到网站上,或通过浏览器界面显示。
属性检查器126允许用户改变特定视图的显示属性。在一个实施例中,属性检查器126是无模式的。在这个实施例中,属性检查器126在屏上时应用这些变化,以允许用户在关闭属性检查器122之前用不同的配置和属性进行试验。
商业智能入口10的客户机110和服务器30一起向企业信息结构增加了战略层,并向对宽范围的用户是固有地可扩展的集成查询、报告、和分析提供单个的入口(entry)点。由于商业智能入口10可以在企业内充分地集成,因此入口10有助于日常企业范围的分析传递和信息共享。结果,企业内更多的人将能够更经常地和生产性地使用已经为企业存在的数据。
图2是说明用于初始化按照本发明的一个实施例的商业智能入口10的方法的流程图。参照图2,该方法开始于步骤200,其中系统管理员定义了用户简档52。如上所述,用户简档52为用户利用系统内的特征提供许可。接下来,在步骤202,系统管理员定义安全组54。如上所述,用户继承的最终的安全权和优先权是如用户简档52中定义的他或她的个人的权力和他或她所属于的每个安全组54的权力的统一。
接着在步骤204,系统管理员为每个数据库20生成数据库别名50。数据库别名50防止了对数据库的直接用户访问,以维持数据整体性,并使非技术用户可能安全地访问公司数据,而不用担心毁坏。数据库别名还用来组合连接物理数据库20,并因此减少支持大量客户机110所必需的数据库连接的数量。
接下来在步骤206,系统管理员使用查询生成器38生成预定义查询模型56。预定义查询模型56控制任何特定的用户组将拥有访问权的数据库20的元素。另外,预定义查询模型56约束可以被执行的查询类型,并限定可以用来执行该查询的最大计算机资源和各表格之间的可允许的结合,以防止失控或恶意查询。
步骤206通向该过程的结束,其中系统管理员建立了企业内使用的商业智能入口10。为了控制系统内的数据的访问和分配,作为建立过程的一部分,已经为用户定义了许可和查询。
图3是说明用于生成按照本发明的一个实施例的预定义查询模型56的方法的流程图。在这个实施例中,模型内的指定数据被链接到可能的程度。另外,将数据库元素以图形的形式显示给系统管理员,以有助于查询模型56的生成。
参照图3,该方法开始于步骤220,其中查询生成器38将自动地识别并向系统管理员显示为其生成查询的数据库20的各表格和各列。接下来,在步骤222,系统管理员为预定义查询模型56选择各表格和各列的子集。
在接下来的决定步骤224,查询生成器38确定数据库20是否具有完全的外部密钥(FK)/主密钥(PK)信息。完全的外部密钥/主密钥信息允许不同表格中的数据自动地链接。因此,如果数据库20包括完全的外部密钥/主密钥信息,则决定步骤224的肯定分支通向步骤226,其中在预定义查询模型56中,子表格使用外部密钥/主密钥信息自动地链接到父表格上。步骤226通向该过程的结束。在此,可以保存预定义查询模型56或可以由系统管理员进行进一步的编辑。
现在返回到决定步骤224,如果完全的外部密钥/主密钥信息不可用,则决定步骤224的否定分支通向决定步骤228。在决定步骤228,查询生成器38确定完全的主密钥信息是否可从数据库20获得。完全的主密钥信息的供应允许通过数据库表格搜索确定父表格和子表格。因此,如果完全的主密钥信息可用,则决定步骤228的肯定分支通向步骤226,在那里执行数据库表格搜索以确定父表格和子表格。在父表格和子表格被确定之后,他们被自动链接以生成预定义查询模型56。然后可以保存或由系统管理员进一步修改该预定义查询模型。
现在返回到决定步骤228,如果完全的主密钥信息不可用,则决定步骤228的否定分支通向决定步骤230。在决定步骤230,查询生成器确定否可从数据库20获得能够识别父表格和子表格和唯一索引信息。如果唯一索引信息可获得,则决定步骤230的肯定分支通向步骤226。在步骤226,唯一索引信息用来在数据库中搜索父表格和子表格。然后查询生成器38自动地链接父表格和子表格以生成预定义查询模型56。然后可以保存或由系统管理员进一步修改该预定义查询模型。
现在返回到决定步骤230,如果唯一索引信息不能从数据库20中获得,则决定步骤230的否定分支通向步骤232。在步骤232,系统管理员手动地识别和链接父表格和子表格以生成预定义查询模型56。这样,用最小的管理员干预,最大程度地自动地生成了预定义查询模型56。可以理解,数据库表格和其它元素可以另外进行适当地链接。
图4是说明用于配置和维护按照本发明的一个实施例的客户机应用程序的方法的流程图。在这个实施例中,使用薄引导程序(thin boots trapapplet)从服务器30进行中央式配置和维护客户机应用程序,该引导程序最初用于将形成客户机应用程序的Java级别下载到客户机110。此后,当客户机110初始化新的会话时,客户机软件的全部升级由服务器30自动地完成。安装/更新过程的部分包括下载将所有模块和资源的所有名称和版本列表在客户机110上的显示文件。
参照图4,该方法开始于步骤250,其中由客户机110进行对服务器30的新的连接。在步骤252,客户机110上的引导程序代理将用户的显示文件传送给服务器30。
在接下来的步骤254,服务器30将列表在显示文件中的所有模块和资源的版本与服务器30中的对应文件的当前版本进行比较。在决定步骤256,服务器30根据该比较确定是否各模块或资源中的一些或全部已经过时。如果各模块或资源中的一些或全部已经过时,则决定步骤256的肯定分支通向步骤258。在步骤258,服务器30为客户机110生成递增的更新。该递增的更新仅包括需要更新的模块。
接下来,在步骤260,服务器将递增的更新传送给客户机110。在步骤262,客户机110根据该递增的更新更新客户机侧的应用程序。然后在步骤264,为最新更新的客户机110建立新的会话。返回到决定步骤256,如果没有客户机应用程序过时,则决定步骤256的否定分支也通向步骤264,其中建立了新的会话。这样,如果有的话,服务器30确定什么模块(或Java级别)已经过时、失踪、或陈旧,然后选择性地将正确的模块与更新的显示文件一起推给用户的机器。结果,用户永远不必手动地更新客户机软件,并能够容易地漫游在各工作站之间,以进行登录,而不需要请求在每个工作站上重新安装的他们的应用程序和数据文件。另外,客户机110运行迅速并总是最新的,同时中央式地维护管理并最小化网络流量。
图5是说明用于根据按照本发明的一个实施例的预定义查询模型56修改和执行查询模型的方法的流程图。在这个实施例中,由管理员在服务器30上生成并维护预定义查询模型56,并基于请求和访问优先权的校验将其提供给用户。
参照图5,该方法开始于步骤280,其中服务器30从用户接收对预定义查询模型56的请求。接下来,在步骤282,服务器根据用户的优先权确定预定义查询模型56的可访问部分。可访问部分是用户可以观看到的查询模型5 6的部分。在特定的实施例中,可访问部分也可以是可由用户编辑的查询模型的部分。可以通过确定用户对查询模型的优先权来完成预定义查询模型56的可访问部分的确定,然后根据用户的优先权确定可访问部分。
在确定预定义查询模型56的可访问部分时,服务器30也可以确定预定义查询模型56的受保护的部分。该保护部分是预定义查询模型56的剩余或其它适当的部分。如下面更详细所述,查询编译器122可以隐藏预定义查询模型的保护部分或禁止对预定义查询模型的受保护部分进行编辑。
接下来,在步骤284,服务器30将预定义查询模型56下载到客户机110。在步骤286,查询编译器122向用户显示预定义查询模型56的可访问部分。在一个实施例中,查询编译器122显示定义预定义查询模型56的可访问数据元素的图形视图。在显示可访问部分时,查询编译器122可以隐藏预定义查询模型56的受保护的部分,以阻止编辑和/或观看那部分。
前进到步骤288,查询编译器122接收用户对预定义查询模型56的编辑。用户编辑可以包括数据库表格、数据库表格中的各列、和数据库表格之间的结合的选择和去选择(deselection)。接下来,在步骤290,查询编译器122根据用户对预定义查询模型56的可访问部分的编辑生成用户修改的查询模型128。在步骤292,为了执行,将用户修改的查询模型128上载到服务器30。
在步骤294,SQL生成器74根据用户修改的查询模型128自动地生成数据库。数据库查询包括可以由连接管理器76执行以执行查询的原文SQL。在步骤296,服务器30接收查询的结果。如上所述,查询结果最初由高速缓存管理器42存储在服务器30中。
前进到决定步骤298,如果该查询包括多维分析,则决定步骤298的肯定分支通向步骤300,在其中根据结果生成多维存储模型100。在步骤302,多维存储模型100被用于生成数据透视表、透穿性展示和其它用户请求的视图。
返回到决定步骤298,如果未指示多维分析,则决定步骤298的否定分支通向步骤304,在其中根据查询结果生成请求的单维视图。步骤302和304每个都通向决定步骤306。在决定步骤306,服务器30确定是否为以后的再使用而存储用户修改的查询模型128。如果用户期望保存查询模型128,则决定步骤306的肯定分支通向步骤308,其中将查询模型保存到用户的选择的公文夹58或用户具有访问权的安全组58。步骤308和决定步骤306的否定分支每个都通向决定步骤310。
在决定步骤310,服务器30确定是否作为历史瞬像保存查询结果。如果用户选择将结果保存为瞬像,则决定步骤310的肯定分支通向步骤312,其中将查询结果保存到选择的公文夹58。步骤312通向该过程的结束,在此将预定义查询模型56提供给用户进行修改和定制。使用数据元素的图形视图显示和修改预定义查询模型56。这有助于由所有用户进行健壮的数据分析,并允许初学者用户有效地使用可用的信息,以改善他们的机构内的操作。
图6是说明按照本发明的一个实施例的查询引擎80的细节的方框图。在这个实施例中,查询引擎80包括数据驱动器84的程序库和智能数据集82,该智能数据集响应于查询请求可操作,以从程序库识别必要的数据驱动器84而执行该请求。智能数据集82进一步可操作,以确定执行该请求的数据驱动器84的必要的次序,以必要的次序生成包括必要的数据驱动器84的驱动器链,并按次序执行驱动器链中的数据驱动器84。
参照图6,智能数据集82响应于查询请求生成驱动器链320。驱动器链320包括执行所请求的查询所需要的数据驱动器322。根据查询请求,从可用的数据驱动器84的程序库中自动地选择数据驱动器322并由智能数据集82进行排序。在一个实施例中,程序库中的数据驱动器84从基础级(baseclass)中得出,为此,所有界面方法调用该链中的下一个驱动器。在这个实施例中,每个驱动器具有用于布置在链320内的同样相对位置的链优先级。如这里所用,术语“每个”意味着至少一个子集的经识别的项目的每一个。
对于示例的实施例,驱动器链320包括数据驱动器D1、D2、D3和D4。数据驱动器D1执行取回数据库操作,该操作返回所请求的记录。接下来,返回的记录由数据驱动器D2分类,并由数据驱动器D3编索引。然后,数据驱动器D4在存储和编索引的数据记录上执行所请求的搜索。这样,模块化查询引擎80使用标准化的访问方法执行数据库查询。结果,不需要为特定的数据库查询定制入口10,并减少了提供和维护商业智能入口10的费用
图7是说明按照本发明的一个实施例的模块化查询引擎80的操作的流程图。参照图7,该方法开始于步骤340,其中由智能数据集82接收查询请求。接下来,在步骤342,智能数据集82从程序库动态地选择执行查询请求所必需的数据驱动器84。
前进到步骤344,智能数据集82确定执行该请求所必需的数据驱动器84的次序。在步骤346,智能数据集82以执行该查询请求的必要次序动态地构建包括必要的数据驱动器的驱动器链。
接下来在步骤348,智能数据集执行该驱动器链以执行该查询请求。在驱动器链内按次序执行数据集82,当完成它自己的执行时,每个数据集调用该链中的下一个驱动器84。结果,查询引擎80是应用程序独立的,并可以通过将数据驱动器84增加到程序库和关于它们的功能性编程智能数据集82而容易地进行修改,以支持新的功能性。
图8是说明按照本发明的一个实施例的多维存储模型100的细节的方框图。在这个实施例中,存储模型100利用非稀疏结构以最小化模型100的尺寸。另外,存储模型100使用开放式结构,以允许在构建模型100后动态地执行计算。
参照图8,多维存储模型100包括每维的存储槽360和经计算的维的存储槽362。维存储槽360包含各入口(entry)和从数据库中提取的相关数据值,而经计算的维存储槽362包含根据该提取的数据计算的数据。
对于示例的实施例,每个维存储槽360包括入口存储器370和维存储器372。入口存储器370包括一组对应维的非稀疏入口374。最好是仅包括非稀疏入口。入口374代表联合维值,并且每个识别相关的数据值376。在一个实施例中,每个入口374包括到相关数据值376的指针。另外,数据值376可以与各入口374一起存储在入口存储器370中。可是,指针的使用和数据值376的分离存储改善了多维存储模型100的效率和处理速度。
维存储器372包括与入口存储器370中的各入口374相关的数据值376。数据值376代表每维的唯一的维值。
为每个非稀疏入口374提供一组维际链接380。每个维际链接识别不同维存储槽360中的非稀疏入口374之间的交叉。该组维际链接380包括一个或多个维际链接。在一个实施例中,维际链接380是双向的,以允许在从入口点的任一方向的各维存储槽360之间的有效遍历(traversals)。
维际链接380共同地识别维存储槽360中的非稀疏入口374之间的所有交叉。因此,包括非存储空交叉的所有交叉都可以从非稀疏入口374和维际链接380的遍历得到确定。具体地,第一和第二维中的各数据库入口之间的空交叉由模型中没有数据库入口或没有将第一维中的入口374连接到第二维中的入口的维际链接380来确定。第一和第二维中的各入口374之间的非稀疏交叉是通过将维际链接380从第一维中的指定入口遍历到第二维中的指定入口、然后获得与第二维中的入口374相关的数据值376来确定的。通过维际存储模型100的遍历获得的数据和信息是为如下更详细所述的进一步的处理输出的。
经计算的维362包括一组经计算的值382。经计算的值382是从由用户用多维存储模型100同期请求的预定义计算导出来的。因此,当多维存储模型100提供开放式结构以允许在它的创建后进行计算时,预计算并存储用户用该模型请求的同期计算,以最小化模型100创建后的处理和改善多维分析的速度。
图9是说明示例性数据400和示例性数据400的多维存储模型402的方框图。参照图9,示例性数据400包括维C1和C2和经计算的维C3。维C1包括唯一的入口值A、B和C,而维C2包括唯一的入口值D、E、F、G和H。经计算的维C3包括经计算的对应于不同的预定义计算的数据值1、2、3、4、5和6。
示例性存储模型402包括维C1和C2的维存储槽404和经计算的维C3的经计算的维存储槽406。在C1维存储槽404中,维存储器410包括唯一的维值A、B和C。入口存储器412包括数据值与其相关的各入口和到各数据值的各指针。类似地,C2维存储槽404在维存储器414中包括唯一的数据值D、E、F、G和H。入口存储器416包括与数据值相关的各入口和到各数据值的指针。维际链接420识别C1和C2维中的各入口之间的交叉,并因此识别数据之间的交叉。经计算的维406包括与C1和C2维中的数据的预定义交叉相关的经计算的数据值1、2、3、4、5和6。
可以从示例性存储模型402确定,例如C1和C2维中的入口值A和D交叉,因为它们通过维际链接420连接。还可以确定入口值C和D未交叉,因为它们未通过维际链接420进行连接。如果任何一个或一系列维际链接连接各入口,则各入口通过维际链接进行连接。
图10是说明用于生成和使用按照本发明的一个实施例的多维存储模型100的方法的流程图。参照图10,该方法开始于步骤440,其中响应于查询请求,由多维模型管理器44生成多维存储模型100,并且该模型是基于查询请求的结果的。该查询请求为多维存储模型100指定了各维和数据维。
在一个实施例中,多维模型管理器44通过首先从源取回数据记录来生成多维存储模型100。然后再为每个数据记录取回各维值和数据值。此后,多维模型管理器44为数据记录的每个维值确定该维值是否出现在入口存储器370中,这种情况下它可能被使用。如果该维值未出现在入口存储器370中,则为入口存储器370中的维值和存储在维存储器372中的对应的数据值376创建入口374。在任何一种情况下,接下来从左到右遍历各维,以为入口存储器370中的各入口374创建维际链接380。在创建正消失的连接时,再使用现存的连接。另外,对于最靠右的维,由多维模型管理器44增加为记录取回的数据值。可以理解,可以另外适当地生成多维存储模型100。
在生成多维存储模型100后,步骤440进行到步骤442。在步骤442,多维模型管理器44接收对指定的各维和/或数据维的子集的查看请求。接下来在步骤444,多维模型管理器44确定从存储模型100生成视图所必需的遍历和每个遍历的开始点。通过指定的各维和根据如何组织模型100确定的入口上的开始点来定义各遍历。
在一个实施例中,多维模型管理器44使用从下到上、从右到左的递归移动从多维存储模型100接收第一个和下一个记录。在这个实施例中,为了检索第一个记录,多维模型管理器将为显示选择的第一维定位到第一入口存储值。接下来,将第一入口左侧的所有父入口定位到它们的第一入口存储值。所选择的维的右侧的子入口也被定位到它们的第一入口存储值。然后,多维模型管理器44在这些位置处为第一记录检索各维入口的值。为了检索下一个记录,多维管理器44试图移动视图最右侧的子入口。如果最右侧的子入口可移动,则它被重新定位并在多维存储模型100内的当前位置取回数据值。如果最右侧的子入口不可移动,则多维模型管理器44试图移动该子入口的父入口,该父入口是该子入口左侧紧邻的入口。如果该父入口可移动,则它被重新定位并在多维存储模型100内的当前位置取回数据值。如果该父入口不可移动,则试图移动该父入口的父入口,这个父入口是第一个父入口左侧紧邻的入口,并重复这个过程直到没有父入口遗留下来。此时,过程结束。可以理解,可以另外适当地确定多维存储模型100内的遍历和开始点。
前进到步骤446,多维模型管理器44经连接多维链接380从入口点遍历多维存储模型100,以确定指定交叉点的存在和/或值。在步骤448,多维存储模型100确定指定交叉点的任何值。接下来,在步骤450,多维模型管理器44确定是否对模型100存在附加的遍历。如果附加的遍历存在,则决定步骤450的肯定分支返回到步骤446,并执行遗留的遍历和计算交叉值,直到完成所有的遍历。决定步骤的否定分支则通向步骤452。
在步骤452,从多维存储模型100输出的数据和信息被总结和分类。可以理解,可以另外配置多维存储模型100以预分类和总结数据。可是,通过将遍历操作与总结和分类操作分离,改善了处理的效率。
接下来在步骤454,从多维存储模型100输出的信息在由客户机110的阅读器124请求的视图中以图形显示给用户。前进到决定步骤456,如果请求附加的视图,则肯定分支返回到步骤442,在其中接收视图请求和指定的各维并重复该过程,直到完成所有请求的视图并将它们显示给用户。此时,决定步骤456的否定分支通向过程的结束。这样,商业智能入口10提供了减小尺寸和改善了处理速度的多维存储模型100,该模型在数据分析期间支持有效的数据透视和展示操作。另外,用户可以创建新的计算以分析在模型的原始定义期间不期望的数据交叉。这减小了支持数据透视和展示操作所必需的时间和资源。附加的视图包括为高层和低层分析展示的数据透视表视图和数据。
图11是说明按照本发明的一个实施例的相关窗口480的显示的屏幕图形。参照图11,显示窗口480包括沿着显示窗口480的上沿布置的带有多个下拉式菜单488的菜单栏486。工具栏490被布置在紧临菜单栏486的下面。
显示窗口480还包括目录窗口492和与目录窗口492相临的公文夹窗口494。目录窗口492显示目录32内的文件分层。公文夹窗口494显示由活动公文夹链接的视图。
在公文夹窗口494内,每个视图分散地显示在离散的视图窗口496中。由公文夹链接的离散文件中视图的存储和公文夹窗口494内的相关视图的显示允许相关文件容易地组织到一起并有效地显示给用户。具体地,公文夹窗口494用单数据界面(SDI)提供公共窗口。在多数据界面(MDI)中的公共窗口内显示离散的视图窗口496。可以理解,相关部件的其它类型可以离散地存储并通过复合文件为显示而被链接在一起。
图12是说明包括用于在按照本发明的一个实施例的公文夹中的相关视图之间进行导航的视图按钮的显示窗口500的屏幕图形。参照图12,显示窗口500包括沿着显示窗口500的上沿布置的带有多个下拉式菜单504的菜单栏502。工具栏506被布置在紧临菜单栏502的下面。显示窗口500包括如前结合目录窗口492和公文夹窗口494所述的目录窗口508和公文夹窗口510。
在示例的实施例中,用公文夹窗口510最大化视图窗口512以提供优化的查看。为了允许在最大化的窗口之间进行导航,响应于窗口512的最大化提供有视图按钮514,并显示为沿着公文夹窗口510的上沿的标签。视图按钮514每个都是可操作的,以响应于激活而将相关的窗口512显示为活动窗口。这允许用户快速且容易地在各窗口之间进行导航。结果,用户需要经常地移动、关闭、打开和调整窗口的大小,以观看存储在离散文件中的相关数据。可以响应于其它合适的事件而另外显示和生成视图按钮。例如,可以在第一个窗口通过叠加窗口而从显示变成至少基本上隐藏的任何时间生成视图按钮。因此,用户一指示应该最大化、定位或显示窗口,就可以为将要被覆盖的窗口生成视图按钮。视图按钮514可以独立于对应的窗口而定位。因此它们可以相临于对应的窗口或远离对应的窗口被显示。
尽管已经用几个实施例描述了本发明,但可以向本领域的技术人员建议各种变化和修改。本发明意欲包含这些落在后附的权利要求的范围中的变化和修改。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈