控制关系数据库系统的方法.pdf

上传人:xia****o6 文档编号:971525 上传时间:2018-03-22 格式:PDF 页数:85 大小:3.49MB
返回 下载 相关 举报
摘要
申请专利号:

CN200680055413.3

申请日:

2006.06.01

公开号:

CN101501687A

公开日:

2009.08.05

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止 IPC(主分类):G06F 17/30申请日:20060601授权公告日:20130213终止日期:20160601|||授权|||实质审查的生效|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

梅迪尔雷夫默斯特尔和雷夫通信与信息技术OEG公司

发明人:

M·默斯特尔

地址:

奥地利维也纳

优先权:

专利代理机构:

永新专利商标代理有限公司

代理人:

张 扬

PDF下载: PDF下载
内容摘要

一种用于控制关系数据库系统的方法,该系统具有包括待分析的关键词的查询语句,其中递归转移网结构块形成独立的递归转移网结构块,每个递归转移网结构块具有内部的直接决策图,该决策图与具有沿至少一个决策路径的至少一个决策位置的其它递归转移网结构块的内部的直接决策图相互独立地定义,全部递归转移网结构块的内部决策图通过在选择步骤中的关键词而运行并且跟随有所述决策图的全部可行路径直至通过该决策图不再确定与各自所选择的路径的匹配并且所述处理被中断或各自选择的路径被运行直至结束。

权利要求书

1、  一种用于控制关系数据库系统的方法,其中,查询语句包括关键词,首先通过应用递归转移网(RTN)并且,通过按照所述语句给出的顺序,将有关处理的性质分配给关键词或关键词组,来分析所述语句,然后转换为控制命令和进行可选择的最优化,
其特征在于:
RTN由独立的RTN结构块形成,其中每个RTN结构块具有内部的直接决策图,所述决策图是与具有沿至少一个决策路径的至少一个决策位置的其它RTN结构块的内部的直接决策图相互独立地定义的,
通过在选择步骤中的关键词来运行全部RTN结构块的所述内部决策图,并且跟随有所述决策图的全部可行路径,直至通过所述决策图确定没有与各自所选择的路径的匹配并且所述处理被中断为止,或直至各自选择的路径被运行到结束为止,
其中所述决策路径至少部分地具有在至少一个所述决策位置上的递归调用函数,通过所述递归调用函数,对全部所述RTN结构块应用所述选择步骤导致运行一个RTN结构块,从而能够执行开始于所述至少一个决策位置的所述选择步骤的任意频率的递归的嵌套,
并且其特征还在于,根据所述RTN结构块的顺序,以及根据在全部关键词上应用所述选择步骤而导致的嵌套,产生用于所述关系数据库系统的访问计划。

2、
  根据权利要求1所述的方法,其特征在于,当所述RTN结构块的所述决策图运行在所述决策位置时,所述查询语句的关键词基于相关联的标记,与文本、符号、变量或数字进行比较,或者插入来自全部所述RTN结构块的一个所述RTN结构块,再次运行这个步骤。

3、
  根据权利要求1或2所述的方法,其特征在于,在所述RTN结构块的所述决策图中,用于执行非预定的,不限制数量的递归调用函数的连续调用的决策位置在至少一个需要关键词(文本、符号、变量或数字)的的决策位置之前,并且在同样需要关键词的至少一个决策位置之后。

4、
  根据前述任意权利要求所述的方法,其特征在于,在执行所述选择步骤之前的转换步骤中,将每个RTN结构块分配给第一类组或第二类组,其中
将以文本、符号、变量或数字开始的RTN结构块分配到所述第一类组,并且进行转换,以使得如果对全部RTN结构块应用了递归查询函数的所述选择步骤,则将包括所述递归查询函数的所述决策位置限制为仅对所述第一类组的RTN结构块应用所述决策步骤,并且
将以递归查询函数开始的所述RTN结构块分配到所述第二类组,并且进行转换,以使得去除所述第一决策位置,并且使得如果对全部RTN结构块应用了递归查询函数的所述选择步骤,则将包括所述递归查询函数的所述决策位置限制为仅对所述第一类组的RTN结构块应用所述决策步骤,并且
对于所述第一类组的全部RTN结构块,以及在最后的决策位置以文本、符号、变量或数字结束的所述第二类组,将可选择执行的决策位置附加在最后位置上,其中在最后位置上仅将所述选择步骤应用到所述第二类组的RTN结构块。

5、
  根据权利要求4所述的方法,其特征在于,每个RTN结构块以至少文本、至少符号、变量或数字开始,并且所述选择步骤仅可以被应用到所述第一类组的RTN结构块或仅被应用到所述第二类组的RTN结构块。

6、
  根据权利要求4或5所述的方法,其特征在于,仅可以在决策图的所述最后的决策位置处选择性地调用所述第二类组的RTN结构块。

7、
  根据前述任意权利要求所述的方法,其特征在于,基于至少一个处理输入集合,为各自的RTN结构块定义至少一个处理函数,在所述至少一个处理函数导致完全运行决策图后,每个RTN结构块返回具有包括零的至少一个值的处理输出集合,其中对这些集合中的所述值的顺序进行存储并且每个获得的处理输出集合可以分配到每个RTN结构块,作为其中一个所述处理输入集合。

8、
  根据前述任意权利要求所述的方法,其特征在于,每个RTN结构块具有至少一个第一权重,所述RTN结构块的嵌套通过所述第一权重改变为另一个嵌套,所述另一个嵌套可以在每个选择步骤期间或者在执行了全部选择步骤后用于进行进一步处理,所述进一步处理是通过将具有更高第一权重的上位RTN结构块改变为具有相对较低的第一权重的各自的原始上位RTN结构块。

9、
  根据权利要求8所述的方法,其特征在于,所述第一类组的全部RTN结构块的所述第一权重取决于在语句中直接上位的所述第二类组的RTN结构块,这是将分配给所述第一类组的所述RTN结构块的所述第一权重描述为所述初始权重的原因。

10、
  根据权利要求9所述的方法,其特征在于,所述第一类组的RTN结构块具有相同的第一初始权重,其优选地具有平均高度,并且当将这些RTN结构块引入所述第二类组的RTN结构块时,使其第一权重减小一单值,优选为减小1。

11、
  根据权利要求8、9或10所述的方法,其特征在于,在所述第二类组中,将其处理函数应用到所述第一或第二类组的RTN结构块的处理函数的处理输出集合的RTN结构块形成所述第二类组的第一类子组,并且每个所述第一类子组具有相同的第一权重,所述第一权重不是最高的可行权重但高于所述第一类组的RTN结构块的第一初始平均高度的权重。

12、
  根据权利要求8、9、10或11所述的方法,其特征在于,在所述第二类组中,所述处理输出集合被用作所述第一或第二类组的其它RTN结构块的处理输入集合的RTN结构块的形成所述第二类组的第二类子组,并且具有分别不同的第一权重,其在任何情况下小于所述第一类组的RTN结构块的第一初始平均高度的权重,并且各自的RTN结构块的所述第一权重通过在每个情况下将较低的第一权重分配给各自的第一,根据所述第二类组的第二类子组的RTN结构块,描述可以预定的处理顺序,以执行本组的RTN结构块。

13、
  根据权利要求8-12所述的方法,其特征在于,在指示来自所述第一类组的至少一个RTN结构块的引入的决策位置后,所述第一类组和第二类组的全部RTN结构块跟随有至少一个独立于最后的可选择的决策位置的进一步的决策位置,所述最后的可选择的决策位置可选择地出现在所述转换步骤后并且指示来自所述第二类组的RTN结构块的引入,所述来自所述第二类组的RTN结构块具有第二固定权重,该第二固定权重具有最高可行权重高度。

14、
  根据权利要求13所述的方法,其特征在于,将所述转换步骤后的所述查询语句所导致的嵌套顺序中的所述第二类组的每个RTN结构块的所述第一权重与每个上位RTN结构块的所述第一权重相比较,直至实现更高的第一权重各自的RTN结构块,或不位于其最后的决策位置并且具有最高可行权重的第二权重的各自上位的RTN结构块位置,并且因此,所述确定的嵌套顺序作为比较基础的所述RTN结构块的,直接从属于所实现的RTN结构块并且因此,上位于在所述比较中跳过并且在之前为上位的全部RTN结构块。

15、
  根据权利要求8-14所述的方法,其特征在于,所述第一类组的RTN结构块从属于所述第一或第二类组中直接上位于它们的RTN结构块,不管所述第一类组的RTN结构块本身的第一权重并且不管上位于所述第一类组的RTN结构块的RTN结构块的第一权重。

16、
  根据权利要求8-15所述的方法,其特征在于,如果所述第二类组中将要进行比较的RTN结构块具有与同属于所述第二类子组的一个上位的RTN结构块相同的第一权重,则当且仅当这些RTN结构块是所述第二类组的第二类子组的RTN结构块时,需要被比较的所述RTN结构块直接从属于所述RTN结构块。

17、
  根据权利要求8-16所述的方法,其特征在于,如果所述第二类组中将要与同属于所述第二类子组的上位RTN结构块比较的RTN结构块具有所述相同的第一权重,则只要这些RTN结构块是所述第二类组的第一类子组的RTN结构块,就继续将该RTN结构块与所述上位RTN结构块比较。

18、
  根据权利要求13-17所述的方法,其特征在于,在所述第一类组中,当RTN结构块在来自全部RTN结构块的一个具有第二最高可行权重高度的RTN结构块可被引入的多个决策位置中的一个决策位置中被直接引入时,所述第一类组的预定为从属于所述第二类组的RTN结构块的RTN结构块被分配最小权重高度的第二权重,并且其中不具有最小高度的第二权重的所述第一类组的RTN结构块在此情况下不从属于所述第二类组的RTN结构块。

19、
  根据权利要求13-18所述的方法,其特征在于,所述第一和第二类组的全部RTN结构块被分配至少一个RTN结构块,当在一个具有第二最高可行权重的RTN结构块的可以引入所述全部RTN结构块中的一个的位置上直接引入所述第一和第二类组的RTN结构块时,所述至少一个RTN结构块分别为上位。

20、
  根据前述任意权利要求所述的方法,其特征在于,根据其在所述语句中的顺序并且根据其权重嵌套并且被分配特定RTN结构块组的所述RTN结构块中的每一个均被转换为引擎接口元素,其中一个引擎接口元素具有可以根据处理步骤设置的独立组件的记录。

21、
  一种包括至少一个计算机系统的关系数据库系统,所述计算机系统包括至少一个关系数据库、至少一个数据处理单元和至少一个存储器,其特征在于,所述数据处理单元被可编程设置以使得该数据处理单元根据如权利要求1-20中任一权利所要求前述的方法而工作。

22、
  根据权利要求21所述的关系数据库系统,其特征在于,具有用于向所述存储器读入以数据库语言的形式来给出的一个或多个数据库语句的模块,所述数据库语句用于控制根据权利要求23所述的数据载波或电载波信号的关系数据库系统。

23、
  一种数据载波或电载波信号,其具有以数据库语言来给出的一个或多个数据库语句,用于控制和读入根据权利要求22所述的关系数据库系统的,
其特征在于,
存在于所述数据载波或载波信号中的所述一个或多个数据库语句包括由独立的RTN结构块形成的RTN的信息,
其中每个RTN结构块具有内部的、定向的决策图,所述决策图与具有沿至少一个决策路径的至少一个决策位置的其它RTN结构块的内部定向的决策图相独立地定义,
通过在选择步骤中的关键词来运行全部RTN结构块的所述内部决策图,并且跟随有所述决策图的全部可行路径,直至通过所述决策图确定没有与各自所选择的路径的匹配并且所述处理被中断为止,或直至各自选择的路径被运行到结束为止,
其中决策路径的至少一部分在至少一个决策位置上具有递归调用函数,通过递归调用函数,一个RTN结构块被运行,由此应用所述选择步骤到全部RTN结构块从而使从至少一个决策位置开始的所述选择步骤的任意频率的递归嵌套执行均是可行的,
其中所述决策路径至少部分地具有在至少一个所述决策位置上的递归调用函数,通过所述递归调用函数,对全部所述RTN结构块应用所述选择步骤导致运行一个RTN结构块,从而能够执行开始于所述至少一个决策位置的所述选择步骤的任意频率的递归的嵌套,
其中所述决策路径至少部分地具有在至少一个所述决策位置上的递归调用函数,通过所述递归调用函数,对全部所述RTN结构块应用所述选择步骤导致运行一个RTN结构块,从而能够执行开始于所述至少一个决策位置的所述选择步骤的任意频率的递归的嵌套,
并且其特征还在于,根据所述RTN结构块的顺序,以及根据在全部关键词上应用所述选择步骤而导致的嵌套,产生用于所述关系数据库系统的访问计划。

24、
  一种具有指令的计算机程序,所述指令实现根据权利要求1-20中任一权利要求所述的方法。

25、
  一种具有计算机可读介质的计算机程序乘积,所述计算机可读介质具有计算机程序代码模块,在所述算机程序代码模块中,计算机迅速响应所述程序以在每次加载根据权利要求1-20中任一权利要求所述的计算机程序后实现所述方法。

26、
  一种具有在电载波信号上的计算机程序的计算机程序乘积,其中在每次加载了所述计算机程序后,计算机迅速响应所述程序以实现根据权利要求1-6中任一权利要求所述的本发明的方法。

说明书

控制关系数据库系统的方法
技术领域
本发明涉及用于控制关系数据库系统的方法,其中首先通过应用递归转移网(RTN)来分析包括关键词的查询语句,其中将与处理有关的性质按由语句给出的顺序分配给关键词或一组关键词,此后跟随的是转换为控制命令和可选择的最优化。
本发明还涉及关联关系数据库系统、包括关系数据库系统的控制信息的关联数据载波或载波信号、用于实现前述方法的关联计算机程序和计算机程序乘积。
背景技术
关系数据库系统绝大部分基于SQL,虽然SQL在应对更为复杂的查询时具有高传播等级和不断的发展,但其难以形成查询语句,并且语法限制的自由度导致不必要地复杂化了问题描述并且导致非最优访问码,这包括存储密集型、硬盘访问密集型和处理器密集型处理。
SQL是集合处理查询语言,SQL以一定的、固定的顺序分别应用预定的集合处理函数至每个语句和子语句,分别应用于每个语句和子语句的自由定义的输入量上。
在SQL的应用中的这种相关约束产生自根本的RTN(应用递归转移网)逻辑,该RTN逻辑的处理沿给定的决策图来进行,该决策图提供固定顺序或基本上固定顺序的关键词以及当允许在每个关键词后的限制性关键词选择时,整个决策图在预定决策位置上的递归实用性。由于这种给定顺序,可能仅由特别地以SQL、OQL等来完全运行整个决策图的自嵌套和/或自链接来描述语句处理,预定的处理模块的处理可以按照由决策图确定的顺序,而不可以引入顺序可自由选择和重复的新的处理模块。
虽然具有上述自然可用的RTN约束的SQL被设计为图灵完全,但实际上,即便是专家也难以执行非常少的查询,并且因此通常导致与理论上可行的处理时间相比较长的处理时间,这种较长的处理时间是不能实现的,因为SQL的RTN不允许自由地形成和使用查询语句。
发明内容
因此,本发明的一个目的是提出一种如上所述的方法,该方法可以对查询语言中的各种难度级别的事实进行简单且简洁的描述并且可以建立改进的访问计划,并且由此查询结果可以被分别计算并实现得更快。
本发明的另一个目的是提出一种方法,该方法提高了用户和第三方的理解力和清晰度,并且在例如从一个问题开始进一步提出类似的问题时,允许简单地实现修改或调整现有语句。
为了确保简单的适用性,根据本发明的方法还应该易于在图形接口上说明。
对作为本方法的基础的查询语言应用的新处理函数的定义和升级应该分别易于实现。
根据本发明,这种方法通过以下操作获得:
从独立的RTN结构块形成RTN,其中每个RTN结构块均具有内部的、定向的决策图,该决策图与具有沿至少一个决策路径的至少一个决策位置的其它RTN结构块的内部的、定向的决策图相独立地定义,
通过在选择步骤中的关键词以及随后的这种决策图的全部可行的路径来运行全部RTN结构块的内部决策图,直至所述处理被中断并且决策图没有确定与单个路径的匹配,或者运行分别选择的路径直至结束,
其中决策路径的至少一部分在至少一个决策位置上具有递归调用函数,通过递归调用函数,由于将选择步骤应用到到全部RTN结构而运行其中一个RTN结构块,从而使从至少一个决策位置开始的选择步骤的任意频率的递归嵌套执行是可行的,
并且通过从RTN结构块的顺序产生用于关系数据库系统的访问计划,并且通过在全部关键词上应用选择步骤而产生嵌套,
并且通过至少包括计算机系统的关系数据库系统,所述计算机系统至少包括关系数据库、至少数据处理单元和至少存储器,该存储器被编程集合从而使其根据本发明的前述方法而工作。
以此方式,人们可以在不应用到目前为止高结构度而执行具有预定处理区域和例如SELECT,FROM,WHERE,GROUP BY,HAVING,ORDERBY,LIMIT,UNION的处理顺序的查询语言,例如SQL、OQL等。通过这种应用在SQL中的模型,笛卡尔(Cartesian)乘积形成在查询的FROM部分中,笛卡尔乘积的一些行在WHERE部分中被去除,一些数据域在GROUP BY部分中被组合,一些行通过一组计算结果而在HAVING部分中被去除,通过ORDER BY完成分类并且集合结合UNION或其它集合单元操作,可以获得必要的图灵完全,从而使全部有关数据的可解决的问题均可以被理论化地形成,但是由于高复杂度,这在实际中是不可行的,由于开始于中等能力的用户难以完成高难度的任务。此外,全部可能的查询中的很大一部分可能由专家形成,但是这取决于各个问题,可能仅以复杂的方式结合到给定的处理区域,因为由于预定的结构和顺序,例如在SQL中,这不能以其它任何方式完成。当由于处理区域的小集合,使得在许多情况下不能事先确定集合处理的直接方式时,直至旨在此目的的优化器避免了许多最坏的方式,并且独立的应用描述是确定最佳方式。与理论上的最佳可行方式相比,该最佳方式可能变化剧烈。
附图说明
本发明的进一步的实施方式在所附权利要求中给出。以下,通过附图中所示的实施方式详细描述本发明。
图1是现有技术的SQL-RTN的示意图;
图2是作为本发明的方法的一个实施方式的基础的RTN结构块的示意图;
图3、4、5分别是根据本发明的方法的RTN结构块的示意图;
图6是作为根据本发明的方法的另一个实施方式的基础的RTN结构块的示意图;
图7是根据本发明的方法的实施方式的RTN结构块的嵌套的示意图;
图8、9、10、11、12、13分别是分别应用在根据本发明的方法的实施方式中的不同的RTN结构块嵌套和特定形式的输入集合分配的示意图。
图14、15、16、17分别是应用在根据本发明的方法的实施方式中的RTN结构块的一组变量的示意图。
具体实施方式
可以用两个非常简单的例子来进行说明。
给出了表格“公司”,其中至少包括域“company_name(公司名称)”和“city(城市)”。
实施例1
第一个问题:全部公司来自具有多于100个公司的城市
用SQL的一种可行的描述是(现有技术):
SELECT companies.*
FROM companies,(SELECT companies.city
   FROM companies
   GROUP BY companies.city
   HAVING(count(*)>100)
)AS companies_cities_more_than_100
WHERE(companies.city=companies_cities_more_than_100.city)
使用了公司的集合,根据城市组合并且仅记忆那些具有多于100个公司的城市。该集合具有笛卡尔联接,该笛卡尔联接具有公司集合,并且仅对公司来说,域“城市”还可以在具有多于100个公司的城市集合中找到。缺点是:存储城市的集合必须,并且公司的集合必须运行两次并与城市比较一次。
根据本发明的方法的RTN结构块中的一个可行的描述是:
SELECT companies.*
WHERE(companies.city.WHERE([companies.count]>100))
采用了公司集合,对于每个公司,检查是否在该城市中发现了多于100个公司。输出发现的公司。实际上,用优化器来更好地进行该处理。
实例2
第二个问题:来自每个城市的100个随机的公司
用SQL的一种可行的描述是(现有技术):
SELECT*
FROM(
SELECT companies.*,row_numberate()OVER companies.city AScompany_of_city
FROM company
)
WHERE(companies_of_city<=100)
对公司的集合编号,按照每个城市重新开始,将该城市存储在一个集合中并且选取该集合中编号小于等于100的全部元素。
根据本发明的方法的灵活的RTN结构块中的一个可行的描述是:
SELECT companies.*
BREAKON companies.city
FIRST #100
所述公司的集合取自相应的表格。BREAKON表示后续函数被应用到来自相同城市的每个公司,即来自每个城市的前100个公司。
图1示出了查询语言SQL的SELECT命令的简化的现有技术的决策图,从该决策图使得SQL的RTN的示意结构变得清楚。
通过必要的连续地排列的处理区域40,41,42,43,44,45的固定的预定顺序来形成每个查询语句,在决策位置10,11,12,13选择关键词20,21,23,24,25,26,27,28,29,30,31的一部分,为了简化,仅使用处理区域42、43、44和45的引导关键词24,26,28,30获得期望的查询结果。一些关键词组形成每个处理区域,例如FROM(关键词22,23)、WHERE(关键词24,25)、GROUP BY(关键词26,27)等,其中每个处理区域执行分配给其的集合处理函数,例如FROM形成笛卡尔乘积,这允许了特殊的JOIN。
在每个引导关键词20,22,24,26,28,30后,为了清楚,可以跟随图1中未示出的进一步的关键词。因此,例如在关键词24“WHERE”之后,可以直接跟随关键词“(”,“NOT”,表格名称、表格空间名称,定义的函数等。SUBSELECT,即RTN的递归应用,其通常开始于SELECT(关键词20),以例如“(”开头,其可以总是出现在事先确定的决策位置。因此,在这些位置上,仅整个RTN可以总是作为单元而递归。
虽然存在多个潜在可选的关键词,但SQL和相关的查询语言相当受限并且存在多种查询,这些查询通过具有事先确定的处理顺序的给定处理区域的抄写非常复杂和麻烦,这也是从这种描述产生比实际需要更复杂和更缓慢的访问计划的原因。
图2示出了本发明的方法所基于的RTN的示意图的实例,其中RTN由独立的RTN结构块50,51,52,53,54,55形成,该独立的RTN结构块的数量可以按需要扩展。作为一个实例,图2示出了简化的RTN结构块,每个所述简化的RTN结构块仅具有一个单决策路径79,该决策路径79具有相应的较少数量的决策位置。
每个RTN结构块50,51,52,53,54,55均以限定的集合元素顺序来访问分配的处理输入集合的输入数据集合,使得这些输入数据集合经过处理并且提供新的处理输出集合,该处理输出集合具有至少一个输出数据集合,该输出数据集合同样具有限定的集合元素顺序,其中该输出数据集合在数值上不需要偏离输入数据集合。每种情况中的处理均基于决策位置处的关键词,例如关键词61“WHERE”,关键词62“ORDERBY”,关键词63“FINDFIRST”,关键词64“=”,关键词66“#”和关键词67,例如在关系数据库中获得的表格域名。
在RTN结构块50,51,52,53,54,55中的标记有*的决策位置70执行特殊函数,即来自全部可获得的RTN结构块的所有选择的任何RTN结构块均在该位置导入并且在处理期间运行。
实例3
FROM COMPANIES
WHERE COMPANIES.CITY="VIENNA"
ORDERBY COMPANIES.NO._OF_EMPLOYEES
FINDFIRST(COMPANIES.TURNOVER_PREVIOUS_YEAR>20,000)#100
FROM提供了数据集合,该数据集合在当前的实例中是表格COMPANIES。
WHERE(在RTN结构块50中的关键词61)获取了输入数据集合COMPANIES的全部集合元素,通过该处理函数,没有影响数据输入和数据输出以及所述顺序并且也未影响这种顺序。从图2清晰可见,在RTN结构块50中,WHERE跟随标记为“*”的决策位置70,在该决策位置70上,来自全部限定RTN结构块的任何RTN结构块均被导入并运行。
WHERE从输入数据集合提供输出数据集合,该输出数据集合对应于此处使用的用于这种RTN结构块的定义,其中该输入数据集合中,在决策位置70上导入的RTN结构块的数据记录,在运行在其用于每个数据记录的被传送值集合后被输出,其中至少一个值不为0和ZERO,因为每个RTN结构块输出具有至少一个值的集合。
适合的是例如添加进一步的可选决策位置到RTN结构块50或例如添加进一步的可选决策位置以定义独立的结构块以定义为决策位置70的值的集合中的选择标准,该进一步的可选决策位置定义了至少一个值必须不为0和不为ZERO或者可以确切地不为0或ZERO值。
根据实例3,RTN结构块53被引入到决策位置70,在该位置,每种情况下均有进一步的RTN结构块被引入在两个决策位置70“*”上(通过使用图2中的RTN结构块)。
在实例3中,RTN结构块50仅传送那些表格域CITY中为“Vienna”的公司。
ORDERBY(RTN结构块51中的关键词62)
根据由每个元素的决策位置70得出的值来分类处理输入集合的元素,并且RTN结构块以适当的分类顺序传送处理输入集合的元素,以作为处理输出集合。在实例3中,根据雇员的数量进行分类。
FINDFIRST(RTN结构块52中的关键词63)
该RTN结构块使输入数据集合具有其被传送时的分类顺序,例如,通过ORDERBY RTN结构块并且通过考虑该顺序,仅发现这些元素并且在考虑这种顺序的情况下仅发现RTN结构块的这些元素被引入到决策位置70上,在运行其被传送值集合后输出,该集合的每个元素至少一个值不为0和不为ZERO并且根据输入分类顺序输出找到的元素。
#(RTN结构块54中的关键词66)
在实例3中,RTN结构块52(“FINDFIRST”)被引入RTN结构块54而不是第一决策位置70中,该RTN结构块54是上位的RTN结构块。RTN结构块54在本定义中表示从运行第一决策位置70而导致传送的全部元素被限制为在第二决策位置70处声明的元素的数量。
从实例4中可见,RTN结构块54(“#”)以其嵌套形式在RTN结构块54中的应用被定义接受。
实例4
(5,3,2,9)#3#2
步骤#3导致采用前三个元素,因此(5,3,2)作为输入数据集合#2的输出数据集合来传送。#2的结果是(5,3)。
=(RTN结构块53中的关键词64)
在本实例中,在RTN结构块50中,在决策位置70处的关键词61(WHERE)后引入RTN结构块53,因此WHERE*=*。
表格域名(RTN结构块55中的关键词67)
CITY,NO._OF_EMPLOYEES,TURNOVER_PREVIOUS_YEAR是可以在任意决策位置70处的表格域名。
如上所述,每个RTN结构块(同样在图2中:50,51,52,53,54,55)具有内部定向的决策图表,该决策图具有至少一个决策路径79。在根据图2的实例中,在每种情况下,一个决策路径确切地运行在每个RTN结构块50,51,52,53,54,55而没有分支,跟随有图2所示的决策图表,从顶部开始直至底部。
RTN结构块50,51,52,53,54,55的每个决策图表均自其它RTN结构块50,51,52,53,54,55的内部定向决策图表而被独立地定义并且可以具有沿决策路径的一个或多个决策位置70。
以下,将进一步描述可行的RTN结构块,该RTN结构块部分地需要更复杂的决策图表。
图3示出了RTN结构块150,该RTN结构块150通过处理输入集合传送处理输出集合,该处理输出集合具有的特性是该处理输出集合独立计算上位集合的每个元素。在决策位置70,可以引入任何RTN结构块均。通过所述的决策图表,可以使该位置如箭头所示,在方括号161、162之间按期望频率连续运行,其中RTN结构块的全部选择中的一个被引入到每次运行中。此处的上位的集合是上位的RTN结构块的处理输入集合,其中该RTN结构块在决策位置70被引入。
实例5
[
SELECT COMPANIES.COMPANY_NAME
WHERE[
 DEPARTMENTS.COUNT
 WHERE
(COMPANIES.COMPANY_ID=DEPARTMENTS.COMPANY_#)
]>3
]
此处,提供每个公司的整个部门的集合,由于全部公司的集合是上位的集合,因此仅计算那些分配给每个公司的部门。仅采用那些具有多于三个部门的公司。
根据实例5的语句可以被变换为以下结构块。
RTN结构块150的应用:[*(repetition)]in this example yields[**],
wherein
*.........SELECT*1
*.........WHERE*1
根据本定义的“方括号”使所述集合包括在其中,并且处理RTN结构块的处理输入集合的元素,并且引入的RTN结构块沿RTN结构块150的决策路径运行,这在存在处理输入集合的元素时被完成。由于该第一RTN结构块150没有上位的RTN结构块,因此假设具有元素的虚拟处理输入集合从而使该第一RTN结构块仅运行一次。
SELECT*1的处理输入集合是COMPANIES,因为这些COMPANIES被收录为SELECT的参数。
WHERE*1的处理输入集合是COMPANIES,因为为了兼容SQL标准,由SELECT表示的显示函数总是在末端执行但可以在语句中事先声明。
WHERE*1对应于RTN结构块50,通过决策位置70,期望来自全部选择的RTN结构块,该RTN结构块的集合的值为处理输入集合的每个元素,即COMPANIES计算。在决策位置70,在目前的情况下(实例5),以下RTN结构块被引入:
*2(decision position 70)>(text)*2(decision position 70).
第一个星号*2(决策位置70)再次引入RTN结构块150,该RTN结构块150反过来包括[*3*3],即混合的第一星号*3=DEPARTMENTS.COUNT并且WHERE(COMPANIES.COMPANY_ID=departments.COMPANY_#)作为混合的第二星号*3
第二星号*2(决策位置70)跟随“>”,其包含设置为一个值即3的值。
与实例5中的方式相同,继续变换至另一个RTN结构块中。
以下,显示出了本实例的两个可选择的注解,这两个注解以不同的抽象术语描述实例5的同一个问题,并且可以与实例5相同的方式来最优化这两个注解,并且传送相同的处理计划。
实例6
[SELECT COMPANIES.COMPANY_NAME
WHERE[
 DEPARTMENTS
 WHERE(COMPANIES.COMPANY_ID=departments.COMPANY_NO.)
].COUNT>3
]
在实例6中,运行每个公司的部门的集合,并且匹配的元素根据当前的公司被传送为RTN结构块150的处理输出集合,并且通过“COUNT”计数并且与>3比较。
实例7
[SELECT COMPANIES.COMPANY_NAME
WHERE[
 DEPARTMENTS.WHERE(COMPANIES.COMPANY_ID=departments.COMPANY_NO.).COUNT
]>3
]
在实例7中,每个公司的部门的集合被运行并且匹配的元素数量根据当前的公司被传送为RTN结构块150的处理输出集合并且与>3比较。
为了进一步说明方括号的定义,给出了另一个实例,该实例回答了与实例1中相同的问题,即,来自具有多于100个公司的城市的全部公司。
实例8
[SELECT COMPANIES.COMPANY_NAME,COMPANIES.ADDRESS
WHERE[COMPANIES AS COMPANIES2
 WHERE COMPANIES.CITY=COMPANIES2.CITY
].COUNT>100]
该实例的特征在于集合COMPANIES被每个元素COMPANY访问,这使得可以计数相同的城市。
以下,显示了三个可选择的注解,这三个可选择的注解具有不同的抽象术语以及相同的最优化访问计划。
实例9
[SELECT COMPANIES.COMPANY_NAME,COMPANIES.ADDRESS
WHERE COMPANIES.CITY.[COMPANIES.COUNT]>100]
找到了具有多于100个公司的城市中的全部公司。
实例10
[SELECT COMPANIES.COMPANY_NAME,COMPANIES.ADDRESS
GROUPBY COMPANIES.CITY
WHERE[COMPANIES.COUNT]>100
END GROUPBY]
对每个不同城市将companies.city与GROUPBY相结合并且对每个结合后的元素记忆这个城市的公司。通过[companies.count]计数有多少公司被分配给每个元素城市,并且通过WHERE,仅获得那些被分配多于100个公司的城市。END GROUPBY意味着对每个城市的组合将停止并且取而代之的是那些分配给所述城市的公司被使用。由于具有少于100个公司的城市未被处理,因此这些城市的公司同样未被进一步处理。
实例11
[SELECT COMPANIES.COMPANY_NAME,COMPANIES.ADDRESS
BREAKON COMPANIES.CITY
WHERE COUNT>100]
RTN结构块“BREAKON*”为其处理输入集合的每个元素提供了在其处理输出集合中被分割成的几个输出数据集合,结果输出数据集合在处理输出集合中被结合从而使处理输入数据集合的元素在决策位置70(*)处对引入的RTN结构块再次传送相应的相同处理输出集合,每个集合均被引入相应的相同输出数据集合并且输出数据集合的数量等于RTN结构块BREAKON的决策位置70(*)中的不同值的数量。
在本实例中(实例11),BREAKON的决策位置70是“COMPANIES.CITY”,从该决策位置70,产生对应于现有城市数量的大量数据集合。
跟随BREAKON的其它处理函数总是作为输入数据集合与这些输出数据集合相关,并且将其处理函数独立地应用到每个单个输入数据集合,并且反过来提供相同数量的输出数据集合直至达到一定的RTN结构块,例如“END BREAKON”,这表示其处理输入集合的全部输入数据集合被结合入其处理输出集合中的一个单个的输出数据集合中。
对于以上的实例11,每个城市的全部公司中的每一个均被写入其自身的集合,并且随后的WHERE被独立提供给这些集合中的每一个,以便为每个输入数据集合城市计数在当前输入数据集合(城市)中有多少个元素(公司)。如果在当前输入数据集合城市中有多于100个公司,则采用该城市的整个输入集合,并且此后,该输出数据集合的全部公司由SELECT显示。
另一个实例首先显示了数据集合内的整个数据上的处理函数的应用,随后是分割为多个数据集合并且之后处理函数被独立地应用到每个数据集合,随后通过最新一次的处理函数而组合到数据集合中,该最新一次的处理函数涉及整个数据集合。与SQL相比,形成较为简短并且更为具体地贴近当前问题,并且处理得到改善,因为独立的RTN结构块非常具体地描述了用户期望的结果类型并且用户不需要工作于临时表格。
实例12
[SELECT COMPANIES.COMPANY_NAME,COMPANIES.ADDRESS
(0)
WHERE COMPANIES.DELETED=FALSE(1)
BREAKON COMPANIES.CITY
(2)
WHERE COUNT>100(3)
END BREAKON(4)
MAX COMPANIES.TURNOVER2006#1000
(5)
]
(1)在全部公司的集合中,仅选择那些未被删除的公司。
(2)根据在相应的相同数据集合中的相同城市而存储未删除的公司的集合。
(3)计数每个数据集合,并且仅继续使用这些数据集合,其中存在多于100个元素。现在,仅剩这些数据集合,在此情况下,留下的城市具有多于100个公司。
(4)将全部独立的数据集合重新写入一个数据集合,这意味着将具有多于100个公司的全部城市的全部公司写入一个数据集合中。
(5)在这些公司中,仅选择那些其整体属于具有最佳营业额的1000个公司的公司。
(6)传送在SELECT中定义的表格域。
图4示出了具有关键词163“ALL”和164“ANY”的RTN结构块151,该RTN结构块151如前所述被定义为RTN结构块的集合值中的选择标准,该标准在决策位置70被引入,从而使至少一个值必须不为0且不为ZERO(ANY)或者确切地没有值可以为0或ZERO(ALL)。
RTN结构块151还使其可以规定EXACTLY(关键词167)、AT LEAST(关键词166)或AMAXIMUM OF(关键词167),一些值的集合(关键词168)必须不为零或ZERO(在“ANY”的情况下)或(在“ALL”的情况下)除了严格的(关键词167)/至少(关键词166)/最大(关键词165)以外的全部值必须分别为零和ZERO的集合(关键词168)。
可以通过前述RTN结构块151如下的说明来表示RTN结构块应用中的灵活性。ANY,在其基础定义中,意味着处理输入集合的当前元素的值的集合的至少一个值必须匹配,因此不为零且不为ZERO。然而,该函数可以按需通过允许一个或多个进一步的上位RTN结构块或引入的RTN结构块各自的修改而被扩展。
实例13
COMPANIES.WHERE ANY[CONTACT_PERSONS WHERE(COMPANIES.COMPANY_ID=
CONTACT_PERSONS.COMPANY_NO.)].sex="MALE"
ANY表示至少一个处理函数的值,在实例13中,在位置WHERE,必须具有至少一个不为零的值,因此传送全部公司,其中至少一个男性联系人。
实例14
COMPANIES.WHERE ANY(<=3)[CONTACT_PERSONS WHERE(COMPANIES.COMPANY_ID=
CONTACT_PERSONS.COMPANY_NO.)].sex="MALE"
扩展的ANY(<=3)意味着处理函数的最大三个值,在实例14中在位置WHERE处,必须具有至少一个不为零的值,因此提供存在最多三个男性联系人的全部公司。
实例15
COMPANIES.WHERE ALL[CONTACT_PERSONS WHERE(COMPANIES.COMPANY_ID=
CONTACT_PERSONS.COMPANY_NO.)].sex="MALE"
ALL意味着处理函数的全部值,在实例15中的WHERE处,必须具有确切地不为零的值,因此提供仅男性联系人的全部公司。
实例16
COMPANIES.WHERE ALL(<=3)[CONTACT_PERSONS WHERE(COMPANIES.COMPANY_ID=
CONTACT_PERSONS.COMPANY_NO.)].sex="MALE"
扩展的ALL(<=3)意味着除了处理函数的最大三个值外的全部值,在实例16中在位置WHERE处,可能具有不为零的值,因此提供存在最多三个女性联系人的全部公司。
图5示出了RTN结构块152,该RTN结构块152使用了IF THENELSE条件以计算输出数据集合。
实例17
SELECT COMPANIES.COMPANY_NAME,COMPANIES.CITY
IF COMPANIES.NUMBER_OF_EMPLOYEES<100
THEN WHERE COMPANIES.TURNOVER2006>
   IF COMPANIES.ZIP=1010 THEN 500,000 ELSE 300,000
ELSE MAX COMPANIES.TURNOVER_2006#1000
END IF
ORDERBY COMPANIES.COMPANY_NAME
该实例的问题如下。声明全部的公司,具有其它标准的少于100雇员的公司与具有确切地多于100雇员的公司相比较。
如果少于100雇员的公司的营业额2006根据邮政编码(ZIP)而比较,但是在ZIP 1010,营业额必须>500000,同时全部其它ZIP与300000的营业额相比较。
在具有至少100个雇员的公司中,仅选择那些2006年的营业额在全部公司中的营业额最大的1000个公司中的公司。
图5中的RTN结构块152具有两个必须的和一个可选的(在关键词172后)(ELSE)决策位置70,其中引入来自全部RTN结构块的RTN结构块,其中关键词170(IF)和随后的决策位置70确定该RTN结构块是否返回处理输入集合的当前元素,关键词171(THEN)后的决策位置70或关键词172(ELSE)后的决策位置70作为本RTN结构块的处理输出集合。如果没有关键词172(ELSE)并且由此没有声明决策位置70,则TRUE(-1)被假设为用于本决策位置70的处理输出集合。
关键词173(END)和174(IF)由此可选择,因为RTN结构块152的末端由EXACTLY ONE决策位置70定义,同时为了清楚起见可以声明关键词。
如果多个决策位置70分别被顺序引入关键词170和171之间或者关键词171和172之间或者关键词172和173之间,则存在两种可能性:
第一种可能性是固定地确定关键词173(END)和174(IF)并且由此允许其在本RTN结构块的每个决策位置70处被任意次数地重复调用。
此处所选择的第二种可能是使用开始于至少一个关键词并结束于至少一个关键词的RTN结构块,并且包括在这些关键词之间的严格的一个决策位置70,该决策位置70可被任意次地调用。在本RTN结构块中,全部期望的RTN结构块均可以被声明并且各自的RTN结构块可以被引入在RTN结构块152中以及决策位置处的全部其它RTN结构块中。
实例18
图6示例性地示出了为了简化目的的假设,限制全部被定义的RTN结构块250、251、252、253、254、255彼此相邻。
以下语句包括用作实例18的基础的10个关键词,其中A、B、C是所使用的关键词。
B A C C C B A C C A
在根据本发明的方法的选择步骤中,全部RTN结构块250-255的内部决策图表通过关键词261-271运行,并且跟随这些决策图表的全部可行的路径79直至通过决策图表检测不到与各自的选择路径79的任何匹配,并且该处理停止或各自的选择路径79运行到最后。
该处理包括以下十个步骤,步骤的编号对应于关键字的编号,并且在图1中示为至少10步的结果。
步骤1
语句中的第一个关键词“B”与RTN结构块250,251...中的各自的第一个关键词相比较,并且发现匹配在:
RTN结构块250→在关键词261("A")处无匹配
RTN结构块251→在关键词263("A")处无匹配
RTN结构块252→关键词265("B")
RTN结构块253→关键词268("B")
RTN结构块254→关键词269("B")
RTN结构块255→在关键词271("C")处无匹配
这就是为什么仅跟随有RTN结构块252,253,254。
结果(强调的当前位置)
RTN结构块252    B * C
RTN结构块253    B * A
RTN结构块254    B A *
步骤2
下一个在语句中使用的关键词“A”,具有在各自的RTN结构块的当前第二位置处搜索出的匹配。本文中的决策位置70(“*”)意味着任何RTN结构块可以在该位置上引入。因此决策路径在决策位置70处具有递归调用函数,通过该函数,一个RTN结构块作为在全部RTN结构块上应用选择步骤的结果而运行,从而使选择步骤的递归的嵌套执行可以自至少一个决策位置开始按需要的频率重复。因此,必须还在决策位置70处检查是否可以通过引入RTN结构块中的一个而找到匹配。
RTN结构块252→跟在决策位置70("B""*")之后的关键词265
RTN结构块253→跟在决策位置70("B""*")之后的关键词268
RTN结构块254→关键词269("B""A")
因此,在RTN结构块252中的决策位置70,人们可以从全部RTN结构块中选择以引入其中的一者。例如,引入RTN结构块250-255并且检查它们是否与语句匹配,但在第一决策位置处仅可以找到RTN结构块250和251的匹配。
250被引入252:B * C→B A B * C
251被引入252:B * C→B A C * C
250被引入253:B * A→B A B * A
251被引入253:B * A→B A C * A
254           B A *
步骤3
250被引入252:B * C→B A B * C  不再进一步跟随
251被引入252:B * C→B A C * C  继续
250被引入253:B * A→B A B * A  不再进一步跟随
251被引入253:B * A→B A C * A  继续
254           B A *                引入全部结构块
导致:
251被引入252:B * C→B A C * C
251被引入253:B * A→B A C * A
255被引入254:B A *→B A C
步骤4:
251被引入252:B A C * C 引入全部RTN结构块
251被引入253:B A C * A 引入全部RTN结构块
255被引入254:B A C   不再进一步跟随直至到达结尾
导致:
251中的255被引入252:B * C→B A C C C
251中的255被引入253:B * A→B A C C A
步骤5
251中的255被引入252:B A C C C 继续
251中的255被引入253:B A C C * A 在RTN结构块253中任意类型
                                   的达到决策位置70均是可行
                                   的;
251中的255被引入253 B A C C A  由于没有匹配,故不再进一步
                                 跟随
导致:
251中的255被引入252 B A C C C
(251中的255,跟随有255)被引入253   B A C C C A
步骤6
251中的255被引入252:B A C C C不再进一步跟随直至结束
(251中的255,跟随有255)被引入253 B A C C C A由于没有匹配,故不再进一步跟随
(251中的255,跟随有255)被引入253 B A C C * A引入全部RTN结构块
导致:
(251中的255,跟随有255,跟随有252)
被引入253 B A C C C B * C A
(251中的255,跟随有255,跟随有253)
被引入253 B A C C C B * A A
(251中的255,跟随有255,跟随有254)
被引入253 B A C C C B A * A
等等
步骤10的结果
(251中的255,跟随有255,跟随有254中的255,跟随有255)在253中
从图7所示的结果可见,根据步骤10,根据RTN结构块的顺序产生用于关系数据库的访问计划并且从在查询语句的全部关键词上执行选择步骤而产生RTN结构块的嵌套,其中RTN结构块的嵌套可选择地通过以下说明的重量而改变以便恰当地解决因在其它RTN结构块的决策位置70处的RTN结构块的引入可能引起的冲突。
为了始终清楚地记录每个RTN结构块的结束以及在此处引入的RTN结构块,需要至少一个决策位置,该决策位置需要关键词(文本、符号、变量或数量),该关键词在RTN结构块的决策图的决策位置处作为前缀,在该决策位置,执行不能事先确定的不限数量的递归调用函数的连续调用,并且至少一个决策位置同样要求在此后跟随关键词。
这样的实例是RTN结构块“等级(levels)”,其中决策位置70可以按需要尽可能连续跟随,该结构块被定义为开始于前面的关键词(“[”)并结束于随后的关键词(“]”):“[“(1)*(*1)”]”。
通过本发明的方法,由于该方法在形成语句中的自由度,该方法可以定义跟随有如下逻辑的查询语言:
假设存在多个表格和在关系数据库系统中存储的查询,其在以下被视为集合并被抽象。
根据本发明,给出了多个预定的RTN结构块,其中每个RTN结构块具有内部决策图,该内部决策图与其它RTN结构块的内部决策图相独立地定义。多个RTN结构块具有至少一个决策位置。可以引入表示在该决策位置处的来自全部RTN结构块的任意期望的RTN结构块的符合句法的标记。如前所述,这对应于决策位置70。
每个RTN结构块均被分配至少一个处理输入集合,基于该处理输入集合执行至少一个处理函数并且形成处理输出集合。这样做旨在可以通过RTN结构块重新分配RTN结构块的处理输入集合,该RTN结构块在执行处理函数前被引入该RTN结构块中的决策图70中。
通过变换每个可形成的语句并将其引入到RTN结构块,每个可形成的语句使用基于RTN结构块的嵌套的相同的抽象形式,独立于被分配到使用中的RTN结构块的处理函数。通过该相同的抽象,一个代数满足全部RTN结构块和嵌套可能。
始终可以声明有限数量的基础结构块组,其中需要一些假设,应用这些假设除非上位的或引入的RTN结构块指示其所具有的不同定义。
可行的基础结构块组的实例(图14、15、16、17)
变量1(图14):RTN结构块601具有任意的关键词600和确切地一个决策位置70,其中来自全部RTN结构块的RTN结构块被引入,其中该变量的一个RTN结构块指示在决策位置70的前面和/或后面的至少一个关键词600。
变量2(图15):RTN结构块602具有任意的关键词600和至少两个或多个决策位置70,其中当前的全部决策位置70均独立于关键词。
变量3(图16):RTN结构块603具有任意的关键词600,该关键词600位于决策位置70的前面或后面并可按需要频繁地调用。
变量4(图17):RTN结构块604具有任意关键词600,该关键词600位于决策路径79的开始和末尾并且该关键词600包括决策位置70,跟随决策位置70的是可以按需要频繁地调用的任意数量的关键词600,该关键词600可以跟随在第一决策位置70之后。
由任意语句形成所引起的全部嵌套可能可以被分割为这些或进一步的变量或其组合。显示了在所使用的RTN结构块未分别描述其它处理方法和处理集合分配时分别应用在这些变量中的处理步骤。
变量1(图8、14)
对于全部RTN结构块的那些根据图14中所示的变量1定义的RTN结构块,应用以下处理集合分配:
如果决策位置70提供在上位的RTN结构块中,则在此位置作为处理输入集合引入的额外的RTN结构块被分配处理输入集合,该处理输入集合分配到上位的RTN结构块。该处理被执行直至最内部的嵌套RTN结构块从而使处理输入集合总是传送到决策位置70处直接引入的各自的RTN结构块。除非没有其它RTN结构块被引入所述引入的RTN结构块,否则引入的RTN结构块的处理函数之后被应用到其分配的处理输入集合,并且所导致的引入的RTN结构块的传送的处理输出集合被分配到上位的RTN结构块作为新的处理输入集合,随后执行上位的RTN结构块的处理函数。该应用的结果作为上位的RTN结构块的处理输出集合而传送。因此,该原理允许按需要的频率的RTN结构块的嵌套。
因此,图8示出了根据以下的嵌套的RTN结构块407、408、409
RTN结构块407(关键词+决策位置70)
RTN结构块408(关键词+决策位置70)
RTN结构块409(关键词)
处理输入集合401被传送到RTN结构块407并且之后被传送到引入的RTN结构块408作为其处理输入集合402,该处理输入集合402反过来同一地传递到引入到RTN结构块408中的RTN结构块409。
一旦达到最内部的嵌套点,则将RTN结构块409的处理函数应用到处理输入集合403,并且结果作为处理输出集合404传送到RTN结构块408作为新的处理输入集合。
现在将RTN结构块408的处理函数应用到新的处理输入集合404,结果作为处理输出集合405传送到RTN结构块407作为新的处理输入集合。
在其次的步骤中,将对下一个外部的RTN结构块(即RTN结构块407)的处理函数应用到其新的处理输入集合405,并且结果存储在RTN结构块407的处理输出集合406中。
然而,对独立的RTN结构块的不同定义不能被排除,如上所述。
变量2(图9、15)
对于根据图15所示的变量2定义的全部RTN结构块的那些RTN结构块,应用以下处理集合的分配:
如果在每种情况下在上位的RTN结构块中的两个或多个决策位置70之间存在至少一个关键词,则相同的处理输入集合(即上位的RTN结构块的处理输入集合)每次被分配到在决策位置70处直接引入的RTN结构块,全部引起的处理输出集合作为上位的RTN结构块的处理函数的处理输入结合而传送,除非在特定情况下引入的RTN结构块的外部和/或至少一者使用不同的定义。
图9示出了由关键词420链接的RTN结构块418和419,将该RTN结构块418和419引入RTN结构块417。该变量例如应用在算法或RTN结构块的逻辑操作中。
RTN结构块417(决策位置70+关键词420+决策位置70)
RTN结构块418                 RTN结构块419
处理输入集合411被传送到上位的RTN结构块417并且之后移交给引入的RTN结构块418作为其处理输入集合412。RTN结构块418的相关的处理函数之后被应用到处理输入集合412并且被存储在处理输出集合413中。
RTN结构块419还接收其上位的RTN结构块417的处理输入集合411作为处理输入集合414。RTN结构块419的相关处理函数之后被应用到其处理输入集合414并被存储在处理输出集合415中。
在下一个步骤中,将处理输出集合413和415分配给上位的RTN结构块417作为其两个新的处理输入集合,在处理输出集合413和415上该上位的RTN结构块417的处理函数从此应用并且随后存储在一个处理输出集合416中。
然而,对独立的上位的RTN结构块的不同定义不能排除,如上所述。
变量3(图10、16)
对于根据图16所示的变量3定义的全部RTN结构块的每个RTN结构块,应用如下用于处理集合的分配:上位的RTN结构块具有决策路径,该决策路径使得决策位置70可以期望的频率连续地到达(见图6中的RTN253)。
为此,应用在所述顺序的第一位置处引入的RTN结构块以检索上位的RTN结构块的处理输入集合,其它连续的每个RTN结构块均使用前体的处理输出集合作为处理输入集合并且RTN结构块被维持在所述顺序中以移交其处理输出集合作为处理输入集合至执行其处理函数的上位的RTN结构块,除非在特定情况下,外部或引入的RTN结构块的至少一个使用不同的定义。通过这样做,与SQL相比,如上所述,基本上可以进行更自由的查询。
图10示出了在上位的RTN结构块427中相互跟随的RTN结构块428、429、430,其中除了第一和最后的RTN结构块,以给定顺序的RTN结构块中的之前的RTN结构块的每个处理输出集合被检索为随后的RTN结构块的处理输入集合,并且应用分配到各自的RTN结构块的处理函数。
特别地,上位的RTN结构块427的处理输入集合421被传送为RTN结构块428的处理输入集合422,该处理输入集合422首先具有所述顺序并且其处理函数应用其上,导致处理输出集合423。后者被传递为第二RTN结构块429的处理输入集合423。以类似的方式,这发生在后续的RTN结构块430中并且其导致处理输入集合424的处理输出集合425被检索为新的处理输入集合,在该新的处理输入集合上,应用上位的RTN结构块427的处理函数,这导致处理输出集合426的传送。
通过RTN结构块446以下面的集合分配特性给出变量3的有效可行的再定义并在图12中显示。
然而,上位的RTN结构块446具有决策路径,该决策路径促使决策位置70可以根据需要频繁地连续地达到。
根据特定的RTN结构块446的定义,应用在决策位置70直接引入的全部的RTN结构块447、448、449并且分配上位的RTN结构块446的处理输入集合441。
作为上位的RTN结构块446的处理输入集合,全部直接引入的RTN结构块447、448、449的处理输出集合442、443、444被采用并在应用处理函数后存储在处理输出集合445中。
通过例如本身具有的RTN结构块,确定该RTN结构块446的可行的处理函数的实例:
1.具有引入的RTN结构块(ANY(*))的全部处理输出集合的特定数量(至少、确切地、最大...)的全部元素。
2.分别在引入的RTN结构块的每个处理输出集合中的全部元素以及在全部处理输出集合中的全部元素,具有除了至少/最大/确切地特定数量(ALL(*))。
通过独立的RTN结构块,还可以声明存在于多于一个的引入RTN结构块的处理输出集合中的元素是否应该在上位的RTN结构块的处理输出集合中被执行一次或多次。
如果没有给出用于所述上位的RTN结构块446的处理函数的作为参数的RTN结构块,则假设存在于引入的RTN结构块447、448、449的至少一个处理输出集合442、443、444中的全部元素应该在不复制的情况下被传送。
变量4(图11、13、17)
对于根据图17所示的变量4定义的全部RTN结构块的那些RTN结构块,应用以下用于处理集合的分配:
上位的RTN结构块(例如图11中的RTN结构块457或图13中的RTN结构块477)具有决策路径,该决策路径在一个或多个关键词600后指示决策位置70,在该决策位置70后,可以跟随任意数量的关键词600均并且使得决策位置70可以根据需要频繁地连续到达(见图6中的RTN253),并且以至少关键词600结束。
对于应用所述变量的RTN结构块,第一决策位置70使用上位的RTN结构块的处理输入集合的数据并且通过在决策位置70引入的RTN结构块的处理输出集合,可以执行本RTN结构块的处理函数,同时对于在决策位置70引入的可以按需要频繁地调用的全部其它RTN结构块,应用如变量3的逻辑描述(图16)的集合分配,其中可以按需要频繁地调用的决策位置70的第一RTN结构块在第一不可重复的决策位置被分配RTN结构块的处理输出集合作为其处理输入集合。一旦到达被标记有至少一个关键词600的上位的RTN结构块的末尾,则至少可以应用进一步的处理函数至决策位置70的最后的RTN结构块的可以按需要频繁地调用的处理输出集合。
在图11中,显示了变量4的RTN结构块,该RTN结构块在上位的RTN结构块457的第一决策位置70处引入,RTN结构块458访问上位的RTN结构块457的处理输入集合452,其中处理输入集合452对应于处理输入集合451。
本RTN结构块457的处理函数首先根据RTN结构块458的处理输出集合453的相同的值的集合参考各自的分组后的元素,执行用于处理输入集合452的元素的分组。这样,传递作为处理输入集合452的处理输入集合451包含17个元素。作为RTN结构块458的处理函数的结果,在处理输出集合453中,其被分组为5个不同的元素,其中每个元素通过组合的独立的元素(集合461、462、463、464、465)涉及各自的集合。处理输出集合453现在是用于RTN结构块459的处理输入集合。如果元素通过后续的引入的RTN结构块459和460的处理函数而从各自的处理输出集合454、455中去除,则参考分配的元素的集合(图11中的集合461和463)也可以被省略。当完成该RTN结构块,定义在RTN结构块457的处理输出456中的处理输出集合465的分配集合(集合462、464、465)的全部元素被写入RTN结构块457的处理输出集合456。仅当在RTN结构块457中经由至少选择关键词或通过随后的RTN结构块而明确调用时才执行该最后的处理函数。
在图13中显示了变量4的RTN结构块,该RTN结构块在上位的RTN结构块477的第一决策位置70处引入RTN结构块478访问上位的RTN结构块477的处理输入集合472,其中处理输入集合472对应于处理输入集合471。
所述RTN结构块477的处理函数首先根据RTN结构块478的处理输出集合473的相同值集合,执行用于处理输入集合472的元素的分组,其中每个元素均被相同分组而独立写入处理输出集合473的相同的输出数据集合。
由于本RTN结构块477的存在,假设每个处理输入集合和每个处理输出集合分别包含至少一个输入数据集合和至少一个输出数据集合,其中处理输入集合和处理输出集合的数据集合内的数量、内容和顺序不相同。如果没有分别描述的输入数据集合和输出数据集合,则每个处理输入集合和每个处理输出集合均分别严格包含一个输入和输出数据集合,该集合包括全部元素。全部处理函数被独立地应用到各自的RTN结构块(图13中的479、480)的处理输入集合(图13中的473、474)的全部输入数据集合并且相应地写入各自的RTN结构块479、480的处理输出集合474、475的输出数据集合,其中前提是输出数据集合仍包括元素。当完成该RTN结构块时,定义处理输出集合475的全部输出数据集合均写入RTN结构块477的处理输出集合476的相同的输出数据集合。仅在RTN结构块477中经由至少选择关键词或通过随后的RTN结构块而明确调用时才执行该最后的处理函数。
通过参考图13,变得清楚的是RTN结构块的每个处理函数均涉及其处理输入集合并且总是在其处理输入集合中的全部输入数据集合的全部元素上独立地执行,并且分别存储在其处理输出集合的相同和其它输出数据集合中,除非RTN结构块表示不同的定义。
处理输入集合分配给RTN结构块。因此,可以提供独立描述对RTN结构块的处理输入集合的分配的RTN结构块。
可以如下执行RTN结构块的进一步的可行特性,并且声明为对该特性没有限制的实例。此外,清楚的是,存在关于通过引擎来处理的方法。
一定可以提出笛卡尔乘积作为一个集合(RTN结构块“FROM”)并且在每种情况下执行每个元素的全面的第二集合,并且通过这样做,同样获得RTN结构块乘积,其中根据第一集合的每个元素基于第二集合的标准计算和传送(RTN结构块“levels”)本情况下的值。
RTN结构块“FROM”
“FROM”形成RTN结构块的结果集合的笛卡尔乘积,该笛卡尔乘积在该RTN结构块的决策位置70处表示并且使其可以在第一决策位置70处以其上位的RTN结构块“levels”获得为用于RTN结构块的处理输入集合。
RTN结构块“levels”
“levels”执行那些RTN结构块的全部处理函数,该RTN结构块在决策位置70处的本RTN结构块(“levels”)中根据包含本RTN结构块(“levels”)的RTN结构块的处理输入集合的每个元素而逐步地随后声明,其中每个RTN结构块的处理输入集合为之前的RTN结构块的处理输出集合。变量3的该RTN结构块的特征是该RTN结构块不传递其处理输入集合作为引入其中的第一RTN结构块的处理输入集合,但是通过其自身的RTN结构块来定义(例如RTN结构块“FROM”的处理输出集合)或分别通过在本RTN结构块中使用的全部集合和表格的和来定义用于第一RTN结构块的处理输入集合。
在第一决策位置70处引入本RTN结构块“levels”中的RTN结构块作为处理输入集合,即通过特定RTN结构块(例如“FROM”)的处理输出集合而在RTN结构块“levels”被定义为处理输入集合的集合(表格、存储的查询或笛卡尔乘积)。如果没有用于引入的RTN结构块的处理输入集合被定义在RTN结构块“levels”中,则该处理输入集合不能通过基于特定特性的数据而确定,例如通过图表理论、关系表和在本RTN结构块“levels”中与RTN结构块“levels”中的嵌套相独立的全部声明的RTN结构块“tables”。
由于在最外面的RTN结构块“levels”中没有围绕的RTN结构块被引入并且其处理输入集合可以被采用,因此采用元素的抽象的开始集合,其中元素以抽象方式包含全部数字、常数、字母和全局函数等。
每个RTN结构块“levels”提供其本身并且全部RTN结构块以具有其处理输入集合的全部信息片(例如全部表格域)的各自当前元素嵌套其中,通过上位的RTN结构块传送,其中同样“最深的”嵌套RTN结构块访问全部RTN结构块“levels”的这些信息片。
RTN结构块“levels”的处理输出集合是最后的RTN结构块的处理输出集合,该最后的RTN结构块在最后的可重复的决策位置70处引入在RTN结构块“levels”中。
RTN结构块“processing_SameParents”
本RTN结构块显示在图12中并如上所述并且在“特定”集合分配的组中记录,因为其集合分配不对应于变量3的一般的描述。
引入该RTN结构块中的全部RTN结构块不分配RTN结构块的直接位于前面的处理输出集合,而是改为RTN结构块processing_SameParents的处理输入集合。RTN结构块processing_SameParents的处理输出集合是引入本RTN结构块的全部元素的全部处理输出集合的全部元素。基于作为参数的额外的RTN结构块,本RTN结构块的处理输出集合还可以仅包括那些全部出现或出现特定次数(确切地、最小或最大)的元素。通过RTN参数元素,人们还可以确定多次出现在处理输出集合中的这些元素是多次存储在本元素的处理输出集合中还是应该仅存储一次或根本不包括。
RTN结构块“processing_PrevParents”
引入本RTN结构块中的全部RTN结构块被分配为处理输入集合,在这之前的RTN结构块的处理输出集合使得本RTN结构块对应于根据变量3的集合分配。本RTN结构块使得可以例如在允许仅一个决策位置70的RTN结构块processing_SameParents中或其它RTN结构块中,一个RTN结构块可以连续传送处理输出集合并随后逐步实现处理函数。
RTN结构块“BreakOn”
每个处理函数均在处理输入集合中的全部输入数据集合上独立执行。如果分割成了多个数据集合,则可以通过RTN结构块“BreakOn”实现,其中在每种情况下,传送在第一决策位置70引入的RTN结构块的处理输出集合的相同值的RTN结构块“BreakOn”的处理输入集合的元素(当在本处理输出集合中存在一些元素时,“ALL”和“ANY”的使用均分别有效)被写入各自的相同数据集合。
在决策位置70后可以确定通过至少一个关键词(例如“END”、“BREAKON”)组合成一个数据集合,该决策位置70可以在RTN结构块“BreakOn”中按需要频繁地重复。
RTN结构块“GroupBy”
处理输入集合和处理输出集合的每个元素均可以在各种情况下被分配一组值。
许多问题使得需要根据相同值分组并且对于每个分组后的元素,选择性地记忆那些与该元素分组在一起的元素。这通过RTN结构块“GroupBy”确定,同时可以写入根据RTN结构块“GroupBy”的处理输出集合中的元素分配的集合的全部元素并且由此在完成处理函数后去除分组。这可以通过可以按需要频繁地调用的决策位置70后的至少一个关键词(例如“ENDGROUPBY”)确定。如果在语句中没有给出这些关键词,则分组在各自上位的RTN结构块中对全部后续的处理函数维持第一次的使用。
RTN结构块“OrderBy”
每个集合的元素总是置于一定的顺序中。最优化后,并非每个处理函数均具有该顺序。
因此,提供RTN结构块(“OrderBy”),该RTN结构块根据分类的给定值和值的集合而相互独立地分别存储其处理输入集合的全部输入数据集合的元素。
每个有用的集合处理函数和值计算函数或者显示函数等可以通过RTN结构块定义并且在查询中执行。以下列出了集合处理函数的一些实例。
RTN结构块“WHERE”
本RTN结构块用于确定处理输入集合的每个元素,该元素仅在本RTN结构块“WHERE”的决策位置70处的RTN结构块传送不为零的值时被写入处理输出集合中。在一组值被传送的情况下,可以在决策位置70处通过RTN结构块“ALL”和“ANY”分别确定定义。
RTN结构块“MIN”/“MAX”
如果在每种情况下的一个数据集合中,仅选择分别对应于整个集合的每个元素的计算的最大和最小值的那些元素,则可以通过RTN结构块“MIN”和“MAX”分别确定。如果分别传送最大和最小值的特定集合,则可以通过上位的RTN结构块(“集合元素”)实现,该上位的RTN结构块限制在决策位置70引入的其RTN结构块的处理输出集合的元素的数量。
RTN结构块“集合元素限制”
如果在处理输出集合的各自的当前数据集合中,基于当前分类仅传送特定数量的元素,则在此情况下RTN结构块“集合元素限制”可以被用作上位的RTN结构块。该RTN结构块确定严格的第X个元素(“=”)、全部元素至(“<=”)或从其处理输入集合的第X个元素开始(“>=”)在其处理输出集合中检索。限制还可以被确定为关于处理输入集合中的当前数据集合的元素数量的百分比的形式(“%”)。
RTN结构块“FIND”
在用于每个元素的处理输入集合的全部输入数据集合上分别执行每个处理函数,并且处理输出集合的数据集合的元素作为分别用于上位的和后续的RTN结构块的处理输入集合。
通过使用特定的RTN结构块(“FIND”),将对应于本RTN结构块的处理输出集合确定不改变的RTN结构块“FIND”的处理输出集合,其中存在于RTN结构块的处理输出集合中的那些元素的特性在决策位置70处被引入RTN结构块“FIND”,并以RTN结构块“FIND”的处理输出集合中的传送顺序标记。随后的RTN结构块中的每一个之后均独立地在相关标记的元素上关于随后的元素(RTN结构块“NEXT”)或之前的元素(RTN结构块“PREV”)执行其处理函数,而不是在整个数据集合上执行。进一步仅标记在处理函数中找到的元素。当使用该RTN结构块时,RTN结构块“ORDERBY”的之前的应用非常有用。
如果之后要执行对整个数据集合的访问,则这可以例如通过在RTN结构块“FIND”中的扩展而完成,这使得在跟随一个第一决策位置70(例如“:”)的关键词后按需要的频率调用决策位置70并且之后需要指示至少一个关键词(例如“END”、“FIND”)。一旦找到该关键词,则在RTN结构块“FIND”中的最后RTN结构块的处理输出集合的全部标记元素在可以需要频繁地调用的决策位置70被写入本RTN结构块的处理输出集合中,并且不再标记其它元素,从而使后续处理函数再次访问整个数据集合。
RTN结构块“NEXT”/“PREV”
每个处理函数被独立应用在处理数据集合中的每个元素上。通过这样做,变得可以例如将各自当前元素与随后(“NEXT”)或之前(“PREV”)元素的值相比较。如果RTN结构块“NEXT”没有上位的RTN结构块,则在整个集合的每种情况下,仅第X个元素(“=”)、至第X个元素的全部元素(“<=”)或从第X个元素开始的全部元素(“>=”)传送为本RTN结构块的处理输出集合。
RTN结构块“ANY”/“ALL”
例如,在RTN结构块“comparison(比较)”中,比较在两个决策位置70处引入的RTN结构块的处理输出集合,当至少一个引入的RTN结构块返回一组值时,可以确定当比较时是否全部(“ALL”)返回值或至少一个(“ANY”)返回值必须匹配。在“ANY”中,还可以确定严格的(“=”)、至少(“>=”)或最大(“<=”)数量的元素必须在比较中匹配。在“ALL”中,可以说比较必须匹配严格的(“=”)、至少(“<=”)或最大(“>=”)的X元素。
RTN结构块“intermediate set(中间集合)”
如果RTN结构块的处理输出集合被存储以用于与其它RTN结构块进一步处理,则可以通过上位的RTN结构块“intermediate set”实现。该RTN结构块表示其处理输入集合暂时存储在声明为变量名的集合中并且可以通过全部随后的RTN结构块作为处理输入集合使用。
RTN结构块“DO LOOP”
在RTN结构块的处理输入集合的每个元素后可能需要一些问题,该RTN结构块在RTN结构块“DO LOOP”的关键词“DO”、“:”后在决策位置70引入,其元素进行引入的RTN结构块的处理函数,RTN结构块在关键词“UNTIL”之后在决策位置70处声明的处理输出集合被检查是否非零或非ZERO,并且这基于该RTN结构块的处理函数结束。
实例19
获取维也纳的全部公司直至所选公司的营业额2006总量大于100,000
SELECT
    DO:
      WHERE(companies.city="VIENNA")
    LOOP UNTIL
      SUM(companies.turnover2006)>100000
通过RTN结构块“设置元素形成”(“,”),在本RTN结构块的两个决策位置70处引入的RTN结构块的两个处理输出集合被结合入本RTN结构块的结合的处理输出集合中。
进一步地RTN结构块分别是RTN结构块“表格RTN结构块”和“表格域RTN结构块”,该RTN结构块分别包含全部表格名并且存储查询和表格及查询域在当前关系数据库中以及RTN结构块“变量”、“数量”、“常数”(有效常数的定义)、“全局函数”(使用户定义在其它语言中的嵌入函数,例如“CurrentUser()”)、RTN结构块以用于比较(“>”、“>=”、“<=”、“<>”、“=”、“BETWEEN”、“IN”...)、用于逻辑操作(“AND”、“OR”、“XOR”.....),用于逻辑否定(“NOT”),用于结合入RTN结构块(“()”)并用于计算机操作(“+”、“—”、“*”、“/”、“\”、“^”、“mod”、“SQR”、“LIM”,...)。
优选的变量是用于合计函数的RTN结构块(“count”、“all”、“none”、“sum”、“AVG”、“percent”,...),该RTN结构块中的每一个应用在分配给这些RTN结构块的处理输入集合的元素上并且该RTN结构块再传送每个输入数据集合作为其输出数据集合中的严格的一个值。
RTN结构块需要分别用于数据处理和数据输出。现有技术的这种类型的命令可以用作RTN结构块,例如“SELECT”、“UPDATE”、“INSERT INTO”和“DELETE”。
可以引入RTN结构块以定义可用的SQL结合链接“左结合”、“右结合”、“内结合”和“外结合”。RTN结构块可以包含OLAP、T-SQL、GEO-SQL函数以及在其它SQL扩展中定义的函数。
此外,可以定义可改变的RTN结构块,如在RTN结构块“IN”中的情况,例如:值IN(1,2,3,4,5)可以被定义为RTN结构块*"("*")",其中*","*是其本身的RTN结构块。RTN结构块IN等于值=ANY(1,2,3,4,5)并且可以被转换为这些RTN结构块或由引擎等处理。可行的RTN结构块的相同保持UNION(ALL),INTERSECT,EXCLUDE除了(UNION)或与(UNIONALL)的复制相结合并且仅采用存在于声明的集合(INTERSECT)的元素或仅采用不存在于两个集合(EXCLUDE)中的元素。这些RTN结构块可以再次存在于RTN结构块“ANY”/“ALL”与可选的RTN结构块“GroupBy”的结合中并且还可以被转换为那些RTN结构块。
(1,2,3,4)UNION ALL(3,4,5,6)=ANY(>=1)(1,2,3,4),(3,4,5,6)
>=1作为标准并且不需要被声明
(1,2,3,4)UNION(3,4,5,6)=GROUPBY ANY(>=1)(1,2,3,4),(3,4,5,6)
可以由优化器不同地处理
(1,2,3,4)INTERSECT(3,4,5,6)=ALL(1,2,3,4),(3,4,5,6)
(1,2,3,4)EXCLUDE(3,4,5,6)=ANY(=1)(1,2,3,4),(3,4,5,6)
显然,可以通过ANY和ALL的多于两个集合来进行更精确的描述,如UNION等情况。这些RTN结构块的定义还可以执行为与SQL兼容的原因以及更便利应用的原因,特别是因为多个RTN结构块的存在未显示不利。
可以通过RTN结构块“AND”、“OR”/“XOR”而完成相同函数:这些RTN结构块可以通过将RTN结构块“ANY”/“ALL”与RTN结构块“processing_SameParents”相结合而表示并且可以转换为那些RTN结构块。
WHERE(companies.industry="sale")AND(MAX(companies.[employees.count])#100)=
ALL companies.//WHERE(industry="sale")MAX([employees.count])#100\\
WHERE(companies.industry="sale")OR(MAX(companies.[employees.count])#100)=
ANY(>=1)companies.//WHERE(industry="sale")MAX([employees.count])#100\\
WHERE(companies.industry="sale")XOR(MAX(companies.[employees.count])#100)=
ANY(=1)companies.//WHERE(branch="sale")MAX([employees.count])#100\\
WHERE(companies.industry="sale")AND(companies.[employees.count]>100)可以例如还以此方式表示,因为第一外部RTN结构块“WHERE”的处理输出集合被传递到第二外部RTN结构块“WHERE”作为处理输入集合:
WHERE(companies.industry="sale")WHERE(companies.[employees.count]>100)
进一步可改变的RTN结构块是例如RTN结构块“集合元素限制”,该RTN结构块可以转换为RTN结构块“FOR-NEXT”、“IF THEN ELSE”,该RTN结构块可以转换为RTN结构块“SELECT CASE”、RTN结构块“count”,该RTN结构块可以转换为RTN结构块“SUM”和“1”等。
查询包括RTN结构块,具体地,RTN级别元素包括以给定顺序的必需数量的RTN结构块。
通过定义,在决策图中存在以决策位置70开始的RTN结构块。为了确定在每个语句中使用的RTN结构块,需要在对第一语句的选择步骤的应用之前执行可改变的步骤以将RTN结构块分割为两类别组并且记忆用于每个RTN结构块进一步的处理的相应的类别组。
在选择步骤的应用前的可改变的步骤中,每个RTN结构块被分配到第一类别组或第二类别组,其中:
RTN结构块开始于文本、符号、变量或将分配给第一类别组的数量并且被转换以使得决策位置包括递归查询函数,其选择步骤被应用到全部RTN结构块,被限制为选择步骤可以仅应用到第一类别组的RTN结构块,并且
以递归查询函数开始的RTN结构块被分配到第一类别组并且被转换以使得第一决策位置被去除,并且在包括递归查询函数的决策位置,所选择的步骤被应用到全部RTN结构块,被限制使得选择步骤仅应用到第一类别组的RTN结构块,并且
第一类别组的全部RTN结构块和第二类别组的那些RTN结构块在最后的决策位置处以文本、符号、变量或数量结束,附有在最后位置处的可选的可执行决策位置,其中选择步骤仅应用到第二类别组的RTN结构块。
例如,以下显示了在决策图中没有作为第一决策位置的决策位置70的RTN结构块的变换:
"("*")"
被转换为
"("第一类别组的RTN结构块")"[第二类别组的RTN结构块]
例如,以下显示了决策图中RTN结构块的决策位置70转换为第一决策位置并且决策位置70转换为最后决策位置:
*("+"|"-")*
被转换为
("+"|"-")第一类别组的RTN结构块
例如,以下显示了决策图中RTN结构块的决策位置70转换为第一决策位置并且决策位置70不转换为最后的决策位置:
*"IN""("*")"
被分配到第二类别组并转换为
"IN""("第一类别组的RTN结构块")"[第二类别组的RTN结构块]该转换步骤确保每个给定语句均可以通过现有技术的算法变形为RTN结构块,因此使得可以在形成查询时使用RTN结构块的完全的灵活性。跟随该转换步骤,每个RTN结构块开始于至少一个文本、至少一个符号、一个变量或一个数量,并且每个选择步骤此后仅应用到第一类别组的RTN结构块或仅应用到第二类别组的RTN结构块。此外。在本转换步骤后,第二类别组的RTN结构块仅在决策图的最后决策位置处被可选择地调用。
特别地,转换为两类别组的需要导致RTN结构块的嵌套,该RTN结构块不应用到进一步的处理,因为在每种情况下,第一类别组的一个RTN结构块如果存在语句中,则调用第二类别组的RTN结构块,其中第二类别组的该RTN结构块总是上位于至少第一类别组的本调用RTN结构块。
通过定义,在决策图中存在开始于决策位置70的RTN结构块。在这些RTN结构块中,不能清楚地确定RTN结构块为上位的多嵌套,因为在一个决策位置70处,可以引入第一或第二类别组的全部RTN结构块,这在RTN结构块的嵌套中不清楚。
实例20
以下简单的实例用于解释以上说明:
WHERE A+B/C
在第一步骤中,RTN结构块的嵌套被显示在执行了对语句的选择步骤之后。
WHERE第一类组的RTN结构块[第二类组的RTN结构块]
 A[第二类组的RTN结构块]
   +第一类组的RTN结构块
     B[第二类组的RTN结构块]
        |第一类组的RTN结构块
           C[第二类组的RTN结构块]
现在清楚的是对于第一决策位置70处的RTN结构块“+”,存在以下两种引入可能:
*(WHERE*)   + *
*(A)        + *
类似地,对于第二决策位置70处的RTN结构块“+”,存在两种引入可能:
*     + *(B)
*     + *(*/*)
对于RTN结构块“|”,在其第一决策位置70处存在以下三种引入可能:
*(WHERE*)      / *
*(*+*)    / *
*(B)      / *
对于RTN结构块“|”,在其第二决策位置70处仅存在一种引入可能:
*      / *(B)
为了清楚且正确地解决这些简单的情况以及更复杂的情况,需要给每个RTN结构块分配第一和第二权重,其中独立的RTN结构块的权重根据以下方法确定,考虑在语句中发现的全部RTN结构块的相互间的嵌套。
每个RTN结构块被分配第一权重,通过该第一权重,RTN结构块的嵌套被改变为另一个嵌套,该另一个嵌套在每个选择步骤期间的后续处理中或者在每种情况下通过具有更高的第一权重的上位的RTN结构块应用全部选择步骤到具有相对较低的第一权重的原始的上位RTN结构块后是有用的。
第一类组的全部RTN结构块的第一权重取决于在语句中直接上位的第二类组的RTN结构块,这也是分配到第一类组的RTN结构块的第一权重被描述为初始权重的原因。
第一类组的RTN结构块具有相同的第一初始权重,其优选为平均高度,并且当第一类组的这些RTN结构块被引入第二类组的RTN结构块时,使其第一权重减小单值,优选为除以1。
作为实例,RTN结构块“表域”接收用于全部其它第一类组的RTN结构块的第一初始权重200,其中RTN结构块“加/减操作”具有权重17。
使“A”(表域)“+”(加/减操作)“B”(表域),RTN结构块表域而不是RTN结构块的原始的第一初始权重200被分配第一权重17,通过比其上位的RTN结构块加/减操作而减小1。因此表域RTN结构块由于语句而接收权重16并且因其较低的第一权重(16),从属于RTN结构块的加/减操作(权重16)。
第二类组的RTN结构块的第一权重如下确定:
应用其处理函数到第一或第二类组的RTN结构块的处理函数的处理输出集合的第二类组的那些RTN结构块形成第二类组的第一类子组,并且每个第一类子组被分配相同的第一权重,该第一权重不是最高的可行权重但却高于第一类组的RTN结构块的第一初始均高权重。
以此方式,例如,RTN结构块的处理函数*"UNION"*,*"#"*和*"AS"V:每个变量名均被分别应用到第一或第二类组的RTN结构块的一个处理输出集合和多个处理输出集合,该集合直接引入在其决策位置70,这也是第一类子组的RTN结构块被分配到第二类组并接收第一权重250的原因,其中200是第一类组的RTN结构块的第一权重并且255被假设为最高可行权重。
因此,确定的是第二类组的第一类子组的RTN结构块总是上位于第一和第二类组的RTN结构块,并且因此,通过定义分配其处理输出集合作为其处理输入集合。
对于第二类组的那些RTN结构块,其处理输出集合作为第一和第二类组的其它RTN结构块的处理输入集合,形成第二类组的第二类子组并且分配各自不同的第一权重,该第一权重在任何情况下均小于第一类组的RTN结构块的第一初始均高权重,并且用于各自RTN结构块的该第一权重通过在各种情况下分配较低的第一权重到各自的第一类组以执行该组的RTN结构块而独立地描述关于第二类组的第二类子组的RTN结构块的处理的预定顺序。
因此,例如,RTN结构块“乘/除操作”接收第一权重14,RTN结构块“加/减操作”接收更高的第一权重17,RTN结构块“比较”接收第一权重50并且RTN结构块“布尔(Bool)组合”接收第一权重100。
这从期望的嵌套而变得清楚:A+B*C>D AND E=F
此处声明的全部第一权重均小于第一类子的RTN结构块的第一初始权重200。
为了去除第一和第二类组的RTN结构块中的错误嵌套,在该第一和第二类组中的决策位置70后至少还有决策位置跟随在可选择地添加的最后的决策位置70前,该决策位置在转换步骤后被添加,用于精确这些RTN结构块的最大高度的第二权重的分配变为必须。具体地,错误的嵌套将导致仅在第二类组的第一类子组的至少一个RTN结构块在非最后的决策位置70处引入这些RTN结构块时才精确,即具有比第一类组的RTN结构块的平均权重高度更高的权重的RTN结构块。这些RTN结构块,尽管具有其更高的第一权重,但直至决策路径中的具有最大第二权重的这些RTN结构块在转换步骤后达到了最后的可选引入的决策位置70,才必须嵌套在具有最大第二权重的RTN结构块上。
因此,在定义了决策位置70后第一和第二类组的全部RTN结构块引入第一类组的至少一个RTN结构块,至少进一步的决策位置独立地跟随最后的可选决策位置70,该可选决策位置70可选地呈现在转换步骤后并且指示引入第二类组的RTN结构块被分配具有最高可行权重高度的第二固定权重。
RTN结构块“WHERE”用作第一类组的RTN结构块的实例,该RTN结构块通过定义不被分配最大高度的第二权重:
"WHERE"*   在转换步骤后:
"WHERE"第一类组的RTN结构块[第二类组的RTN结构块]
在该RTN结构块中,在第一决策位置70后不跟随任何其它决策位置,除了通过转换步骤添加的最后的可选决策位置70。因此,该RTN结构块的第二权重可以接收该RTN结构块的第一权重的值。
RTN结构块“求和RTN结构块”(括号中)和RTN结构块“下一个”是第一类组的RTN结构块的两个实例,该RTN结构块通过定义而分配最大高度的第二权重:
"("*")"在转换步骤后:
"("第一类组的RTN结构块")"[第二类组的RTN结构块]
"FOR"*":"*"NEXT"在转换步骤后:
"FOR"第一类组的RTN结构块":"第一类组的RTN结构块
"NEXT"[第二类组的RTN结构块]
在这些RTN结构块中,每次至少一个决策位置总是额外地跟随通过转换步骤添加的在每个第一决策位置70后的最后的可选决策位置70。因此,这些RTN结构块的第二权重对应于具体为255的最高可行权重高度。
第二类组的RTN结构块同样适用。这被显示为例如对于RTN结构块“加/减操作”和对于RTN结构块“IN比较”。
*("+"|"-")*   在转换步骤后
("+"|"-")   第一类组的RTN结构块
在转换步骤后的RTN结构块中,没有其它决策位置跟随在仅有的决策位置70后。因此,该RTN结构块的第二权重可以例如接收该RTN结构块的第一权重的值。
*"IN""("*")"    在转换步骤后:
"IN"第一类组的RTN结构块[第二类组的RTN结构块]
在这种RTN结构块中,决策位置跟随在第一决策位置70后,通过转换步骤添加到额外的最后的可选决策位置70。因此,用于该RTN结构块的第二权重对应于具体为255的最高可行权重高度。
为了确定关于语句中的每个RTN结构块的每个RTN结构块的进一步处理所需要的嵌套,上位的RTN结构块通过执行转换步骤后的选择步骤,该RTN结构块以嵌套顺序应用第二类组的每个RTN结构块的第一权重,该嵌套顺序由转换步骤后的查询语句产生,并与各自上位的RTN结构块的第一权重相比较直至达到更高的第一权重的各自的RTN结构块或不位于其最后的决策位置上的各自的上位的RTN结构块并且具有最高可行权重的第二权重,并且根据该确定的嵌套顺序,作为比较基础的RTN结构块直接上位于所达到的RTN结构块并且因此上位于全部RTN结构块,从而跳过所述比较并且之前为上位。
这通过以下实例加以说明:
实例21
IF A THEN WHERE B=C # 5 ELSE WHERE D=E # 10 END IF # 20
应用到该实例中的进一步的处理的嵌套如下:
*(1.1)#*(1.2)                   第一权.250,第二权.250
(=1.1)IF*(2.1)THEN*(2.2)ELSE*(2.3)END IF
                                第一权.200,第二权255
     (=2.1)A                   第一权.200,第二权.1
     (=2.2)*(3.1)#*(3.2)       第一权.200,第二权.200
         (=3.1)*(4.1)=*(4.2)  第一权.50,第二权50
(=4.1)B                  第一权.49(初始值200),第二权.1
(=4.2)C                  第一权.49(初始值200),第二权.1
(=3.2)5                   第一权.249(初始值200),第二权.1
     (=2.3)*(5.1)#*(5.2)          第一权.250,第二权.250
         (=5.1)*(6.1)=*(6.2)      第一权.50,第二权.50
(=6.1)D                   第一权.49(初始值200),第二权.1
(=6.2)E                   第一权.49(初始值200),第二权.1
(=5.2)10                 第一权.249(初始值200),第二权.1
(=1.2)20                        第一权.249(初始值200),
第二权.1
其中,第一权       是第一权重
      第二权      是第二权重
      初始值      是第一类组的RTN结构块的初始权重,该第一类组在其通过引入第二类组的RTN结构块而改变时被声明。
此处,可以看出在达到其最后的决策位置后,具有第一权重250的RTN结构块“#”仅上位于具有第一权重200和第二权重255的RTN结构块“IFTHEN ELSE END IF”。
为了完成实例21的描述,嵌套应该被显示在本实例中,该嵌套由转换步骤后的选择步骤的执行而导致:
IF                    调用:第一类组的RTN结构块
  A
THEN                  调用:第一类组的RTN结构块
  WHERE               调用:第一类组的RTN结构块
    B                 调用:第二类组的RTN结构块
      =              调用:第一类组的RTN结构块
         C            调用:第二类组的RTN结构块
           #          调用:第一类组的RTN结构块
              5
ELSE                  调用:第一类组的RTN结构块
 WHERE                调用:第一类组的RTN结构块
   D                  调用:第二类组的RTN结构块
     =               调用:第一类组的RTN结构块
          E          调用:第二类组的RTN结构块
            #        调用:第一类组的RTN结构块
              10
END
IF                   调用:第二类组的RTN结构块
  #                  调用:第一类组的RTN结构块
     20
第一类组的RTN结构块从属于直接上位于它们的第一或第二类组的RTN结构块而无论其自身和比其上位的RTN结构块的第一权重。
实例22
WHERE A+MIN B
实例22是如下嵌套:
WHERE*(1.1)                         第一权.200,第二权.200
  (=1.1)*(2.1)+*(2.2)               第一权.50,第二权.50
    (=2.1)A                  第一权.49(初始值200),第二权.1
    (=2.2)MIN*(3.1)          第一权.49(初始值200),第二权.200
      (=3.1)B                        第一权.200,第二权.1
如从实例22可见,RTN结构块“B”作为第一类组的RTN结构块从属于其第一权重49,当该RTN结构块“B”与上位的RTN结构块“MIN”相比较时,虽然其第一权重200较高,但第一权重49通过其上位的第二类组“+”的RTN结构块而改变。
如果具有相同第一权重的上位的RTN结构块在与第二类组的RTN结构块的第一权重比较时存在,则进程基于各自的类子组而变化。
如果将与同为第二类子组的上位的RTN结构块中的一个相比较的第二类组的RTN结构块具有相同的第一权重,则需要被比较的RTN结构块直接从属于本RTN结构块,给定的这些RTN结构块是第二类组的第二类子组的RTN结构块。
以下实例用于说明上述内容:
实例23
WHERE A MOD B/C\D
WHERE*(1.1)               第一权.200,第二权.200
 (=1.1)*(2.1)MOD*(2.2)      第一权.14,第二权.14
    (=2.1)A            第一权.13(初始值200),第二权.1
    (=2.2)*(3.1)/*(3.2)         第一权.14,第二权.14
       (=3.1)B         第一权.13(初始值200),第二权.1
       (=3.2)*(4.1)\*(4.2)     第一权.14,第二权.14
           (=4.1) C     第一权.13(初始值200),第二权.1
           (=4.2)D      第一权.13(初始值200),第二权.1
在实例23中,当与第一权重比较时,第二类组的第二类子组的RTN结构块遇到两次(“/”遇到“MOD”,“\”遇到“/”)。由于分配到第二类组的第二类子组,这些RTN结构块中的每一个均被从属,因为定义为从属的RTN结构块的处理输出集合被用作每个上位的RTN结构块的处理输入集合。通过使用RTN结构块“RTN结构块求和”,即通过括在一起,获得另一个第一和第二权重并且因此获得另一个计算顺序。
如果被比较的第二类组的RTN结构块具有相同的第一权重作为同为第二类子组的上位的RTN结构块中的一个,则与上位RTN结构块的比较继续只要这些RTN结构块是第二类组的第一类子组的RTN结构块。
以下实例用于说明上述内容:
实例24
获得A应用的全部元素。从本集合获得前100个,存储这100个元素在中间集合1中并且从该中间集合1获得前50个元素。
WHERE A # 100 AS intermediate set # 50
*(1.1)#*(1.2)                     第一权.250,第二权.250
  (=1.1)*(2.1)AS Zwischenmenge         第一权.250,第二权.250
      (=2.1)*(3.1)#*(3.2)           第一权.250,第二权.250
          (=3.1)WHERE*(4.1)         第一权.249(初始值200),第二权.200
            (=4.1)A     第一权.200,第二权.1
       (=3.2)100         第一权.249(初始值200),第二权.1
(=1.2)50                第一权.249(初始值200),第二权.1
在实例24中,当比较第一权重时,第二类组的第一类子组的RTN结构块遇到两次(“AS”遇到“#”,“#”遇到“AS”)。由于分配到第二类组的第一类子组,这些RTN结构块中的每一个均被事先配置,因为定义为从属的RTN结构块的处理输出集合被用作每个上位的RTN结构块的处理输入集合。
重要的是,如果各自的RTN结构块需要,则直接引入到最高可行第二权重的RTN结构块的决策位置70中的RTN结构块仅从属于第二类组的RTN结构块。这通过一种方法来完成,其中当第一类组的RTN结构块被直接引入RTN结构块的可以引入全部RTN结构块中的一个的一个决策位置时,被预定为从属于第二类组的RTN结构块的第一类组的RTN结构块与具有第二最高可行权重高度的RTN结构块被分配最小权重高度的第二权重,并且不具有最小高度的第二权重的第一类组的RTN结构块在此情况下不从属于第二类组的RTN结构块。
两个实例用于显示这两个可行情况的嵌套,其中在上述方法后,导致以下情况:
实例25
第一可行情况:在具有最高可行权重高度的第二权重的上位的RTN结构块的决策位置70处,被引入的第二权重的第一类组的RTN结构块不是最小权重高度的权重,其中实例中的关键词为“WHERE”:
[WHERE MAX A+B/C=D]
应用到实例25中进一步的处理中的嵌套如以下所示:
[*(1.1)]               第一权.200,第二权.255
(=1.1)WHERE*(2.1)            第一权.200,第二权.200
(2.1)*(3.1)=*(3.2)       第一权.50,第二权.50
       (=3.1)MAX*(4.1)   第一权.49(初始值200),第二权.200
          (=4.1)*(5.1)+*(5.2)     第一权.17,第二权.17
             (=5.1)A    第一权.16(初始值200),第二权.1
      (=5.2)*(6.1)/*(6.2)  第一权.14,第二权.14
        (=6.2)B 第一权.13(初始值200),第二权.1
        (=6.3)C 第一权.13(初始值200),第二权.1
(=3.2)D         第一权.49,第二权.200
RTN结构块“MAX”从属于具有关键词“/”的RTN结构块,因为其上位的RTN结构块“WHERE”不具有最高可行权重高度的权重。
RTN结构块“WHERE”根据全局定义从属于具有关键词“=”的RTN结构块,这在本情况下不发生,因为上位的RTN结构块“levels”(“[]”)具有第二最高可行权重高度,同时RTN结构块“WHERE”不具有最小权重高度的第二权重。
如果RTN结构块的不同嵌套被激活,则这可以通过使用RTN结构块“RTN结构块求和”(“()”)来完成,例如WHERE(MAX(A+B/C)=D),等价于MAX A+B/C。
实例26
第二可行的情况是:在具有最高可行权重高度的第二权重的上位的RTN结构块的决策位置70处,在第一类组的RTN结构块中引入最小权重高度的第二权重,其中关键词“A”的实例为:
[A+B]
[*(1.1)]                    第一权.200,第二权.255
(=1.1)*(2.1)+*(2.2)            第一权.17,第二权.17
     (=2.1)A               第一权.16(初始值200),第二权.1
     (=2.2)B               第一权.16(初始值200),第二权.1
实例26显示了RTN结构块“加/减操作”上位于RTN结构块“表域”(A),因为RTN结构块“A”直接引入到RTN结构块“levels”的决策位置70中,RTN结构块A具有最小权重高度的第二权重并且直接上位的RTN结构块“levels”具有最高可行权重高度的第二权重。
本发明的进一步的实施例在以下情况下给出,根据语句,第二类组的RTN结构块在转换步骤后跟随有可选决策位置,该可选决策位置规定引入第二类组的RTN结构块,精确地在该可选决策位置处引入第二类组的RTN结构块。
在此情况下,在该最后决策位置处引入的RTN结构块总是并且独立于正被讨论的上位于之前的上位的RTN结构块的两个RTN结构块的第一和第二权重。
这通过以下实例示出,该实例表示在变量“中间集合”中的域A的值被存储到变量“中间集合”,域B的值被添加并且之后检查该值是否对应于值C,并且该比较的结果反过来被存储在变量“ResultIN”中。
A AS中间集合+B IN(C)AS导致IN
此处,尽管具有较低的第一权重17,但具有关键词“+”的RTN结构块上位于具有关键词“AS”的RTN结构块,所述关键词“AS”具有第一权重250。相同的情况发生在关于具有关键词“IN”和“AS”的RTN结构块中,其中具有关键词“AS”的RTN结构块的第一权重变得上位,独立地比具有关键词“IN”的RTN结构块的第一权重(60)更高(250)。
根据RTN结构块,RTN结构块组还可以被定义为语句或部分语句,其中例如,仅包括算法或逻辑类型的处理函数。在这种情况下,当第一和第二类组的RTN结构块被直接引入可以引入全部RTN结构块中的一个的具有最高可行第二权重的RTN结构块的决策位置中时,认同的是第一和第二类组的全部RTN结构块可以被分配至少一个RTN结构块,该RTN结构块分别为上位。
部分地,以下RTN结构块包括以下声明的分配只有它们直接引入在具有最高可行权重高度的第二权重的RTN结构块的决策位置70中。
RTN结构块“表域”:该RTN结构块可以自动预确定“SELECT”RTN结构块,包括本域中的表的名称的RTN结构块“表”并且RTN结构块“值链接”将两个RTN结构块“表”和“表域”联系到一起。
实例27
[TABLE_FIELD_NAME]
其中,在自动预确定后,导致:
[SELECT TABLE_NAME.TABLE_FIELD_NAME]
RTN结构块“表”:该RTN结构块可以先于“SELECT”RTN结构块以传送全部表域。
实例28
[TABLE_NAME]
其中,在自动预确定后,产生:
[SELECT TABLE_NAME.*]
执行计算或比较操作的RTN结构块:这些RTN结构块可以预确定“WHERE”RTN结构块,并且如果不存在“WHERE”RTN结构块,则“SELECT”RTN结构块例如传送全部使用的表的全部域到各自的必要的RTN结构块“集合元素形成”和“值链接”。
实例29
[A+B]
其中,在自动预确定后,导致:
[SELECT TABLE_NAME.A,TABLE_NAME.B
WHERE TABLE_NAME.A+TABLE_NAME.B]
表1和表2包括多个可行的RTN结构块,该RTN结构块具有各自的第一和第二权重和RTN结构块的决策图,其中当RTN结构块的决策图运行到决策位置时,查询语句的关键词基于相关标记和文本、符号、变量或多个或一个从全部RTN结构块插入的RTN结构块而被比较,该RTN结构块反过来再次运行。
因为实际上,在每个决策位置70,人们可以总是从全部RTN结构块中选择,当形成查询语句时,与在决策位置的有限选择相比,更大自由度是可行的。
RTN结构块“NEXT”用作从其处理输入集合再次传送的实例,所列出的每个当前元素的下一个元素位于其处理输出集合的决策位置70处。
如果代替决策位置70,例如,仅允许一定数量的决策位置,仅特定数量的将被传送的每个当前元素的下一个元素能被确定,并且通过在第一决策位置的决策位置70,反过来引入RTN结构块“WHERE”,这些元素可以通过RTN结构块“集合元素限制”传送,该RTN结构块跟随当前元素并且位于RTN结构块“集合元素限制”的处理输出集合中。因此,这应用到全部RTN结构块。通过RTN结构块“MAX”,例如,可以从当前元素开始搜索RTN结构块“MAX”的决策位置70中具有所列最高值的精确的后续元素。
以下,抽象的实例用于说明这点。
实例30
ORDERBY A
NEXT(WHERE B=C # 100)
NEXT(MAX D # 20)
此处,集合由值A分类,值A后精确地跟随的所述100个元素传送至集合的每个元素,其中应用比较B=C。从该集合的当前元素开始,随后的20个元素的集合之后传送值D,该值D是20个元素中的最高值。
实例31
按照2006年1月1日的名为测试共享的共享的位置被发现并且进行进一步的计算逝去的天数直至由于该日期被显示而使得共享提高了20%。
WHERE(shares.name="test share")
ORDERBY shares.date
FIND WHERE(shares.date=01.01.2006)AS position010106
SELECT NEXT(WHERE(shares.position>=position010106*1.2 #1).date-shares.date
实例31中的语句的说明:
搜索共享名“测试共享”
通过日期分类这些共享
精确地搜索日期为2006年1月1日的元素并且将该元素存储在变量位置01012006。
基于标记为“FIND”的元素作为当前元素,这些共享开始于当前元素的位置而搜索比存储在变量位置010106中的值大20%的元素。
#1将由WHERE找到的元素限制到第一元素,并且因此,NEXT还仅传送应用WHERE的第一元素的值。
NEXT必须用于激活找到的元素的值与当前元素的值的比较,其中以所述方式在实例中计算逝去的天数。
通过关键词SELECT显示结果。
在本连接中,例如,使用以下标记:
在[]中给出的决策位置仅选择性地执行,期望的关键词被表示为“”,(“关键词1”|“关键词2”)表示“关键词1”或“关键词2”,*分别表示决策位置70、(×)和(*×),每个标记从一个位置(*×)跳过位置到另一个位置(×)并且V:变量名和V:数量分别表示自由选择的变量和数量。
RTN结构块被布置为大致对应于所述RTN结构块在语句中的使用频率的顺序,从而使频繁出现的RTN结构块可以被较早发现并且需要尽可能少的比较。
RTN结构块在对两类组的转换步骤(表1)前和转换步骤(表2)后显示。
应该注意该列表可以方便地在任何时间被扩展更多的RTN结构块,因此不会穷尽。
为了获得最优的访问计划,在语句中根据其顺序嵌套并且根据其权重和被分配的特定RTN结构块组的RTN结构块中的每一个必须转换为引擎接口元素,其中一个引擎接口元素具有可以根据处理步骤设置的独立组件的记录。
本发明的方法还适于可编程地设置关系数据库系统,该关系数据库系统包括至少一个具有至少一个关系数据库的计算机系统、至少一个数据处理单元和至少一个存储器,通常,例如,作为计算机程序,具有用于执行所述方法的各自的指令。
这种计算机程序可以具有任意形式。特别地,该计算机程序可以是例如软盘、CD或DVD等计算机可读介质上的计算机程序乘积,所述计算机可读介质上具有计算机程序编码,通过该计算机程序编码,计算机迅速响应程序以在每次加载计算机程序后实现所述方法,以便产生本发明的数据载波或电载波信号。然而,例如还可以是具有在电载波信号上的计算机程序的计算机程序乘积,其中在每次加载计算机程序后,计算机迅速响应所述程序以实现本发明的方法。
表1
RTN结构块:在转换前在第一位置上没有决策位置70
表域RTN结构块                                          200/1

表RTN结构块
200/1

数量/文本表域RTN结构块
200/1

线路选择RTN结构块                       200/200

极值RTN结构块                     200/200

级别RTN结构块                      200/255

结合RTN结构块的RTN结构块
200/255


Processing_SameParents RTN结构块
200/255

Processing_PrevParents RTN结构块
200/255

集合分类RTN结构块
200/255

集合RTN结构块,无参数
200/200

集合RTN结构块,1参数
200/200

全部/任意RTN结构块
200/200

查找RTN结构块
200/255

恒定RTN结构块
200/200


下一个/之前的RTN结构块
200/255

对下一个RTN结构块
200/255

Rel.Bool RTN结构块
200/200

Rel.线路选择RTN结构块
200/200

循环至RTN结构块
200/255

表1
Abs.Bool RTN结构块             200/200

If then RTN结构块
200/255

Select case RTN结构块
200/255

Negating Bool RTN结构块
200/200

SELECT RTN结构块
200/200

Group break RTN结构块
200/255

Line combining RTN结构块
200/255

Percent RTN结构块
200/200

Levels start input set forming RTN结构块


200/200

RTN结构块:在第一位置上没有决策位置70,在转换前
Value linkage RTN结构块
4/4

Addition/subtraction operations RTN结构块
17/17

Multiplication/division operations RTN结构块
14/14

Power calculation operations RTN结构块
10/10

Comparative RTN结构块
50/50

Bool combination RTN结构块
100/100

Set elements limiting RTN结构块
250/250

Set combining RTN结构块


250/250

Set elements forming RTN结构块
30/30

Intermediate set RTN结构块
250/250

IN comparing RTN结构块
60/255

表2
RTN结构块:第一类组,转换后
Table field RTN结构块
200/1

Table RTN结构块
200/1

Numbers/text RTN结构块
200/1

Line selecting RTN结构块
200/200


Extreme value RTN结构块
200/200

Levels RTN结构块
200/255

RTN结构块结合RTN结构块
200/255

Processing_SameParents RTN结构块
200/255

Processing_PrevParents RTN结构块
200/255

Set sorting RTN结构块
200/255

Aggregate RTN结构块,无参数
200/200


Aggregate RTN结构块,1参数
200/200

All/any RTN结构块
200/200

表2
FIND RTN结构块
200/255

Constants RTN结构块
200/200

NEXT/PREV RTN结构块
200/255

FOR next RTN结构块
200/255

Rel.Bool RTN结构块
200/200

Rel.line selecting RTN结构块
200/200


Do loop until RTN结构块                   200/255

Abs.Bool RTN结构块                         200/200

If then RTN结构块                         200/255

Select case RTN结构块                     200/255

Negating Bool RTN结构块
200/200

SELECT RTN结构块
200/200

Group break RTN结构块


200/255

Line combining RTN结构块                   200/255

表2
Percent RTN结构块
200/200

Levels start input set forming RTN结构块
200/200

RTN结构块:第二类组,转换后
Value linkage RTN结构块
4/4

Addition/subtraction operations RTN结构块
17/17

Multiplication/division operations RTN结构块
14/14

Power calculation operations RTN结构块
10/10


Comparative RTN结构块
50/50

Bool combination RTN结构块
100/100

Set elements limiting RTN结构块
250/250

Set combining RTN结构块
250/250

Set elements forming RTN结构块
30/30

Intermediate set RTN结构块
250/250

Comparative IN RTN结构块
60/255

控制关系数据库系统的方法.pdf_第1页
第1页 / 共85页
控制关系数据库系统的方法.pdf_第2页
第2页 / 共85页
控制关系数据库系统的方法.pdf_第3页
第3页 / 共85页
点击查看更多>>
资源描述

《控制关系数据库系统的方法.pdf》由会员分享,可在线阅读,更多相关《控制关系数据库系统的方法.pdf(85页珍藏版)》请在专利查询网上搜索。

一种用于控制关系数据库系统的方法,该系统具有包括待分析的关键词的查询语句,其中递归转移网结构块形成独立的递归转移网结构块,每个递归转移网结构块具有内部的直接决策图,该决策图与具有沿至少一个决策路径的至少一个决策位置的其它递归转移网结构块的内部的直接决策图相互独立地定义,全部递归转移网结构块的内部决策图通过在选择步骤中的关键词而运行并且跟随有所述决策图的全部可行路径直至通过该决策图不再确定与各自所选。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1