首页> 中国专利> 基于6W业务逻辑模型的数据元智能标识解析方法

基于6W业务逻辑模型的数据元智能标识解析方法

摘要

本发明提供一种基于6W业务逻辑模型的数据元智能标识解析方法,包括以下步骤:生成数据元标识展开树:根据用户输入的数据元标识和条件约束依赖关系,与业务处理过程建立映射关系,从而形成与数据相关的业务逻辑模型对应的数据元标识展开树;生成可执行业务过程脚本:根据数据元标识展开树中提供的数据元以及数据元直接的条件约束依赖关系,建立业务解析语法规则;根据所述业务解析语法规则生成相对应的可执行业务过程脚本,最终形成能够直接访问的业务服务。优点为:能够有效地协助开发人员快速实现动态生成SQL,进而广泛地被业务系统调用。

著录项

  • 公开/公告号CN106547877A

    专利类型发明专利

  • 公开/公告日2017-03-29

    原文格式PDF

  • 申请/专利权人 红有软件股份有限公司;

    申请/专利号CN201610948303.5

  • 发明设计人 夏冬梅;

    申请日2016-10-26

  • 分类号G06F17/30(20060101);

  • 代理机构11337 北京市盛峰律师事务所;

  • 代理人席小东

  • 地址 834000 新疆维吾尔自治区克拉玛依市长征路22号

  • 入库时间 2023-06-19 01:51:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-09

    授权

    授权

  • 2017-04-26

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20161026

    实质审查的生效

  • 2017-03-29

    公开

    公开

说明书

技术领域

本发明属于信息技术领域,具体涉及一种基于6W业务逻辑模型的数据元智能标识解析方法。

背景技术

数据元(data element)是信息资源在网络层面上实现数据的一致性表达、交换和共享的基础,是用一组属性描述其定义、标识、表示和允许值的数据单元,是在一定语境下构建一个语义正确、独立且无歧义的特定概念的信息单元,是在特定语义环境中,被认为是不可再分的最小数据单元,以确保共享信息资源表示的一致性与准确性。数据元在概念上是由一个对象类与一个特性的组合,是由概念数据元和表示两部分组成的。当一个表示与一个概念数据元结合时就能够产生一个数据元。

对于目前的数据元标识,无法顺利生成可执行SQL,因此,不利于业务系统调用。

发明内容

针对现有技术存在的缺陷,本发明提供一种基于6W业务逻辑模型的数据元智能标识解析方法,可有效解决上述问题。

本发明采用的技术方案如下:

本发明提供一种基于6W业务逻辑模型的数据元智能标识解析方法,包括以下步骤:

S1,生成数据元标识展开树:根据用户输入的数据元标识和条件约束依赖关系,与业务处理过程建立映射关系,从而形成与数据相关的业务逻辑模型对应的数据元标识展开树;

S2,生成可执行业务过程脚本:根据数据元标识展开树中提供的数据元以及数据元直接的条件约束依赖关系,建立业务解析语法规则;根据所述业务解析语法规则生成相对应的可执行业务过程脚本,最终形成能够直接访问的业务服务。

优选的,S1中,所述生成数据元标识展开树的过程包括:创建空树、创建目标节点、遍历目标节点和迭代目标节点,具体包括以下步骤:

S11,创建空树:在初始状态下创建一颗空树,所述空树只具有根节点;

S12,创建目标节点:将用户输入的数据元标识作为目标节点,创建目标节点作为空树的根节点的子节点,从而构造到一棵树;

S13,遍历目标节点:根据业务逻辑模型对已构造的树进行广度遍历,映射出一颗完整的业务逻辑模型树;

S14,迭代目标节点:将所述业务逻辑模型树中的目标节点下的子节点作为新的目标节点,重复遍历目标节点和迭代目标节点的过程,直到所有节点都已经作为目标节点进行分析,最后得出的整棵树即为数据元标识展开树。

优选的,S13,遍历目标节点包括:创建M项上级依赖节点、创建M项平级条件约束节点、创建目标算术表达式节点、创建目标逻辑、关系表达式节点,具体如下:

S131,目标数据元标识由逗点分割的多段组成,每一段的标号作为同级的顺序号,设定依赖关系符号;采用以下步骤创建目标数据元标识节点的M项上级依赖节点,其中,M项代表该上级依赖节点为必填项:

S1311,判断目标数据元标识的段数是否多于一段,若小于等于1段,返回空节点;若多于1段,去掉最后一段的标识,形成去掉标识后的主体标识,记为主体标识F;

S1312,在业务逻辑模型中,查找主体标识F的M项,并将查找到的M项的数据元标识按最后段从大到小排序,其中1为最小,形成M项数据元标识列表;

S1313,检查M项数据元标识列表中是否存在目标数据元标识节点;

S1314,若M项数据元标识列表中不存在目标数据元标识节点,则将最后一个数据元标识作为目标数据元标识节点的依赖节点,记为依赖节点Y,然后判断依赖节点Y是否小于主体标识F的依赖节点,如果小于,则在M项数据元标识列表中顺序往前面查找,直到查找到某个依赖节点Y,其大于等于主体标识F的依赖节点,此时返回查找到的依赖节点Y;

在S12得到的树中,将依赖关系符号作为目标数据元标识节点的子节点,将依赖节点Y作为目标数据元标识节点的子节点;

S1315,若M项数据元标识列表中存在目标数据元标识节点,则表明目标数据元标识节点为M项节点,再判断目标数据元标识节点后是否仍有M项节点,若有M项节点,则将该M项节点作为依赖节点,返回依赖节点Y;若无M项节点,则去掉目标数据元标识的最后一段,返回S1311;

由此不断循环,查找到最终的目标数据元标识节点的M项上级依赖节点;在S12得到的树中,将依赖关系符号作为目标数据元标识节点的子节点,将最终查找到的依赖节点Y作为目标数据元标识节点的子节点,形成一棵更新后的树;

S132,创建目标数据元标识节点的M项平级条件约束节点,用于处理M项节点的平级依赖,平级依赖是解决同级之间有先后顺序关系的依赖,具体包括:

S1321,目标数据元标识如果为非M项,则返回空节点;

S1322,目标数据元标识为M项,检查其条件约束是否存在其他标识,若不存在其他标识,返回空节点;

S1323,目标数据元标识为M项,检查其条件约束是否存在其他标识,若存在其他标识,则将查找到的标识作为目标数据元标识节点的平级依赖节点;

在S1315得到的树中,将平级依赖关系符号作为目标数据元标识节点的子节点,将最终查找到的平级依赖节点作为目标数据元标识节点的子节点,形成一棵更新后的树;

S133,创建目标算术表达式节点,作为目标数据元标识节点中的算术表达式子树;算术表达式中的元素包括:操作数标识、运算符、函数名、小括号:

形成算术表达式子树结构的规则定义如下:

规则一、操作数仅允许出现在叶子节点;

规则二、运算符作为中间节点,包括:+、-、*、/,其中文含义分别为:加、减、乘和除;构造算术表达式子树时,加减运算符优先构造节点,乘除其次,二元运算符有且仅有两个分支;

规则三、函数名作为中间节点,函数名节点下的节点数等于函数的参数个数;

规则四、同层时,函数或者小括号整体作为一个操作数处理;

规则五、表达式按层级迭代生成;

形成算术表达式子树结构的步骤如下:

S1331,初始状态条件:创建得到父节点和目标算术表达式;其中,父节点初始为空;

S1332,判断目标算术表达式是否只有一个操作数,如果是,则执行本步骤:创建操作数节点作为父节点的叶子节点,返回操作数节点;如果不是,则执行步骤S1333;

S1333,将目标算术表达式中的左小括号和右小括号作为一个整体,全部替换为一个操作数,形成一个新的目标算术表达式;

S1334,分析新的目标算术表达式的加减乘除运算符,如果有加运算符或者减运算符,则将加减运算符两侧的项分别作为一个整体,转S1337;

S1335,分析新的目标算术表达式的加减乘除运算符,如果有乘运算符或者除运算符,则将乘除运算符两侧的项分别作为一个整体,转S1337;

S1336,分析新的目标算术表达式的函数名称,创建函数节点,将该函数节点作为本层的子节点,同时将函数中的参数分别作为一个整体,以此遍历参数,每个参数又是一个独立的表达式,转S1331;

S1337,将当前运算符作为一个节点,如果父节点不为空,将该节点作为父节点的子节点,如果孩子有多个,作为父节点的子节点,并顺序排列;如果父节点为空,则当前运算符即为父节点;

S1338,将当前运算符的左侧作为一个算术表达式,将当前节点作为父节点,转S1331;

S1339,将当前运算符的右侧作为一个算术表达式,将当前节点作为父节点,转S1331;

如此循环,即形成算术表达式子树结构;

S134,创建目标逻辑、关系表达式节点,用于创建M项平级条件约束节点中的逻辑表达式和关系表达式子树,具体包括:

所述逻辑表达式是用逻辑运算符将两个或者多个关系表达式连接起来的式子,或者是单个逻辑值;逻辑表达式的值是逻辑值“真”或“假”;所述关系表达式是用关系运算符将两个表达式连接起来的式子,关系表达式的值是逻辑值“真”或“假”。

优选的,S2中,生成可执行业务过程脚本包括:生成主表业务执行过程脚本、生成子表业务执行过程脚本、合并主表业务执行过程脚本与子表业务执行过程脚本,得到最终的可执行业务过程脚本;

对于SQL脚本,生成可执行业务过程脚本具体包括以下步骤:

S21,生成主表业务执行过程脚本,具体过程如下:

S211,第一个关键词中的每一项包含目标数据元标识以及目标数据元标识的依赖项,将重复的依赖项合并,对关键词中的每一项用字符C替代,逗点用一种逗点字符替换,对关键词项中为表达式的项,使用父节点名称作为其别名;

S212,第二个关键词中的每一项开头以区别于第一个关键词的字符替换,记为字符T;逗点用第一个关键词中的逗点字符替换;

S213,第三个关键词中,加入目标数据元标识的平级依赖,重复的平级依赖不合并;

S214,第四个关键词存在的前提是:根据第一个关键词中存在汇总类型的函数,将汇总项除外的其他项全部纳入;

封装第一个关键词、第二个关键词、第三个关键词和第四个关键词,得到主表业务执行过程脚本;根据主表业务执行过程脚本,生成主表项;

S22,生成子表业务执行过程脚本,具体过程如下:

S221,分析主表项的每一项,检查主表项是否存在算术表达式子树,如果不存在算术表达式子树,跳过该过程,如果存在算术表达式子树,则执行下一步;

S222,将存在算术表达式的节点名字头字母后增加第二个关键词的字母字符,表示其将从子查询中获取得到,并将表名称加入到主表项的第二个关键词中;

S223,将存在算术表达式的节点,作为子树的父节点;

S224,重复S221,S222,S223这3个步骤,得出子表达式;

S225,根据子表达式,生成得到子表业务执行过程脚本;将子表业务执行过程脚本作为主表业务执行过程脚本,迭代执行S221、S222和S223,直至不再有子表业务执行过程脚本生成;

S23,合并主表业务执行过程脚本与子表业务执行过程脚本,具体过程如下:

S231,遍历第一个关键词中的每一项,若某项的名称开头不是第一关键词和第二关键词中的字母表示,跳过该项;

S232,若某项以字符C或字符T开头,则该节点存在子表业务执行过程脚本,将字符C去掉,得到对应的子表业务执行过程脚本的表名;

S233,根据关键词的顺序,将子表业务执行过程脚本组合形成新的表名字符串;

S234,对于组合形成的表名字符串,替换掉第二个关键词中的表名,得到主表业务执行过程脚本与子表业务执行过程脚本合并后的脚本

优选的,所述业务逻辑模型根据业务域分成不同的系列,每个系列内的业务报表按照业务分类以及对象不同分成不同的集合;所述集合再分成实体,即业务报表;所述实体再分成子集,即所述业务报表内的子表格,每一个所述集合至少含有一个M类实体,即基础的业务报表;其中,M项是一种数据项的分类,用于确定数据唯一性的标识;数据项包括M项、C项和O项,M项为必填项,C项和O项均为非必填项。

本发明提供的基于6W业务逻辑模型的数据元智能标识解析方法具有以下优点:

(1)能够有效地协助开发人员快速实现动态生成SQL,进而广泛地被业务系统调用;

(2)在生成业务逻辑模型树的过程中,直接选用数据相关的M项作为依赖关系的条件,形成一颗无二义性地结构树,一旦业务逻辑模型树创建好了,就能够顺利生成可执行SQL。

附图说明

图1为本发明提供的基于6W业务逻辑模型的数据元智能标识解析方法的基本框架;

图2为本发明提供的元数据模型部分截图;

图3为本发明提供的一种构造树流程图;

图4为一颗空树;

图5为创建目标节点图;

图6为创建M项上级依赖节点图;

图7为算术表达式的结构示意图;

图8为算术表达式生成的树结构图;

图9为算术表达式生成结构树图;

图10为元数据模型展开树。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于6W业务逻辑模型的数据元智能标识解析方法,如图1所示,为一种基于6W业务逻辑模型的数据元智能标识解析方法的逻辑结构图。在实施示例中,以元数据模型为例,如图2所示,为元数据模型部分截图。智能标识解析过程包括:生成数据元标识展开树和生成可执行业务过程脚本两大步骤,具体过程如下:

S1,生成数据元标识展开树:根据用户输入的数据元标识和条件约束依赖关系,与业务处理过程建立映射关系,从而形成与数据相关的业务逻辑模型对应的数据元标识展开树;生成数据元标识展开树的过程包括:创建空树、创建目标节点、遍历目标节点和迭代目标节点,如图3所示,为构造树的流程图,具体如下:

S11,创建空树:是在初始状态下创建一颗空树root,所有后续的节点均属于该树下的枝叶,如图4,为一颗空树。

S12,创建目标节点:是指将用户输入的数据元标识作为目标节点,创建目标节点作为树root的子节点。以元数据模型中的1.2.7.5和1.2.7.6为例,如图5,为创建目标节点图,另外元数据模型是一种业务逻辑模型,同样适用基于6W业务逻辑模型的智能标识解析方法。

S13,遍历目标节点:是指根据业务逻辑模型对已构造的树进行广度遍历,映射出一颗完整的业务逻辑模型树.

遍历目标节点包括:创建M项上级依赖节点、创建M项平级条件约束节点、创建目标算术表达式节点、创建目标逻辑、关系表达式节点,具体如下:

S131,创建M项上级依赖节点;其中,目标数据元标识由逗点分割的多段组成,如1.2.7.5,每一段的标号作为同级的顺序号,如图6,为创建M项上级依赖节点图,图中的<==为依赖关系符号,M表示该项为M项,具体步骤如下:

S1311,判断目标数据元标识的段数是否多于一段,若小于等于1段,返回空节点;若多于1段,去掉最后一段的标识,形成去掉标识后的主体标识,记为主体标识F;

S1312,在业务逻辑模型中,查找主体标识F的M项,并将查找到的M项的数据元标识按最后段从大到小排序,其中1为最小,形成M项数据元标识列表;

S1313,检查M项数据元标识列表中是否存在目标数据元标识节点;

S1314,若M项数据元标识列表中不存在目标数据元标识节点,则将最后一个数据元标识作为目标数据元标识节点的依赖节点,记为依赖节点Y,然后判断依赖节点Y是否小于主体标识F的依赖节点,如果小于,则在M项数据元标识列表中顺序往前面查找,直到查找到某个依赖节点Y,其大于等于主体标识F的依赖节点,此时返回查找到的依赖节点Y;

在S12得到的树中,将依赖关系符号作为目标数据元标识节点的子节点,将依赖节点Y作为目标数据元标识节点的子节点;

S1315,若M项数据元标识列表中存在目标数据元标识节点,则表明目标数据元标识节点为M项节点,再判断目标数据元标识节点后是否仍有M项节点,若有M项节点,则将该M项节点作为依赖节点,返回依赖节点Y;若无M项节点,则去掉目标数据元标识的最后一段,返回S1311;

由此不断循环,查找到最终的目标数据元标识节点的M项上级依赖节点;在S12得到的树中,将依赖关系符号作为目标数据元标识节点的子节点,将最终查找到的依赖节点Y作为目标数据元标识节点的子节点,形成一棵更新后的树

S132,创建目标数据元标识节点的M项平级条件约束节点,用于处理M项节点的平级依赖,平级依赖是解决同级之间有先后顺序关系的依赖,具体包括:

S1321,目标数据元标识如果为非M项,则返回空节点;

S1322,目标数据元标识为M项,检查其条件约束是否存在其他标识,若不存在其他标识,返回空节点;

S1323,目标数据元标识为M项,检查其条件约束是否存在其他标识,若存在其他标识,则将查找到的标识作为目标数据元标识节点的平级依赖节点;

在S1315得到的树中,将平级依赖关系符号作为目标数据元标识节点的子节点,将最终查找到的平级依赖节点作为目标数据元标识节点的子节点,形成一棵更新后的树;

S133,创建目标算术表达式节点,作为目标数据元标识节点中的算术表达式子树;算术表达式中的元素包括:操作数标识、运算符、函数名、小括号:

如图7所示,为算术表达式的结构示意图,形成算术表达式树结构的规则定义如下:

规则一、操作数仅允许出现在叶子节点;

规则二、运算符作为中间节点,算术运算符包括四种:+(加)、-(减)、*(乘)、/(除),构造算术表达式树时,加减运算符优先构造节点,乘除其次,二元运算符有且仅有两个分支;

规则三、函数名可以作为中间节点,函数名节点下的节点数等于该函数的参数个数;

规则四、同层时,函数或者小括号整体作为一个操作数处理;

规则五、表达式按层级迭代生成;

如图8所示,为算术表达式生成的树结构图。

形成算术表达式树结构的步骤如下:

S1331,初始状态条件:创建得到父节点和目标算术表达式;其中,父节点初始为空;

S1332,判断目标算术表达式是否只有一个操作数,如果是,则执行本步骤:创建操作数节点作为父节点的叶子节点,返回操作数节点;如果不是,则执行步骤S1333;

S1333,将目标算术表达式中的左小括号和右小括号作为一个整体,全部替换为一个操作数,形成一个新的目标算术表达式;

S1334,分析新的目标算术表达式的加减乘除运算符,如果有加运算符或者减运算符,则将加减运算符两侧的项分别作为一个整体,转S1337;

S1335,分析新的目标算术表达式的加减乘除运算符,如果有乘运算符或者除运算符,则将乘除运算符两侧的项分别作为一个整体,转S1337;

S1336,分析新的目标算术表达式的函数名称,创建函数节点,将该函数节点作为本层的子节点,同时将函数中的参数分别作为一个整体,以此遍历参数,每个参数又是一个独立的表达式,转S1331;

S1337,将当前运算符作为一个节点,如果父节点不为空,将该节点作为父节点的子节点,如果孩子有多个,作为父节点的子节点,并顺序排列;如果父节点为空,则当前运算符即为父节点;

S1338,将当前运算符的左侧作为一个算术表达式,将当前节点作为父节点,转S1331;

S1339,将当前运算符的右侧作为一个算术表达式,将当前节点作为父节点,转S1331;

如此循环,即形成算术表达式子树结构。

如图9,为算术表达式生成结构树图,分析数据元标识中的表达式1.2.7.5=SUM(1.2.6.2(1.2.6.5=="油迹"))和1.2.7.6=SUM(1.2.6.2(1.2.6.5=="含气"))中的算术表达式,根据算术表达式树结构的步骤生成的结构树。

S134,创建目标逻辑、关系表达式节点,用于创建M项平级条件约束节点中的逻辑表达式和关系表达式子树,具体包括:

所述逻辑表达式是用逻辑运算符将两个或者多个关系表达式连接起来的式子(或者是单个逻辑值),逻辑表达式的值是逻辑值“真”或“假”;所述关系表达式用关系运算符将两个表达式连接起来的式子,关系表达式的值是逻辑值“真”或“假”;

S14,迭代目标节点:将所述业务逻辑模型树中的目标节点下的子节点作为新的目标节点,重复遍历目标节点和迭代目标节点的过程,直到所有节点都已经作为目标节点进行分析,最后得出的整棵树即为数据元标识展开树,如图10所示,为最终形成的元数据模型展开树,其中SUM为求和函数,“(==)”约定为同一层的条件约束。

另外,业务逻辑模型根据业务域分成不同的系列,每个系列内的业务报表按照业务分类以及对象不同分成不同的集合;集合再分成实体,即业务报表;实体再分成子集,即业务报表内的子表格,每一个所述集合至少含有一个M类实体,即基础的业务报表;M项是一种数据项的分类,用于确定数据唯一性的标识;数据项包括M项、C项和O项,M项为必填项,C项和O项均为非必填项;6W是指时间,活动,对象,地点,参与者,结果这六个场景信息。

S2,生成可执行业务过程脚本:根据数据元标识展开树中提供的数据元以及数据元直接的条件约束依赖关系,建立业务解析语法规则;根据所述业务解析语法规则生成相对应的可执行业务过程脚本,最终形成能够直接访问的业务服务。

对于SQL脚本,生成可执行业务过程脚本具体包括以下步骤:

S21,生成主表业务执行过程脚本,具体过程如下:

S211,第一个关键词(如Select)中的每一项包含目标数据元标识以及目标数据元标识的依赖项,将重复的依赖项合并,对关键词中的每一项用字符替代,如字母C,逗点用一种字符替换,如下划线“_”,对关键词项中为表达式的需要使用父节点名称作为其别名;所述目标数据元标由逗点分割的多段组成(如1.2.3.7);

S212,第二个关键词(如From)中的每一项开头以有别于第一个关键词的字符替换,如字母T,逗点用第一个关键词中的逗点字符替换;

S213,第三个关键词(如Where),把平级依赖加入,重复的平级依赖不合并;

S214,第四个关键词(如GROUP BY)中存在的前提是:根据第一个关键词中存在汇总类型的函数,如SUM、AVG、MIN、MAX、COUNT、GROUP BY等,把汇总项除外的其他项全部纳入;

封装第一个关键词、第二个关键词、第三个关键词和第四个关键词,得到主表业务执行过程脚本;根据主表业务执行过程脚本,生成主表项;

S22,生成子表业务执行过程脚本,具体过程如下:

S221,分析主表项的每一项,检查主表项是否存在算术表达式子树,如果不存在算术表达式子树,跳过该过程,如果存在算术表达式子树则执行下一步;

S222,将存在算术表达式的节点名字头字母后增加第二个关键词的字母字符,如CT,表示其将从子查询中获取得到,并将表名称加入到主表的第二个关键词中;

S223,将存在算术表达式的节点,作为子树的父节点;

S224,重复S221,S222,S223这3个步骤,得出子表达式;

S225,根据子表达式,生成得到子表业务执行过程脚本,将子表业务执行过程脚本作为主表业务执行过程脚本,迭代执行S221,S222,S223,直至不再有子表业务执行过程脚本生成。

S23,合并主表业务执行过程脚本与子表业务执行过程脚本,具体过程如下:

S231,遍历第一个关键词中的每一项,若某项的名称开头不是第一关键词和第二关键词中的字母表示(如CT),跳过该项;

S232,若某项以字符C或字符T开头,则该节点存在子表业务执行过程脚本,将字母C去掉,得到对应的子表业务执行过程脚本的表名;

S233,根据关键词的顺序,如select,from,where,group by,将子表业务执行过程脚本组合形成新的表名字符串;

S234,将组合形成的字符串替换掉第二个关键词(如From)中的表名。得到主表业务执行过程脚本与子表业务执行过程脚本合并后的脚本。

以SQL为例,指根据业务逻辑模型展开树中提供的数据元以及数据元直接的条件约束依赖关系,生成SQL脚本,形成能够直接访问的简单SQL脚本。主要包括:生成主表SQL语句、生成子表SQL语句、合并主表与子表的SQL语句,具体如下:

S21,生成主表SQL语句,具体过程如下:

S211,Select项中包含目标数据元标识,以及目标数据元标识的依赖项,重复的依赖项合并,Select中的每一项开头字母为C,逗点用下划线替换,对于Select项中为表达式的需要使用父节点名称作为Select项的别名,如Select C1_1,C1_2_1,C1_2_7_2,C1_2_7_5,C1_2_7_6;

S212,From项中把Select项中尾段去掉,重复的Select项合并,From中的每一项开头字母为T,如From T1,T1_2,T1_2_7;

S213,Where项中把平级依赖加入,重复的平级依赖不合并,如Where(C1_2_7_2=C1_2_6_1)and(C1_2_7_2=C1_2_6_1);

S214,GROUP BY项存在的前提是Select项中存在SUM、AVG、MIN、MAX、COUNT、GROUPBY等汇总类型的函数,是把汇总项除外的其他项全部纳入;

S22,生成子表SQL语句,具体过程如下:

S221,分析主表项的每一项,检查主表项是否存在算术表达式子树,如果不存在算术表达式子树,跳过该过程,如果存在算术表达式子树则执行下一步;

S222,将存在算术表达式的节点名字头字母后增加T,表示其将从子查询中获取得到,并将表名称加入到主表From项中,如Select C1_1,C1_2_1,C1_2_7_2,CT1_2_7_5,C1_2_7_6From T1,T1_2,T1_2_7,T1_2_7_5;

S223,将存在算术表达式的节点,作为子树的父节点;

S224,重复S221,S222,S223这3个步骤,得出子表达式;

子表T1_2_7_5的SQL如下:

Select C1_1,C1_2_1,C1_2_6_1,SUM(C1_2_6_2)CT1_2_7_5

From T1,T1_2,T1_2_6

Where(C1_2_6_5=“油迹”)

Group by C1_1,C1_2_1,C1_2_6_1;

子表T1_2_7_6的SQL如下:

Select C1_1,C1_2_1,C1_2_6_1,SUM(C1_2_6_2)CT1_2_7_6

From T1,T1_2,T1_2_6

Where(C1_2_6_5=“含气”)

Group by C1_1,C1_2_1,C1_2_6_1;

S225,将子表SQL语句作为主表SQL语句,迭代执行S221,S222,S223,直至不再有子SQL语句生成。

S23,合并主表与子表的SQL语句,具体过程如下:

S231,遍历Select项中的每一项,若某项的名称开头不是CT,跳过该项;

S232,若某项以CT开头,则该节点存在子SQL,将字母C去掉得到对应的子查询SQL语句的表名;

S233,将子查询语句组合形成:(select from where group by)表名;

S234,将组合形成的字符串替换掉From项中表名。

合并主表SQL和子表SQL之后的SQL语句如下:

Select C1_1,C1_2_1,C1_2_7_2,CT1_2_7_5,CT1_2_7_6

From T1,T1_2,T1_2_7,

(Select C1_1,C1_2_1,C1_2_6_1,SUM(C1_2_6_2)CT1_2_7_5

From T1,T1_2,T1_2_6

Where(C1_2_6_5=“油迹”)

Group by C1_1,C1_2_1,C1_2_6_1)T1_2_7_5,

(Select C1_1,C1_2_1,C1_2_6_1,SUM(C1_2_6_2)CT1_2_7_6

From T1,T1_2,T1_2_6

Where(C1_2_6_5=“含气”)

Group by C1_1,C1_2_1,C1_2_6_1)T1_2_7_6

Where(C1_2_7_2=C1_2_6_1)and(C1_2_7_2=C1_2_6_1)。

本发明提供的基于6W业务逻辑模型的数据元智能标识解析方法具有以下优点:

(1)能够有效地协助开发人员快速实现动态生成SQL,进而广泛地被业务系统调用;

(2)在生成业务逻辑模型树的过程中,直接选用数据相关的M项作为依赖关系的条件,形成一颗无二义性地结构树,一旦业务逻辑模型树创建好了,就能够顺利生成可执行SQL。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号