CN104573039A - 一种关系数据库的关键词查询方法 - Google Patents

一种关系数据库的关键词查询方法 Download PDF

Info

Publication number
CN104573039A
CN104573039A CN201510025569.8A CN201510025569A CN104573039A CN 104573039 A CN104573039 A CN 104573039A CN 201510025569 A CN201510025569 A CN 201510025569A CN 104573039 A CN104573039 A CN 104573039A
Authority
CN
China
Prior art keywords
keyword
node
database
attribute
attr
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
Application number
CN201510025569.8A
Other languages
English (en)
Inventor
梁栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING AEROSPACE FUDAO HIGH-TECH CO LTD
Original Assignee
BEIJING AEROSPACE FUDAO HIGH-TECH CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING AEROSPACE FUDAO HIGH-TECH CO LTD filed Critical BEIJING AEROSPACE FUDAO HIGH-TECH CO LTD
Priority to CN201510025569.8A priority Critical patent/CN104573039A/zh
Publication of CN104573039A publication Critical patent/CN104573039A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种关系数据库的关键词查询方法,通过下述过程实现:1)针对特定数据库,查询系统为用户提供一系列查询的关键词;2)用户查询时输入关键词,系统对关键词进行组合;3)系统实现关键词组合到数据库查询语言SQL的关联映射;4)通过执行SQL查询语言动态链接到数据库,实现数据的精确查询。本发明为用户提供一个关键词查询语言,通过该语言实现对数据库的精确查询,该查询语言灵活,在数据库结构发生变化时可灵活配置;语法简单且直观,用户容易使用;查询结果精确。

Description

