CN106874422B - 一种面向关系型数据库的图查询方法 - Google Patents
一种面向关系型数据库的图查询方法 Download PDFInfo
- Publication number
- CN106874422B CN106874422B CN201710055713.1A CN201710055713A CN106874422B CN 106874422 B CN106874422 B CN 106874422B CN 201710055713 A CN201710055713 A CN 201710055713A CN 106874422 B CN106874422 B CN 106874422B
- Authority
- CN
- China
- Prior art keywords
- node
- inquiry
- data
- user
- name
- 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.)
- Active
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本发明公开了一种面向关系型数据库的图查询方法,主要应用于普通用户查询关系型数据库的场景。本发明中,离线处理阶段首先将关系型数据转换成图数据,并在该图数据上建立相关索引。在线查询阶段允许数据查询者用自己的词汇来构建图查询,然后对图查询的节点做初步匹配,最后进行Top‑k不精确子图匹配,对用户构建的图查询和离线转换得到的图数据进行图匹配。通过匹配,用户能够得到满足其查询要求的若干子图,而这些子图则作为查询结果返回给用户。
Description
技术领域
本发明属于计算机技术领域,涉及一种面向关系型数据库的查询方法。
背景技术
作为传统的数据存储方式,关系数据库在数据存储领域一直扮演着重要的角色。近年来,基于数据库的问答系统在医疗、交通、生物工程、智慧城市等多个领域都有广泛的应用。其中,普通用户对于数据的查询需求是体现数据价值的一个重要方面。面向关系型数据库的查询接口技术的研究与普通用户联系紧密,一直以来受到很多研究者的关注,因此,相关研究在应用上有很高的价值。
传统面向关系型数据库的查询方法存在的主要问题是:基于关键词的查询能够表达的查询意图有限且比较模糊,并且关键词查询得到的结果准确性不高;另外由于自然语言存在的歧义性较大,基于自然语言的查询方式使得计算机处理起来比较难,实用性较差。此外,将查询转换成SQL的方式可能使得查询时间不可控。本发明提出一种图查询方法,利用图匹配算法来查询结果。
发明内容
技术问题:针对传统关系型数据库的查询方法的缺陷,本发明提出了一种基于不精确图匹配的关系型数据库图查询方法。
技术方案:本发明提出一种面向关系型数据库的图查询方法,包括以下步骤:
步骤1)对目标关系型数据做离线处理,即按照以下转换规则将关系型数据转换成图结构数据:
a)针对关系型数据库中所有表、元组,创建表节点和元组节点;
b)针对关系型数据库中每个元组下的每个列值不为空的列创建属性节点;
c)对于关系型数据中的外键引用、二元关系,创建边来关联对应的节点;
在创建节点和边后按照如下方式生成对应的标识符:
a)取表名作为表节点的标识符;
b)手动指定元组的标识符列;
c)取元组对应的列值作为相应列节点的标识符;
d)取二元关系的表名作为对应边的标识符;
e)取被引用列的名称作为外键引用边对应的标识符。
所述二元关系是指关系表有且仅有两个不同的外键,且分别指向关系表s和关系表t中的某个属性,则该关系表可转化为关系表s和t之间的一个二元关系;
步骤2)离线构建图数据索引,具体为:遍历步骤1)生成的图结构数据,针对图结构数据中每个节点、边,在索引文件中插入一条索引记录;
步骤3)用户首先构建图查询,所述图查询中包括命名节点、目标节点,节点之间用边来连接,所述命名节点需要加上标识,所述目标节点不需要加上标识,然后利用用户输入的词汇构建的查询表示成一个有向图,一个查询表示成如下的一个五元组;
Q=(VQ,EQ,LQ,MQ,TQ)
其中,VQ表示查询中的命名节点集合,命名节点是指节点上有标签来标识的节点;EQ为图查询中包括的所有边;LQ为所有标签的集合,即无论是节点还是边的标签都来自这个集合;MQ表示图查询中包含的中间节点,采用标识“*”来表示;TQ表示图查询中所有的目标查询节点,这些节点是用户通过查询数据想得到的信息,用“?”表示;
步骤4)对用户构建的图查询中的每个节点,通过查询索引来得到每个节点字符串近似相似的候选匹配节点集合;
步骤5)通过Top-k匹配算法,在目标图上搜索与图查询近似匹配度最高的k个子图并返回给用户。
本发明方法的优选方案中,步骤1)中构建的图结构数据存储在neo4j图数据库中。
本发明方法的优选方案中,所述步骤2)中Lucene来构建图结构数据索引。
本发明方法的优选方案中,所述步骤3)中,图查询中还包括中间节点,所述中间节点不需要加上标识。
本发明方法的优选方案中,所述步骤5)中的Top-k图匹配算法包括计算图之间的结构相似度和图上节点或边的字符串相似度,然后通过加权计算得到近似匹配度,其中k是由用户配置的子图个数
有益效果:传统面向关系型数据库的查询方法存在的主要问题是:基于关键词的查询能够表达的查询意图有限且比较模糊,并且关键词查询得到的结果准确性不高;另外由于自然语言存在的歧义性较大,基于自然语言的查询方式使得计算机处理起来比较难,实用性较差。此外,将查询转换成SQL的方式可能使得查询时间不可控。所以,基于关键词和自然语言的查询方式分别受到查询准确率和解析难度较大的影响很难做到满足非专业人员查询的要求。本发明提出一种无模式的图形化查询接口,因为图能够较自然地表达用户的查询意图,并允许用户用不精确的信息或模糊的信息碎片来达到查询信息的目的。并利用图匹配算法来查询结果,当数据和查询都可以用图来表达的时候,在关系型数据库上的查询问题就转化成子图匹配问题。本发明中的子图匹配被定义成一种松散机制的匹配方式,即查询得到的答案并一定要满足严格子图匹配的约束,由于用户往往对数据的组织结构不了解,其构建的图查询并不一定和数据中的词汇或结构保持一致,其次,一定程度上也达到了不精确匹配的效果。
本发明与现有技术相比,具有以下优点:
本发明基于不精确图匹配以及图数据库相关技术旨在为关系型数据库的查询提供支持。离线部分利用数据转换技术将关系型数据库转换成图结构数据,为了加快对图数据的检索,在图数据上建立倒排索引。本发明中定义图查询为有向图,图查询的结点和边的标识符由查询者指定。在线处理对于图查询的每个节点通过查询索引来近似得到候选匹配节点集合。利用候选匹配集合我们采用一种改进的子图匹配算法来进行Top-k子图生成,最后生成的Top-k子图。
综上所述,本发明能够为普通用户提供一种查询关系型数据库的方式,与现存的面向关系型数据库的查询方法相比用户更容易接受、且该方法的正确率与召回率均超过现有的关键词和自然语言查询方法。
附图说明
图1是系统模块图。
图2是查询匹配图。
图3是图上节点概率转移图。
图4是Top-k算法流程图。
具体实施方式
为使本发明的目的技术方案和优点更加清楚,以下结合实施例和说明书附图对本发明进一步说明。
本发明方法包括以下几个步骤:
步骤1)对目标关系型数据做离线处理,按照转换规则将关系型数据转换成图结构数据,并存储在Neo4j图数据库中,数据存储细节不属于本专利描述范围,具体构建规则为:
a)针对关系型数据库中所有表、元组,创建表节点和元组节点;
b)针对a)中所述的每个元组下的每个列值不为空的列创建属性节点;
c)对于关系型数据中的外键引用、二元关系,创建边来关联对应的边。
在创建节点和边时按照如下方式生成对应的标识符
a)取表名作为表节点的标识符;
b)手动指定元组的标识符列;
c)取元组对应的列值作为相应列节点的标识符;
d)取二元关系的表名作为对应边的标识符;
e)取被引用列的名称作为外键引用边对应的标识符。
其中二元关系是指关系表有且仅有两个不同的外键,且分别指向关系表s和关系表t中的某个属性,则该关系表可转化为关系表s和t之间的一个二元关系。
步骤2)构建基于图数据的索引,针对图中每个节点、边的标识符,在索引文件中插入一条倒排索引,并将倒排索引存储在Lucene中。
步骤3)在线部分:用户首先构建图查询,图查询中可以包括命名节点、目标节点、中间节点,节点之间用边来连接,节点和边都可以加上标识。利用用户输入的词汇构建的查询可以表示成一个有向图,一个查询可以表示成如下的一个五元组。
Q=(VQ,EQ,LQ,MQ,TQ)
其中,VQ表示查询中的命名节点集合,命名节点是指节点上有标签来标识的节点;EQ为图查询中包括的所有边,边可以有标签也可以没有;LQ为所有标签的集合,即无论是节点还是边的标签都来自这个集合;MQ表示图查询中包含的中间节点,在本文中采用标识“*”来表示;类似的,TQ表示图查询中所有的目标查询节点,这些节点是用户通过查询数据想得到的信息,用“?”表示。如图2(b)所示为一个图查询,该查询希望得到莱昂纳多和歌迪亚合作过哪些电影。
步骤4)在线图匹配分为两个阶段,首先利用Lucene数据索引查询得到每个节点对应的候选匹配集合,可以利用Lucene内置的字符串匹配函数。
步骤5)图匹配第二阶段为在线Top-k子图匹配,在候选匹配项的基础上进行Top-k子图搜索,其中score的计算公式如公式(1)所示,通过该公式可以得到子图ε和图查询的匹配值。
其中stringMath(u,v)的取值范围为0-1,衡量图结构匹配程度,公式得分值越大说明子图和图查询匹配程度越高,这里用路径相似度作为结构相似度,路径相似度通过以下方式来计算得到。
如果答案中匹配的路径为简单路径(只有一条边),利用字符串相似度来计算得到路径匹配值,如公式第一项所示,而如果答案中匹配的路径为复杂路径(包含多条边),利用公式第二项的来计算整条路径的概率连乘。公式计算出的值越大,说明路径越匹配。这里将路径空间建模成马尔科夫链,即做了一个基本的假设:将来状态的出现概率只和当前状态有关,而与过去的状态无关。对应到路径上,即下一个节点的出现概率只和当前节点有关,而和路径之前的节点没有关系。如图3所示,这里实线表示答案中包含的并存在路径上的边,而虚线表示不包含在答案中的边。由马尔科夫链假设,由节点i转移到节点i+1的概率公式可以简化为:
P(Vi+1|V0,V1,…,Vi)=P(Vi+1|Vi)
所有的图上节点组成了状态空间,而每个路径就是一种状态的组合;每个节点表示模型中的一个状态,然后利用路径的类型、方向、标签等信息可以计算得到每条路径的概率值。由一阶马尔科夫假设可知,某个节点与到其所有相邻节点之间的转移概率之和为1,并且每个转移概率范围在(0,1]之间,即满足以下条件:
其中,X表示当前节点,N(X)表示和节点X直接相邻的节点集合,无论是X指向其他节点,还是其他节点指向X,在实际使用的时候可以设置正方向概率大于逆方向概率。
图匹配是指在目标图上找到一个子图,使得图查询上的每个节点在目标图上都存在唯一的匹配。匹配的定义是指标签和结构都相同,为了缩小搜索空间,本发明在子图查找的过程中尽量提前对搜索空间进行剪枝,包括子图搜索,提前判断Top-k是否完成。图4为Top-k算法流程图,首先需要初始化参数UB,UB根据公式(2)来初始化和更新。
其中sizeOfEdge表示图查询中边的个数,M(v)表示节点v在图上的候选匹配集合。通过Top-k算法,最终返回k个子图给用户,如图2(a),(b)所示表示一个查询和匹配结果。
上述实施例仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和等同替换,这些对本发明权利要求进行改进和等同替换后的技术方案,均落入本发明的保护范围。
Claims (5)
1.一种面向关系型数据库的图查询方法,其特征在于,该方法包括如下步骤:
步骤1)对目标关系型数据做离线处理,即按照以下转换规则将关系型数据转换成图结构数据:
a)针对关系型数据库中所有表、元组,创建表节点和元组节点;
b)针对关系型数据库中每个元组下的每个列值不为空的列创建属性节点;
c)对于关系型数据中的外键引用、二元关系,创建边来关联对应的节点;
在创建节点和边后按照如下方式生成对应的标识符:
a)取表名作为表节点的标识符;
b)手动指定元组的标识符列;
c)取元组对应的列值作为相应列节点的标识符;
d)取二元关系的表名作为对应边的标识符;
e)取被引用列的名称作为外键引用边对应的标识符;
所述二元关系是指关系表有且仅有两个不同的外键,且分别指向关系表s和关系表t中的某个属性,则该关系表可转化为关系表s和t之间的一个二元关系;
步骤2)离线构建图数据索引,具体为:遍历步骤1)生成的图结构数据,针对图结构数据中每个节点、边,在索引文件中插入一条索引记录;
步骤3)用户首先构建图查询,所述图查询中包括命名节点、目标节点,节点之间用边来连接,所述命名节点需要加上标识,所述目标节点不需要加上标识,然后利用用户输入的词汇构建的查询表示成一个有向图,一个查询表示成如下的一个五元组;
Q=(VQ,EQ,LQ,MQ,TQ)
其中,VQ表示查询中的命名节点集合,命名节点是指节点上有标签来标识的节点;EQ为图查询中包括的所有边;LQ为所有标签的集合,即无论是节点还是边的标签都来自这个集合;MQ表示图查询中包含的中间节点,采用标识“*”来表示;TQ表示图查询中所有的目标查询节点,这些节点是用户通过查询数据想得到的信息,用“?”表示;
步骤4)对用户构建的图查询中的每个节点,通过查询索引来得到每个节点对应的候选匹配节点集合;
步骤5)通过Top-k匹配算法,在候选匹配项的基础上搜索与图查询近似匹配度最高的k个子图并返回给用户。
2.根据权利要求1所述的一种面向关系型数据库的图查询方法,其特征在于,所述步骤1)中构建的图结构数据存储在neo4j图数据库中。
3.根据权利要求1所述的一种面向关系型数据库的图查询方法,其特征在于,所述步骤2)中用Lucene来构建图数据索引。
4.根据权利要求1、2或3所述的一种面向关系型数据库的图查询方法,其特征在于,所述步骤3)中,图查询中还包括中间节点,所述中间节点不需要加上标识。
5.根据权利要求1、2或3所述的一种面向关系型数据库的图查询方法,其特征在于,所述步骤5)中的Top-k图匹配算法包括计算图之间的结构相似度和图上节点或边的字符串相似度,然后通过加权计算得到近似匹配度,其中k是由用户配置的子图个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710055713.1A CN106874422B (zh) | 2017-01-25 | 2017-01-25 | 一种面向关系型数据库的图查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710055713.1A CN106874422B (zh) | 2017-01-25 | 2017-01-25 | 一种面向关系型数据库的图查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874422A CN106874422A (zh) | 2017-06-20 |
CN106874422B true CN106874422B (zh) | 2019-07-26 |
Family
ID=59158206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710055713.1A Active CN106874422B (zh) | 2017-01-25 | 2017-01-25 | 一种面向关系型数据库的图查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874422B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108441A (zh) * | 2017-12-21 | 2018-06-01 | 新博卓畅技术(北京)有限公司 | 一种数据库表结构分析方法和系统 |
CN108280135B (zh) * | 2017-12-26 | 2021-08-10 | 创新先进技术有限公司 | 实现数据结构可视化的方法、装置和电子设备 |
CN108280159B (zh) * | 2018-01-16 | 2021-08-20 | 云南大学 | 一种将图数据库转化为关系数据库的方法 |
CN110109940B (zh) * | 2018-02-01 | 2024-03-29 | 微软技术许可有限责任公司 | 将函数式的图遍历语言转换成扩展的结构化查询语言 |
CN110209885B (zh) * | 2018-04-26 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 一种图查询方法及系统 |
CN108984592B (zh) * | 2018-05-31 | 2020-11-20 | 中诚信征信有限公司 | 一种基于图形数据库的数据处理系统、方法及装置 |
CN109710314B (zh) * | 2018-12-20 | 2019-11-12 | 四川新网银行股份有限公司 | 一种基于图结构分布式并行模式构建图的方法 |
US11170028B2 (en) * | 2019-02-21 | 2021-11-09 | Siemens Aktiengesellschaft | Predictive graph query system for automation engineering systems |
CN110413651B (zh) * | 2019-08-13 | 2020-12-08 | 中科驭数(北京)科技有限公司 | 关系型数据库管理系统的连接查询方法及装置 |
CN113609100B (zh) * | 2021-08-02 | 2023-10-27 | 北京百度网讯科技有限公司 | 数据存储方法、数据查询方法、装置及电子设备 |
CN114003648B (zh) * | 2021-10-20 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 风险交易团伙的识别方法、装置、电子设备与存储介质 |
CN114996297B (zh) * | 2022-04-14 | 2023-09-26 | 建信金融科技有限责任公司 | 数据处理方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399952A (zh) * | 2013-08-20 | 2013-11-20 | 长沙云宁信息技术有限公司 | 一种基于关键词的关系数据库检索系统及方法 |
CN104699698A (zh) * | 2013-12-05 | 2015-06-10 | 深圳先进技术研究院 | 基于海量数据的图查询处理方法 |
CN105760549A (zh) * | 2016-03-22 | 2016-07-13 | 南京邮电大学 | 基于属性图模型的近邻查询方法 |
CN105956012A (zh) * | 2016-04-21 | 2016-09-21 | 哈尔滨工程大学 | 基于图划分策略的数据库模式抽象方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190595B2 (en) * | 2009-03-28 | 2012-05-29 | Microsoft Corporation | Flexible query hints in a relational database |
-
2017
- 2017-01-25 CN CN201710055713.1A patent/CN106874422B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399952A (zh) * | 2013-08-20 | 2013-11-20 | 长沙云宁信息技术有限公司 | 一种基于关键词的关系数据库检索系统及方法 |
CN104699698A (zh) * | 2013-12-05 | 2015-06-10 | 深圳先进技术研究院 | 基于海量数据的图查询处理方法 |
CN105760549A (zh) * | 2016-03-22 | 2016-07-13 | 南京邮电大学 | 基于属性图模型的近邻查询方法 |
CN105956012A (zh) * | 2016-04-21 | 2016-09-21 | 哈尔滨工程大学 | 基于图划分策略的数据库模式抽象方法 |
Non-Patent Citations (1)
Title |
---|
基于Neo4j的大数据组织检索研究与应用;陆鹏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160815(第08期);第I138-578页 |
Also Published As
Publication number | Publication date |
---|---|
CN106874422A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874422B (zh) | 一种面向关系型数据库的图查询方法 | |
Mansuri et al. | Integrating unstructured data into relational databases | |
CN110188168A (zh) | 语义关系识别方法和装置 | |
KR101646754B1 (ko) | 모바일 시멘틱 검색 장치 및 그 방법 | |
CN107992608B (zh) | 一种基于关键字上下文的sparql查询语句自动生成方法 | |
CN111651447B (zh) | 一种智能建造全寿期数据处理分析管控系统 | |
KR20150070171A (ko) | 스트링 변환의 귀납적 합성을 위한 랭킹 기법 | |
CN101794307A (zh) | 基于互联网分词思想的车载导航poi搜索引擎 | |
CN104346444B (zh) | 一种基于路网反空间关键字查询的最佳选址方法 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN106446162A (zh) | 一种面向领域的本体知识库文本检索方法 | |
Wick et al. | A unified approach for schema matching, coreference and canonicalization | |
CN106874426A (zh) | 基于Storm的RDF流式数据关键词实时搜索方法 | |
CN104615734B (zh) | 一种社区管理服务大数据处理系统及其处理方法 | |
CN110532358A (zh) | 一种面向知识库问答的模板自动生成方法 | |
CN116991869A (zh) | 一种基于nlp语言模型自动生成数据库查询语句的方法 | |
CN110119404B (zh) | 一种基于自然语言理解的智能取数系统及其方法 | |
CN106021306A (zh) | 基于本体匹配的案例搜索系统 | |
CN104156431A (zh) | 一种基于实体图社团结构的rdf关键词查询方法 | |
CN116680377B (zh) | 基于日志反馈的中文医学术语自适应对齐方法 | |
CN105912649A (zh) | 一种数据库模糊检索方法和系统 | |
Abel et al. | Regional based query in graph active learning | |
De Boer et al. | Extracting instances of relations from web documents using redundancy | |
Wang et al. | A concept hierarchy based ontology mapping approach | |
CN110377700A (zh) | 一种专业知识语义检索系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |