CN100452040C - 通过随需减少数据库查询来管理数据库的查询的创建的系统及方法 - Google Patents

通过随需减少数据库查询来管理数据库的查询的创建的系统及方法 Download PDF

Info

Publication number
CN100452040C
CN100452040C CNB200610001231XA CN200610001231A CN100452040C CN 100452040 C CN100452040 C CN 100452040C CN B200610001231X A CNB200610001231X A CN B200610001231XA CN 200610001231 A CN200610001231 A CN 200610001231A CN 100452040 C CN100452040 C CN 100452040C
Authority
CN
China
Prior art keywords
variable
inquiry
document
replace
label
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
CNB200610001231XA
Other languages
English (en)
Other versions
CN1804842A (zh
Inventor
M·J·班格
A·M·章
J·A·小马丁
D·G·默里
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1804842A publication Critical patent/CN1804842A/zh
Application granted granted Critical
Publication of CN100452040C publication Critical patent/CN100452040C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2445Data retrieval commands; View definitions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Abstract

通过随需减少数据库查询来查询数据库。查询文档包括全局变量,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,以及被标识第二全局变量的第二标签标识为整个删除串。提供代理用于通过以下方式从所述查询文档构建扩展查询,所述方式包括:把由第一标签所标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由第二标签所标识的任何变量和删除第二标签而不替换由第二标签所标识的变量。

Description

通过随需减少数据库查询来管理数据库的查询的创建的系统及方法
技术领域
本发明涉及数据库查询,更具体地说,本发明涉及使用变量替换以及自动联合来按需减少数据库查询。
背景技术
结构化查询语言(SQL)对执行查询来说是一种非常严格的语言。这正是所期望的,因为对于数据库查询的好的结构化的格式是SQL语言的目的。其提供了通用的语言来执行数据库脚本,当前市场上的所有数据库应用均可以使用所述数据库脚本,并可以在所述数据库脚本中提供应用程序员接口(API)。然而,有时需要将来自任意数量的源数据库表单中的大量信息一起放到一个数据集中。SQL通过提供内部连接以及联合命令来处理该过程,从而可以在表单及不同数据集之间合并数据。然而,在这种情况下,需要在将不会输入数据的位置插入零,以及使用仅用来确定每个联合中得到了正确数据的重复代码。
在SQL中,查询可以根据一组规则及定义来配置。当前,程序员要处理巨大的代码复杂性。SQL要求语法成分非常精确。
发明内容
一种系统、程序产品以及方法,其用于通过接收具有全局变量的查询文档来通过随需减少数据库查询而进行数据库查询,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,并被标识第二全局变量的第二标签标识为整个删除串;以及通过以下方式从所述查询文档构建扩展查询,所述方式包括:把由第一标签标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由第二标签所标识的任何变量和删除所述第二标签而不替换由所述第二标签标识的变量。
通过以下对本发明当前的优选实施例的详细描述并结合附图,本发明其它的特点和优点将变得明显。
附图说明
图1例示了用于根据本发明优选实施例进行数据库查询的各种程序结构及组件。
图2例示了变量的语法。
图3是例示了用于查询数据库的本发明优选实施例的步骤的高标准流程图。
图4是例示了用于执行图3中选择性替换的步骤41的本发明优选实施例的步骤的流程图。
图5是高标准系统图,其例示了机器可读的程序存储装置,所述装置明确包含了可以由机器执行的指令程序用来执行查询数据库的方法步骤。
具体实施方式
根据本发明的优选实施例,当需要把来自任意数量的源数据库表单的大量信息一起放入一个数据集时,替换变量以及UNION命令将在运行时被插入,以根据子查询生成上级查询。结果,这将把数百页的代码减少为只有一页纸那么少。
在编程中,变量替换已经被广泛应用,但是其仅仅被用于替换单独的变量。根据本发明的优选实施例,变量替换用于构建自身的查询。所述子查询是一种基于任意数量的规则或终端用户所驱动的过程的可以被添加、删除以及修改的命令解释程序。如果变量可以依其在运行时的状况而不同,则其可以被替换。这就被扩展为,如果查询在运行时可以不同,则替换该查询(包括把该查询括在中间的字符标签)。
在SQL中,可以根据一组规则及定义来配置查询(即,查询是可配置的),这将导致巨大的代码复杂性。在本发明中,通过断开代码段以及简化代码来处理这种复杂性。SQL要求语法成分非常精确。
参阅图1,其阐述了与本发明的优选实施例相关的选定结构以及单元。查询文档20馈送控制文档24以及文档表单28,如图线23和25所分别表示的。控制文档24包括执行进度表26并访问文档表单28中的包括查询18、全局变量17和联合定义19在内的信息。运行时代理22监控下述控制文档,其执行进度表26指示了将被执行的查询,随之,所述运行时代理22从控制文档24获取构建扩展查询12所需的那些定义、变量以及查询,并将其馈送至载入代理16。接下来,在数据库10上执行扩展查询12来生成输出集14。
参阅与表单1相关的图2,变量的语法包括标签42、46之间的variable_name 44。标签指示变量的类型。在表单1的示例中,标签%标识整个替换变量,而标签@标识整个删除串。
参阅图3,本发明的优选实施例的数据库查询按照如下进行。在步骤29中,程序员准备了查询文档20,诸如表单1中所例示的。该查询文档20是普通文档,其将在随后的步骤中被修改以生成如表单2和5中所例示的扩展查询12,下文将对此进行更详尽的描述。
在步骤31中,用户(可以是程序员或其他人)指定执行进度表26并在文档表单28中定义输出集14所需要的具体查询18。查询文档20指定全局变量17,而具体查询18和得到的联合定义19来自于本步骤31中的用户输入以及查询文档20。
在步骤33中,运行时代理22查询控制文档24来确定要运行哪些查询,并在步骤35中调用步骤35中所需的查询18、全局变量17以及联合定义19并将其提供给载入代理16,以构建扩展查询12。
在步骤43中,扩展查询12根据数据库10来执行,以构建输出集14,如表单2以及表单5(对于不同的查询)中所例示的。
步骤37-41是步骤35的扩展。在步骤37中,待构建至该查询中的联合被确定,而在步骤39中,整个替换变量被运行时串所替换。在本示例的语法中,这是一些由标签%42、46所标识的串或变量44。
在步骤30中,UNION ALL被插入,以标识查询中的联合,从而可以根据具体选择标准来估算聚合函数。在步骤41中,整个的删除串44被选择性地替换,或者其标签@42、46被删除,以将变量串44恢复为普通语法。
参阅图4,步骤41被进一步细化。在步骤32中,检验下一变量,看其在每个接连的联合中是否改变。如果未改变,则在步骤34中该变量将不进行变量替换而留做固定代码。如果发生改变,则在步骤36中完成变量替换,例如,改变选择标准,比如日期子句。在步骤38中,检验该下一变量,看其是否可以改变位置。如果是,则在步骤40中,随同变量替换在上方或下方插入NULL或零值,以便数据可以按顺序进行移位。当联合完成后,所有数据归于一个数据集中。
根据控制文档24,运行时代理22和/或载入代理16提供了子例程系统,其被创建用于根据变量名来替换或删除变量17。这将在运行时在步骤39和41中被执行,并可以在存在或不存在终端用户交互的情况下完成(根据整个最终产品的要求而定)。
在使用了几个聚合函数的表单1的示例查询中,在%variable_name%中的变量是整个替换变量,其在运行时由代理用任意需要的串来替换。在@variable_name@中的变量指整个删除串,在运行时如果存在需要删除行的条件,则所述变量为将删除变量,否则,标签@(或符号)被删除从而该行被恢复为普通的SQL语法。
SQL被用于使用下列内容来创建查询:
SELECT      标识抓取的字段
FROM        从中抓取字段的表单
WHERE       用来确定将从字段中选择哪些数据
GROUP BY    输出排序次序
ORDER BY    输出显示中的列的次序
在SQL中,UNION是可以结合两个子选择结果的操作,且常用来合并从几个表单中得到的数值列表。占位符用在从SQL返回的结果的列中以使其求和不会在输出中被覆盖。例如,要把三个表单A、B、D中的数值合并到一个表单E中,需要两个联合。
第一个联合:合并表单A和B,形成表单C。
第二个联合:合并表单C和D,形成表单E。
表单1例示了一组使用了本发明优选实施例的变量替换策略的SQL代码。在该示例中,ACCOUNT_DESC是表单名,TA是分配变量,%variable_name%表示在该代码中随后将被替换的串,%INSERTZEROABOVE%是指运行时所确定数量的NULL值将被插入上方,%INSERTZEROBELOW%是指运行时所确定数量的NULL值将被插入下方。
表单1变量替换策略示例
1 SELECT TA.ACCTGRP_ID,TA.ORIG_LOC_CD,TA.SERVICE_TYP_CD,
2 TA.ACCOUNT_ID,AG.ACCOUNT_DESC
3
4 //在SUM行上方及下方插入
5 运行时所确定数量的NULL值。
6
7 %INSERTZEROABOVE%
8 ,SUM(TA.USAGE_QTY)
9 ,SUM(TA.TOT_CHRG_AMT)
10 %INSERTZEROBELOW%
11
12 //SCHEMA标识符的自动替换;
13 随后将%YEARCLAUSE%和%MONTHCLAUSE%
14 用于操作日期搜索。
15
16 FROM %SCHEMA%.%TABLF% TA,%SCHEMA%.ACCOUNTAG
17 WHERE TA.ACCOUNT_ID=AG.ACCOUNT_ID
18 AND TA.CONTROL_GROUP_CD=AG.CONTROL_GROUP_CD
19 AND TA.SERVICE_CD=‘LBR’
20 AND %YEARCLAUSE% %MONTHCLAUSE%
21
22 GROUP BY T.ACCTGRP_ID
23 ,TA.ORIG_LOC_CD
24 ,TA.SERVICE_TYP_CD
25 ,TA.ACCOUNT_ID
26 ,AC.ACCOUNT_DESC
27
28 //有时需要替换ORDER BY命令,
29 有时则不需要。
30 在行26处的ORDER BY命令中的1,2,3,4引用回
31 本表单中行1处的SELECT子句中的
32 5个变量中的前4个。
33
34 @ORDER BY 1,2,3,4@
表单1的代码由运行时代理来操作,且变量被动态地插入到代码中以构建大范围的、语法完整的查询。
表单2例示了所需的结果集,行3和4表示第一个结果,行5和6行表示第二个结果,以及行7和8表示第3个结果。占位符0,0将被用来(参阅表单3)将第一个结果后面的每个结果从其先前结果向下移动两行。
表单2结果集
1
2 TA.ACCTGRP_ID,TA.ORIG_LOC_CD,TA.S ERVICE_TYP_CD,
3 TA.ACCOUNT_ID,AG.ACCOUNT_DESC
4 ,FullYearUSAGE_QTY
5 ,FullYearTOT_CHRG_AMT
6 ,YearToDateUSAGE_QTY
7 ,YearToDateTOT_CHRG_AMT
8 ,CurrentMonthUSAGE_QTY
9 ,CurrentMonthTOT_CHRG_AMT
表单3例示了根据本发明的过程对表单1的代码的扩展。在本发明之前,程序员将必须写出并管理表单3的该代码。通过本发明,程序员能够通过参考表单1而不必亲自构建表单3中的扩展版本就可以使其所欲完成的任务形象化--现在这是通过运行时代理来完成的。
表单3的代码根据表单2的结果集呈现三个联合的实例。表单3的行2-16表示对表单1的行1-21的扩展,以生成结果集(表单2)输出行3和4,并忽略表单1的行26的ORDER BY,以及进行下述变量替换:
%INSERTZEROABOVE%        用null替换
%INSERTZEROBELOW%        用,0,0,0,0替换
%SCHEMA%                 用DBADMIN替换
%TABLE%                  用TABLE1替换
%YEARCLAUSE%             用TA.YEAR=2003替换
%MONTHCLAUSE%            用null替换
表单3的行18-33根据行25-28的WHERE子句对不同的数据求和,以生成至今为止的对于年的结果集的行5和6,并进行下述变量替换:
%INSERTZEROABOVE%        用,0,0替换
%INSERTZEROBELOW%        用,0,0替换
%SCHEMA%                 用DBADMIN替换
%TABLE%                  用TABLE1替换
%YEARCLAUSE%        用TA.YEAR=2003替换
%MONTHCLAUSE%       用TA.MONTH<=7替换
表单3的行35-50根据行41-44的WHERE子句对仍然不同的数据求和,以生成对于当前月的结果集的行7和8,并进行下述变量替换:
%INSERTZEROABOVE%    用,0,0,0,0替换
%INSERTZEROBELOW%    用null替换
%SCHEMA%             用DBADMIN替换
%TABLE%              用TABLE1替换
%YEARCLAUSE%         用TA.YEAR=2003替换
%MONTHCLAUSE%        用TA.MONTH=7替换
在本示例中所需的步骤40的三次执行期间,将表单1的行8的%INSERTZEROBELOW%扩展为本表单3的行6的0,0,0,0指明了底部的四个位置并没有被使用,且代表了占位符;将表单1的行5和8的%INSERTZEROABOVE%和%INSERTZEROBELOW%分别扩展为表单3的行20和23的0,0指明了顶部的两个位置和底部的两个位置没有被使用;以及将表单1的行5的%INSERTZEROABOVE%扩展为本表单3的行37的0,0,0,0指明了顶部的四个位置并没有被使用。
表单3表单1的运行时扩展(所替换变量)
1 //下面的代码为具有三个联合的示例。
2
3 SELECT T.ACCTGROP_ID,TA.ORIG_LOC_CD,TA.SERVICE_TYP_CD,
4 TA.ACCOUNT_ID,AG.ACCOUNT_DESC
5
6 ,SUM(TA.USAGE_QTY)
7 ,SUM(TA.TOT_CHRG_AMT)
8 ,0,0,0,0
9
10 FROM DBADMIN.TABLE1 TA,DBADMIN.ACCOUNT AG
11
12 WHERE TA.ACCOUNT_ID=AG.ACCOUNT_ID
13 AND TA.CONTROL_GROUP_CD=AG.CONTROL_GROUP_CD
14 AND TA.SERVICE_CD=‘LBR’
15 AND TA.YEAR=2003
16
17 GROUP BY TA.ACCTGRP_ID
18 ,TA.ORIG_LOC_CD
19 ,TA.SERVICE_TYP_CD
20 ,TA.ACCOUNT_ID
21 ,AG.ACCOUNT_DESC
22
23 UNION ALL
24
25 SELECT TA.ACCTGRP_ID,TA.ORIG_LOC_CD,TA.SERVICE_TYP_CD,
26 TA.ACCOUNT_ID,AG.ACCOUNT_DESC
27 ,0,0
28 ,SUM(TA.USAGE_QTY)
29 ,SUM(TA.TOT_CHRG_AMT)
30 ,0,0
31
32 FROM DBADMIN.TABLE1 TA,DBADMIN.ACCOUNT AG
33
34 WHERE TA.ACCOUNT_ID=AG.ACCOUNT_ID
35 AND TA.CONTROL_GROUP_CD=AG.CONTROL_GROUP_CD
36 AND TA.SERVICE_CD=‘LBR’
37 AND TA.YEAR=2003 AND TA.MONTH<=7
38
39 GROUP BY TA.ACCTGRP_ID
40 ,TA.ORIG_LOC_CD
41 ,TA.SERVICE_TYP_CD
42 ,TA.ACCOUNT_ID
43 ,AG.ACCOUNT_DESC
44
45 UNION ALL
46
47 SELECT TA.ACCTGRP_ID,TA.ORIG_LOC_CD,TA.SERVICE_TYP_CD,
48 TA.ACCOUNT_ID,AG.ACCOUNT_DESC
49 ,0,0,0,0
50 ,SUM(TA.USAGE_QTY)
51 ,SUM(TA.TOT_CHRG_AMT)
52
53 FROM DBADMIN.TABLE1 TA,DBADMIN.ACCOUNT AG
54
55 WHERE TA.ACCOUNT_ID=AG.ACCOUNT_ID
56 AND TA.CONTROL_GROUP_CD=AG.CONTROL_GROUP_CD
57 AND TA.SERVICE_CD=‘LBR’
58 AND TA.YEAR=2003 AND TA.MONTH=7
59
60 GROUP BY TA.ACCTGRP_ID
61 ,TA.ORIG_LOC_CD
62 ,TA.SERVICE_TYP_CD
63 ,TA.ACCOUNT_ID
64 ,AG.ACCOUNT_DESC
65
66 ORDER BY 1,2,3,4
运行时代理22请求查询,如下列决策树所例示的:
1.代理22每晚激活并搜索当晚将被运行的控制文档24。
2.如果其发现将要运行的文档24,其将通过文档24执行一般载入代理16,否则其简单地结束。
3.在载入之时,控制文档24把必要信息馈送给运行时代理22,该信息包括将执行哪些查询18。
从而,代理22驱动着整个过程。其执行所安排的和正在进行的任务,这样,其(通过其本身或通过载入代理16)构建正在执行的查询12。从而,代理22处理表单1(查询文档20)->表单3(扩展查询12)->表单2(输出集14)的查询。表单4是本过程的简单的伪码示例。
表单4运行时代理实例
‘----运行时代理
Set control_docs=SearchForScheduledQueries
If control_docs.Count<>0Then
    Forall n In Control_docs
      Call ProcessQueryExecution(n)
    End Forall
End If
‘----结束运行时代理
‘----ProcessQueryExecution例程
Set query=SubPercentVariables(control_doc.Query(0))
Foralls In control_doc.NumberOfUnions(0)
  Set query=AddUnion(query)
  If s=LastUnion Then
     Set query=SubAtVariables(query)
  Else
     Set query=RemoveAtVariables(query)
  End If
End Forall
‘----结束ProcessQueryExecution例程
根据本发明的优选实施例,代理22用于将程序员用表单1的格式所写的查询20扩展成为表单3的格式。类似地,可提供减少代理(未示出),用于通过使用类似过程将表单3格式的查询12减少为表单1格式的查询20。
在表单1-3的示例中提供了两个联合。然而这是任意的。在运行时,可能只需要一个联合或甚至一个也不需要。这是由控制(aka映射)文档24来决定的。
表单2是所需结果14的伪码的代表。还存在一般的子例程用于构建表单3中的查询,其使用在运行时由代理22所收集的信息来一般地将查询接合到一起。例如,存在控制文档24用于预定代理执行的时间,在某些进度表中,或按照需要,数据库工具(代理22)寻找已准备好执行的这些控制文档24中的一个。控制文档24服务于多个目的。一个目的是提供在数据库源10上的信息。在该文档24中,存在用于源数据库模式的字段,并且在该示例中该字段的值被管理者(不一定是程序员)设定为DBADMIN。该相同的控制文档24具有关于查询18需要为一次成功运行而进行扩展并执行的信息。然后所述控制文档24抓取这些查询(其是表单2类型的文档)并开始将数值插入(步骤39、41)到所述控制文档24中,直至它们变完整(表单3为示例),然后它们被执行。
在通过代理22将表单1处理为表单3的过程中,用多种方式完成变量替换。表单2是在过程结束后在所有的位置中将接收什么数据的代表。这必须在运行时获知,以进行对表单3的最后查询。实际的替换变量17来自于在工具内的映射,以及运行时的值,例如,正执行查询的类型以及代理正在运行时的日期/时间。
位置通常指输出集14的一部分。输出数据是一组行,其对于表单中的每一列具有多个数据条目。因此,位置指一组输出数据中的单个列(表单5)。例如,对于以下数据,Num1指输出位置。
              表单5     输出集实例
姓名     序列        Num1        Num2
Matt     ######      15          20
Peter    &&&&&&      20          10
相对于现有技术的优点
本发明的优点在于,提供了一种改进的系统和方法,其使用变量替换和自动联合用于随需减少数据库查询。
备选实施例
将要理解,虽然出于例示的目的而在此处描述了本发明的具体实施例,但仍可以不脱离本发明精神和范围而做出各种修改。参阅图5,具体地,在本发明的范围内提供了一种计算机程序产品或程序单元,或一种程序存储或存储器装置50,例如固体或流体传输媒体、磁线或光缆、磁带或磁盘或其他类似媒体,用于存储如行51所例示的机器可读的信号,所述信号用于根据本发明的方法和/或根据与本发明的系统相一致的结构及其组件来控制计算机52的操作。
进一步地,本方法的每一个步骤都可以在任何通用计算机上执行,所述通用计算机例如命名为zSeries、iSeries、xSeries和pSeries的IBM系统或其它类似系统,并且本方法的每一步骤均按照由任何编程语言(如C++、Java、Pl/l、Fortran或其它类似语言)所生成的一个或多个程序元素、模块或对象或者一个或多个程序元素、模块或对象的一部分。且更进一步地,每个所述步骤、或实现每个所述步骤的文件或对象或其它类似物可以由专用硬件或为该用途设计的电路模块来执行。
因此,本发明的保护范围仅由下述权利要求及其等同物来限制。

Claims (10)

1.一种通过随需减少数据库查询来管理数据库的查询的创建的方法,包括:
执行运行时代理,用于访问控制文档,所述控制文档包括执行进度表,响应于所述执行进度表,所述运行时代理确定何时运行查询文档,所述查询文档具有全局变量,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,以及被标识第二全局变量的第二标签标识为整个删除串;以及
通过以下方式从所述查询文档构建扩展查询,所述方式包括:把由所述第一标签标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由所述第二标签所标识的任何变量和删除所述第二标签而不替换由所述第二标签所标识的变量。
2.权利要求1的方法,所述选择性地替换的步骤进一步包括:
确定在每个接连的联合中下一给定变量是否改变,并且如果未改变,则删除所述第二标签以保留该下一给定变量而不进行替换;以及如果改变,则基于改变选择标准来替换所述下一给定变量。
3.权利要求2的方法,所述选择性地替换的步骤进一步包括:
确定所述下一给定变量是否能够在输出集之中改变位置,并且如果是,则随同变量替换在上方或下方选择性地插入空值以使输出数据按顺序进行移位。
4.权利要求1的方法,进一步包括:
从所述查询文档以及用户输入中构建指定了执行进度表、查询、全局变量以及联合定义的控制文档。
5.权利要求4的方法,进一步包括:
执行运行时代理来监控所述控制文档中将运行的查询,以及在识别出这样的查询时构建并执行所述扩展查询。
6.一种通过随需减少数据库查询来管理数据库的查询的创建的系统,包括:
具有全局变量的查询文档,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,以及被标识第二全局变量的第二标签标识为整个删除串;
运行时代理,用于访问控制文档,所述控制文档包括执行进度表以及响应于所述执行进度表,所述运行时代理确定何时运行查询文档;以及
代理,用于通过以下方式从所述查询文档构建扩展查询,所述方式包括:把由所述第一标签所标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由所述第二标签所标识的任何变量和删除所述第二标签而不替换被所述第二标签所标识的变量。
7.权利要求6的系统,进一步包括:
所述代理进一步用于确定在每个接连的联合中下一给定变量是否改变,并且如果未改变,则删除所述第二标签以保留该下一给定变量而不进行替换;以及如果改变,则基于改变选择规则来替换所述下一给定变量。
8.权利要求7的系统,其中:
所述代理进一步用于确定所述下一给定变量是否能够在输出集之中改变位置,并且如果是,则随同变量替换在上方或下方选择性地插入空值以使输出数据按顺序进行移位。
9.权利要求6的系统,其中:
所述代理进一步用于从所述查询文档以及用户输入中构建指定了执行进度表、查询、全局变量以及联合定义的控制文档。
10.权利要求9的系统,其中:
所述运行时代理进一步用于监控所述控制文档中将运行的查询,以及在识别出这样的查询时用于构建并执行所述扩展查询。
CNB200610001231XA 2005-01-11 2006-01-10 通过随需减少数据库查询来管理数据库的查询的创建的系统及方法 Expired - Fee Related CN100452040C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/034,390 2005-01-11
US11/034,390 US7640237B2 (en) 2005-01-11 2005-01-11 System and method for database query with on demand database query reduction

Publications (2)

Publication Number Publication Date
CN1804842A CN1804842A (zh) 2006-07-19
CN100452040C true CN100452040C (zh) 2009-01-14

Family

ID=36654450

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610001231XA Expired - Fee Related CN100452040C (zh) 2005-01-11 2006-01-10 通过随需减少数据库查询来管理数据库的查询的创建的系统及方法

Country Status (2)

Country Link
US (2) US7640237B2 (zh)
CN (1) CN100452040C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182718A1 (en) * 2007-05-08 2009-07-16 Digital River, Inc. Remote Segmentation System and Method Applied To A Segmentation Data Mart
US8856094B2 (en) * 2007-05-08 2014-10-07 Digital River, Inc. Remote segmentation system and method
US7970757B2 (en) * 2008-03-17 2011-06-28 International Business Machines Corporation Computer program product for database query optimization
US20100241893A1 (en) 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
US9454526B1 (en) * 2009-10-16 2016-09-27 Iqor Holdings Inc., Iqor US Inc. Apparatuses, methods and systems for a chart of accounts simplifier
US9619581B2 (en) * 2013-12-20 2017-04-11 Microsoft Technology Licensing, Llc Constructing queries for execution over multi-dimensional data structures

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020065863A1 (en) * 1999-08-13 2002-05-30 Finn Ove Fruensgaard Method and an apparatus for generically and transparently expanding and contracting a query
US6496819B1 (en) * 1998-12-28 2002-12-17 Oracle Corporation Rewriting a query in terms of a summary based on functional dependencies and join backs, and based on join derivability
US6581055B1 (en) * 2000-09-11 2003-06-17 Oracle International Corporation Query optimization with switch predicates
CN1549163A (zh) * 2003-05-15 2004-11-24 深圳市中兴通讯股份有限公司南京分公 一种跨平台数据库查询方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US5664173A (en) * 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US6006220A (en) * 1997-09-30 1999-12-21 International Business Machines Corporation Determining the optimal access path for a query at execution time using an actual value for each variable in a query for estimating a filter factor
US6324551B1 (en) * 1998-08-31 2001-11-27 Xerox Corporation Self-contained document management based on document properties
US6334128B1 (en) * 1998-12-28 2001-12-25 Oracle Corporation Method and apparatus for efficiently refreshing sets of summary tables and materialized views in a database management system
US7185006B2 (en) * 2002-09-23 2007-02-27 Hewlett-Packard Development Company, L.P. Method and apparatus for reducing the scope of queries that seek information from networked computers
US7406461B1 (en) * 2004-06-11 2008-07-29 Seisint, Inc. System and method for processing a request to perform an activity associated with a precompiled query
US20060112123A1 (en) * 2004-11-24 2006-05-25 Macnica, Inc. Spreadsheet user-interfaced business data visualization and publishing system
US7574425B2 (en) * 2004-12-03 2009-08-11 International Business Machines Corporation System and method for query management in a database management system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496819B1 (en) * 1998-12-28 2002-12-17 Oracle Corporation Rewriting a query in terms of a summary based on functional dependencies and join backs, and based on join derivability
US20020065863A1 (en) * 1999-08-13 2002-05-30 Finn Ove Fruensgaard Method and an apparatus for generically and transparently expanding and contracting a query
US6581055B1 (en) * 2000-09-11 2003-06-17 Oracle International Corporation Query optimization with switch predicates
CN1549163A (zh) * 2003-05-15 2004-11-24 深圳市中兴通讯股份有限公司南京分公 一种跨平台数据库查询方法

Also Published As

Publication number Publication date
CN1804842A (zh) 2006-07-19
US20080010265A1 (en) 2008-01-10
US7640237B2 (en) 2009-12-29
US7668819B2 (en) 2010-02-23
US20060155683A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
JP4972082B2 (ja) 開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力
US6857123B1 (en) Method and apparatus for a Meta Data Service in a data processing system
CN100452040C (zh) 通过随需减少数据库查询来管理数据库的查询的创建的系统及方法
US7617196B2 (en) Context-sensitive term expansion with multiple levels of expansion
US7840610B2 (en) Apparatus, system, and method for map definition generation
US8341120B2 (en) Apparatus and methods for transferring database objects into and out of database systems
USRE40520E1 (en) Easily expandable data processing system and method
US9501474B2 (en) Enhanced use of tags when storing relationship information of enterprise objects
JP2002538546A (ja) Abapコードコンバータの仕様
US7103885B2 (en) Comment driven processing
AU1445200A (en) Accessing a hierarchical data store through an sql input
JPH05204988A (ja) サーバデータベースのアクセス方法
JP2008176813A (ja) データ処理の方法及び装置
JPH08305616A (ja) データ管理システム
AU746062B2 (en) Data processing systems
US6915313B2 (en) Deploying predefined data warehouse process models
EP1586014A2 (en) Contextual data representation and retrieval method
US7559048B1 (en) System and method for managing objects between projects
EP1515245A2 (en) Merging of datasets into a database
US6963865B2 (en) Method system and program product for data searching
US6925630B1 (en) Method for generating code for processing a database
EP0947933A2 (en) System and method for communicating with various electronic archive systems
JPH02297230A (ja) フアイル・サービス要求の処理方法及び装置
US7197554B2 (en) Data linkage method and system
CA2281396A1 (en) Method and apparatus for storing data as liquid information

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090114

Termination date: 20190110

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