一种关系数据库管理系统与xml数据库管理系统之间数据交换的方法

文档序号:6371348阅读:139来源:国知局
专利名称:一种关系数据库管理系统与xml数据库管理系统之间数据交换的方法
技术领域
本发明涉及计算机技术领域,特别涉及一种关系数据库管理系统与XML数据库管理系统之间数据交换的方法。
背景技术
XML(全称 Extensible Markup Language),是一种专门为 internet 而设计的一种标记语言,且由于其具有有效的表达各种信息、数据和使各种应用协同工作的能力,业已成为数据发布和数据交换的事实标准,因此,XML在近几年得到了发展和广泛的应用。XML的 重点不在于数据的形式本身,而在于管理数据信息,因此,XML使得不同数据库模式的统一成为可能,为异构数据库的集成问题提供了途径。XML数据库管理系统(XMLDBMS)也是近年来发展迅速的一种新型的数据库管理系统,它以存储和检索符合W3C标准的XML文档数据为目标的数据库管理系统,并且可以更新XML文档。由于它存储的对象是XML文档库,因此XMLDBMS本质上就是一种XML文档库。XML数据库管理系统(XMLDBMS)是近年来快速发展的一种新型的数据库管理系统(DBMS),它存储和检索的数据是XML文档,并且支持更新XML文档。随着XML标准被越来越多的行业采纳为数据交换标准,XML数据的管理(存储,检索,更新等)需求会持续快速增长,特别是XMLDBMS比关系数据库管理系统更加适合处理文本类数据和XML文档数据。而关系数据库管理系统(关系数据库管理系统)由于已经在IT行业广泛应用了几十年,不论在市场还是技术方面其主导地位不可撼动,并且相比XMLDBMS,关系数据库管理系统在处理关系数据时更加有优势。所以未来的DBMS市场上面,XMLDBMS将与关系数据库管理系统(关系数据库管理系统)长期并存。在各种企业和其他单位中,将出现XMLDBMS和关系数据库管理系统长期共存并且协同工作的状况。查询引擎是数据库管理系统(DBMS)中的核心子系统,由于XML是典型的半结构化数据,对XML数据的查询要求不同于传统数据库,在查询时不仅要对数据库中的数值进行查询,而且要对XML文档的结构和数据之间的关系进行查询。随着XML相关技术的深入研究,XML查询已经具备了坚实的技术基础在此基础上,W3CWorldWideWebConsortium于2001年12月提出了 XML查询语言规范工作草案-XQuery语言,迄今为止,XQuery语言一直在不断的发展中。W3C为XQuery查询语言定义的数据模型成为XQuery Data Model (XDM),它是一种基于序列的数据模型,即XQuery中任意数据都是一个序列,序列由若干个有序的项目(item)的组成;一个item是一个原子值或者一个节点;一个节点是XML文档的7种节点之一(文档节点,元素节点,属性节点,文本节点,名字空间节点,注释节点,处理指令节点)。在本XMLDBMS中,使用节点数据表存储文档节点和元素节点,其余5种节点存储在其父亲元素节点的数据行中。目前,由于大量已部署在用户机房的传统的关系数据库管理系统并没有Native的XML数据管理能力也完全不理解XMLDBMS,所以用户无法在关系数据库管理系统内部从XMLDBMS中推或者拉数据;但是反过来却可以在XMLDBMS中推数据到关系数据库管理系统或者从关系数据库管理系统拉数据到XMLDBMS中,这需要XMLDBMS支持与关系数据库管理系统进行数据交换的功能。为了让XMLDBMS与关系数据库管理系统协同工作,需要一种在这两种DBMS系统之间进行数据交换的机制
发明内容
为解决上述问题,本发明技术方案提供的一种关系数据库管理系统与XML数据库管理系统之间数据交换的方法,包括步骤SI :在所述XML数据库管理系统的查询引擎中设置一内置函数;步骤S2 :通过所述内置函数将所述XML数据库管理系统与将所述关系数据库管理系统建立连接,并通过所述内置函数将XML数据库管理系统的数据查询和更新请求发送至所述关系数据库管理系统中;步骤S3 :所述关系数据库管理系统将请求结果返回至所述XML数据库管理系统;步骤S4:所述XML数据库管理系统将所述的请求结果转换成为具有预先设定的固定格式的XML文档片段;步骤S5 :解析所述的XML文档片段。可选地,所述的内置函数通过连接字符串将XML数据库管理系统与将所述关系数据库管理系统连接。可选地,所述连接字符串包括目标关系数据库管理系统的URL/IP+端口号、数据库名、用户名、密码信息。可选地,在所述步骤S2中,所述XML数据库管理系统的数据查询和更新请求以SQL语句的形式发送至所述关系数据库管理系统。可选地,在所述步骤S3中,所述关系数据库管理系统将请求结果以关系表的形式返回至所述XML数据库管理系统。可选地,在所述步骤S4中,通过所述内置函数将所述请求结果转换成为XML文档片段。可选地,所述步骤S5具体为将所述XML文档片段送至XML文档解析器,所述XML文档解析器将所述XML文档片段拆分成XDM元素节点,并将所述的XDM元素节点存储至一临时节点表中。可选地,所述的具有固定格式的XML文档片段为若干名为row的XML元素节点组成的XDM,所述的row节点名称固定,内部包括若干子元素节点,所述row节点对应于所述关系表中的一行,所述row节点的子元素节点对应于所述关系表中的一行中的一列。可选地,所述的子元素节点有且仅有一名为“type”的属性,所述属性值是所述关系表对应列的数据类型。可选地,所述的子元素节点有且仅有一文本子节点,且所述每个子节点的名称与所述关系表各列的列名相对应。与现有技术相比,上述技术方案具有下优点本发明的技术方案可以让数据在关系数据库管理系统与XML数据库管理系统之间进行交换,并且更新管理数据库管理系统中的数据,是的用户可以在保留原有的基于关系数据库管理系统的前提下,引入XML数据库管理系统作为新的信息系统的数据源,发挥新信息系统价值的同时保留了历史数据的和使用价值,同时保持了两种操作系统的互操作性。


