专利名称:一种关系-xml混合数据关键字查询方法
技术领域:
本发明与数据库管理系统相关,涉及数据库关键字查询领域,是一种与最小生成树算法相关的关系-XML双引擎数据库关键字查询处理方法。
背景技术:
数据库的关键字检索算法是指能够提供一种像信息检索一样简单的接口,即输入想要查询的关键词,即可返回所查询的数据,而不需要掌握SQL、XQuery、XPath等复杂的查询语言。对关系-XML混合数据进行关键字检索的需求驱动表现为:关系数据和XML数据在企业数据库管理过程中相互依存、互为补充;现有的数据库只提供关系或者XML数据的全文查询,没有体现数据库的结构性特征;现有的数据库通常只能管理关系数据或者XML数据,没有双引擎数据的关键字查询;掌握一门复杂的查询语言成本太高,数据库管理员不一定了解数据库的schema结构。因此,在针对关系-XML双引擎数据库时,提供一种像信息检索一样简单的接口,输入关键词即可返回相关的查询结果具有重要意义。数据库的关键字查询方法一般通过对数据库建立倒排索引,扫描倒排索引表,返回包含关键字的字段来实现的。关系数据的关键字查询通过返回包含关键字的最小生成树实现的;XML数据的关键字查询通过返回包含关键字的最小最低公共祖先节点实现的。目前与数据库的关键字查询算法的相关成果较多,其中比较经典的有BhalotiaG 和 Hulgeri A 等人在文献“Keyword searching and browsing in databases usingBANKS.1n:Proc.0f the 18th Int’ I Conf.0n Data Engineering.San Jose, CA.1EEEComputer Society, 2002.431-440”提出的算法,其主要特征是使用有向的数据图来进行关键字检索,对内存的大小有一定限制。Hristidis V在文献“DISCOVER:Keyword search inrelational databases.1n:Proc.0fthe28th IntJ I Conf.0n Very Large Data Bases.Hong Kong:Morgan Kaufmann Publishers, 2002.670-681.”结合SQL语句,使用模式图的方法对关系数据进行检索,在内存中存储空间较小,但在生成候选网络上耗费代价较大。LuoYi 和 Lin Xuemin 在文献“Spark:Top_k keyword query in relational databases[C]//Proc of the2007ACM SIGMOD Conf on Management ofData.New York ;ACM。2007:115_126”讨论了如何支持Top-k关键词搜索,提出了 Skyline算法和Blockline算法。Guo, L和Shao 在文献“XRANK:Ranked keyword search over XML documents.1n:Proc.ACM SIGMOD,PP.16-27(2003) ”提出的XML关键字检索算法,考虑XML文档的分层和超链接结构,将tf*idf评估机制引入XML查询结果相关性评估中,但没有考虑最小最低公共祖先节点的语义。LJ.Chen 和 Y.Papakonstantinou 在文献“Supporting top-k keyword search in xmldatabases.1n I⑶E,2010.”中讨论了对XML数据支持top-k检索。以上文献均是单独的对关系数据或者XML数据进行关键字查询,都从一定的角度满足了数据库关键字检索的需求,但目前并没有一个完善的设计可以解决关系-XML数据的关键字检索问题
发明内容
本发明针对关系-XML双引擎数据库的关键字查询问题,克服上述现有相应技术存在的不足,提出一种时间复杂度较低、召回率和准确率较高的关系-XML混合数据关键字查询方法,以辅助关系-XML双引擎数据的管理。本方法是为与CoSQLRX关系-XML双引擎数据库类似数据库提供关键字查询方法,以CoSQL RX数据库为例,此类数据库本身对关系数据和XML数据的存储是逻辑上共同存储,物理上分开存储。即在关系表中,实际存储的是XML文档的标识符XID,通过XID和XML目录表找到XML文档实际存储的物理位置。DBLP数据集是存储论文及作者的关系,在关系表中,增设一个XML类型的列,命名为info列,用以存储作者年龄、所在地、职业和兴趣爱好等信息;该列的内容由XMark自动生成,然后导入关系表中的info列中。本查询方法读取数据库中的数据后,通过json解析出关系表的主外键联系,对数据建立倒排索引。本发明首次提出这种查询方法。本发明的技术方案为:关系-XML混合数据查询处理方法,其步骤为:I)本查询方法是为CoSQL RX关系-XML双引擎数据库提供关键字查询。CoSQL RX数据库本身对关系数据和XML数据的存储是逻辑上共同存储,物理上分开存储。即在关系表中,实际存储的是XML文档的标识符XID,通过XID和XML目录表找到XML文档实际存储的物理位置。本查询方法读取CoSQL RX数据库中的数据,为解析数据和关键字查询数据做准备。2) json的中文名称是javascript对象标识法,本方法已知数据库的模式信息(即schema信息,记录关系表间的主外键关系);在jason中根据数据库的schema信息,从CoSQL RX数据库中读取数据,将关系表中的每个元组作为一个节点,关系表间的主外键联系作为边,生成元组数据图。元组数据图的每个节点是关系表的一个元组,节点之间的联系表不关系表间的主外键关系。3)对CoSQL RX数据库中的关系数据与XML数据分别进行倒排索引;在I)中对数据结构进行了说明。倒排索引是要在查询之前进行的,将数据中的字符串按其位置信息存放起来,便于查询。4)针对输入的关键字,在倒排索引中查找关键字出现的对应位置。若出现在某个元组中,则标记该元组为候选节点;若出现在某个XML文档中,则相当于出现在XML文档所在元组,标记该元组为候选节点;5)根据4)计算的候选节点和2)中得到的元组数据图,在元组数据图中查找包含候选节点的最小生成树;6)若关键字出现在XML文档中,则在完成5)后,在XML文档中查找包含关键字的最小最低公共祖先节点;7)返回包含查询关键字结构信息的关系-XML数据查询结果,并根据相关度对结果进行排序。进一步的,所述关系-XML数据存储方案为:逻辑上共同存储,物理上分开存储;关系数据为主,XML数据为辅,XML数据可能是关系表中的某一列。进一步的,所述最小生成树算法即为启发式的从底向上的Steiner树算法。进一步的,所述最小最低公共祖先节点算法为优化后的SLCA算法,对查询结果优化,并不返回公共祖先节点及其所有子树,进行剪枝操作,只返回包含关键字的节点的直系祖先节点。进一步的,所述关键字为一个或多个字符串。本发明主要涉及关系-XML混合数据的关键字匹配,主要内容包括:1.关系-XML数据的存储与索引关系数据与XML数据在物理上分开存储,逻辑上共同存储。在关系表中,实际存储的是XML文档的标识符XID,通过XID和XML目录表找到XML文档实际存储的物理位置。把关系表中的每个元组作为一个节点,关系表之间的主外键联系作为边,生成元组数据图。分别对关系数据和XML数据建立倒排索引。并且对XML文档树进行Dewey编码,对XML文档树进行Dewey编码是便于后来查找在XML文档中包含查询关键字的最小最低公共祖先节点SLCA,最好是用这种编码。倒排索引即是统计某个字符串在数据中出现的各个位置。本步骤对关键字检索的效率起决定性作用,索引的建立可加快检索的效率。本步骤的关键在于根据关系表的主外键联系,建立元组数据图;并对关系-XML数据进行倒排索引,提高关键字匹配的效率。2.数据图的最小生成树算法这一步骤是采用启发式的最小生成树算法。在倒排索引中,查询关键字命中关系表的某个元组的某一列时,则标记该元组为候选节点;通过标记出的候选节点,找到命中所有查询关键字的候选节点在元组数据图中的最小生成图。返回最小生成树即可。若查询关键字命中元组中的列属于XML类型,还需要再在该XML文档中执行SLCA-plus算法,返回命中关键字的最小最低公共祖先节点。本步骤是关键字匹配算法的核心部分,可返回查询关键字的结构信息,提高查询结果的准确率和相关度。本步骤通过在最小生成树算法内嵌入了 SLCA-plus算法,实现对关系-XML混合数据进行查询。 3.SLCA-plus 算法本步骤处理的数据集是查询关键字所命中的XML文档树,当关键字命中关系表中的XML文档列时,并不返回整个XML文档,而是返回包含所有关键字的公共祖先节点SLCA及公共祖先节点的子节点。本步骤所米用的SLCA-plus 算法(参考文献“XRANK:Ranked keyword searchover XML documents.1n:Proc.ACM SIGMOD, pp.16-27 (2003) ”)得到包含所有关键字的最小公共祖先节点,在返回查询结果时,并不返回以最小公共祖先节点SLCA为根的整棵子树,我们会进行剪枝步骤,只返回以SLCA为根的子树中命中关键字的节点的直系祖先节点。在有些情况下,包含查询关键字的最小公共祖先节点可能是整个XML文档的根节点,若返回整个XML文档是没有价值的,因此对查询结果进行剪枝,只返回命中关键字的节点的直系祖先节点。本步骤可以提高查询结果的可读性和有效性。4.查询结果的相似度
查询结果的相似度排序包含两部分:元组数据图的最小生成树的相似度排序和XML文档的SLCA的排序。最小生成树的相似度排序,采用如下计分公式,包含的关键词越多越好,元组越少越好:
权利要求
1.一种关系-XML混合数据关键字查询方法,其步骤为: 1)根据数据库的模式信息从数据库中读取数据,其中将关系表中的每个元组作为一个节点,关系表间的主外键联系作为边,生成元组数据图;所述数据库为对关系数据和XML数据的存储是逻辑上共同存储,物理上分开存储,数据库的关系表中实际存储的是XML数据的标识符XID,通过XID和XML目录表确定XML数据实际存储的物理位置; 2)对所述数据库中的关系数据与XML数据分别进行倒排索引; 3)在所述倒排索引中查找输入关键字出现的对应位置;若出现在某个元组中,则标记该元组为候选节点,然后在所述元组数据图中查找包含该候选节点的最小生成树;若出现在某个XML文档中,则将该XML文档所在元组标记为候选节点,然后在所述元组数据图中查找包含该候选节点的最小生成树,再在该XML文档中查找包含关键字的最小公共祖先节占.4)返回包含查询关键字结构信息的关系-XML数据查询结果。
2.如权利要求1所述的方法,其特征在于返回所述查询结果时,对以所述最小公共祖先节点为根的文档树进行处理,只返回以所述最小公共祖先节点为根的文档树中命中关键字的节点的直系祖先节点,即返回包含关键字的最小最低公共祖先节点。
3.如权利要求2所述的方法,其特征在于根据相关度对所述查询结果进行排序,包括最小生成树的相似度排序和XML文档的最小最低公共祖先节点相似度排序;其中, 最小生成树的相似度排序采用的公式为:
4.如权利要求1或2或3所述的方法,其特征在于对所述数据库中的XML数据进行Dewey编码。
5.如权利要求1或2或3所述的方法,其特征在于所述数据库为CoSQLRX关系-XML双引擎数据库。
6.如权利要求5所述的方法,其特征在于采用javascript对象标识法根据CoSQLRX关系-XML双引擎数据库的schema信息,从数据库中读取数据,生成所述元组数据图。
7.如权利要求1或2或3所述的方法,其特征在于所述数据库采用以关系数据为主、XML数据为辅的方式对数据进行存储。
8.如权利要求1或2或3所述的方法,其特征在于采用启发式的从底向上的Steiner树算法生成所述最小生成树;采用SLCA-plus算法得到包含所有关键字的最小公共祖先节点。
9.如权利要求1或2或3所述的方法,其特征在于所述关键字为一个或多个字符串。
全文摘要
本发明公开了一种关系-XML混合数据关键字查询方法。本发明为1)根据数据库的模式信息从数据库中读取数据,生成元组数据图;数据库为对关系数据和XML数据是逻辑上共同存储,物理上分开存储;2)对关系数据与XML数据进行倒排索引;3)查找输入关键字出现的对应位置;若在某个元组中,则标记该元组为候选节点,然后在元组数据图中查找包含该候选节点的最小生成树;若在某个XML文档中,则将该文档所在元组标记为候选节点,然后在元组数据图中查找包含该候选节点的最小生成树,再在该XML文档中查找包含关键字的最小公共祖先节点;4)返回包含查询关键字结构信息的关系-XML数据查询结果。本发明实现了混合数据的关键字查询。
文档编号G06F17/30GK103150404SQ20131010490
公开日2013年6月12日 申请日期2013年3月28日 优先权日2013年3月28日
发明者李树节, 陈薇, 王腾蛟, 杨冬青 申请人:北京大学