数据查询系统和数据查询引擎装置的制作方法

文档序号:6619163阅读:160来源:国知局
专利名称:数据查询系统和数据查询引擎装置的制作方法
技术领域
本发明涉及数据查询技术,更具体而言,涉及数据查询系统和数 据查询引擎装置。
背景技术
O/R Mapping ( Object Relational Mapping,对象关系映射)是 大多数软件系统都需要处理的一个问题,目前有很多种方法实现了对 象-关系映射,但他们大多只实现了结构上的映射,在扩展性和数据 的复用性上考虑不足。在ERP软件系统里,数据量大、结构复杂, 迫切需要一种方法既能做到对象和关系型数据的有效映射,又能对映 射后的数据复用性和映射的易扩展性提供足够的支持。

发明内容
为了解决上述技术问题,本发明提供了一种数据查询系统,包 括数据源装置,用于提供原始数据;数据实体装置,用于引用所述 数据源装置所提供的所述原始数据,并定义所述原始数据的计算规 则,生成数据实体;业务数据对象装置,用于根据所述数据实体的实 体属性,按照数据权限规则计算出业务数据。
优选地,该数据查询系统进一步包括应用装置,用于使用所述业 务数据。
优选地,在上述数据查询系统中,所述数据源装置包括数据库中 的表、存储过程、查询。所述数据源装置包括接口组件,用于提供原 始数据。所述数据实体包括数据源引用装置,用于引用所述元数据 装置所提供的所述原始数据;计算规则装置,用于根据所述计算规则 来对所述原始数据进行处理,生成所述数据实体的计算属性集合;所述属性集合装置,用于接收来自所述数据源引用装置的原始属性集合 和所述计算规则装置所生成的计算属性集合。本发明还提供了一种数据查询引擎装置,包括緩存服务器,用 于緩存中间分析结果数据以及结果数据,其中所述中间分析结果数据 包括数据实体元定义的中间分析结果数据和业务数据对象元定义的中 间分析结果数据,所述结果数据包括业务数据对象的结果数据;数据 引擎装置,用于接收来自客户端的查询请求,响应于所述查询请求判 断所述緩存服务器中是否存在所需的结果数据,如果存在则从所述緩 存服务器读取所述结果数据并将所述结果数据返回所述客户端。优选地,上述数据查询引擎装置进一步包括配置服务器,用于持 久化数据实体和业务数据对象元定义的元数据,在所述緩存服务器中 不存在所需的结果数据的情况下,所述数据引擎装置查询所述配置服 务器,取得所述业务数据对象元定义的元数据,并查询所述緩存服务 器,如果所述緩存服务器上存在所述元数据的中间分析结果数据,所 述数据引擎装置取回所述元数据的所述中间分析结果数据。优选地,在所述緩存服务器上不存在所述元数据的中间分析结果 数据的情况下,所述数据引擎装置分析所述元数据,并将得到的所述 元数据的中间分析结果数据緩存在所述緩存服务器。所述数据引擎装 置根据得到的所述元数据的所述中间分析结果数据,连接所述数据源 并得到数据集,然后将计算规则应用到数据集上,得到最终的结果数 据。优选地,所述数据引擎装置将所述最终的结果数据緩存到所述緩 存服务器,并将所述最终的结果数据返回所述客户端。采用上述技术方案,实现O/R Mapping,即OOA/OOD ( Object Oriented Analysis (面向对象分才斤)/Object Oriented Design (面向 对象涉及))中的对象和二维数据表之间的映射。由于做了分层处 理,每一层在不影响其他层的情况下均可重新定义,业务数据对象 层、数据实体层和数据源层可以根据实际需要灵活变动,不影响上层 应用。映射后的数据实体和业务对象可以在不同业务系统间高度复用,避免了重复建设。集成了数据权限的支持,根据使用者的权限级 别提供不同的业务数据,提供了最大的数据安全性。


图1示出了根据本发明的数据查询系统的逻辑框图;图2示出了根据本发明的数据查询引擎装置的逻辑框图;图3示出了图1示出的数据查询系统的逻辑层次图;图4示出了图3中数据查询系统中的数据实体的结构图;图5示出了图3中数据查询系统中的业务数据对象层的结构图;图6示出了图5中业务数据对象层的数据权限规则的示意图;图7示出了根据本发明的数据查询引擎装置的运行逻辑框图;图8示出了根据本发明的数据查询系统的关键算法的逻辑图。
具体实施方式
下面结合

根据本发明的具体实施方式
。 图l示出了根据本发明的数据查询系统的逻辑框图。 根据本发明的数据查询系统100包括数据源装置102,用于提 供原始数据;数据实体装置104,用于引用所述数据源所提供的所述 原始数据,并定义所述原始数据的计算规则,生成数据实体;业务数 据对象装置106,用于根据所述数据实体的实体属性,按照数据权限 规则计算出业务数据。优选地,该数据查询系统进一步包括应用装置108,用于使用所 述业务数据。优选地,在上述数据查询系统100中,所述数据源装置102包括 数据库中的表、存储过程、查询。所述数据源装置102也可以包括接 口组件,用于提供原始数据。所述数据实体包括数据源引用装置, 用于引用所述元数据装置所提供的所述原始数据;计算规则装置,用 于根据所述计算规则来对所述原始数据进行处理,生成所述数据实体 的计算属性集合;所述属性集合装置,用于接收来自所述数据源引用6装置的原始属性集合和所述计算规则装置所生成的计算属性集合。图2示出了根据本发明的数据查询引擎装置200的逻辑框图。根据本发明的数据查询引擎装置200包括緩存服务器202,用 于緩存数据实体和业务数据对象元定义的中间分析结果以及数据实体 和业务数据对象的结果数据;数据引擎装置204,用于接收来自客户 端的业务数据对象查询请求,响应于所述数据查询请求判断所述緩存 服务器中是否存在所需的业务数据对象,如果存在则从所述緩存服务 器读取数据并将所述业务数据对象返回所述客户端。优选地,上述数据查询引擎装置进一步包括配置服务器206,用 于持久化数据实体和业务数据对象定义,在所述緩存服务器中不存在 所需的业务数据对象的情况下,所述数据引擎装置查询所述配置服务 器,取得业务数据对象定义的元数据,并查询所述緩存服务器,如果 所述緩存服务器上存在所述元数据的分析结果,所述数据引擎装置取 回所述元数据的所述分析结果。优选地,在所述緩存服务器上不存在所述元数据的分析结果的情 况下,所述数据引擎装置分析所述元数据,并将所述元数据的分析结 果緩存在所述緩存服务器。所述数据引擎装置根据得到的所述元数据 的所述分析结果,取得其中定义的数据源,连接所述数据源并得到数 据集,然后将计算规则应用到数据集上,得到最终的结果数据。优选地,所述数据引擎装置将所述最终的结果数据緩存到所述緩 存服务器,并将所述最终的结果数据返回到所述客户端。 图3示出了图l示出的数据查询系统的逻辑层次图。 从逻辑上来看,图1示出的数据查询系统100包括数据源层 302、数据实体层304、业务数据对象层306和应用层308。数据源可 以是数据库中的表、存储过程、子查询,也可以是接口组件(实现了 特定接口的自定义组件),数据源层是数据的原始来源。数据实体是 对应用层有意义的一个逻辑单位,他引用数据源并定义原始数据的计 算规则,最终表现为一个拥有各种属性的实体对象,实体的结构如图数据源引用表定义引用的数据表的名称和表间的关系; 存储过程定义引用的存储过程名称参数默认值; 自定义组件定义自定义组件的名称、位置和执行时所需参数。数据规则计算表达式由原始数据源结果列生成新的属性列的计算表 达式,支持逻辑运算符和算数运算符+-*/|&;分组规则对原始数据分组时依据的组值;过滤条件过滤原始数据结果集的条件;汇总产生汇总数据的计算方法;交叉表定义产生交叉表的交叉列和交叉因子。 属性集合属性类型属性的类型;精度数据的精度; 简单属性(原始属性)直接对应数据源的结果列; 计算属性由计算规则产生的属性集。 业务数据对象层(如图5所示)业务对象是业务逻辑的处理的一个数据单元,他依据各种数 据实体构建,根据数据权限的定义计算得到最终的业务数据,并 以结果列的形式展现。实体及实体关系是定义业务对象包含的实体名称和实体间的关系。计算规则是产生计算结果列依据的计算表达式。数据权限的定义规则 数据权限的定义规则如图6所示。根据输入的用户名称和权限编 码,权限对象查询权限分配细则,返回当前用户对当前权限对象拥有 当前权限的数据。图7示出了根据本发明的数据查询引擎装置的运行逻辑框图。数据查询引擎装置运行时包括客户端702、緩存服务器704、配 置服务器706和数据引擎708。客户端702属于数据引擎的外部接口和适配器。緩存服务器704 用于为整个系统提供緩存服务,加快系统的运行,主要緩存两方面的 内容A.数据实体和业务数据对象元定义的中间分析结果;B. 数 据实体和业务数据对象的结果数据。配置服务器706用于为实体和业 务对象定义提供持久化服务,提供元数据的查询、更新和删除。数据引擎708是整个系统的核心,主要完成两方面的功能A. 向配置服务器查询数据实体元定义和业务对象元定义的元数 据,分析并计算其中的数据规则,将分析结果向緩存服务器緩存。B. 根据数据源定义和数据规则的分析结果连接数据源抽取数 据,并执行计算规则得到结果,并緩存结果数据。运行过程描述1) 客户端702向数据引擎708传输业务数据对象ID,请求业 务对象数据;2) 数据引擎708查询緩存服务器704,如果此业务对象存在緩 存数据则将緩存数据返回,否则进行下一步;3) 数据引擎708查询配置服务器706,取得此业务对象定义的 元数据,并查询緩存服务器704,如果存在此元数据的分析结果的緩 存则取回,否则分析此元数据并緩存到緩存服务器704;4) 根据得到的元数据的分析结果,取得其中定义的数据源,连 接并得到数据集,然后将计算规则应用到数据集上得到最终结果5) 将最终的结果数据緩存到緩存服务器704并返回到客户端702。图8示出了根据本发明的数据查询系统的关键算法的逻辑图。 系统在分析计算数据实体和数据业务对象定义的元数据时,需要 分析实体中数据表之间的关系和业务对象中实体间的关系,分析完成 后产生SQL语句,并根据实际要求的数据列的不同优化SQL;这一9分析过程借助"树"这种数据结构来完成,以分析业务数据对象为例,如图8所示。 分析过程A. 首先得到业务数据对象的主实体,并将其作为分析树的根;B. 然后根据业务数据对象定义的实体间的关系,从主实体开 始,每一个关联实体都作为子节点向下关联,最终得到整个关系树;C. 如果请求的结果列来源于某个实体,或者计算数据规则时需 要使用某个实体的属性,则这些实体是直接使用实体,在分析树中标 识,比如图8的实体主实体,实体l,实体6,实体3,实体5;D. 如果某个实体不是直接使用实体,但他是某个直接使用实体 的祖先,则他是间接使用实体,上图中用绿色标识的实体4,实体2;E. 即不被直接使用又不被间接使用的实体是本次查询未用到实 体,在分析过程中可以优化掉,如上图中用橘黄色标识的实体7;F. 深度遍历整个分析树,去掉未使用实体,将直接使用实体和 间接使用实体关联起来得到整个业务对象的实体关系;G. 将结果列和实体关系组织起来得到业务对象的分析结果。 分析实体中表之间的关系采用同样的处理过程。采用上述技术方案,实现O/R Mapping,即OOA/OOD ( Object Oriented Analysis (面向对象分析)/Object Oriented Design (面向对象涉及))中的对象和二维数据表之间的映射。由于做了分层处 理,每一层在不影响其他层的情况下均可重新定义,业务数据对象 层、数据实体层和数据源层可以根据实际需要灵活变动,不影响上层 应用。映射后的数据实体和业务对象可以在不同业务系统间高度复 用,避免了重复建设。集成了数据权限的支持,根据使用者的权限级 别提供不同的业务数据,提供了最大的数据安全性。以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应 包含在本发明的保护范围之内。10
权利要求
1.一种数据查询系统,其特征在于,包括数据源装置,用于提供原始数据;数据实体装置,用于引用所述数据源装置所提供的所述原始数据,并定义所述原始数据的计算规则,生成数据实体;业务数据对象装置,用于根据所述数据实体的实体属性,按照数据权限规则计算出业务数据。
2. 根据权利要求1所述的数据查询系统,其特征在于,进一步 包括应用装置,用于使用所述业务数据。
3. 根据权利要求1或2所述的数据查询系统,其特征在于,所 述数据源装置包括数据库中的表、存储过程、查询。
4. 根据权利要求1或2所述的数据查询系统,其特征在于,所 述数据源装置包括接口组件,用于提供原始数据。
5. 根据权利要求1或2所述的数据查询系统,其特征在于,所 述数据实体装置包括数据源引用装置,用于引用所述元数据装置所提供的所述原始数据;计算规则装置,用于根据所述计算规则来对所述原始数据进行处 理,生成所述数据实体的计算属性集合;所述属性集合装置,用于接收来自所述数据源引用装置的原始属 性集合和所述计算规则装置所生成的计算属性集合。
6. —种数据查询引擎装置,其特征在于,包括 緩存服务器,用于緩存中间分析结果数据以及结果数据,其中所述中间分析结果数据包括数据实体元定义的中间分析结果数据和业务 数据对象元定义的中间分析结果数据,所述结果数据包括业务数据对 象的结果数据;数据引擎装置,用于接收来自客户端的查询请求,响应于所述查 询请求判断所述緩存服务器中是否存在所需的结果数据,如果存在则从所述緩存服务器读取所述结果数据并将所述结果数据返回所述客户 端。
7. 根据权利要求6所述的数据查询引擎装置,其特征在于,进 一步包括配置服务器,用于持久化数据实体和业务数据对象元定义的 元数据,在所述緩存服务器中不存在所需的结果数据的情况下,所述 数据引擎装置查询所述配置服务器,取得所述业务数据对象元定义的 元数据,并查询所述緩存服务器,如果所述緩存服务器上存在所述元 数据的中间分析结果数据,所述数据引擎装置取回所述元数据的所述 中间分析结果数据。
8. 根据权利要求7所述的数据查询引擎装置,其特征在于,在 所述緩存服务器上不存在所述元数据的中间分析结果数据的情况下, 所述数据引擎装置分析所述元数据,并将得到的所述元数据的中间分 析结果数据緩存在所述緩存服务器。
9. 根据权利要求7或8所述的数据查询引擎装置,其特征在 于,所述数据引擎装置根据得到的所述元数据的所述中间分析结果数 据,连接所述数据源并得到数据集,然后将计算规则应用到数据集 上,得到最终的结果数据。
10. 根据权利要求9所述的数据查询引擎装置,其特征在于, 所述数据引擎装置将所述最终的结果数据緩存到所述緩存服务器,并 将所述最终的结果数据返回所述客户端。
全文摘要
本发明提供了数据查询系统,包括数据源装置,用于提供原始数据;数据实体装置,用于引用数据源装置所提供的原始数据,并定义所述原始数据的计算规则,生成数据实体;业务数据对象装置,用于根据所述数据实体的实体属性,按照数据权限规则计算出业务数据。采用上述技术方案,实现O/R Mapping,即OOA/OOD中的对象和二维数据表之间的映射。由于做了分层处理,每一层在不影响其他层的情况下均可重新定义,业务数据对象层、数据实体层和数据源层可以根据实际需要灵活变动,不影响上层应用。映射后的数据实体和业务对象可以在不同业务系统间高度复用,避免了重复建设。集成了数据权限的支持,根据使用者的权限级别提供不同的业务数据,提供了最大的数据安全性。
文档编号G06F17/30GK101576921SQ200910087260
公开日2009年11月11日 申请日期2009年6月15日 优先权日2009年6月15日
发明者张劲涛, 郑子阳 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1