图I是本发明实施方式的关系数据库管理系统与XML数据库管理系统之间数据交换的方法的流程图。图2是本发明的实施方式的关系数据库管理系统与XML数据库管理系统之间数据交换的方法示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式
做详细的说明。在以下描述中阐述了具体细节以便于充分理解本发明。但 是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式
的限制。本领域的技术人员知道,关系数据库管理系统是管理关系数据库,并将数据组织为相关的行和列的系统,其业已在IT行业被广泛地加以利用。XML数据库管理系统主要处理和组织的是文本数据和XML文档数据。相比于XML数据库管理系统,关系数据库管理系统在组织和处理关系型数据时具有难以比拟的优势。但是,由于关系数据库管理系统没有本地的XML数据管理能力,无法实现两者之间相互的数据交换。为解决现有技术中的问题,本发明的发明人经过研究,提出了一种关系数据库管理系统与XML数据库管理系统之间数据交换的方法。参阅图1,图I是本发明实施方式的关系数据库管理系统与XML数据库管理系统之间数据交换的方法的流程图。本发明实施方式的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,包括步骤SI :在所述XML数据库管理系统的查询引擎中设置一内置函数;步骤S2 :通过所述内置函数将所述XML数据库管理系统与将所述关系数据库管理系统建立连接,并通过所述内置函数将XML数据库管理系统的数据查询和更新请求发送至所述关系数据库管理系统中中;步骤S3 :所述关系数据库管理系统将请求结果返回至所述XML数据库管理系统;步骤S4:所述XML数据库管理系统将所述的请求结果转换成为具有固定格式的XML文档片段;步骤S5 :解析所述的XML文档片段。参阅图2,图2为本发明的实施方式的关系数据库管理系统与XML数据库管理系统之间数据交换的方法示意图。下面将结合图2具体介绍本发明的实施方式的一种关系数据库管理系统与XML数据库管理系统之间数据交换的方法的优选的实施方式。首先,进入步骤SI :在XML数据库管理系统的查询引擎内核中实现一内置函数,所述内置函数用于接收两个参数连接字符串和SQL查询语句,并返回具有固定格式的XML文档片段。其中,连接字符串包括关系数据库管理系统的URL/IP+端口号,数据库名,用户名和密码等信息,以用于XML数据库管理系统使用关系数据库管理系统的连接协议(例如,ODBC或者其他特定的关系数据库管理系统的私有连接协议)与关系数据库管理系统连接。进入步骤S2 :通过所述内置函数将所述XML数据库管理系统与将所述关系数据库管理系统建立连接,并通过所述内置函数将XML数据库管理系统的数据查询和更新请求发送至所述关系数据库管理系统中;进入步骤S3 :所述关系数据库管理系统将请求结果返回至所述XML数据库管理系统。其中,关系数据库管理系统以关系表的形式返回的请求结果(单一的原子数据也将作为关系表处理),因此,需要将关系表转换成为XML数据库管理系统可以识别的XML数据。进入步骤S4:所述XML数据库管理系统将所述的请求结果转换成为具有固定格式的XML文档片段。其中,XML数据库管理系统中的内置函数将关系表转换成为具有预先设定的固定格式的XML文档片段。所述内置函数返回的具有固定格式的XML文档片段如下
<row>
〈fieldI type=,,typel”>...</fieldl>
<field2 type=,,type2”>. </field2>
... more fields follow here…
</row>
‘..more rows follow here. ■ 通过上述的XML文档我们可以看出内置函数返回的是若干名称为row的XML元素节点组成的序列(XQuery数据模型);所述的各个row节点对应于关系数据库管理系统返回的结果的关系表的一行,且row节点的名称是固定的;row节点含有若干个子元素节点,分别对应于关系数据库管理系统返回的结果的关系表中相应行的一个列(字段);row节点的子元素节点有且仅有一名为” type”的属性,其属性值是关系数据库管理系统返回的关系表的对应列的数据类型;row节点的子元素节点有且只有一个文本子节点,不再含有其他任何子节点。同时,应该指出的是,row节点的子元素节点的名称在上文中使用” fieldl”,“field2”等来表示,但是事实上它们的真实名称分别对应于关系数据库管理系统返回的结果的关系表的各列的列名。苦关系表的某行的某列fieldX为NULL,则表示该row元素节点不含有fieldX子元素节点;如果返回结果某列没有名称,那么使用默认的fieldX这种形式的字符串作为名称。这样,即使返回的是一个原子值,比如SQL的数据更新/删除/插入操作的返回值,存储过程调用的返回值,以及返回单个原子值的查询操作的返回值,也可以使用上述的格式进行表示。当一个字段fieldX 的 type 属性值是 string/text/clob/varchar/char (n)时(即这个字段的数据类型是字符串),位于〈fieldX〉和〈/fieldX〉之间的所有字符都被作为字符串的字符。其中,在本发明的实施方式中,将关系数据库管理系统返回的结果的关系表转换为上述格式的XML文档片段的方法就是按照该格式描述关系表的逐行逐字段进行转换。例如,表I所不的关系表表I
权利要求
1.一种关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,包括 步骤SI :在所述XML数据库管理系统中设置一内置函数; 步骤S2 :通过所述内置函数将所述XML数据库管理系统与将所述关系数据库管理系统建立连接,并通过所述内置函数将XML数据库管理系统的数据查询和更新请求发送至所述关系数据库管理系统中; 步骤S3 :所述关系数据库管理系统将请求结果返回至所述XML数据库管理系统; 步骤S4 :所述XML数据库管理系统将所述的请求结果转换成为具有预先设定固定格式的XML文档片段; 步骤S5 :解析所述的XML文档片段。
2.如权利要求I所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,所述的内置函数通过连接字符串将XML数据库管理系统与将所述关系数据库管理系统连接。
3.如权利要求2所述的关系数据库管理系统与数据库管理系统之间数据交换的方法,其特征在于,所述连接字符串包括目标关系数据库管理系统的URL/IP+端口号、数据库名、用户名、密码信息。
4.如权利要求I所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,在所述步骤S2中,所述XML数据库管理系统的数据查询和更新请求以SQL语句的形式发送至所述关系数据库管理系统。
5.如权利要求I所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,在所述步骤S3中,所述关系数据库管理系统将请求结果以关系表的形式返回至所述XML数据库管理系统。
6.如权利要求I所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,在所述步骤S4中,通过所述内置函数将所述请求结果转换成为XML文档片段。
7.如权利要求I所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,所述步骤S5具体为将所述XML文档片段送至XML文档解析器,所述XML文档解析器将所述XML文档片段拆分成XDM元素节点,并将所述的XDM元素节点存储至一临时节点表中。
8.如权利要求I所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,所述的具有固定格式的XML文档片段为若干名为row的XML元素节点组成的XDM,所述的row节点名称固定,内部包括若干子元素节点,所述row节点对应于所述关系表中的一行,所述row节点的子元素节点对应于所述关系表中的相应行中的一列。
9.如权利要求8所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,所述的子元素节点有且仅有一名为“type”的属性,所述属性值是所述关系表对应列的数据类型。
10.如权利要求8或9所述的关系数据库管理系统与XML数据库管理系统之间数据交换的方法,其特征在于,所述的子元素节点有且仅有一文本子节点,且所述每个子节点的名称与所述关系表各列的列名相对应。
全文摘要
本发明提供了一种关系数据库管理系统与XML数据库管理系统之间数据交换的方法。本发明的技术方案可以让数据在关系数据库管理系统与XML数据库管理系统之间进行交换,并且更新管理数据库管理系统中的数据,是的用户可以在保留原有的基于关系数据库管理系统的前提下,引入XML数据库管理系统作为新的信息系统的数据源,发挥新信息系统价值的同时保留了历史数据的和使用价值,同时保持了两种操作系统的互操作性。
文档编号G06F17/30GK102760164SQ20121019386
公开日2012年10月31日 申请日期2012年6月12日 优先权日2012年6月12日
发明者孙伟丰, 李书淦, 李泉, 李 浩, 程仁波, 罗正海, 赵伟, 郑程光 申请人:上海方正数字出版技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1