本发明涉及数据库查询技术领域,尤其涉及一种数据库的可视化查询方法及系统。
背景技术:
海量科学数据的到来使领域科学家面临前所未有的科学数据管理困境。一方面,传统以表为数据模型的关系型数据库管理系统已经不能满足科学领域大规模科学数据的管理需求;另一方面,对于非计算机专业背景的领域科学家而言,快速定义数据分析任务是研究的关键,然而使用查询语言编写复杂查询语句依旧比较困难。阵列数据库系统(arraydatabasesystem)的兴起为科学数据管理提供了新的可选解决方案,但这些系统通常采用各自设计的阵列查询语言,这又提高了科学家们编写用于表示复杂分析任务的查询语句的门槛。
可视化的查询构建可方便的生成复杂sql语句,降低了编写复杂查询的门槛。现有技术中的可视化查询构建方式主要分为四类:表格参数形式查询构建、示例语句查询方式、自然语言描述及图形化查询构建方式。前两种使用方便,如sdssskyserver,但表格参数形式查询和示例语句查询需要较强的领域知识,且对用户自定义查询的支持有限,适用范围有限;第三种以自然语言描述为输入,如nalir,其目前只支持以英语为描述语言,且将各种自然语言描述精确翻译成数据库的真实模式比较困难,适用性也不强。第四种方式,用户只需拖拽操作即可完成数据对象的设定及查询语句的构建,如ajaxquerybuilder,但这种方式主要面向关系型数据库,不再适用于阵列模型的科学数据管理与分析。
技术实现要素:
本发明提供一种数据库的可视化查询方法及系统,解决现有技术中可视化的查询构建方法适用性不强、效率不高,尤其不适用于阵列模型的技术问题。
本发明的目的是通过以下技术方案实现的:
一种数据库的可视化查询方法,包括:
生成可视化图形界面,所述可视化图形界面包括可操作的功能菜单选项和基本组件,所述基本组件包括select组件、结果项列表组件、数据源表列表组件、表连接组件、条件设置组件及函数组件;
根据分析任务类型,对所述基本组件进行拼接操作,并设置参数,以构建分析任务可视化模块;
对所述可视化模块进行语句翻译,以生成的目标查询语言语句序列;
根据所述目标查询语言语句序列,对数据库进行查询。
前述的数据库的可视化查询方法,所述根据分析任务类型,对基本组件进行拼接操作,并设置参数的步骤之后,所述对所述可视化模块进行语句翻译的步骤之前,包括:
遍历所述基本组件的参数区域,收集所述基本组件的参数值;
将收集到的所述参数值转化成符合语法规则的参数列表。
前述的数据库的可视化查询方法,所述根据分析任务类型,对基本组件进行拼接操作,并设置参数的步骤包括:
根据分析任务类型,对所述基本组件进行拼接操作,并设置参数;
拼接操作过程中,根据目标查询语言的语法规则,判断所述基本组件之间的参数类型是否匹配;
当所述基本组件之间的参数类型不匹配时,产生告警指示。
前述的数据库的可视化查询方法,所述对所述可视化模块进行语句翻译的步骤,包括:
取出参数列表中的参数;
将取出的所述参数填入对应基本组件的目标查询语言语句中的参数位置;
从内部代码块开始生成,逐层进行,以生成的目标查询语言语句序列。
一种数据库的可视化查询系统,其特征在于,包括:
界面生成模块,用于生成可视化图形界面,所述可视化图形界面包括可操作的功能菜单选项和基本组件,所述基本组件包括select组件、结果项列表组件、数据源表列表组件、表连接组件、条件设置组件及函数组件;
图形化分析型查询构建模块,用于根据分析任务类型,对所述基本组件进行拼接操作,并设置参数,以构建分析任务可视化模块;
查询翻译模块,用于对所述可视化模块进行语句翻译,以生成的目标查询语言语句序列;
查询执行模块,用于根据所述目标查询语言语句序列,对数据库进行查询。
前述的数据库的可视化查询系统,还包括参数收集模块,用于遍历所述基本组件的参数区域,收集所述基本组件的参数值;将收集到的所述参数值转化成符合语法规则的参数列表。
前述的数据库的可视化查询系统,所述图形化分析型查询构建模块,包括:
参数设置单元,用于根据分析任务类型,对所述基本组件进行拼接操作,并设置参数;
构建执行单元,用于在拼接操作过程中,根据目标查询语言的语法规则,判断所述基本组件之间的参数类型是否匹配;
匹配判断单元,用于当所述基本组件之间的参数类型不匹配时,产生告警指示。
前述的数据库的可视化查询系统,所述查询翻译模块,包括:
参数获取单元,用于取出参数列表中的参数;
参数生成单元,用于将取出的所述参数填入对应基本组件的目标查询语言语句中的参数位置;
翻译执行单元,用于从内部代码块开始生成,逐层进行,以生成的目标查询语言语句序列。
本发明的技术效果为:通过生成可视化图形界面;根据分析任务类型,对所述基本组件进行拼接操作,并设置参数,以构建分析任务可视化模块;对所述可视化模块进行语句翻译,以生成的目标查询语言语句序列;根据所述目标查询语言语句序列,对数据库进行查询。本发明适用于阵列模型,能正确定义科学数据分析任务,实现了可视化构建复杂查询语句序列,满足用户可视化构建复杂查询语句的需求。
附图说明
图1为本发明实施例提供的一种数据库的可视化查询方法的流程图;
图2为本发明实施例提供的图形化分析任务基本组件(block)的示意图;
图3为本发明实施例提供的一种数据库的可视化查询系统的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
对于天文学、核物理学、远程遥感应用、海洋学以及生物学等科学领域的科学工作者而言,其研究过程中获得的数据的自然数据模型绝大部分是阵列(array)模型,一维的array为数组,二维的array从逻辑形式上,和关系数据库的表是等价的,但是array有三维甚至更高维的形式。本发明实施例提供了一种数据库的可视化查询方法,如图1所示,包括:
步骤101、生成可视化图形界面;
其中,所述可视化图形界面包括可操作的功能菜单选项和基本组件,基本组件包括如图2所示的分析型任务的基本组件(block),包括(a)select基本block一、(b)select基本block二、(c)select基本block三、(d)select基本block四、(e)结果项列表block、(f)数据源表列表block(g)、基本表连接block(h)、基本条件block示例、(i)函数(含内置函数和自定义函数)block示例等。其中,列表block可以根据查询意图增减列表项数目。这些block包括可视化构建接口,以使得用户可以通过简单的拼接block来表达分析任务,并自动生成目标查询语言的语句序列。
步骤102、根据分析任务类型,对所述基本组件进行拼接操作,并设置参数,以构建分析任务可视化模块;
其中,步骤102,具体可以包括:
步骤102-1、根据分析任务类型,对所述基本组件进行拼接操作,并设置参数;
本步骤中,通过拖拽拼接图形化分析任务基本组件(block)构建科学数据分析任务。拼接操作支持复杂嵌套查询的功能,例如可以构建如下这样的嵌套查询(嵌套层次不限)。
selecta,b,d
froma,b
wherea.a>b.banddin(selectdfrombwhered>12)。
步骤102-2、拼接操作过程中,根据目标查询语言的语法规则,判断所述基本组件之间的参数类型是否匹配;
步骤103、对所述可视化模块进行语句翻译,以生成的目标查询语言语句序列;
其中,步骤103,具体可以包括:
步骤103-1、取出参数列表中的参数;
步骤103-2、将取出的所述参数填入对应基本组件的目标查询语言语句中的参数位置;
步骤103-3、从内部代码块开始生成,逐层进行,以生成的目标查询语言语句序列。
步骤104、根据所述目标查询语言语句序列,对数据库进行查询。
其中,目标查询语言是阵列(array)数据库的查询语言aql。aql在设计的时候,参照了sql,但是两者在语言的语法和语义规则上均存在不同之处。
步骤103与步骤102之间,还可以包括:
步骤a、遍历所述基本组件的参数区域,收集所述基本组件的参数值;
步骤b、将收集到的所述参数值转化成符合语法规则的参数列表。
步骤c、当所述基本组件之间的参数类型不匹配时,产生告警指示。
本发明实施例提供的一种数据库的可视化查询方法及系统,通过生成可视化图形界面;根据分析任务类型,对所述基本组件进行拼接操作,并设置参数,以构建分析任务可视化模块;对所述可视化模块进行语句翻译,以生成的目标查询语言语句序列;根据所述目标查询语言语句序列,对数据库进行查询。本发明适用于阵列模型,能正确定义科学数据分析任务,实现了可视化构建复杂查询语句序列,满足用户可视化构建复杂查询语句的需求。
本发明实施例还提供了一种数据库的可视化查询系统,如图3所示,包括:
界面生成模块310,用于生成可视化图形界面,所述可视化图形界面包括可操作的功能菜单选项和基本组件,所述基本组件包括select组件、结果项列表组件、数据源表列表组件、表连接组件、条件设置组件及函数(内置函数和自定义函数)组件;
图形化分析型查询构建模块320,用于根据分析任务类型,对所述基本组件进行拼接操作,并设置参数,以构建分析任务可视化模块;
查询翻译模块330,用于对所述可视化模块进行语句翻译,以生成的目标查询语言语句序列;
查询执行模块340,用于根据所述目标查询语言语句序列,对数据库进行查询。
其中,该系统还可以参数收集模块350,用于遍历所述基本组件的参数区域,收集所述基本组件的参数值;将收集到的所述参数值转化成符合语法规则的参数列表。
所述图形化分析型查询构建模块320,包括:
参数设置单元321,用于根据分析任务类型,对所述基本组件进行拼接操作,并设置参数;
构建执行单元322,用于在拼接操作过程中,根据目标查询语言的语法规则,判断所述基本组件之间的参数类型是否匹配;
匹配判断单元323,用于当所述基本组件之间的参数类型不匹配时,产生告警指示。
所述查询翻译模块330,包括:
参数获取单元331,用于取出参数列表中的参数;
参数生成单元332,用于将取出的所述参数填入对应基本组件的目标查询语言语句中的参数位置;
翻译执行单元333,用于从内部代码块开始生成,逐层进行,以生成的目标查询语言语句序列。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。