首页 / 专利库 / 企业组织 / 商业智能 / 多维存储模型和方法

多维存储模型和方法

阅读:711发布:2021-02-15

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

1.一种驻留在计算机可读介质上的多维存储模型,该多维存储模型包括:
关于多个维中的每个维的一组非稀疏入口,每个非稀疏入口都确定一关 联的数据值;
关于每个非稀疏入口的一组维际链接,每个维际链接都确定一不同维的 非稀疏入口之间的交叉;并且
这些维际链接共同确定这些维中的非稀疏入口之间的所有交叉。
2.如权利要求1的多维存储模型,其中所述维际链接是双向的。
3.如权利要求1的多维存储模型,还包括:
一组关于所计算出的维的所计算出的值,每个所计算出的值表示不同维 的非稀疏入口之间关联的交叉处的一值;以及关于每个所计算出的值的计算出的值的链接,计算出的值的链接确定关 联的交叉。
4.如权利要求1的多维存储模型,还包括:
关于每个维的一组数据值,每组包括关于该维的非稀疏入口的关联数据 值;以及
每个非稀疏入口包括指向该关联的数据值的指针
5.一种驻留在计算机可读介质上的商业智能入口,该商业智能入口包括:
客户部分,可以操作来请求关于多个维中的入口的数据库查询;
服务器部分,可以操作来执行数据库查询并基于数据库查询结果生成多 维存储模型,该多维存储模型包括:
关于多个维中的每个维的一组非稀疏入口,每个非稀疏入口都确定一关 联的数据值;
关于每个非稀疏入口的一组维际链接,每个维际链接都确定一不同维的 非稀疏入口之间的交叉;并且
这些维际链接共同确定这些维中的非稀疏入口之间的所有交叉。
6.如权利要求5的商业智能入口,其中所述维际链接是双向的。
7.如权利要求5的商业智能入口,该多维存储模型还包括:
一组关于所计算出的维的所计算出的值,每个所计算出的值表示不同维 的非稀疏入口之间关联的交叉处的一值;以及关于每个所计算出的值的计算出的值的链接,计算出的值的链接确定关 联的交叉。
8.如权利要求5的商业智能入口,该多维存储模型还包括:
关于每个维的一组数据值,每组包括关于该维的非稀疏入口的关联数据 值;以及
每个非稀疏入口包括指向该关联的数据值的指针。
9.一种用于生成多维存储模型的方法,包括:
接收来自关于多个维的入口的数据库查询的结果;
关于每个维生成一组非稀疏入口;
确定关于每个非稀疏入口的关联数据值;
生成一组共同确定这些维中的非稀疏入口之间的所有交叉的维际链接。
10.如权利要求9的方法,其中所述维际链接是双向的。
11.如权利要求9的方法,还包括:
接收计算出来的维;
生成一组关于所计算出的维的所计算出的值,每个所计算出的值表示不 同维的非稀疏入口之间的交叉处的一值;以及生成关于每个所计算出的值的计算出的值的链接,计算出的值的链接确 定关联的交叉。
12.如权利要求9的方法,确定关于每个非稀疏入口的关联数据值的步 骤还包括为每个非稀疏入口生成一指向关联的数据值的指针。
13.一种判定一第一维中的第一入口与一第二维中的第二入口之间的交 叉的方法,包括:
提供一多维存储模型,该多维存储模型包含:
关于多个维中的每个维的一组非稀疏入口,每个非稀疏入口都确定一关 联的数据值;
共同确定这些维中的非稀疏入口之间的所有交叉的一组维际链接;
该多维存储模型中选择该第一入口作为一入口点;
从面向第二维的该入口点沿着与该入口点连接的维际链接遍历该多维存 储模型;和
响应起始于该入口点终止于该第二维中的第二入口的维际链接判定存在 于第一入口和第二入口之间的交叉。
14.如权利要求13的方法,还包括从与该第二入口关联的数据值中判定 交叉值。

说明书全文

                       技术领域

发明一般涉及分析数据处理领域,特别涉及用于商业智能入口 (business intelligence portals)和其他数据处理工具的多维 (multidimensional)存储模型和方法。

                       背景技术

