CN112052252A - 一种基于关联数据库的数据查询方法和装置 - Google Patents
一种基于关联数据库的数据查询方法和装置 Download PDFInfo
- Publication number
- CN112052252A CN112052252A CN201910492277.3A CN201910492277A CN112052252A CN 112052252 A CN112052252 A CN 112052252A CN 201910492277 A CN201910492277 A CN 201910492277A CN 112052252 A CN112052252 A CN 112052252A
- Authority
- CN
- China
- Prior art keywords
- query
- statement
- business
- nouns
- querying
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于关联数据库的数据查询方法和装置,该基于关联数据库的数据查询方法包括:包括:接收查询需求;通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;执行所述查询语句,获得查询结果;返回所述查询结果。本发明提供的基于关联数据库的数据查询方法和装置,能够由设备完成查询需求到查询语句的自动转换,相对于由业务人员进行查询需求到查询语句的转换,具有效率高及准确度高的特点。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种基于关联数据库的数据查询方法和装置。
背景技术
在一些业务场景下,为了实现业务信息的搜索,通常由业务人员1提出业务需求,由业务人员2根据自己对业务知识的展示掌握,将业务人员1提出的查询需求转换为机械可识别的机械语言,然后再查询数据仓库得到所需查询的数据。
这种查询需求的查询模式,需要由业务人员2进行查询需求的转换,一方面,转换难度大、且这种转换对业务人员2的业务知识要求非常高;若业务人员2对业务知识了解不甚全面或深刻,就很可能在数据仓库的数据可以满足业务需求的时候,依然无法获得满足业务需求的数据,故会导致查询需求的响应效果差的问题;另一方面,由于由业务人员完成查询需求到查询语句的转换,效率低,无法满足一些特定场景下的业务并需求。
发明内容
本发明的一个目的是提供一种基于关联数据库的数据查询方法和装置,以解决现有的业务数据查询过程中,效率低、对业务人员要求高及查询结果不够精确问题的至少其中之一。
本发明第一方面提供一种基于关联数据库的数据查询方法,包括:
接收查询需求;
通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;
执行所述查询语句,获得查询结果;
返回所述查询结果。
基于上述方案,所述通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句,包括:
查询所述关联数据库,确定出与所述查询需求匹配的业务名词;
根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句。
基于上述方案,所述根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句,包括:
将所述业务名词,确定是否有与所述业务名词匹配的表;
若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述基于所述查询指标构建的查询条件添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句,包括:
将所述业务名词作为查询列名,添加到预设的缺少查询列名的select from语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句,还包括:
将根据所述查询需求确定的查询指标作为查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述基于所述查询指标构建的查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句,包括以下至少之一:
基于所述查询指标构建的查询条件,select语句中where所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中group by所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中having所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句,还包括:
若存在多个与所述业务名词匹配的表,根据所述多个与业务名词匹配的表的表名,确定连接顺序;
基于所述连接顺序,拼接分别查询每一个所述与业务名词匹配表的所述查询语句,得到查询多个所述与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述查询所述关联数据库,确定出与所述查询需求对应的业务名词,包括以下至少之一:
查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合,其中,一个所述业务名词组合包括至少一个业务名词;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
基于上述方案,所述通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句,包括:
通过查询知识图谱,将所述查询需求转换成编程语言类型的查询语句。
一种基于关联数据库的数据查询装置,包括:
接收模块,用于接收查询需求;
转换模块,用于通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;
查询模块,用于执行所述查询语句,获得查询结果;
返回模块,用于返回所述查询结果。
基于上述方案,所述转换模块,具体用于查询所述关联数据库,确定出与所述查询需求匹配的业务名词;根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句。
基于上述方案,所述转换模块,包括:
第一确定子模块,用于将所述业务名词,确定是否有与所述业务名词匹配的表;
生成子模块,用于若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述生成子模块,具体用于将所述业务名词作为查询列名,添加到预设的缺少查询列名的select from语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述生成子模块,还用于将根据所述查询需求确定的查询指标作为查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述生成子模块,具体用于执行以下至少之一:
基于所述查询指标构建的查询条件,select语句中where所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中group by所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中having所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述转换模块,还包括:
第二确定子模块,用于若存在多个与所述业务名词匹配的表,根据所述多个与业务名词匹配的表的表名,确定连接顺序;
拼接子模块,用于基于所述连接顺序,拼接分别查询每一个所述与业务名词匹配表的所述查询语句,得到查询多个所述与所述业务名词匹配的表的所述查询语句。
基于上述方案,所述转换模块,还具体用于执行以下至少之一:
查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合,其中,一个所述业务名词组合包括至少一个业务名词;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
基于上述方案,所述转换模块,用于通过查询知识图谱,将所述查询需求转换成编程语言类型的查询语句。
基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件基于所述查询指标构建的查询条件
本发明第三方面提供一种存储介质,所述存储介质存储计算机程序指令,所述计算机程序指令根据上述任意技术方法进行执行。
本发明第四方面提供一种计算设备,包括:用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述计算设备执行上述任意技术方案提供的方法。
本发明第五方面提供一种数据查询方法和装置,其中,该数据查询方法,包括:
接收查询需求;
将所述查询需求,转换成可执行的查询代码;
执行所述查询代码,进行查询,得到查询结果。
该数据查询装置,包括:
接收模块,用于接收查询需求;
转换模块,用于将所述查询需求,转换成可执行的查询代码;
查询模块,用于执行所述查询代码,进行查询,得到查询结果。
本发明提供的基于关联数据库的数据查询方法和装置,可以利用设备自动根据关联数据库将查询需求转换为编程语言类型的查询语句。如此在进行业务数据查询时,无需专业的业务人员将查询需求转换为编程语言类型的查询语句,减少了因为业务人员导致的查询瓶颈,提升了业务数据的查询并发度和效率,且进一步降低了因为业务人员的人为错误导致的业务数据查询不够精确的问题,提升了业务数据的查询效果。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例提供的一种基于关联数据库的数据查询方法的流程示意图;
图2为本发明实施例提供的一种知识图谱的结构示意图;
图3为本发明实施例提供的另一种知识图谱的结构示意图;
图4为本发明实施例提供的另一种基于关联数据库的数据查询方法的流程示意图;
图5为本发明实施例提供的一种基于关联数据库的数据查询装置的结构示意图;
图6为本发明实施例提供再一种基于关联数据库的数据查询方法的流程示意图;
图7为本发明实施例提供又一种基于关联数据库的数据查询方法的流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1为本发明实施例提供的基于关联数据库的数据查询方法的流程示意图,如图1所示,本发明实施例提供的基于关联数据库的数据查询方法,包括:
步骤S101,接收查询需求;
步骤S102,通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;
步骤S103,执行所述查询语句,获得查询结果;
步骤S104,返回所述查询结果。
本实施例提供的基于关联数据库的数据查询方法可以应用于查询设备中,该查询设备可为查询服务器,该查询服务器可以连接到数据仓库。
所述查询需求可为来自查询终端,或者,来自查询设备的人机交互借口。
在本实施例中所述查询需求可以由自然语言形式的查询需求。
在本实施例中,所述查询需求可为各种业务数据的查询需求。该业务数据可为电商的业务数据、金融平台的金融数据。
本实施例中,所述关联数据库包括但不限于各种关系数据库,可为包含不同实体之间关联关系的数据库,在本实施例中,所述关联数据库的实体可对应于查询关键字,该查询关键字包括但不限于业务名词。
在本实施例中,所述关联数据库包括但不限于知识图谱。所述知识图谱可至少包括实体及实体之间的关系。
在一些实施例中,所述知识图谱中的每一个实体还有属性,该属性可以利用属性值对来标识。每一个实体具有唯一的实体标识,如此,可以使得实体在知识图谱中被唯一标志。
图2和图3分别为两种知识图谱的举例示意图。具体地,图2为一种针对购物平台内电商的知识图谱。在图2所示的知识图谱内每一个圆圈表示一个实体。如图2所示,该知识图谱中包括的实体有:购物平台、商家、供应商及快递服务商。
购物平台分别为商家1至商家4提供电商入驻,如此消费者可以在购物平台网页上可以查看到对应的商家网页。
供应商1和供应商2都为商家1提供货源。
快递服务商1为商家4提供快递服务;
快递服务商2为商家3提供快递服务;
快递服务商3为商家2提供快递服务。
每一个商家都可以用属性描述商家的信息,例如,商家的信用度、商家的星级等。
总之,知识图谱可以体现实体和实体之间的关系,并可以利用属性描述每一个实体的特征。
图3为一种金融平台的知识图谱的举例。
在图3中展示的实体有:金融平台、理财产品、理财产品提供商及理财用户等。金融平台可以用于发布金融产品1至4。理财产品提供商提供金融产品。理财用户可以购买理财产品进行理财。
当然以上仅是对知识图谱的举例,具体实现时可以任意可以被知识图谱化的业务数据都可以适用本发明实施例提供的业务数据。
在一些实施例中,将响应所述查询需求的待查询数据仓库中存储的数据被抽象之后,形成所述知识图谱。
在一些实施例中,所述编程语言类型的查询语句可包括:
结构化查询语句(Structured Query Language,SQL);
Oracle数据库语言;
数据库操作语言(Data Manipulation Language,DML)。
总之在本实施例中,所述查询语句可为设备能够识别的各种直接用于查询数据仓库的语言。
在本实施例中,查询设备自动将查询需求转换为查询语句之后,基于查询语句查询数据库仓库,例如,利用该查询语句在数据仓库的数据记录内进行数据检索,若检索到数据,就可以将查询到的数据作为查询结果返回。
在本实施例中所述步骤S104可包括:
将所述查询结果返回到查询终端;
将所述查询结果返回到查询设备的查询界面上。
总之所述步骤S104可通过所述查询结果的返回可以使得查询需求的发出者的数据需求。
在本实施例中,由于查询设备会自动将查询需求通过知识图谱的查询,转换为查询语句,如此,无需业务人员手动将查询需求转换为机械所识别的查询语句,可以减少了因为业务人员手动操作导致的查询瓶颈,可以提高数据的查询并发性,并减少因为业务人员不熟悉业务数据或数据仓库的数据结构导致的查询结果不精确的现象,提升了数据查询的精确性。
所述步骤S102可包括:
查询所述关联数据库,确定出与所述查询需求匹配的业务名词;
根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句。
具体如,将所述查询需求中非标准表达形式的业务名词与所述知识图谱内实体进行匹配;
若匹配一致,在根据该匹配的实体,将所述业务名词转换为能够查询所述数据仓库的业务名词的标准表达形式。标准表达形式的业务名词可为记录在数据仓库中的业务名词,如此可以用于生成所述查询语句。
从所述查询需求匹配得到的标准表达形式的业务名词可包括以下至少之一:
待查询数据的数据名称,例如,待查询业务数据的业务名称;
待查询数据的数据标识,该数据标识包括但不限于待查询业务数据的数据编号,例如,理财产品的产品编号等。
在一些实施例中,所述步骤S102可包括:
步骤S1021:将所述业务名词,确定是否有与所述业务名词匹配的表;
步骤S1022:基于所述查询指标构建的查询条件若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句。
在数据仓库中存储有一个或多个数据表,这些表格由行和列组成,其中,一个行可对应于一个元素,一个列可为一个属性。
在本实施例中,以所述业务名词为关键字通过模糊匹配的方式,确定出数据仓库中是否存在与所述业务名词的表。若存在与所述业务名词匹配的表,则生成查询语句继续查询;若不存在与所述业务名词匹配的表,则查询结束,返回查询失败的查询结果。
具体地,若数据仓库中存在一个或多个与所述业务名词匹配的表时,将业务名词作为查询参数添加到预设的缺少业务名词的预设语句中,使得缺少查询条件的预设语句,生成完成的编程语言类型的查询语句。而完整的编程语言类型的查询语句被执行后,设备会查询与所述业务名词匹配的表,并返回查询的结果。
在一些实施例中,所述S1022可包括:将所述业务名词作为查询列名,添加到预设的缺少查询列名的select from语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
例如,所述预设语句可包括:缺少查询参数的select语句,例如,缺少“column_name”和“table_name”的预设语句“SELECT FROM”中,此处的“column_name”和“table_name”都为前述查询参数一种。其中,“column_name”包括但不限于基于查询需求确定的业务名词,而“table_name”为与业务名词匹配的表的表名。
在一些实施例中,所述步骤S1302可包括:
将根据所述查询需求确定的查询指标作为查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
例如,查询需求中指示查询价格在A元以上的商品B,A元就是查询指标,而构建的查询条件可为“价格值大于A元”。
该select语句可以通过不同的连接词连接查询条件。该连接词包括但不限于以下至少之一:
where;
group by;
having。
上述三个连接词后续都可以连接查询条件。
例如,在步骤S1022中生成了查询语句:select table A where B;以B条件查询表A,从而会得到对应的查询结果。若得到了查询结果,就可以将该查询结果返回给查询终端。
故在一些实施例中,所述步骤S1022可包括以下至少之一:
基于所述查询指标构建的查询条件,select语句中where所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中group by所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中having所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句。
例如,生成查询语句:SELECT column_name;FROM table_name;WHERE column_name operator value;
上述“column_name,”可为本实施例中根据查询需求确定的业务名词;“table_name”可为本实施例中与业务名词匹配的表的表名。“column_name operator value”为本实施例中的查询条件。例如,“column_name,”为红酒价格;“operator value”可为大于1000元等。
而查询需求可为普通用户输入“请查询价格在1000元以上的红酒”。
例如,生成的查询语句:
SELECT column_name,aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name。
GROUP BY语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
再例如,生成的查询语句:
SELECT column_name,aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name)operator value。
在SQL中通过增加HAVING语句,WHERE关键字无法与聚合函数一起使用。HAVING语句可以让筛选分组后的各组数据;从而返回更加精确的结果。
在一些实施例中,所述步骤S102可包括:
查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合,其中,一个所述业务名词组合包括至少一个业务名词;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
一个所述业务名词组合包括至少一个业务名词。若所述业务名词组合包括多个业务名词时,一个所述业务名词组合包括的多个业务名词在所述业务名词组合中可以随机排序,或者按照一定顺序进行排序。例如,当从查询需求解析出多个业务名词,根据业务名词所对应业务之间的包含关系或层次关系,按照业务名词所对应业务范围由大到小的排序。
在本实施例中,首先利用分词法等对所述查询需求进行分词处理等,从所述查询需求中提取出待匹配的业务名词(对应于前述的关键词),该业务名词包括但不限于业务名称和/或业务编号等业务标识。
在获得业务名词之后,可以与以业务名词作为知识图谱中实体的实体名称进行匹配,从而确定出于所述查询需求匹配的业务名词。
若获得所述业务名词之后,会基于所述业务名词转换出所述查询语句,此时,所述业务名词会作为转换得到的业务名词的组成部分。
所述查询语句包括:动作指令和动作指令的查询参数;所述动作指令可为各种类型的查询动作的动作指令。所述业务名词至少可以作为动作指令的查询参数。
可选地,所述查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合可包括以下至少之一:
查询所述知识图谱,确定出与所述查询需求匹配应的无二义性的业务名词组合;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
在本实施例中无二义性的业务名词可为:没有任何歧义的业务名词。在本实施例中若获得与查询需求匹配的无二义性的业务名词包括:与所述查询需求唯一匹配的业务名词。
在另一些实施例中,若知识图谱中包含有2个或2个以上的业务名词与所述查询需求匹配时,会根据知识图谱与所述查询需求匹配的各业务名词的匹配度,并选择出匹配程度最高的N个业务名词。
选择出匹配程度最高的N个业务名词,可以均用于生成所述查询语句,在选择一个或多个查询语句进行数据仓库的查询。
在另一些实施例中,所述若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合可包括:根据所述业务名词组合,转换为结构化查询语句。
在具体实现时,进行所述查询语句转换的转换模块具有多种数据库查询语句转换能力,所述若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合可包括:根据数据仓库的类型,根据所述业务名词将所述查询需求能够查询对应类型数据仓库的查询语句。
例如,数据仓库类以不同类型数据库语言存储的数据,都分别设置了对应的知识图谱,通过知识图谱的查询不仅能够确定出查询需求转换为查询语句的操作参数,还包括决定转换的查询语句的类型。
例如,所需查询的数据表可以利用SQL语言进行查询,则所述查询语句为SQL;若所需查询的数据表可以利用Oracle数据库语言,则将查询需求转换为Oracle数据库语言。
可选地,所述若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合可包括:若所述业务名词组合为N个时,分别转换获得N个所述业务名词组合对应的备选语句;从N个所述备选语句中确定出所述查询语句。
在本实施例中,若有N个业务名词均查询需求匹配,将每一个业务名词分别转换为一个查询语句,然后再从这N个备选语句中选择出最终的查询语句。
具体的选择方式有多种,以下提供两种可选方式:
方式一:所述方法还包括:
输出转换得到的N个所述备选语句;
所述从N个所述备选语句中确定出所述查询语句,包括:
基于用户操作,从所述N个所述备选语句中选择所述查询语句。
在人机交互界面输出所述备选语句,为了方便业务人员选择还可以输出对应的查询需求。如此,业务人员在不用通过手动切换页面的同时根据在同一个页面对应显示的查询需求和备选语句,就能够确定出所述查询语句。虽然本方式利用了业务人员从备选语句中选择出最终用于满足查询需求的查询语句,但是相对于所有的查询需求都由业务人员转换为对应的查询语句,大大降低了业务人员的工作量,对于无二义性的业务名词就可以直接转换查询语句,在无需业务人员任何参与的情况下,就能够自动完成查询需求到查询语句的转换,并自动完成数据的查询。
方式二:所述从N个所述备选语句中确定出所述查询语句,包括:
利用机器学习模型或深度学习模型等学习模型,根据所述查询需求从所述N个备选语句中选择所述查询语句。例如,利用神经网络等深度学习模型通过匹配概率进一步预测等,可以自动判别出N个备选语句中与所述查询需求最匹配的一个作为所述查询语句。
在一些实施例中,所述步骤S101可包括:接收以自然语言输入的所述查询需求;所述步骤S102可具体包括:解析自然语言类型的所述查询需求,将所述查询需求转换为所述查询语句。
以所述查询需求为中文的自然语言为例,则可以通过中文分词等方法,解析所述自然语言,获得出查询需求中携带的业务名词等,然后再将查询需求转换为查询语句。
如图5所示,本实施例还提供一种基于关联数据库的数据查询装置,包括:
接收模块51,用于接收查询需求;
转换模块52,用于通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;
查询模块53,用于执行所述查询语句,获得查询结果;
返回模块54,用于返回所述查询结果。
在一些实施例中,所述接收模块51、转换模块52、查询模块53及返回模块54均可为程序模块,所述程序模块被处理后,能够实现前述查询需求的获取、查询语句的转换、查询结果的获得及查询结果的返回。
在另一些实施例中,所述接收模块51、转换模块52、查询模块53及返回模块54均可为软硬结合模块;所述软硬结合模块包括但不限于各种可编程阵列;所述可编程阵列包括但不限于复杂可编程阵列或者现场可编程阵列。
在还有一些实施例中,所述接收模块51、转换模块52、查询模块53及返回模块54均可为纯硬件模块;所述纯硬件模块包括但不限于专用集成电路。
可选地,所述转换模块52,具体用于查询所述关联数据库,确定出与所述查询需求匹配的业务名词;根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句。
在一些实施例中,所述转换模块52,包括:
第一确定子模块,用于将所述业务名词,确定是否有与所述业务名词匹配的表;
生成子模块,用于若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句。
在一些实施例中,所述生成子模块,具体用于将所述业务名词作为查询列名,添加到预设的缺少查询列名的select from语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
在一些实施例中,所述生成子模块,还用于将根据所述查询需求确定的查询指标作为查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
在一些实施例中,所述生成子模块,具体用于执行以下至少之一:
基于所述查询指标构建的查询条件,select语句中where所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中group by所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中having所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句。
在一些实施例中,所述转换模块52,还包括:
第二确定子模块,用于若存在多个与所述业务名词匹配的表,根据所述多个与业务名词匹配的表的表名,确定连接顺序;
拼接子模块,用于基于所述连接顺序,拼接分别查询每一个所述与业务名词匹配表的所述查询语句,得到查询多个所述与所述业务名词匹配的表的所述查询语句。
在一些实施例中,所述转换模块52,还具体用于执行以下至少之一:
查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合,其中,一个所述业务名词组合包括至少一个业务名词;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
在一些实施例中,所述转换模块52,用于通过查询知识图谱,将所述查询需求转换成编程语言类型的查询语句。
以下结合上述任意实施例提供一个示例:
示例1:
如图6所示,本示例提供一种基于关联数据库的数据查询方法,包括:
1、业务人员希望从数据仓库中获取杭州市所有银泰MTD销售额;业务人员会通过查询终端或者通过查询设备的人机交互接口输入查询需求;如此,查询设备就能够获得查询需求;具体地如,业务人员把需求通过[自然语言(语音)]输入系统。
2.业务名词组合的确定,包括但不限于以下至少之一:
2.1、指令转换器将自然语言形式的查询需求,通过查询知识图谱转换成无二义性的企业业务语言形式的业务名词组合。
2.2、如果有歧义,则提供匹配度最高的N个企业业务语言的业务名词组合。
3、指令转换,包括但不限于以下至少之一:
3.1、指令转换器根据标准的、无二义性的业务名词组合生成SQL;\
3.2、若有歧义,则提供匹配程度最高的N各业务名词组合对应的SQL,共ETL选择;
4、执行SQL;通过执行SQL查询数据仓库;
5、从数据仓库获得数据返回;
6、输出报表给到业务人员。
示例2:
如图7所示,本示例提供一种基于知识图谱的数据查询方法,包括:
自然语言输入的查询需求,例如,用户文字输入的查询需求和语音输入的查询需求;若语音输出的查询需求将会转换为文本信息。
进行文本信息的分词,得到业务名词的组合;
基于业务名词的组合,查找是否有与业务名词匹配的表;
若无,提示找不到匹配的表,并结束查询,展示查询结果,例如,展示查询未查找到对应结果的查询反馈;
若有,生成select语句,进行所匹配表的查询;
例如,生成select where语句进行查询;
再例如,生成select group by语句查询,并生成select having语句进行查询;
若存在多个匹配的表,使用join连接不同的表;
最终将单个表的查询语句拼接成多个表的查询语句;
执行拼接的查询语句,得到最终的查询结果。
输出最终的查询结果。
在本发明一个实施例中,提供一种数据查询方法和装置,其中,该数据查询方法,包括:
接收查询需求;
将所述查询需求,转换成可执行的查询代码;
执行所述查询代码,进行查询,得到查询结果。
该数据查询装置,包括:
接收模块,用于接收查询需求;
转换模块,用于将所述查询需求,转换成可执行的查询代码;
查询模块,用于执行所述查询代码,进行查询,得到查询结果。
该数据查询方法和装置,不需要使用关联数据库,将查询需求转换为可执行查询代码即可完成查询。在本发明一个实施例中,还提供一种存储介质,所述存储介质存储计算机程序指令,所述计算机程序指令根据本发明实施例的方法进行执行。
在本发明一个典型的配置中,计算设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
在本发明一个实施例中,还提供一种计算设备,包括:用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述计算设备执行本发明实施例的方法。
计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本发明的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (22)
1.一种基于关联数据库的数据查询方法,其特征在于,包括:
接收查询需求;
通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;
执行所述查询语句,获得查询结果;
返回所述查询结果。
2.根据权利要求1所述的方法,其特征在于,所述通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句,包括:
查询所述关联数据库,确定出与所述查询需求匹配的业务名词;
根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句。
3.根据权利要求2所述的方法,其特征在于,所述根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句,包括:
将所述业务名词,确定是否有与所述业务名词匹配的表;
若存在与所述业务名词匹配的表,将所述业务名词作为查询参数,添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句。
4.根据权利要求3所述的方法,其特征在于,所述基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句,包括:
将所述业务名词作为查询列名,添加到预设的缺少查询列名的selectfrom语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
5.根据权利要求3所述的方法,其特征在于,所述若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句,还包括:
将根据所述查询需求确定的查询指标作为查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
6.根据权利要求5所述的方法,其特征在于,所述基于所述查询指标构建的查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句,包括以下至少之一:
基于所述查询指标构建的查询条件,select语句中where所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中group by所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中having所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句。
7.根据权利要求3所述的方法,其特征在于,所述根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句,还包括:
若存在多个与所述业务名词匹配的表,根据所述多个与业务名词匹配的表的表名,确定连接顺序;
基于所述连接顺序,拼接分别查询每一个所述与业务名词匹配表的所述查询语句,得到查询多个所述与所述业务名词匹配的表的所述查询语句。
8.根据权利要求2所述的方法,其特征在于,
所述查询所述关联数据库,确定出与所述查询需求对应的业务名词,包括以下至少之一:
查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合,其中,一个所述业务名词组合包括至少一个业务名词;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句,包括:
通过查询知识图谱,将所述查询需求转换成编程语言类型的查询语句。
10.一种数据查询方法,其特征在于,包括:
接收查询需求;
将所述查询需求,转换成可执行的查询代码;
执行所述查询代码,进行查询,得到查询结果。
11.一种基于关联数据库的数据查询装置,其特征在于,包括:
接收模块,用于接收查询需求;
转换模块,用于通过查询关联数据库,将所述查询需求转换成编程语言类型的查询语句;
查询模块,用于执行所述查询语句,获得查询结果;
返回模块,用于返回所述查询结果。
12.根据权利要求11所述的装置,其特征在于,所述转换模块,具体用于查询所述关联数据库,确定出与所述查询需求匹配的业务名词;根据所述业务名词,将所述查询需求转换为编程语言类型的所述查询语句。
13.根据权利要求12所述的装置,其特征在于,所述转换模块,包括:
第一确定子模块,用于将所述业务名词,确定是否有与所述业务名词匹配的表;
生成子模块,用于若存在与所述业务名词匹配的表,将所述业务名词作为查询参数添加到预设的缺少查询参数的编程语言类型的预设语句中,生成查询所述与所述业务名词匹配的表的所述查询语句。
14.根据权利要求13所述的装置,其特征在于,所述生成子模块,具体用于将所述业务名词作为查询列名,添加到预设的缺少查询列名的select from语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
15.根据权利要求13所述的装置,其特征在于,所述生成子模块,还用于将根据所述查询需求确定的查询指标作为查询条件,添加到缺少查询条件的预设语句中,生成查询一个与所述业务名词匹配的表的所述查询语句。
16.根据权利要求15所述的装置,其特征在于,所述生成子模块,具体用于执行以下至少之一:
基于所述查询指标构建的查询条件,select语句中where所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中group by所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句;
基于所述查询指标构建的查询条件,添加到预设的缺少查询参数的select语句中having所连接的查询条件,生成查询一个与所述业务名词匹配的表的所述查询语句。
17.根据权利要求13所述的装置,其特征在于,所述转换模块,还包括:
第二确定子模块,用于若存在多个与所述业务名词匹配的表,根据所述多个与业务名词匹配的表的表名,确定连接顺序;
拼接子模块,用于基于所述连接顺序,拼接分别查询每一个所述与业务名词匹配表的所述查询语句,得到查询多个所述与所述业务名词匹配的表的所述查询语句。
18.根据权利要求11所述的装置,其特征在于,
所述转换模块,还具体用于执行以下至少之一:
查询所述关联数据库,确定出与所述查询需求匹配应的无二义性的业务名词组合,其中,一个所述业务名词组合包括至少一个业务名词;
若与所述查询需求对应的有多个业务名词组合,选择与所述查询需求匹配程度最高的N个的业务名词组合,其中,N为不小2的正整数。
19.根据权利要求11至18任一项所述的装置,其特征在于,所述转换模块,用于通过查询知识图谱,将所述查询需求转换成编程语言类型的查询语句。
20.一种数据查询装置,其特征在于,包括:
接收模块,用于接收查询需求;
转换模块,用于将所述查询需求,转换成可执行的查询代码;
查询模块,用于执行所述查询代码,进行查询,得到查询结果。
21.一种存储介质,其特征在于,所述存储介质存储计算机程序指令,所述计算机程序指令根据权利要求1至10中任一项所述的方法进行执行。
22.一种计算设备,其特征在于,包括:用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述计算设备执行权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492277.3A CN112052252A (zh) | 2019-06-06 | 2019-06-06 | 一种基于关联数据库的数据查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492277.3A CN112052252A (zh) | 2019-06-06 | 2019-06-06 | 一种基于关联数据库的数据查询方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112052252A true CN112052252A (zh) | 2020-12-08 |
Family
ID=73608739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910492277.3A Pending CN112052252A (zh) | 2019-06-06 | 2019-06-06 | 一种基于关联数据库的数据查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052252A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434901A (zh) * | 2021-06-30 | 2021-09-24 | 平安普惠企业管理有限公司 | 数据智能查询方法、装置、电子设备及存储介质 |
CN113515640A (zh) * | 2021-04-13 | 2021-10-19 | 北京捷通华声科技股份有限公司 | 查询语句生成方法及装置 |
CN115062068A (zh) * | 2022-07-12 | 2022-09-16 | 中国科学院大学 | 一种关联探寻与多级关系查询方法 |
-
2019
- 2019-06-06 CN CN201910492277.3A patent/CN112052252A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515640A (zh) * | 2021-04-13 | 2021-10-19 | 北京捷通华声科技股份有限公司 | 查询语句生成方法及装置 |
CN113434901A (zh) * | 2021-06-30 | 2021-09-24 | 平安普惠企业管理有限公司 | 数据智能查询方法、装置、电子设备及存储介质 |
CN115062068A (zh) * | 2022-07-12 | 2022-09-16 | 中国科学院大学 | 一种关联探寻与多级关系查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755575B2 (en) | Processing database queries using format conversion | |
JP6736173B2 (ja) | データベースへの自然言語インタフェースのための方法、システム、記録媒体およびコンピュータ・プログラム | |
CN107016001B (zh) | 一种数据查询方法及装置 | |
US8983930B2 (en) | Facet group ranking for search results | |
US7814044B2 (en) | Data access service queries | |
US20080215565A1 (en) | Searching heterogeneous interrelated entities | |
US8145619B2 (en) | Method and system for identifying companies with specific business objectives | |
US20090313227A1 (en) | Searching Using Patterns of Usage | |
US20040098381A1 (en) | Navigation in a hierarchical structured transaction processing system | |
JP2015511039A (ja) | 製品情報の公開 | |
CN112052252A (zh) | 一种基于关联数据库的数据查询方法和装置 | |
CN112269816B (zh) | 一种政务预约事项相关性检索方法 | |
CN110555035A (zh) | 一种对查询语句进行优化的方法、装置 | |
JP2019040598A5 (zh) | ||
CN111143359A (zh) | 查询语句生成方法及装置 | |
JP2008546051A (ja) | クエリマッチングシステム及びその方法、該方法を実行するためのプログラムが記録されたコンピュータ読取可能な記録媒体 | |
CN113535817A (zh) | 特征宽表生成及业务处理模型的训练方法和装置 | |
Yan et al. | Product schema integration for electronic commerce-a synonym comparison approach | |
JP6438295B2 (ja) | ハイパーグラフソルバーのためのグラフ入力の自動編集 | |
TWI547888B (zh) | A method of recording user information and a search method and a server | |
US11423098B2 (en) | Method and apparatus to generate a simplified query when searching for catalog items | |
CN114416848A (zh) | 基于数据仓库的数据血缘关系处理方法及装置 | |
US20120109783A1 (en) | Product information search | |
Zhang et al. | Answering product-related questions with heterogeneous information | |
US9836776B2 (en) | Generation and search of multidimensional linked lists and computing array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |