数据查询系统和数据查询方法

文档序号:6399619阅读:212来源:国知局
专利名称:数据查询系统和数据查询方法
技术领域
本发明涉及数据查询技术领域,具体而言,涉及一种数据查询系统和一种数据查询方法。
背景技术
语义即数据的业务含义。简单的说,数据就是符号。数据本身没有任何意义,只有被赋予含义的数据才能够被使用,这时候数据就转化为了信息,而数据的含义就是语义。目前一般的数据查询方式都是SQL (Structure Query Language,结构化查询语言)语句,这种SQL方式虽然能够满足数据查询要求,但是存在如下缺陷:1、编写复杂;2、表述冗余,可读性差;3、无法利用数据物理表间的关系。因此,需要一种新的数据查询技术,可以利用数据物理表间的关系进行数据查询,从而降低查询语句的复杂度,提升其可读性。

发明内容
本发明正是基于上述问题,提出了一种新的数据查询技术,可以利用数据物理表间的关系进行数据查询,从而降低查询语句的复杂度,提升其可读性。有鉴于此,本发明提出了一种数据查询系统,包括:第一语句生成单元,用于根据待查询数据生成包含语义表达式的第一 SQL查询语句;表达式获取单元,用于从所述第一SQL查询语句中获取所述语义表达式;表达式解析单元,用于对所述表达式获取单元获取的所述语义表达式进行解析,以确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系;第二语句生成单元,用于根据所述多个数据物理表以及所述关联关系,生成第二 SQL查询语句;语句执行单元,用于执行所述第二 SQL查询语句,以获取所述待查询数据。在该技术方案中,通过语义表达式,从而获取查询所需的多个数据物理表及多个表格间的数据关系,从而简化了 SQL查询语句,有利于语句的编写和查阅。在上述技术方案中,优选地,所述第一语句生成单元根据数据字典物理关系构建字段树结构,并根据所述字段树结构上的节点路径生成所述语义表达式。在该技术方案中,根据字段树结构生成语义表达式,从而一方面便于该语义表达式的生成,另一方面有助于根据该语义表达式确定对应的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,所述表达式获取单元按照“数据物理表.字段1.字段2....字段η”的格式从所述第一 SQL查询语句中获取所述语义表达式,以用于生成所述第二 SQL查询语句。在该技术方案中,按照预设的格式,从而有利于确定查询所需的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,还包括:判断单元,用于判断所述语义表达式是否能够正常解析,若能,则由所述表达式解析单元进行解析以生成所述第二 SQL查询语句,否则返回解析错误信息。在该技术方案中,若语义表达式无法正常解析,则仍能够采用传统的SQL语句的方式实现数据查询。在上述技术方案中,优选地,所述判断单元具体对所述第一 SQL查询语句进行字符串检查;其中,若其中包含至少两个”符号连接的字符,则判定能够正常解析。在该技术方案中,可以对语义表达式是否能够正常解析进行判断,从而在无法解析时采用传统的SQL语句的方式,确保对数据的查询能够正常执行。根据本发明的又一方面,还提出了一种数据查询方法,包括:步骤202,根据待查询数据生成包含语义表达式的第一 SQL查询语句;步骤204,获取并解析所述语义表达式,确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系;步骤206,根据所述多个数据物理表以及所述关联关系,生成第二 SQL查询语句;步骤208,执行所述第二 SQL查询语句,以获取所述待查询数据。在该技术方案中,通过语义表达式,从而获取查询所需的多个数据物理表及多个表格间的数据关系,从而简化了 SQL查询语句,有利于语句的编写和查阅。在上述技术方案中,优选地,所述步骤202包括:根据数据字典物理关系构建字段树结构,并根据所述字段树结构上的节点路径生成所述语义表达式。在该技术方案中,根据字段树结构生成语义表达式,从而一方面便于该语义表达式的生成,另一方面有助于根据该语义表达式确定对应的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,获取所述语义表达式的步骤包括:按照“数据物理表.字段1.字段2....字段η”的格式从所述第一 SQL查询语句中获取所述语义表达式,以用于生成所述第二 SQL查询语句。在该技术方案中,按照预设的格式,从而有利于确定查询所需的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,所述步骤204还包括:判断所述语义表达式是否能够正常解析,若能,则解析以生成所述第二 SQL查询语句,否则返回解析错误信息。在该技术方案中,若语义表达式无法正常解析,则仍能够采用传统的SQL语句的方式实现数据查询。在上述技术方案中,优选地,所述确定所述语义表达式是否能够正常解析的步骤包括:对所述第一 SQL查询语句进行字符串检查;其中,若其中包含至少两个”符号连接的字符,则判定能够正常解析。在该技术方案中,可以对语义表达式是否能够正常解析进行判断,从而在无法解析时采用传统的SQL语句的方式,确保对数据的查询能够正常执行。通过以上技术方案,可以利用数据物理表间的关系进行数据查询,从而降低查询语句的复杂度,提升其可读性。


图1示出了根据本发明的实施例的数据查询系统的框图;图2示出了根据本发明的实施例的数据查询方法的流程图;图3示出了根据本发明的实施例的多个数据物理表之间的外键关系的示意图;图4示出了基于图3所示的多个数据物理表之间的外键关系构建的字段树结构的示意图;图5示出了根据本发明的实施例的对语义表达式进行处理的流程图6示出了根据本发明的实施例的执行数据查询所需的装置模块的结构示意图;图7示出了根据本发明的实施例的数据查询的效果示意图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。图1示出了根据本发明的实施例的数据查询系统的框图。如图1所示,根据本发明的实施例的数据查询系统100,包括:第一语句生成单元102,用于根据待查询数据生成包含语义表达式的第一 SQL查询语句;表达式获取单元104,用于从所述第一 SQL查询语句中获取所述语义表达式;表达式解析单元106,用于对所述表达式获取单元获取的所述语义表达式进行解析,以确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系;第二语句生成单元108,用于根据所述多个数据物理表以及所述关联关系,生成第二 SQL查询语句;语句执行单元110,用于执行所述第二 SQL查询语句,以获取所述待查询数据。在该技术方案中,通过语义表达式,从而获取查询所需的多个数据物理表及多个表格间的数据关系,从而简化了 SQL查询语句,有利于语句的编写和查阅。在上述技术方案中,优选地,所述第一语句生成单元102根据数据字典物理关系构建字段树结构,并根据所述字段树结构上的节点路径生成所述语义表达式。在该技术方案中,根据字段树结构生成语义表达式,从而一方面便于该语义表达式的生成,另一方面有助于根据该语义表达式确定对应的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,所述表达式获取单元104按照“数据物理表.字段
1.字段2....字段η”的格式从所述第一 SQL查询语句中获取所述语义表达式,以用于生成所述第二 SQL查询语句。在该技术方案中,按照预设的格式,从而有利于确定查询所需的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,还包括:判断单元112,用于判断所述语义表达式是否能够正常解析,若能,则由所述表达式解析单元106进行解析以生成所述第二 SQL查询语句,否则返回解析错误信息。在该技术方案中,若语义表达式无法正常解析,则仍能够采用传统的SQL语句的方式实现数据查询。在上述技术方案中,优选地,所述判断单元112具体对所述第一 SQL查询语句进行字符串检查;其中,若其中包含至少两个”符号连接的字符,则判定能够正常解析。在该技术方案中,可以对语义表达式是否能够正常解析进行判断,从而在无法解析时采用传统的SQL语句的方式,确保对数据的查询能够正常执行。图2示出了根据本发明的实施例的数据查询方法的流程图。如图2所示,根据本发明的实施例的数据查询方法,包括:步骤202,根据待查询数据生成包含语义表达式的第一 SQL查询语句;步骤204,获取并解析所述语义表达式,确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系;步骤206,根据所述多个数据物理表以及所述关联关系,生成第二 SQL查询语句;步骤208,执行所述第二 SQL查询语句,以获取所述待查询数据。在该技术方案中,通过语义表达式,从而获取查询所需的多个数据物理表及多个表格间的数据关系,从而简化了 SQL查询语句,有利于语句的编写和查阅。在上述技术方案中,优选地,所述步骤202包括:根据数据字典物理关系构建字段树结构,并根据所述字段树结构上的节点路径生成所述语义表达式。在该技术方案中,根据字段树结构生成语义表达式,从而一方面便于该语义表达式的生成,另一方面有助于根据该语义表达式确定对应的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,获取所述语义表达式的步骤包括:按照“数据物理表.字段1.字段2....字段η”的格式从所述第一 SQL查询语句中获取所述语义表达式,以用于生成所述第二 SQL查询语句。在该技术方案中,按照预设的格式,从而有利于确定查询所需的数据物理表及多个表格之间的数据关系。在上述技术方案中,优选地,所述步骤204还包括:判断所述语义表达式是否能够正常解析,若能,则解析以生成所述第二 SQL查询语句,否则返回解析错误信息。在该技术方案中,若语义表达式无法正常解析,则仍能够采用传统的SQL语句的方式实现数据查询。在上述技术方案中,优选地,所述确定所述语义表达式是否能够正常解析的步骤包括:对所述第一 SQL查询语句进行字符串检查;其中,若其中包含至少两个”符号连接的字符,则判定能够正常解析。在该技术方案中,可以对语义表达式是否能够正常解析进行判断,从而在无法解析时采用传统的SQL语句的方式,确保对数据的查询能够正常执行。图3示出了根据本发明的实施例的多个数据物理表之间的外键关系的示意图。如图3所示,用户sm_user、组织sm_org、集团sm_group三张数据表,用户表有所属组织字段pk_org,该字段与组织数据表主键pk_org构建外键关系,同理,组织数据表有所属集团字段pk_group,该字段与集团数据表的主键pk_group构建外键关系。针对上述用户、组织、集团三个数据表的关系,我们要查询用户所属集团名称,都需要编写如下SQL:select group, name from sm—user user, sm—org org,sm—group group whereuser.pk_org=org.pk—org and org.pk_group=group.pk—group而根据上述用户、组织、集团的数据表关系,可以构建如图4所示的字段树结构,即:由用户数据表的所属组织字段可以展开组织数据表的字段列表;由组织数据表的所属集团可以展开集团数据表的字段列表。根据上述字段树结构,我们可以根据“集团名称”的节点路径,生成语义表达式user.pk_org.pk_group.name,根据此语义表达式,则可以简单生成查询语句:select user.pk_org.pk_group.name from sm_user user其中表达式user.pk_org.pk_group.name,含义即为“用户所属组织、组织所属集团的名称”。图5示出了根据本发明的实施例的对语义表达式进行处理的流程图。如图5所示,根据本发明的实施例的对语义表达式进行处理的流程包括:步骤502,由SQL生成器生成语义表达式及查询SQL,语义表达式的语法为:数据表别名.字段1.字段2.字段3...字段η。步骤504,查找是否包含可处理的语义表达式。步骤506,判断是否包含语义表达式,若包含,则进入步骤508,否则进入步骤510。步骤508,解析语义表达式,并据此进入步骤508Α:读取数据物理表间的外键关系,从而翻译为可执行的SQL语句。具体地,对SQL进行字符串检查,如果包含至少两个”符号连接的字符判断,则可对该字符串判断进行语义表达式解析,根据“数据表.字段1.字段2.字段3...字段η”的规则,结合数据物理表的外键定义,逐级进行语义解释,并用解释后的SQL判断修改原SQL语句。步骤510,直接返回该SQL语句。步骤512判断是否可正常解析翻译后得到的SQL语句,若是,则进入步骤516,否则进入步骤514。步骤514,返回解析错误信息。步骤516,返回翻译后得到的SQL语句。图6示出了根据本发明的实施例的执行数据查询所需的装置模块的结构示意图。如图6所示,根据本发明的实施例的执行数据查询所需的装置模块包括:数据字典字段树构建器、语义表达式及SQL生成器和语义表达式解析器,其中:数据字典字段树 构建器:负责根据数据字典物理关系构建字段树结构;语义表达式及SQL生成器:负责根据字段树上节点路径,生成语义表达式,以及生成应用语义表达式的查询SQL ;语义表达式解析器:负责解析语义表达式,根据表达式的“数据表.字段1.字段
2.字段3…字段η”的规则,处理表达式涉及的数据表、字段、及数据表间的关联条件。基于上述描述,图7示出了根据本发明的实施例的数据查询的效果示意图。以上结合附图详细说明了本发明的技术方案,本发明可以通过数据库中的数据表外键关系,方便用户通过简易表达式快速实现数据关系表达和数据查询,简单直观,编辑灵活,可以很大程度提升企业数据查询处理效率。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据查询系统,其特征在于,包括: 第一语句生成单元,用于根据待查询数据生成包含语义表达式的第一 SQL查询语句; 表达式获取单元,用于从所述第一 SQL查询语句中获取所述语义表达式; 表达式解析单元,用于对所述表达式获取单元获取的所述语义表达式进行解析,以确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系; 第二语句生成单元,用于根据所述多个数据物理表以及所述关联关系,生成第二 SQL查询语句; 语句执行单元,用于执行所述第二 SQL查询语句,以获取所述待查询数据。
2.根据权利要求1所述的数据查询系统,其特征在于,所述第一语句生成单元根据数据字典物理关系构建字段树结构,并根据所述字段树结构上的节点路径生成所述语义表达式。
3.根据权利要求1或2所述的数据查询系统,其特征在于,所述表达式获取单元按照“数据物理表.字段1.字段2....字段η”的格式从所述第一 SQL查询语句中获取所述语义表达式,以用于生成所述第二 SQL查询语句。
4.根据权利要求1或2所述的数据查询系统,其特征在于,还包括: 判断单元,用于判断所述语义表达式是否能够正常解析,若能,则由所述表达式解析单元进行解析以生成所述第二 SQL查询语句,否则返回解析错误信息。
5.根据权利要求4所述的数据查询系统,其特征在于,所述判断单元具体对所述第一SQL查询语句进行字符串检查; 其中,若其中包含至少两个”符号连接的字符,则判定能够正常解析。
6.一种数据查询方法,其特征在于,包括: 步骤202,根据待查询数据生成包含语义表达式的第一 SQL查询语句; 步骤204,获取并解析所述语义表达式,确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系; 步骤206,根据所述多个数据物理表以及所述关联关系,生成第二 SQL查询语句; 步骤208,执行所述第二 SQL查询语句,以获取所述待查询数据。
7.根据权利要求6所述的数据查询方法,其特征在于,所述步骤202包括: 根据数据字典物理关系构建字段树结构,并根据所述字段树结构上的节点路径生成所述语义表达式。
8.根据权利要求6或7所述的数据查询方法,其特征在于,获取所述语义表达式的步骤包括: 按照“数据物理表.字段1.字段2....字段η”的格式从所述第一 SQL查询语句中获取所述语义表达式,以用于生成所述第二 SQL查询语句。
9.根据权利要求6或7 所述的数据查询方法,其特征在于,所述步骤204还包括: 判断所述语义表达式是否能够正常解析,若能,则解析以生成所述第二 SQL查询语句,否则返回解析错误信息。
10.根据权利要求9所述的数据查询方法,其特征在于,所述确定所述语义表达式是否能够正常解析的步骤包括:对所述第一 SQL查询语句进行字符串检查;其中,若其中包含至少两 个”符号连接的字符,则判定能够正常解析。
全文摘要
本发明提供了一种数据查询系统,包括第一语句生成单元,用于根据待查询数据生成包含语义表达式的第一SQL查询语句;表达式获取单元,用于从所述第一SQL查询语句中获取所述语义表达式;表达式解析单元,用于对所述表达式获取单元获取的所述语义表达式进行解析,以确定所述语义表达式对应的多个数据物理表、在每个所述数据物理表中对应的字段以及所述多个数据物理表之间的关联关系;第二语句生成单元,用于根据所述多个数据物理表以及所述关联关系,生成第二SQL查询语句;语句执行单元,用于执行所述第二SQL查询语句,以获取所述待查询数据。本发明还提成了一种数据查询方法。通过本发明的技术方案,可以利用数据物理表间的关系进行数据查询,从而降低查询语句的复杂度,提升其可读性。
文档编号G06F17/30GK103092998SQ20131005579
公开日2013年5月8日 申请日期2013年2月21日 优先权日2013年2月21日
发明者刘应耀 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1