商业智能系统主要是作为决策支持系统(DSS)和执行信息系统(EIS) 开始的。决策支持系统(DSS)和执行信息系统(EIS)是从现有的联机交易 处理(OLTP)系统提供附加信息的增值系统。

随着商业智能系统的发展,它们将决策支持系统(DSS)的功能性与执行 信息系统(EIS)的功能性集成在一起,并增加了联机分析处理(OLAP)工具 和管理报告工具。这些混合商业智能系统逐渐地从大型机环境转移到分布式 服务器/桌面环境,以允许更多的用户访问

近些年来,集中式数据仓库(data warehouses)和数据中心(datamarts) 的出现已经造成在机构内等待分析、利用和分配的有效数据的急剧增加。然 而,这种数据仓库和数据中心通常是为信息传递而不是为交易处理而最佳化 的。结果,数据仓库和数据中心仅提供将存储的数据转换成有用的和关键的 策略信息的有限的解决方案。同时,通过提供用于分析大量存储信息的复杂 分析工具以支持机构内的有效规划和决策,商业智能系统取得了主导地位。

由商业智能系统提供的这种分析工具包括允许用户查看和分析不同维的 数据之间的交叉的多维数据立方体(data cubes)。然而,传统的多维数据立 方体的问题是,数据立方体的大小增加很快,达到原始数据库大小得几十甚 至几百倍。原因是这种数据立方体通常存在大量没有任何价值的交叉。存储 这些空交叉是为了指示对应的数据不交叉。传统的多维数据立方体的另一问 题是,它们关于被预定、预先计算并作为该数据立方体的一部分进行存储的 所有计算是封闭的。结果,如果用户请求在确定数据立方体期间非预期的新 的计算,则必须重新计算和重新生成整个立方体。

                          发明内容

本发明提供了一种基本上消除或者减少了与以前的系统和方法关联的缺 点和问题的多维存储模型和方法。具体地说,多维存储模型利用非稀疏 (non-sparse)结构来减小该模型的大小。另外,在建立该模型后,该模型 使用开放结构来动态地执行计算。

根据本发明的一个实施例,多维存储模型关于多个维的每个包括一组非 稀疏入口。每个非稀疏入口都确定一关联的数据值。为每个非稀疏入口提供 一组维际链接(link)。每个维际链接都确定一不同维的非稀疏入口之间的交 叉,并共同确定这些维中的非稀疏入口之间的所有交叉。

具体地说,根据本发明的特定实施例,所述链接是双向的,并且非稀疏 入口包括指向所关联的数据值的指针。在这个和其他实施例中,多维存储模 型可以包括一组关于所计算出的维的所计算出的值。每个所计算出的值表示 不同维的非稀疏入口之间的交叉处的一值。

本发明的技术优点包括提供一个改进的商业智能入口,它有效地代表了 用于用户分析的多维数据。该多维存储模型提供交互式转动视图 (interactive pivot view),训练高低平分析的数据和数据交叉的动态计 算。

本发明的另一个技术优点包括提供一种有效的多维存储模型。具体地说, 该多维存储模型利用非稀疏结构来减小生成和存储该模型所需要的系统资 源。模型大小的减小提高了处理时间,并允许在数据分析期间的有效转动和 训练操作。

本发明的再另一个技术优点包括提供一种改进的多维存储模型,它具有 开放式结构。具体地说,该多维存储模型允许在建立该模型后,执行附加的 计算。结果,用户可以建立新计算来分析在模型原始定义期间没有参与的数 据交叉。这样可以降低支持转动和训练操作所需要的时间和资源。

本领域的熟练技术人员将能够从下面的附图说明书权利要求书中容 易地了解本发明的其他技术优点。

                           附图说明

为了更完整地理解本发明和其优点,下面结合附图进行如下的说明,其 中相同的参考标记代表相同的部件,其中:

图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 boot strap applet)从服务器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的可访问部分。可访问部分是用户可以观看到的查询模型 56的部分。在特定的实施例中,可访问部分也可以是可由用户编辑的查询模 型的部分。可以通过确定用户对查询模型的优先权来完成预定义查询模型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群二维码
意见反馈