[发明专利]带有前处理和后处理的数据库复合查询系统及方法有效
申请号: | 200910083914.8 | 申请日: | 2009-05-12 |
公开(公告)号: | CN101593203A | 公开(公告)日: | 2009-12-02 |
发明(设计)人: | 朱俊彬 | 申请(专利权)人: | 用友软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) | 代理人: | 尚志峰;梁朝玉 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 带有 处理 数据库 复合 查询 系统 方法 | ||
技术领域
本发明涉及数据库技术,更具体地涉及带有前处理和后处理的数据库复合查询系统及方法。
背景技术
企业报表的数据来源与业务逻辑日益复杂,跨业务系统的查询需求已经十分普遍,而中国式报表由于国企监管机制的要求以及长年使用纸质报表沿袭下来的特点,数据难以通过单个的数据库查询SQL(Structured Query Language,结构化查询语言)解决,甚至很多情况没有业务算法的介入根本组织不出用户要求的数据。在大量项目中,上述查询需求已经远远超出了报表实施人员的数据库技术能力。本方案所述复合查询技术,是基于已建立好的数据库查询模型继续建立新查询模型、直至“模型执行后的查询结果集”充分接近需求的一种技术,其模型内容包含但不限于数据库的查询SQL。
现有同类技术方案主要存在的问题包括:
利用大量嵌套的子查询实现复合查询,编写技术难度大,可读性、可维护性都很低;
使用静态查询或硬代码解决,不能满足用户查询数据的灵活交互及个性化需求,实施难以变更代码;
完全依赖SQL、存储过程以及临时表等数据库手段,无法调用程序级加工算法;
难以解决一个报表入口展现多张不同报表的要求;
脱离建模思路,可复用性和可移植性差;
缺少临时数据库结构的生命周期管理,执行效率低,数据库压力大。
因此,存在着对数据库复合查询系统及方法的需求。
发明内容
为了解决上述技术问题至少之一,本发明提供了一种数据库复合查询系统,包括:查询模型建立装置,用于建立查询模型,其中所述查询模型包括查询参数;查询参数处理装置,用于将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;结构化查询语句生成与临时结构处理装置,用于构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,将所述数据库临时结构上传给所述主查询引用的所述中间查询,这一过程自底向上延续直至上传给所述主查询;结构化查询语句与脚本执行装置,构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述查询模型中的后处理模块对查询结果集进行处理,获得最终的结果集。
在上述数据库复合查询系统中,所述查询模型进一步包括以下至少之一:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;所述后处理模块,用于在查询执行之后,查询结果集进行加工。
所述查询模型建立装置包括:设计向导装置,用于引导用户建立所述查询模型;模型持久化装置,用于保存通过校验的所述查询模型。
所述查询参数处理装置包括:参数接收装置,用于设置所述查询模型中的所述查询参数;引用查询定位与参数分发装置,根据所 述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。
所述结构化查询语句生成与临时结构处理装置包括:所述结构化查询语句生成与临时结构替换装置,用于将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;临时结构生成装置,用于适配不同的数据库方言,通过所述结构化查询语句创建数据库临时结构。
上述数据库复合查询系统进一步包括:合法性校验装置,用于校验所述查询模型是否合法,并用于预评估整个复合查询生成树的执行合法性;临时结构生命周期管理装置,用于实时和定时地清理或维护前述生成装置创建的临时结构;以及脚本热编译装置,用于支持所述前处理模块和所述后处理模块的脚本实时编译。
本发明还提供了一种数据库复合查询方法,包括:步骤702,建立查询模型,其中所述查询模型包括查询参数,所述查询模型还包括以下至少之一:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;后处理模块用于在查询执行之后,查询结果集进行加工;步骤704,将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;步骤706,构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,将所述数据库临时结构上传给所述主查询引用的所述中间查询,这一过程自底向上延续直至上传给所述主查询;步骤708,构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述查询模型中的后处理模块对查询结果集进行处理,获得最终的结果集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友软件股份有限公司,未经用友软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910083914.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽油清净剂
- 下一篇:一种通过电磁铁组控制车灯照射距离的方法