CN101593203B - 带有前处理和后处理的数据库复合查询系统及方法 - Google Patents

带有前处理和后处理的数据库复合查询系统及方法 Download PDF

Info

Publication number
CN101593203B
CN101593203B CN200910083914.8A CN200910083914A CN101593203B CN 101593203 B CN101593203 B CN 101593203B CN 200910083914 A CN200910083914 A CN 200910083914A CN 101593203 B CN101593203 B CN 101593203B
Authority
CN
China
Prior art keywords
query
database
inquiry
temporary structure
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200910083914.8A
Other languages
English (en)
Other versions
CN101593203A (zh
Inventor
朱俊彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yonyou Software Co Ltd filed Critical Yonyou Software Co Ltd
Priority to CN200910083914.8A priority Critical patent/CN101593203B/zh
Publication of CN101593203A publication Critical patent/CN101593203A/zh
Application granted granted Critical
Publication of CN101593203B publication Critical patent/CN101593203B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供数据库复合查询系统,包括:查询模型建立装置,建立查询模型,查询模型包括查询参数;查询参数处理装置,将查询参数设置到主查询的引用处,分发给主查询引用的中间查询或基本查询;结构化查询语句生成与临时结构处理装置,构造实际的结构化查询语句,生成与实际的结构化查询语句相应的数据库临时结构,将数据库临时结构上传给主查询引用的中间查询;结构化查询语句与脚本执行装置,构造对应于主查询的结构化查询语句,并发送给数据库查询,使用查询模型的后处理模块对查询结果集进行处理,获得最终的结果集。从而使得基本查询、中间复合查询、主复合查询结构清晰易维护,大幅度提升业务查询模型的可复用性。

Description

带有前处理和后处理的数据库复合查询系统及方法
技术领域
本发明涉及数据库技术,更具体地涉及带有前处理和后处理的数据库复合查询系统及方法。 
背景技术
企业报表的数据来源与业务逻辑日益复杂,跨业务系统的查询需求已经十分普遍,而中国式报表由于国企监管机制的要求以及长年使用纸质报表沿袭下来的特点,数据难以通过单个的数据库查询SQL(Structured Query Language,结构化查询语言)解决,甚至很多情况没有业务算法的介入根本组织不出用户要求的数据。在大量项目中,上述查询需求已经远远超出了报表实施人员的数据库技术能力。本方案所述复合查询技术,是基于已建立好的数据库查询模型继续建立新查询模型、直至“模型执行后的查询结果集”充分接近需求的一种技术,其模型内容包含但不限于数据库的查询SQL。 
现有同类技术方案主要存在的问题包括: 
利用大量嵌套的子查询实现复合查询,编写技术难度大,可读性、可维护性都很低; 
使用静态查询或硬代码解决,不能满足用户查询数据的灵活交互及个性化需求,实施难以变更代码; 
完全依赖SQL、存储过程以及临时表等数据库手段,无法调用程序级加工算法; 
难以解决一个报表入口展现多张不同报表的要求; 
脱离建模思路,可复用性和可移植性差; 
缺少临时数据库结构的生命周期管理,执行效率低,数据库压力大。 
因此,存在着对数据库复合查询系统及方法的需求。 
发明内容
为了解决上述技术问题至少之一,本发明提供了一种数据库复合查询系统,包括:查询模型建立装置,用于建立查询模型,其中所述查询模型包括查询参数;查询参数处理装置,用于将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;结构化查询语句生成与临时结构处理装置,用于构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,将所述数据库临时结构上传给所述主查询引用的所述中间查询,这一过程自底向上延续直至上传给所述主查询;结构化查询语句与脚本执行装置,构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述查询模型中的后处理模块对查询结果集进行处理,获得最终的结果集。 
在上述数据库复合查询系统中,所述查询模型进一步包括以下至少之一:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;所述后处理模块,用于在查询执行之后,查询结果集进行加工。 
所述查询模型建立装置包括:设计向导装置,用于引导用户建立所述查询模型;模型持久化装置,用于保存通过校验的所述查询模型。 
所述查询参数处理装置包括:参数接收装置,用于设置所述查询模型中的所述查询参数;引用查询定位与参数分发装置,根据所 述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。 
所述结构化查询语句生成与临时结构处理装置包括:所述结构化查询语句生成与临时结构替换装置,用于将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;临时结构生成装置,用于适配不同的数据库方言,通过所述结构化查询语句创建数据库临时结构。 
上述数据库复合查询系统进一步包括:合法性校验装置,用于校验所述查询模型是否合法,并用于预评估整个复合查询生成树的执行合法性;临时结构生命周期管理装置,用于实时和定时地清理或维护前述生成装置创建的临时结构;以及脚本热编译装置,用于支持所述前处理模块和所述后处理模块的脚本实时编译。 
本发明还提供了一种数据库复合查询方法,包括:步骤702,建立查询模型,其中所述查询模型包括查询参数,所述查询模型还包括以下至少之一:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;后处理模块用于在查询执行之后,查询结果集进行加工;步骤704,将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;步骤706,构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,将所述数据库临时结构上传给所述主查询引用的所述中间查询,这一过程自底向上延续直至上传给所述主查询;步骤708,构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述查询模型中的后处理模块对查询结果集进行处理,获得最终的结果集。 
在上述数据库复合查询方法中,所述步骤702包括:引导用户建立所述查询模型;保存通过校验的所述查询模型。所述步骤704 包括:设置所述查询模型中的所述查询参数;根据所述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。 
所述步骤706包括:将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;通过所述结构化查询语句创建数据库临时结构。 
上述的数据库复合查询方法,进一步包括:使用合法性校验装置校验所述查询模型是否合法,预评估整个复合查询生成树的执行合法性;使用临时结构生命周期管理装置实时和定时地清理或维护前述生成装置创建的临时结构;以及使用脚本热编译装置支持所述前处理模块和所述后处理模块的脚本实时编译。 
通过上述技术方案,实现了以下技术效果至少之一: 
使得基本查询、中间复合查询、主复合查询的结构清晰易维护,可以同时面向数据库查询专业能力较强(如开发)和较弱(如顾问和用户)的人员使用; 
大幅度提升了业务查询模型的可复用性,这是因为基本查询甚至中间复合查询都可以被不同的顶层复合查询所引用,而无须重复建立; 
使用者可以根据实际数据表的数据量来规划复合查询的设计,将筛选性强的主要数据先查询出来再关联其它数据,从而优化查询的效率; 
引入动态参数,通过参数分发机制使得入口参数被整棵复合查询生成树共享,支持灵活的数据控制; 
通过前处理和后处理模块,对查询执行前的SQL和查询执行后的结果集再提供个性化加工的环节,充分提升取数可满足的复杂逻辑要求; 
通过多个功能装置优化复合查询的运行性能和控制整体流程。 
附图说明
通过下面结合附图的具体描述可以更清楚地理解本发明的上述和其他方面、特征以及其他优点。 
图1是根据本发明的一个实施例的数据库复合查询系统的框图; 
图2是根据本发明的一个实施例的数据库复合查询方法的流程图; 
图3是图1和图2示出的数据库复合查询系统和方法中使用的查询模型的示意图; 
图4示出了在本发明中使用的复合查询树模型的示意图; 
图5示出了根据本发明的另一实施例的数据库复合查询方法的流程图; 
图6示出了根据本发明的复合查询生成树的示意图; 
图7示出了根据本发明的一个实施例的构造结构的示意图; 
图8示出了图6和图7结合的整体图; 
图9示出了数据库中基于临时表(或视图)作为中间结构进行查询的原理图; 
图10示出了时间点。 
具体实施方式
下面将参考附图具体描述本发明的示例性实施例。 
图1是根据本发明的一个实施例的数据库复合查询系统的框图。 
数据库复合查询系统10包括:查询模型建立装置12,用于建立查询模型,其中所述查询模型包括查询参数;查询参数处理装置14,用于将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;结构化查询语句生成与临时结构处理装置16,用于构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,将所述数据库临时结构上传给所述主查询引用的所述中间查询,这一过程自底向上延续直至上传给所述主查询;结构化查询语句与脚本执行装置18,用于构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述查询模型的后处理模块对查询结果集进行处理,获得最终的结果集。该结构化查询语句也可以在查询基本定义的基础上由前处理模块描述的逻辑所生成。 
在上述数据库复合查询系统10中,所述查询模型进一步包括以下至少之一:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;后处理模块用于在查询执行之后,查询结果集进行加工。查询模型是用于描述从关系数据库执行数据查询的一种设计模型,包含参数、元数据描述、查询基本定义、前处理、后处理等模块。如图3所示(其中,基本定义、前处理模块和后处理模块可全部设置,也可至少设置其中的一项,这是因为它们都具备独立描述查询模型执行后产生何种结果集的能力)。 
其各部件用途为:参数(附图中又标注为Param):用于动态控制查询的结果,由参数名、参数值、参数类型等属性构成;元数据描述:查询结果的列结构描述,由列别名、列显示名、数据类型等属性构成,可用从引用查询中提取查询字段信息;查询基本定义(附图中又标注为QBD):可理解为查询SQL的结构化描述;前处理模块:描述查询执行之前系统(可根据参数取值)对查询定义进行调 整的逻辑,可调用程序级的业务算法或接口,以脚本方式描述,支持运行时热编译执行;后处理模块:描述查询执行之后系统(可根据参数取值)对查询结果集进行数据加工的逻辑,可调用程序级的业务算法或接口,以脚本方式描述,支持运行时热编译执行。 
查询模型建立装置12包括:设计向导装置122,用于引导用户建立所述查询模型;模型持久化装置124,用于保存通过校验的所述查询模型。 
所述查询参数处理装置14包括:参数接收装置142,用于设置所述查询模型中的所述查询参数;引用查询定位与参数分发装置144,根据所述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。 
所述结构化查询语句生成与临时结构处理装置16包括:所述结构化查询语句生成与临时结构替换装置162,用于将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;临时结构生成装置164,用于适配不同的数据库方言,通过所述结构化查询语句创建数据库临时结构。 
上述数据库复合查询系统进一步包括:合法性校验装置20,用于校验所述查询模型是否合法,并用于预评估整个复合查询生成树的执行合法性;临时结构生命周期管理装置22,用于实时和定时地清理或维护前述生成装置创建的临时结构;以及脚本热编译装置24,用于支持所述前处理模块和所述后处理模块的脚本实时编译。 
图2是根据本发明的一个实施例的数据库复合查询方法的流程图。 
数据库复合查询方法包括:步骤702,建立查询模型,其中所述查询模型包括查询参数,所述查询模型还包括以下至少之一:查 询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;后处理模块用于在查询执行之后,查询结果集进行加工;步骤704,将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;步骤706,构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,将所述数据库临时结构上传给所述主查询引用的所述中间查询,这一过程自底向上延续直至上传给所述主查询;步骤708,构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述后处理模块对查询结果集进行处理,获得最终的结果集。 
在上述数据库复合查询方法中,所述步骤702包括:引导用户建立所述查询模型;保存通过校验的所述查询模型。所述步骤704包括:设置所述查询模型中的所述查询参数;根据所述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。 
所述步骤706包括:将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;通过所述结构化查询语句创建数据库临时结构。 
上述的数据库复合查询方法,进一步包括:使用合法性校验装置校验所述查询模型是否合法,预评估整个复合查询生成树的执行合法性;使用临时结构生命周期管理装置实时和定时地清理或维护前述生成装置创建的临时结构;以及使用脚本热编译装置支持所述前处理模块和所述后处理模块的脚本实时编译。 
图4示出了在本发明中使用的复合查询树模型的示意图。 
复合查询指基于已建立好的数据库查询模型继续建立新查询模型的可持续行为。复合查询及其引用的子查询可构成一个树形结构,称为复合查询生成树,其中根节点称主查询,末级叶子节点称为基 础查询。以下图为例,复合查询i1为生成树的主查询,复合查询11、12、......、1i为中间查询,原子查询1、2、......、n为基础查询。 
基础查询模型可基于数据库(或数据字典)直接建立,所引用的查询表都是数据库中物理存在的表或视图。复合查询模型可基于数据库(或数据字典)和已创建查询模型建立,所引用的查询表为物理表、物理视图或已建立查询;查询间复合的方式可通过查询表之间的内连接、外连接或联合等关系建立。 
图5示出了根据本发明的另一实施例的数据库复合查询方法的流程图。 
设计态是复合查询模型的定义过程,通过设计向导装置引导使用者完成参数、查询基本定义、前/后处理模块和元数据描述等部分的定义,最终保存模型定义时,通过合法性校验装置做模型的预执行操作以检验其合法性,通过校验后由模型持久化装置进行保存。查询基本定义环节中,可以引用数据库物理表(或视图),也可以引用已创建的查询模型,如果只引用前者,则就是基础查询。 
运行态是复合查询模型的执行过程,用户设置参数后,系统通过参数接收装置、引用查询定位与参数分发装置将参数设置到主查询(入口查询)的引用处并分发给主查询引用的中间查询,这一过程自顶向下延续直至基础查询。此后,系统利用SQL生成与临时结构替换装置和参数值替换装置,根据基础查询的基本定义、前处理模块及参数构造出实际的查询SQL以及相应的数据库临时结构,并通过临时结构生成装置生成相应的临时结构,再上传给引用基础查询的中间查询,这一过程自底向上延续直至主查询。主查询最后通过SQL执行装置产生查询结果,并在结果集接收后处理操作后输出给执行复合查询的调用者。上述过程中,脚本热编译装置用于前处理和后处理模块逻辑脚本的即时编译与执行,临时结构生命周期管理装置用于所生成临时结构的维护和清理。 
相关功能装置的用途说明如下: 
参数接收装置:以参数同名为依据接收传入的参数名值对; 
参数值替换装置:在本查询模型中所有引用参数的位置,进行参数名到参数值的替换; 
模型持久化装置:将模型持久化到数据库或文件中以便永久保存的装置; 
引用查询定位与参数分发装置:根据本查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的参数分发给相关模型的参数接收装置。显然此装置可检测是否已达到生成树的末级节点(基础查询); 
合法性校验装置:在保证效率的前提下,预评估整棵复合查询生成树的执行合法性; 
SQL生成与临时结构替换装置:将查询基本定义或前处理模块调整后的查询定义转变为查询SQL,并在所有引用子查询的位置进行临时结构替换; 
临时结构生成装置:适配不同数据库方言,通过查询SQL创建数据库临时结构; 
SQL执行装置:通过SQL(在搭建起来的数据库临时结构上)获得查询结果集; 
设计向导装置:引导用户按照合理的步骤快速完成整个查询模型构建; 
临时结构生命周期管理装置:实时和定时地清理或维护前述生成装置创建的临时结构,避免给数据库带来运行时压力以及垃圾数据; 
脚本热编译装置:支持将前/后处理脚本实时编译为可执行文件并加载到运行时环境。 
图6示出了根据本发明的复合查询生成树的示意图。 
复合查询执行时,生成树的根节点(主查询)会递归地查找所引用的子查询,同时系统会自顶向下地分发查询参数,树上的各节点(中间查询或基础查询)以参数同名为依据确定是否共享参数值。如图6所示。也就是说,参数传入主查询以后,会在该查询的所有参数引用处进行值替换,同时被分发到该查询所引用的所有子查询那里,而子查询也继续进行类似的工作,直到到达基础查询。参数的流向如图所示。 
图7示出了根据本发明的一个实施例的构造结构的示意图。 
递归算法找到所有树节点之后,系统会自底向上地构造临时结构。缺省规则为:所有基础查询和中间查询只执行查询基本定义和前处理部分,只有主查询既执行查询基本定义和前处理部分又执行后处理部分,这主要是保证整个技术方案能够更好地利用数据库的临时结构(如视图);如图7所示。也就是说,基础查询构造好查询SQL之后,会通过临时结构生成装置生成临时结构并上报给引用它的复合查询,复合查询将自身生成的SQL中对基础查询的引用处进行临时结构替换,再继续进行类似的工作,直到到达主查询。构造临时结构的方向如图所示。 
图8示出了图6和图7结合的整体图。整体展现了自顶向下地分发查询参数,自底向上地构造临时结构的步骤,并增加了关于主查询所做后处理以及对外输出的描述。 
图9示出了数据库中基于临时表(或视图)作为中间结构进行查询的原理图。 
普通的数据库中基于临时表(或视图)作为中间结构进行查询的技术,原理通常如下图所示(其中所有SQL均代表关系数据库的查询SQL)。也就是说,SQL1、SQL2的结果可用临时结构描述如下: 
create view temp_table_1as(SQL1) 
create view temp_table_2as(SQL1) 
而对基于SQL1、SQL2连接后的结果进行查询的SQL12,可描述如下: 
create view temp_table_12as(select...from temp_table_1 jointemp_table_2on...where...) 
SQL12=select...from temp_table_12 
这个过程可一直持续下去,直到顶层节点SQLi1。 
根据本发明的技术方案在上述应用的基础上,将每个中间SQL建立为查询模型,实现了这些中间结果的可描述性、可扩展性、和可移植性。查询模型中除SQL相关内容外增加了参数和前/后处理模块,支持了查询的动态性、交互灵活性、逻辑灵活性和可编码性,此外还增加了设计向导、合法性校验、临时结构生命周期管理、热编译等功能装置,增强了应用的易用性、性能和操作可控性。 
以下是一个利用本技术方案解决典型企业统计报表的实例。 
企业统计报表中常见以时间段为查询条件、基础数据维度为汇总依据的指标汇总查询,其中最具代表性的就是各类余额查询,表样如下所示: 
Figure DEST_PATH_GA20173493200910083914801D00021
业务逻辑分析如下: 
假定时间点的描述如图10所示: 
各时间点对应的余额分别为b0、b1、b2、bn。我们设定发生额关于时间的函数为f(t),则针对[t1,t2]时间段而言,有以下等式成立: 
期初余额 b 1 = b 0 + ∫ t 0 t 1 f ( t ) dt = b x - ∫ t 1 t n f ( t ) dt
期末余额 b 2 = b 0 + ∫ t 0 t 2 f ( t ) dt = b x - ∫ t 2 t n f ( t ) dt
本期发生额 f 12 = ∫ t 1 t 2 f ( t ) dt = b 2 - b 1
(其中已记帐的bo、bn可从余额表中获得,或通过边界时间条件汇总计算求得) 
如果我们约定: 
发生额视图为V,其中的发生额字段为F,时间维度字段为T 
当前余额表为Vn,其中的余额字段为B 
基础数据维度字段为<Dim>i。 
那么可以依次建立以下查询: 
1、当前余额查询:Qn=select<Dim>i,sum(B)as B from Vngroup by<Dim>i 
2、[t1,tn]时间段发生额查询: 
Q1n(t1)=select<Dim>i,sum(F)as F1 from V where T>=t1 groupby<Dim>i 
3、[t2,tn]时间段发生额查询: 
Q2n(t2)=select<Dim>i,sum(F)as F2 from V where T>=t2 groupby<Dim>i 
则,获得所需结果的复合查询为: 
Q(t1,t2)=select Qn.<Dim>i,(Qn.B-Q1n.F1)as期初余额, 
(Qn.B-Q2n.F2)as期末余额,(Q2n.F2-Q1n.F1)as本期发生from Qn 
left join Q1n on Qn.<Dim>i=Q1n.<Dim>i 
left join Q2n on Qn.<Dim>i=Q2n.<Dim>i 
其中的连接方式和主连接表根据实际业务决定。 
通过上述技术方案,实现了以下技术效果至少之一: 
使得基本查询、中间复合查询、主复合查询的结构清晰易维护,可以同时面向数据库查询专业能力较强(如开发)和较弱(如顾问和用户)的人员使用; 
大幅度提升了业务查询模型的可复用性,这是因为基本查询甚至中间复合查询都可以被不同的顶层复合查询所引用,而无须重复建立; 
使用者可以根据实际数据表的数据量来规划复合查询的设计,将筛选性强的主要数据先查询出来再关联其它数据,从而优化查询的效率; 
引入动态参数,通过参数分发机制使得入口参数被整棵复合查询生成树共享,支持灵活的数据控制; 
通过前处理和后处理模块,对查询执行前的SQL和查询执行后的结果集再提供个性化加工的环节,充分提升取数可满足的复杂逻辑要求; 
通过多个功能装置优化复合查询的运行性能和控制整体流程。 
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 

Claims (11)

1.一种数据库复合查询系统,其特征在于,包括:
查询模型建立装置,用于建立查询模型,其中所述查询模型包括查询参数;
查询参数处理装置,用于将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询或基本查询;
结构化查询语句生成与临时结构处理装置,用于构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,其中所述数据库临时结构为表或视图,将所述数据库临时结构上传给所述主查询引用的所述中间查询或所述基本查询,使用所述数据库临时结构在所述主查询引用所述中间查询或所述基本查询的位置进行替换,这一过程自底向上延续直至上传给所述主查询;
结构化查询语句与脚本执行装置,用于构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述查询模型的后处理模块对查询结果集进行处理,获得最终的结果集;
临时结构生命周期管理装置,用于实时和定时地清理或维护前述生成装置创建的临时结构。
2.根据权利要求1所述的数据库复合查询系统,其特征在于,所述查询模型进一步包括:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;所述后处理模块,用于在查询执行之后,对查询结果集进行数据加工。
3.根据权利要求2所述的数据库复合查询系统,其特征在于,所述查询模型建立装置包括:
设计向导装置,用于引导用户建立所述查询模型;
模型持久化装置,用于保存通过校验的所述查询模型。
4.根据权利要求2所述的数据库复合查询系统,其特征在于,所述查询参数处理装置包括:
参数接收装置,用于设置所述查询模型中的所述查询参数;
引用查询定位与参数分发装置,根据所述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。
5.根据权利要求2所述的数据库复合查询系统,其特征在于,所述结构化查询语句生成与临时结构处理装置包括:
所述结构化查询语句生成与临时结构替换装置,用于将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;
临时结构生成装置,用于适配不同的数据库方言,通过所述结构化查询语句创建数据库临时结构。
6.根据权利要求1至5中任一项所述的数据库复合查询系统,其特征在于,进一步包括:
合法性校验装置,用于校验所述查询模型是否合法,并用于预评估整个复合查询生成树的执行合法性;以及
脚本热编译装置,用于支持所述前处理模块和所述后处理模块的脚本实时编译。
7.一种数据库复合查询方法,其特征在于,包括:
步骤702,建立查询模型,其中所述查询模型包括查询参数,所述查询模型还包括以下至少之一:查询基本定义,用于查询所述结构化查询语句的结构化描述;前处理模块,用于在查询执行之前,对所述查询基本定义进行调整;后处理模块用于在查询执行之后,对查询结果集进行数据加工;
步骤704,将所述查询参数设置到主查询的引用处,并分发给所述主查询引用的中间查询;
步骤706,构造实际的结构化查询语句,生成与所述实际的结构化查询语句相应的数据库临时结构,其中所述数据库临时结构为表或视图,将所述数据库临时结构上传给所述主查询引用的所述中间查询,使用所述数据库临时结构在所述主查询引用所述中间查询的位置进行替换,这一过程自底向上延续直至上传给所述主查询,使用临时结构生命周期管理装置实时和定时地清理或维护已创建的临时结构;
步骤708,构造对应于所述主查询的结构化查询语句,并发送给所述数据库进行查询,使用所述后处理模块对查询结果集进行处理,获得最终的结果集。
8.根据权利要求7所述的数据库复合查询方法,其特征在于,所述步骤702包括:
引导用户建立所述查询模型;
保存通过校验的所述查询模型。
9.根据权利要求7所述的数据库复合查询方法,其特征在于,所述步骤704包括:
设置所述查询模型中的所述查询参数;
根据所述查询模型所引用的子查询ID快速定位到相关查询模型的定义,并将传入的查询参数分发给相关模型的参数接收装置。
10.根据权利要求7所述的数据库复合查询方法,其特征在于,所述步骤706包括:
将查询基本定义或前处理模块调整后的查询定义转变为结构化查询语句,并在所有引用子查询的位置进行临时结构替换;
通过所述结构化查询语句创建数据库临时结构。
11.根据权利要求7至10中任一项所述的数据库复合查询方法,其特征在于,进一步包括:
使用合法性校验装置校验所述查询模型是否合法,预评估整个复合查询生成树的执行合法性;以及
使用脚本热编译装置支持所述前处理模块和所述后处理模块的脚本实时编译。
CN200910083914.8A 2009-05-12 2009-05-12 带有前处理和后处理的数据库复合查询系统及方法 Expired - Fee Related CN101593203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910083914.8A CN101593203B (zh) 2009-05-12 2009-05-12 带有前处理和后处理的数据库复合查询系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910083914.8A CN101593203B (zh) 2009-05-12 2009-05-12 带有前处理和后处理的数据库复合查询系统及方法

Publications (2)

Publication Number Publication Date
CN101593203A CN101593203A (zh) 2009-12-02
CN101593203B true CN101593203B (zh) 2012-05-23

Family

ID=41407861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910083914.8A Expired - Fee Related CN101593203B (zh) 2009-05-12 2009-05-12 带有前处理和后处理的数据库复合查询系统及方法

Country Status (1)

Country Link
CN (1) CN101593203B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289505A (zh) * 2011-08-29 2011-12-21 北京星网锐捷网络技术有限公司 数据库的访问方法、装置及设备
CN102819544A (zh) * 2011-12-21 2012-12-12 金蝶软件(中国)有限公司 查询方案的构造方法及装置
CN102521416B (zh) * 2011-12-28 2013-11-27 用友软件股份有限公司 数据关联查询方法和数据关联查询装置
CN102902777B (zh) * 2012-09-28 2016-07-06 用友网络科技股份有限公司 跨数据源查询装置和跨数据源查询方法
CN103488693A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 数据处理装置和数据处理方法
CN105653575A (zh) * 2015-12-04 2016-06-08 重庆川仪自动化股份有限公司 一种数据查询方法及其应用的报表系统
US11379537B2 (en) * 2016-11-18 2022-07-05 Accenture Global Solutions Limited Closed-loop unified metadata architecture with universal metadata repository
CN108241624B (zh) * 2016-12-23 2022-03-18 北京国双科技有限公司 一种查询脚本的生成方法及装置
CN110019294A (zh) * 2017-09-19 2019-07-16 北京国双科技有限公司 一种数据库查询脚本的生成方法、数据库查询方法及装置
CN109062952B (zh) * 2018-06-22 2022-06-03 北京奇艺世纪科技有限公司 一种数据查询方法、装置及电子设备
CN109710220B (zh) * 2018-12-12 2023-08-22 平安科技(深圳)有限公司 关系型数据库查询方法、装置、设备及存储介质
CN110471935B (zh) * 2019-08-15 2022-02-18 上海达梦数据库有限公司 一种数据操作的执行方法、装置、设备和存储介质
CN113961588A (zh) * 2021-10-27 2022-01-21 北京科杰科技有限公司 一种基于可配置参数的大数据sql程序设计方法
CN114416197A (zh) * 2021-12-28 2022-04-29 成都易达数安科技有限公司 一种基于xml的APP后台接口免开发的脚本化配置方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382957A (zh) * 2008-10-24 2009-03-11 用友软件股份有限公司 建立查询模型的系统及建立方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382957A (zh) * 2008-10-24 2009-03-11 用友软件股份有限公司 建立查询模型的系统及建立方法

Also Published As

Publication number Publication date
CN101593203A (zh) 2009-12-02

Similar Documents

Publication Publication Date Title
CN101593203B (zh) 带有前处理和后处理的数据库复合查询系统及方法
CN104866599B (zh) 可视化报表的生产方法和系统
CN107402990A (zh) 一种分布式NewSQL数据库系统和半结构化数据储存方法
CN105550268B (zh) 大数据流程建模分析引擎
CN107679192A (zh) 多集群协同数据处理方法、系统、存储介质及设备
CN105930446B (zh) 一种基于Hadoop分布式技术的电信客户标签生成方法
US10437819B2 (en) Processing queries containing a union-type operation
CN104123374A (zh) 分布式数据库中聚合查询的方法及装置
US20100017395A1 (en) Apparatus and methods for transforming relational queries into multi-dimensional queries
CN105138621B (zh) 一种Sybase ASE数据库配置优化系统及方法
CN104572895A (zh) MPP数据库与Hadoop集群数据互通方法、工具及实现方法
CN106407302B (zh) 支持通过简单sql调用中间件数据库特有功能的方法
Hasani et al. Lambda architecture for real time big data analytic
CN106250519A (zh) 用于并行数据库的数据查询方法和装置
CN109408493A (zh) 一种数据源的迁移方法及系统
US8554760B2 (en) System and method for optimizing queries
CN107247811A (zh) 基于Oracle数据库的SQL语句性能优化方法及装置
Caldarola et al. Big data: A survey-the new paradigms, methodologies and tools
CN105183809A (zh) 一种云平台数据查询方法
CN110457320A (zh) 数据的实时存储方法与装置、存储介质及计算机设备
CN105975489A (zh) 一种基于元数据的在线sql代码补全方法
CN105677687A (zh) 一种数据处理方法及装置
US20090112792A1 (en) Generating Statistics for Optimizing Database Queries Containing User-Defined Functions
Abdelaziz et al. Query optimizations over decentralized RDF graphs
CN108446145A (zh) 一种分布式文件自动加载mpp数据库方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: YONYOU NETWORK TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: UFIDA SOFTWARE CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100094 Haidian District North Road, Beijing, No. 68

Patentee after: Yonyou Network Technology Co., Ltd.

Address before: 100094 Haidian District North Road, Beijing, No. 68

Patentee before: UFIDA Software Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20180512

CF01 Termination of patent right due to non-payment of annual fee