一种关系数据库的关键词查询方法
技术领域
本发明关于数据的搜索方法,特别是关于一种关系数据库的关键词查询方法。
背景技术
随着搜索引擎的流行,文档数据的爆炸式增长,关键词查询已成为信息检索的主要方式。然而在关系数据库领域,信息通过关系方式划分到不同的数据库表中,这在实现数据高一致,高可靠,少冗余的情况下,也为提供关键词查询带来了障碍。因为存在多表连接后的数据才是所要查询的结果的情况,所以为文档建立的倒排索引的方式就无法直接应用到关系数据库系统上;单表的更新涉及到大量数据的更新,使这一问题更加复杂。SQL(结构化查询语言)语句的结果是实时的,而搜索引擎的更新是有频率的,也使得SQL无法被直接取代;模糊搜索能够给用户提供一些启发性的信息,但是它损失了数据库查询精确性,也无法继续提供SQL中的精确的聚集函数以及集合操作。
目前的这些方法,仍然不足以在查询效率和准确性上广泛应用。
关系数据库的查询方式致力于两个方向的改进。第一个方向是为数据库提供逻辑独立的查询。自数据库系统成功之初,就有研究致力于为SQL(结构化查询语言)提供逻辑独立性,即用户查询SQL时无须指明数据库表和连接路径。提供逻辑独立性可以看成两个步骤:用户查询的列名需要被映射到正确的表和列;正确的生成多表连接序列和连接方式。后者的难点在于当有多种连接序列和连接方式可行时,如何解决二义性问题。
逻辑独立的数据库查询方面,主要通过以下方式来解决二义性问题:
1.统一关系:保证数据库内所有属性都要有唯一的角色,任意属性集合要有唯一的默认关系或者等价的多种关系。前者要求数据库设计的时候用属性名来隐含访问路径,比如“name”属性不能同时在多个表中出现;后者假设通过不同的属性命名可以区分多种关系。
2.最小连接:从模式图上将最短连接路径或者最小耗费路径作为连接路径。
3.基于划分的方式:根据约束完整性来生成无损连接的连接路径,对于无损连接无法到达的情况,再采用有损连接来连接,又称为最大对象方式。
这些方式都有各自的局限性:统一关系需要数据库表格的专门设计;最小连接难以解决二义性问题;基于划分的方式没有解决无损连接情况下的路径选择。
第二个方向是致力于为关系数据库提供模糊搜索。十多年来,有许多研究在图算法的基础上,致力于将搜索引擎的模糊搜索应用到数据库上。这些应用的典型结构是维护一个映射(关键词:表列/元组)的索引,然后基于数据库的图表示(模式图或数据图),将不同元组中的信息通过连接操作组织到一起。第二个致力方向跟第一个致力方向不是一种解决思路,模糊搜索是将数据库的内容进行扫描,同时它需要额外做的是保证在数据库内容进行改动时,保持更新。
发明内容
在关系数据库查询存在上述这些瓶颈的情况下,本发明的目的是致力于解决:1、如何分析数据库模式,进行二义性的消除,2、如何将用户的关键词查询翻译成SQL查询,动态生成SQL查询所需的链接。为此本发明提出了一种关系数据库的关键词查询方法,在应用于实际生产系统时,能够保证查询的效率。
为解决上述问题,本发明采取以下具体技术方案:一种关系数据库的关键词查询方法,通过下述过程实现:
1)针对特定数据库,查询系统为用户提供一系列查询的关键词;
2)用户查询时输入关键词,系统对关键词进行组合;
3)系统实现关键词组合到数据库查询语言SQL的关联映射;
4)通过执行SQL查询语言动态链接到数据库,实现数据的精确查询。
在从关键词组合到数据库查询语言SQL的映射步骤中,首先要对数据库模式图进行解析,保证解析后的数据库模式图提供的映射无歧义,解析过程包括:
1)对数据库进行分析,选择关键词和映射
由实体KENT和相应的属性KATTR构成关键词,关键词集合K=KENT∪KATTR,与数据库中的表建立连接关系,数据库中的表和表间的关系构成一个模式图G=(V,E),V表示表集,E是关系集;表集是数据库表的集合,包括内容有:实体VENT),关联(VREL),属性(VATTR),记为V=VENT∪VREL∪VATTR,关系集(E)是外键集合,且外键引用的是主码,包括内容:关联(EREL),属性(EATTR),记为E=EREL∪EATTR
设属性集合为C=(V,A),A是每个V上的属性,
映射函数如下所示:
map : { ∃ c ∈ C | c = map ( k ) , ∀ k ∈ K } , 即对于任意的关键词k,map函数能够将其映射为对应的属性c。
mapv : { ∃ v ∈ V | v = mapv ( k ) , ∀ k ∈ K } , 即对于任意的关键词k,mapv函数能够将其映射为对应的表v。
mape : { ∃ v ∈ V ENT | v = mape ( k ) , ∀ k ∈ K } , 即对于任意的关键词k,mape函数能够将其映射为对应的表v。
辅助函数outdegree(v)计算有向图G上节点v的出度;辅助函数left(e),right(e)计算有向图G边e的起始节点。
VENT=mapv(KENT),即实体关键词通过mapv函数映射为实体表。
V ATTR = mapv ( K ATTR ) - V ENT - { ∃ v ∈ V | outdegree ( v ) ≠ 0 } , 即属性关键词通过mapv函数映射为表集,从该表集中去除实体表集和出度不为0的表集,就得到属性表集。
VREL=V-(VENT∪VATTR),关联表集可以通过所有表集排除实体表集和属性表集获取到。
E ATTR = { ∃ e ∈ E | mapv ( left ( e ) ) ∈ V ATTR } , 即对于每一个外键,如果它的起点位于属性表集,则该外键就属于关系集。
EREL=E-EATTR
2)解决属性映射中的递归关系造成的多角色问题,包括递归二义性的检测和消除,方法为:
a>如果有符合从一个表指向另一个表的两条不同的边,则存在递归二义性第一种类型,通过建立别名表,引入4个新节点和4条新边可表示出这两种不同的关系,同时进行旧节点的删除;
b>如果有符合从一个表指向自身,则存在递归二义性第二种类型,同样通过重命名表消除;
3)根据实体和属性的映射,将模式图中的点集和边集进行分类,从模式图中去掉,从而实现模式图的简化;
4)消除连接中存在的语义二义性,方法有如下三种形式:
a)重命名:将实体根据角色进行重命名,用户查询时指定了角色,也就消除了语义二义性;
b)子图划分:将不同角色的实体划分到不同的子图中,这样角色的选择转化成子图选择的问题,通过选择标识节点,来限定出现该节点的查询才会映射到该子图上,从而实现与其它子图的甄别;
c)赋权:将模式图的边赋权,根据的连接路径的权值选择合适的路径。
5)对于结构二义性的解决方法是:通过对模式图的边赋以权值,用户查询的时候就能通过最小权值的方式生成连接,模式图中边的赋权算法:
赋权函数:
对于节点Vi和Vj的边
wij=(1-1/log2(4+|Ri|+s(Rj,j1)*|Rj|))+X*(1-Index)
|Ri|、|Rj|是表的记录数;是表的记录数;选择因子s(Rj+j1)是Rj在属性j1上的记录唯一值比例,如果该边是主键则为选择因子为1;Index根据在外键参与的属性上是否有索引,取值1或0;X是索引影响因子,用于最小权重树的查找算法。
其中,模式图简化方法是:建立属性链接路径表,记录每个KATTR对应的从mape(KENT)实体表到mapv(KATTR)属性表的路径,通过去除属性节点得到简化的核心关系图。
从SQL查询语言到数据库的动态链接算法有如下几种:
1)精确求最优解的动态规划算法-MST算法:
2)基于最小生成树的近似算法:
首先,基于给定顶点集的构造一个完全图GF,边长为原图G中顶点之间最短路径的长度,然后构造GF的最小生成树,它的每条边对应于原图G中的一条最短路径,最后GF中的边还原为原图G最短路中的边,所得即为史坦那(Steiner)最小树的近似解;
3)最小权重树的查找算法-MCST算法:
寻找一个根节点,从这个根节点到每个关键词节点的路径形成一个的生成树,最小的连接数和最小权重都被评估;为了找到这个根节点,创建为每个关键词节点创建一个广度优先搜索迭代器,迭代探索邻接节点;在一轮迭代中,每个迭代器遍历直接相邻的节点,如果有一轮结束时,发现了被所有迭代器都访问到的节点,则迭代停止,该节点为所求生成树的根节点;如果多个节点满足条件,则通过计算子树的权重和来选取最小子树的根节点作为最终所求的根节点;
采用以经典近似算法得到的史坦那(Steiner)最小树的对应的权重和做比较,选择最优的路径。
本发明由于采取以上技术方案,其具有以下优点:本发明为用户提供一个关键词查询语言,用户通过该语言实现对数据库的精确查询。该查询语言实现的是从关键词组合到SQL语言的映射,然后通过执行SQL语言来实现数据的查询。本发明所体现的优势是1)查询语言灵活,在数据库结构发生变化时可灵活配置;2)查询语言语法简单且直观,用户容易使用;3)查询结果精确。
附图说明
图1表示关键词和数据库中的表列映射关联;
图2表示递归二义性的父子节点关系;
图3表示不含属性节点的数据库简化模式图;
图4表示通过分析工具得到核心关系图中的环路;
图5表示无损连接后续节点的重命名;
图6表示用标识节点的组合来区分不同属于一个子图;
图7表示解决结构二义性的算法性能测量结果;
图8表示查询系统的系统架构;
图9QL查询语义树;
图10表示SQL查询语义树;
图11表示博物馆数据库实施例图。
具体实施方式
下面结合附图和实施例子对本发明进行详细的描述。
本发明查询方法应用下述过程实现:
1)针对某一特定数据库,系统为用户提供一系列查询的关键词;
2)用户查询时输入关键词,并对关键词进行组合;
3)系统实现关键词组合到数据库查询语言SQL的转化映射(也即关键词和数据库模式的映射);
4)通过执行SQL查询语言到数据库的动态链接来实现数据的精确查询。
在这个过程中,从关键词组合到SQL语言的映射和SQL语言到数据库的动态链接是该方案的核心。这一过程需要注意两个关键环节:一,首先对数据库模式图进行解析,保证解析后的数据库模式图所提供的映射无歧义。二,启用动态链接算法保证提供的映射执行效率高。模式图的解析是在为用户查询之前所做的准备工作,而动态链接算法是对用户输入的每一条查询语句的响应。
一,对数据库模式图的解析。解析包括系统对数据库的分析和相应的模式图分析算法的形成,主要解决以下问题:1)选择关键词和映射;2)解决属性映射中的递归关系造成的多角色问题;3)根据实体和属性的映射,将模式图中的点集和边集进行分类;4)解决链接中存在的语义二义性的问题;5)最优路径选择。
1)选择关键词和映射,如图1所示,上层是关键词(由实体和相应的属性构成),下层是数据库中的表列,二者通过映射关联(上、下之间虚线所示)。而数据库中的表和表间的关系构成一个模式图G=(V,E),V表示表集,E是关系集。
用户关键词查询语言QL,形式上近似于SQL,由查询选择关键词和查询约束条件组成。本发明中的关键词,是以实体和属性组织的。因为通常数据库是按域(Domain)组织信息的,单一数据库内的信息往往只限定在关注的一个域,而用户对该域内实体和属性往往有一个命名规范,比如高能物理领域内,每个实验都有自己的数据集(dataset),数据块(block),文件(file),运行(run),亮度(lumi),输出配置(config)等实体。所以,我们选取的关键词(keyword)我们以实体[属性]的方式组织,而不再是具体的数据库表/列。同时聚集函数可以作用在关键词上实现快速计算。
定义模式图G=(V,E),节点集V是数据库表的集合,可分为三类:实体(VENT),关联(VREL),属性(VATTR)(V=VENT∪VATTR∪VREL)。边集E是外键集合(且外键引用的是主码)可分为两类:关联(EREL),属性(EATTR)(E=EREL∪EATTR)。
关键词集合K=KENT∪KATTR
属性集合C=(V,A),A是每个节点V上的属性
映射函数 map : { ∃ c ∈ C | c = map ( k ) , ∀ k ∈ K }
mapv : { ∃ v ∈ V | v = mapv ( k ) , ∀ k ∈ K }
mape : { ∃ v ∈ V ENT | v = mape ( k ) , ∀ k ∈ K }
辅助函数outdegree(v)计算有向图G上节点v的出度。
辅助函数left(e),right(e)计算有向图G边e的起始节点。
VENT=mapv(KENT)
V ATTR = mapv ( K ATTR ) - V ENT - { ∃ v ∈ V | outdegree ( v ) ≠ 0 }
VREL=V-(VENT∪VATTR)
E ATTR = { ∃ e ∈ E | mapv ( left ( e ) ) ∈ V ATTR }
EREL=E-EATTR
2)解决属性映射中的递归关系造成的多角色,比如“file.child”(事例文件产生的子文件),“file.parent”(产生事例文件的父文件)和“file”本质上是参与“parent-child”(父子)关系的不同角色的同一实体。(“file.child”是以当前“file”作为输入处理得到的事例文件;“file.parent”是得到当前“file”的处理过程的输入文件)
递归二义性的检测和消除:
1>如果有符合从一个表指向另一个表的两条不同的边,则存在递归二义性第一种类型。
right(e1)=right(e2)∧
mapv(left(e1))=mapv(left(e2))∧
right(e1)∈VREL}
通过建立别名表,引入4个新节点和4条新边可表示出这两种不同的关系,同时进行旧节点的删除。
如图2所示,上部表示了节点Files和File_parents是父子关系。下部我们引入了新的节点parent_to_child(v_pc)父节点到子节点关系,child_to_parent(v_cp)子节点到父节点关系,File_parent(v_p)子节点,File_child(v_c)父节点。
对于节点集V和边集产生的影响如下:
VATTR=VATTR∪{v_p,v_c}
VREL=VREL∪{v_cp,v_pc}
EATTR=EATTR∪{(v_pc,v_c),(v_cp,v_p)}
EREL=EREL∪{(v_cp,v_p),(v_pc,v_c)}
2>如果有符合从一个表指向自身,则存在递归二义性第二种类型,同样通过重命名表消除。
{ ∃ ( e 1 ∈ E REL ) | mapv ( left ( e 1 ) ) = = mapv ( right ( e 1 ) ) }
3)根据实体和属性的映射,将模式图G中的点集V和边集E进行分类。因为从实体到属性间的路径是唯一的,因此可以将只是属性映射的表(比如图1中的“File_type”)从模式图中去掉,从而实现模式图的简化。
模式图的简化:
建立属性链接路径表,记录每个KATTR对应的从mape(KENT)实体表到mapv(KATTR)属性表的路径,通过去除属性节点得到简化的核心关系图G’,图3是图1的简化关系图G’。
4)解决连接中存在的语义二义性,二义性来自两个实体间的多种关系,或者说是实体可以以不同的角色来参与实体间的关系。在模式图G’上就是两个节点之间有多条连接路径。此时可以用不同的子图来代表实体间不同关系,可采用别名方式来表示参与不同关系的相同实体,或者采用划分的方式限定同时查询的关系数。
根据之前的研究,消除语义二义性主要的方式有:
a)重命名:将实体根据角色进行重命名,用户查询时指定了角色,也就消除了语义二义性。
b)子图划分:将不同角色的实体划分到不同的子图中,这样角色的选择转化成子图选择的问题。通过选择标识节点,来限定出现该节点的查询才会映射到该子图上,从而实现与其它子图的甄别。
c)赋权:将模式图的边赋权,根据的连接路径的权值选择合适的路径。
每种方式都有自己的局限性:重命名可能会造成命名爆炸,用户难以记住如此多的命名;子图划分缩小了用户的查询范围;赋权的表达能力有限,只能在多条路径中确定的选择一条。
这里给出一个如何分析和根据情况选择不同的方式处理的指导原则。
通过分析工具得到核心关系图中的环路,比如图4是DBS3模式图简化后,分析工具得到的环路。
①如果一个实体表含有多个角色,但是该实体表没有到该环路外的实体表的直接路径,则可以通过为每个角色建立别名节点来消除。比如,图4中的“Module_config”可以分别建立“dataset_config”和“file_config”实体来区分两个不同的角色。
如果该实体有很多无损连接决定的后续节点,则那些节点也须重命名,也就增多了命名,如图5所示,如果“Module_config”分为两个,但是“Parameter_set”,“Release_version”,“Application_exec”也有对应实体的话,那么往往对于它们每一个也要分为两种实体。
②如果环路中的实体之间存在多种关系,且环内实体与环外实体有直接路径。则通过将环路拆分成子图的方式来处理。其中一个子图包含表示主要关系,另一个子图由一个标识节点和直接关系节点来组成。标示节点属于在简化的模式图G’中出度为0,且在G”环路上的节点集合。如果标识节点v∈VREL,则选择它关联的一个实体节点作为标识节点。如果该实体节点也是另一个子图的标识节点,则需要标识节点的组合来实现区分。如图6所示“Module_config”同时成为两个子图的标识节点,则需要附加可区分两个子图的实体来作为标识节点。图中“Blocks”和“Files”满足条件,也就是只有用户关键词中包含“Blocks”或“Files”的查询才会命中图6中下方的子图。
③数据库视图可以看成是一个子图,来加速查询。
④如果环路可以用统一的公式来处理,比如:短连接路径优先,边赋权情况下的最小权值优先等,则该问题转化成一个赋权问题。
⑤如果环路上无多角色实体,或者判断可采用赋权来解决,则分析算法结束。
完成分析后,我们的新查询引擎将包含数据库模式的模拟图,别名表,以及所有节点和边的映射关系。
5)对于结构二义性,也就是不同的查询路径对应的相同的结果集的情况,比如多个分级关系的情况下,跨级别的连接得到和逐级连接相同的结果。此时通过对图的边赋以权值,这样用户查询的时候就能通过最小权值的方式(也就是最低耗费的方式)动态的生成连接。
模式图中边的赋权算法:
经过分析算法后环路G”,仍然有可能保留有结果相同的多路径形成的环路:除了上述④提到的情况保留的环路外,还有为了加速查询而建立shortcut连接所形成的环路(见图4中1、2、3形成的环路中,2为1、3关系的shortcut)。此时可通过对边赋值,然后进行最小权重树的查找算法来得到高效的连接路径。
赋权考虑的因素是:实现④中短路径优先策略,实现短路径优先下对层级关系的保持,连接的中间结果规模,表的记录数,索引建立情况等。
赋权函数:
对于节点Vi和Vj的边
wij=(1-1/log2(4+|Ri|+s(Rj,j1)*|Rj|))+X*(1-Index)
|R|是表的记录数;选择因子s(Rj+j1)是Rj在属性j1上的记录唯一值比例,如果该边是主键则为选择因子为1;Index根据在外键参与的属性上是否有索引,取值1/0;X是索引影响因子,用于最小权重树的查找算法;
层级关系的保持:见图4所示,应保证:
1>三者中任选两者时,都选直接路径:即1,2,3中任意边都小于另外两边之合。
2>三者都选中时保持层级关系的连接:即边权重2>1,2>3。
优先公式:
1>保证“datasets_config”查询时,选择6,7;“file_config”查询时,选择4,5。
2>保证层级关系,比如同时有“dataset,files,config”时,选择“file_config”。即4+5<6+7。
连接方式的补充:
除了内连接外,还有外连接,在配置文件,通过制定哪些[实体/属性]属于“LEFT OUTJOIN”来确定外连接。也就是这些实体对属性表的连接是通过外连接来获得的。
二,SQL查询语言到数据库的动态链接算法。
之前有工程采用单源点最短路径算法(Dijkstra),通过寻找两个节点间最小权重的路径,来解决两个节点之间多路径的情况。但是该方法没有给出多个节点的解决办法,而从图中计算多节点的权重合最小的连接树,是STP问题(Steiner Tree Problem),它是已知的一种典型的NP完全问题。
解决STP问题的算法有两类,一类是精确求解,一类是近似求解。本发明给出了两类的经典算法,以及针对本系统的赋值的近似解法,并在性能上做了分析比较(设K个关键词节点,模式图上N个节点,E条边)。
1、精确求最优解的动态规划算法(MST):
Dreyfus,Wagner给出了动态规划算法的实现,子问题如下划分,若K个关键词节点的集合为Y,计算原问题Y就等价于计算K-1个关键词的子问题。即任意一个X含K个关键词,且v∈V,求解满足组成Y的(X∪v)。并分析了复杂度为O(N3/2+N2*(2k-1-k-1)+N*(3k-1-2k+3)/2)。
2、基于最小生成树的近似算法:
算法的思想是:首先,基于给定顶点集的构造一个完全图G’,边长为原图G中顶点之间最短路径的长度。然后构造G’的最小生成树(它的每条边对应于原图G中的一条最短路径),最后G’中的边还原为原图G最短路中的边,所得即为史坦那(Steiner)最小树的近似解。时间复杂度为O(K*N2)。
3、最小权重树的查找算法(MCST):
算法描述:寻找一个根节点,从这个根节点到每个关键词节点的路径形成一个的生成树。最小的连接数和最小权重都被评估。为了找到这个根节点,创建为每个关键词节点创建一个BFS(广度优先搜索)迭代器,迭代探索邻接节点。在一轮迭代中,每个迭代器遍历直接相邻的节点。如果有一轮结束时,发现了被所有迭代器都访问到的节点,则迭代停止,该节点为所求生成树的根节点。如果多个节点满足条件,则通过计算子树的权重和来选取最小子树的根节点作为最终所求的根节点。
这里我们也采用以经典近似算法得到的史坦那(Steiner)最小树的对应的权重和做比较,选择最优的路径。
算法复杂度分析如下:单个BFS迭代器遍历整个模式图的时间复杂度是O(N+E),K个BFS遍历O(K*(N+E))的复杂度。单个Traceback操作是从根到K中每个节点的逆向查找,最多需要O(K*E)次查找。Traceback最坏情况O(N*K*E),此时迭代器得到N个根节点。基于最小生成树的经典近似算法O(K*N2)最后复杂度是O(K*(N+E)+K*N*E+K*N2)=O(K*N*E)。
因此,本发明的独立贡献在于:1、针对查询语言SQL的模式图分析算法,2、根据用户输入的关键词动态生成SQL查询的算法,以及算法的性能测量。本系统借鉴了以实体为组织的查询语言SQL,吸取了之前研究的分析方法,对二义性的生成原因将其分为两类:语义二义性和结构二义性。在数据库模式图分析时消除语义二义性,在查询时动态解决结构二义性。
图7给出了算法性能测试结果,纵轴为时间(毫秒),横轴为查询节点数。MST根据节点数呈指数级的增长。在结果精度可以接受的情况下,应该优先使用MCST。
实现该查询方法的系统架构是:如图8所示,该查询系统是用户和数据库之间的中间层,接收用户的查询语言输入的关键词,内部通过动态转化成SQL语句对数据库进行查询,最终查询结果返回给用户。包括“用户查询语言”模块,用户关键词查询语言QL的输入;“查询分析器”模块,对用户查询语言进行语法分析的模块,对关键词和约束条件进行QL查询语义树的构建,如图9所示“Web服务器/命令行工具”模块,表明该查询系统提供Web和命令行两种查询接口;“新查询引擎”模块,包含数据库的模式的扩展图的图结构表示,节点表示数据库表,边表示数据库外键连接,通过解析查询语义树,生成一个SQL查询语义树,如图10所示;“分析工具”模块,对数据库模式图进行绘制,辅助用户应用分析算法(包括选定关键词,浏览模拟模式图,指定外连接列表等);“映射”模块,实现关键词和数据库模式的映射;“数据库管理其”模块,管理数据库的连链接,通过使用ORM(对象关系映射)工具来屏蔽数据库的差异,使之能应用在所有主流数据库(Database)上。
具体的实例:
以博物馆数据库为例,它包含员工(staff),工艺品(artegact),事件(event)的管理:如图11所示:
如果要执行的任务如下:
1.找到博物馆的名字和它对应的馆主名字;
2.找到生于1990年之后,且在“国家工艺博物馆”工作的员工;
3.找到1990年后制作的工艺品,它以”Modern Art”命名。
需要将一组需要查询的关键词发布给用户知晓:
museum(博物馆),department(部门),staff(员工),artifact(工艺品),event(事件),director(馆主)。
之后用户可以执行如下查询:
1.查询博物馆.名字,博物馆.馆主
2.查询员工条件员工.生日>=1990-01-01且博物馆=”国家工艺博物馆”
3.查询工艺品条件工艺品.时间>=1990且展览.名称=”现代艺术”
系统将用户查询转化成正确的SQL语句来完成查询。

Claims (4)

1.一种关系数据库的关键词查询方法,其特征在于,通过下述过程实现:
1)针对特定数据库,查询系统为用户提供一系列查询的关键词;
2)用户查询时输入关键词,系统对关键词进行组合;
3)系统实现关键词组合到数据库查询语言SQL的关联映射;
4)通过执行SQL查询语言动态链接到数据库,实现数据的精确查询。
2.根据权利要求1所述的关系数据库的关键词查询方法,其特征在于,在从关键词组合到数据库查询语言SQL的映射步骤中,首先要对数据库模式图进行解析,保证解析后的数据库模式图提供的映射无歧义,解析过程包括:
1)对数据库进行分析,选择关键词和映射
由实体KENT和相应的属性KATTR构成关键词,关键词集合K=KENT∪KATTR,与数据库中的表建立连接关系,数据库中的表和表间的关系构成一个模式图G=(V,E),V表示表集,E表示关系集;表集是数据库表的集合,包括内容有:实体VENT,关联VREL,属性VATTR,记为V=VENT∪VREL∪VATTR,关系集是外键集合,且外键引用的是主码,包括内容有:关联EREL,属性EATTR,记为E=EREL∪EATTR
设属性集合为C=(V,A),A是每个V上的属性,
映射函数如下所示:
即对于任意的关键词k,map函数能够将其映射为对应的属性c;
即对于任意的关键词k,mapv函数能够将其映射为对应的表v;
mape : { &Exists; v &Element; V ENT | v = mape ( k ) , &ForAll; k &Element; K } , 即对于任意的关键词k,mape函数能够将其映射为对应的表v。
辅助函数outdegree(v)计算有向图G上节点v的出度;辅助函数left(e),right(e)计算有向图G边e的起始节点;
VENT=mapv(KENT),即实体关键词通过mapv函数映射为实体表;
V ATTR = mapv ( K ATTR ) - V ENT - { &Exists; v &Element; V | outdegree ( v ) &NotEqual; 0 } , 即属性关键词通过mapv函数映射为表集,从该表集中去除实体表集和出度不为0的表集,就得到属性表集;
VREL=V-(VENT∪VATTR),关联表集可以通过所有表集排除实体表集和属性表集获取到;
E ATTR = { &Exists; e &Element; E | mapv ( left ( e ) ) &Element; V ATTR } , 即对于每一个外键,如果它的起点位于属性表集,则该外键就属于关系集;
EREL=E-EATTR
2)解决属性映射中的递归关系造成的多角色问题,包括递归二义性的检测和消除,方法为:
a>如果有符合从一个表指向另一个表的两条不同的边,则存在递归二义性第一种类型,通过建立别名表,引入4个新节点和4条新边可表示出这两种不同的关系,同时进行旧节点的删除;
b>如果有符合从一个表指向自身,则存在递归二义性第二种类型,同样通过重命名表消除;
3)根据实体和属性的映射,将模式图中的点集和边集进行分类,从模式图中去掉,从而实现模式图的简化;
4)消除连接中存在的语义二义性,方法有如下三种形式:
a>重命名:将实体根据角色进行重命名,用户查询时指定了角色,也就消除了语义二义性;
b>子图划分:将不同角色的实体划分到不同的子图中,这样角色的选择转化成子图选择的问题,通过选择标识节点,来限定出现该节点的查询才会映射到该子图上,从而实现与其它子图的甄别;
c>赋权:将模式图的边赋权,根据的连接路径的权值选择合适的路径;
5)对于结构二义性的解决方法是:通过对模式图的边赋以权值,用户查询的时候就能通过最小权值的方式生成连接,模式图中边的赋权算法:
赋权函数:
对于节点Vi和Vj的边
wij=(1-1/log2(4+|Ri|+s(Rj,j1)*|Rj|))+X*(1-Index)
|Ri|、|Rj|是表的记录数;选择因子s(Rj+j1)是Rj在属性j1上的记录唯一值比例,如果该边是主键则为选择因子为1;Index根据在外键参与的属性上是否有索引,取值1或0;X是索引影响因子,用于最小权重树的查找算法。
3.根据权利要求2所述的关系数据库的关键词查询方法,其特征在于:步骤3)中,模式图简化方法是:
建立属性链接路径表,记录每个KATTR对应的从mape(KENT)实体表到mapv(KATTR)属性表的路径,通过去除属性节点得到简化的核心关系图。
4.根据权利要求1所述的关系数据库的关键词查询方法,其特征在于,SQL查询语言到数据库的动态链接算法有如下几种,选择其一:
1)精确求最优解的动态规划算法-MST算法,
2)基于最小生成树的近似算法,
首先,基于给定顶点集的构造一个完全图GF,边长为原图G中顶点之间最短路径的长度,然后构造GF的最小生成树,它的每条边对应于原图G中的一条最短路径,最后GF中的边还原为原图G最短路中的边,所得即为史坦那最小树的近似解;
3)最小权重树的查找算法-MCST算法,
寻找一个根节点,从这个根节点到每个关键词节点的路径形成一个的生成树,最小的连接数和最小权重都被评估;为了找到这个根节点,创建为每个关键词节点创建一个广度优先搜索迭代器,迭代探索邻接节点;在一轮迭代中,每个迭代器遍历直接相邻的节点,如果有一轮结束时,发现了被所有迭代器都访问到的节点,则迭代停止,该节点为所求生成树的根节点;如果多个节点满足条件,则通过计算子树的权重和来选取最小子树的根节点作为最终所求的根节点;
采用以经典近似算法得到的史坦那最小树的对应的权重和做比较,选择最优的路径。
CN201510025569.8A 2015-01-19 2015-01-19 一种关系数据库的关键词查询方法 Pending CN104573039A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510025569.8A CN104573039A (zh) 2015-01-19 2015-01-19 一种关系数据库的关键词查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510025569.8A CN104573039A (zh) 2015-01-19 2015-01-19 一种关系数据库的关键词查询方法

Publications (1)

Publication Number Publication Date
CN104573039A true CN104573039A (zh) 2015-04-29

Family

ID=53089101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510025569.8A Pending CN104573039A (zh) 2015-01-19 2015-01-19 一种关系数据库的关键词查询方法

Country Status (1)

Country Link
CN (1) CN104573039A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547817A (zh) * 2016-09-28 2017-03-29 昆明理工大学 一种针对环境法律法规的查询方法
CN106776502A (zh) * 2016-12-16 2017-05-31 武汉大学 复杂地理实体快速查询的空间语义模式图构建及搜索方法
CN107402927A (zh) * 2016-05-19 2017-11-28 上海斯睿德信息技术有限公司 一种基于图模型的企业关联关系拓扑建立方法及查询方法
CN107526730A (zh) * 2017-08-29 2017-12-29 惠州Tcl移动通信有限公司 一种翻译数据的管理方法、存储介质及电子设备
CN107798146A (zh) * 2017-12-01 2018-03-13 江苏理工学院 一种基于子图近似同构的学习资源本体匹配方法
CN107886107A (zh) * 2017-09-26 2018-04-06 赵淦森 一种大数据的融合方法、系统和装置
CN108415981A (zh) * 2018-02-09 2018-08-17 平安科技(深圳)有限公司 数据维度生成方法、装置、设备以及计算机可读存储介质
CN109117429A (zh) * 2017-06-22 2019-01-01 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN109300551A (zh) * 2017-06-16 2019-02-01 东华软件股份公司 临床诊疗知识获取方法及装置
CN109582698A (zh) * 2017-09-29 2019-04-05 上海宽带技术及应用工程研究中心 多个连续top-k关键词查询结果更新方法、系统、存储介质及终端
CN110674359A (zh) * 2019-09-03 2020-01-10 中国建设银行股份有限公司 多场景展示关系图谱的方法及系统
CN111159316A (zh) * 2020-02-14 2020-05-15 北京百度网讯科技有限公司 关系型数据库查询方法、装置、电子设备及存储介质
CN111324628A (zh) * 2020-02-20 2020-06-23 山东爱城市网信息技术有限公司 一种基于Spark SQL的统一SQL查询方法
CN112783952A (zh) * 2021-03-16 2021-05-11 浪潮云信息技术股份公司 一种基于电子公文关键词查询构建结果集的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071730A1 (en) * 2006-09-14 2008-03-20 Roland Barcia Method and Apparatus to Calculate Relational Database Derived Fields During Data Modification
CN102541966A (zh) * 2010-12-30 2012-07-04 国际商业机器公司 用于验证数据库系统正确性的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071730A1 (en) * 2006-09-14 2008-03-20 Roland Barcia Method and Apparatus to Calculate Relational Database Derived Fields During Data Modification
CN102541966A (zh) * 2010-12-30 2012-07-04 国际商业机器公司 用于验证数据库系统正确性的方法和装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
姬慎达: "关系数据库中基于知识库的Top-N关键词查询", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
林子雨等: "基于关系数据库的关键词查询", 《JOURNAL OF SOFTWARE》 *
梁栋等: "CMS实验中关系数据库的精确关键词查询", 《计算机工程》 *
范举: "关键词查询的推荐技术研究", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402927A (zh) * 2016-05-19 2017-11-28 上海斯睿德信息技术有限公司 一种基于图模型的企业关联关系拓扑建立方法及查询方法
CN106547817A (zh) * 2016-09-28 2017-03-29 昆明理工大学 一种针对环境法律法规的查询方法
CN106547817B (zh) * 2016-09-28 2019-11-08 昆明理工大学 一种针对环境法律法规的查询方法
CN106776502A (zh) * 2016-12-16 2017-05-31 武汉大学 复杂地理实体快速查询的空间语义模式图构建及搜索方法
CN106776502B (zh) * 2016-12-16 2017-11-10 武汉大学 复杂地理实体快速查询的空间语义模式图构建及搜索方法
CN109300551A (zh) * 2017-06-16 2019-02-01 东华软件股份公司 临床诊疗知识获取方法及装置
US10885046B2 (en) 2017-06-22 2021-01-05 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for querying a database
CN109117429B (zh) * 2017-06-22 2020-09-22 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN109117429A (zh) * 2017-06-22 2019-01-01 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN110402437B (zh) * 2017-06-22 2023-02-21 北京嘀嘀无限科技发展有限公司 用于查询数据库的系统和方法
CN110402437A (zh) * 2017-06-22 2019-11-01 北京嘀嘀无限科技发展有限公司 用于查询数据库的系统和方法
CN107526730B (zh) * 2017-08-29 2022-03-25 惠州Tcl移动通信有限公司 一种翻译数据的管理方法、存储介质及电子设备
CN107526730A (zh) * 2017-08-29 2017-12-29 惠州Tcl移动通信有限公司 一种翻译数据的管理方法、存储介质及电子设备
CN107886107B (zh) * 2017-09-26 2021-03-30 赵淦森 一种大数据的融合方法、系统和装置
CN107886107A (zh) * 2017-09-26 2018-04-06 赵淦森 一种大数据的融合方法、系统和装置
CN109582698B (zh) * 2017-09-29 2021-08-13 上海宽带技术及应用工程研究中心 多个连续top-k关键词查询结果更新方法、系统、存储介质及终端
CN109582698A (zh) * 2017-09-29 2019-04-05 上海宽带技术及应用工程研究中心 多个连续top-k关键词查询结果更新方法、系统、存储介质及终端
CN107798146A (zh) * 2017-12-01 2018-03-13 江苏理工学院 一种基于子图近似同构的学习资源本体匹配方法
CN108415981B (zh) * 2018-02-09 2020-10-09 平安科技(深圳)有限公司 数据维度生成方法、装置、设备以及计算机可读存储介质
CN108415981A (zh) * 2018-02-09 2018-08-17 平安科技(深圳)有限公司 数据维度生成方法、装置、设备以及计算机可读存储介质
CN110674359A (zh) * 2019-09-03 2020-01-10 中国建设银行股份有限公司 多场景展示关系图谱的方法及系统
CN110674359B (zh) * 2019-09-03 2022-07-05 中国建设银行股份有限公司 多场景展示关系图谱的方法及系统
CN111159316A (zh) * 2020-02-14 2020-05-15 北京百度网讯科技有限公司 关系型数据库查询方法、装置、电子设备及存储介质
CN111324628A (zh) * 2020-02-20 2020-06-23 山东爱城市网信息技术有限公司 一种基于Spark SQL的统一SQL查询方法
CN112783952A (zh) * 2021-03-16 2021-05-11 浪潮云信息技术股份公司 一种基于电子公文关键词查询构建结果集的方法

Similar Documents

Publication Publication Date Title
CN104573039A (zh) 一种关系数据库的关键词查询方法
CN102693310B (zh) 一种基于关系数据库的资源描述框架查询方法和系统
Meimaris et al. Extended characteristic sets: graph indexing for SPARQL query optimization
CN109992786B (zh) 一种语义敏感的rdf知识图谱近似查询方法
CN105302803B (zh) 一种产品bom差异分析与同步更新方法
CN105630881A (zh) 一种rdf的数据存储方法和查询方法
Xirogiannopoulos et al. Extracting and analyzing hidden graphs from relational databases
De Virgilio et al. R2G: a Tool for Migrating Relations to Graphs.
CN108681603B (zh) 数据库中快速搜索树形结构数据的方法、存储介质
US8082492B2 (en) Structured-document management apparatus, search apparatus, storage method, search method and program
CN106484815B (zh) 一种基于海量数据类sql检索场景的自动识别优化方法
Zhang et al. OIM-SM: A method for ontology integration based on semantic mapping
CN103699647A (zh) 一种字符串词典的索引方法及系统
KR20130064160A (ko) Rdf 데이터에 대한 sparql 질의 결과의 개체 관계 변형 시스템 및 그 방법
CN109992593A (zh) 一种基于子图匹配的大规模数据并行查询方法
CN108804580B (zh) 一种在联邦型rdf数据库中查询关键字的方法
CN103077216A (zh) 子图匹配装置及子图匹配的方法
CN114385670A (zh) 复杂产品变型设计的案例推理方法
CN114372174A (zh) 一种xml文档分布式查询方法及系统
CN106021306A (zh) 基于本体匹配的案例搜索系统
CN110032676A (zh) 一种基于谓词关联的sparql查询优化方法及系统
Maran et al. Alternative approaches to data storing and processing
CN107577752A (zh) 一种基于关键字的xml检索排序处理系统及方法
Chen et al. Mining schema matching between heterogeneous databases
Kruse et al. RHEEMix in the Data Jungle–A Cross-Platform ery Optimizer–

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150429