存储XML数据的方法、执行XML查询的方法及其装置制造方法及图纸

技术编号:4317516 阅读:304 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种基于简单路径在XML仓库中存储XML数据的方法,该XML仓库包括简单路径仓库和数据仓库,该方法包括:对XML文档中的每一个节点,生成用于唯一识别该节点的节点标识符;生成XML文档的简单路径;将简单路径存储到简单路径仓库中;以及以简单路径为索引将每一个简单路径中的每个节点的数据依次存储到数据仓库中,其中数据包括该节点的节点标识符和值。本方法使数据以简单路径的聚束的方式进行存储,并且一个简单路径的数据按照节点标识符的顺序进行存储。而且,本方法不需要XML文档的模式,可以处理无模式的XML数据,并且能够提高XML数据查询的性能。此外,还提供了基于简单路径在XML仓库中存储XML数据的装置以及在XML仓库中执行XML查询的方法和装置。

【技术实现步骤摘要】

本专利技术涉及XML数据的存储和XML查询的执行技术,具体地,涉 及基于简单路径在XML仓库中存储XML数据的方法和装置,以及在 XML仓库中执行XML查询的方法和装置。
技术介绍
大量XML文档通常存储在原生XML数据库的XML仓库中,或者存 储在关系数据库的XML数据类型的列中。通常,存储在同一个XML仓 库或是一个XML数据类型的列中的XML文档具有相似模式(schema )。 XML查询经常^皮用于从这些XML文档中获取信息。在大多数情况下,这 些信息是细小且分歉的。 一般地,XML查询使用基于XPath的语言,例 如,XQuery语言、XUpdate语言、XSLT语言等。XML查询的执行方案与XML数据的存储方案是相关的。以下是现有 的存储XML数据和执行XML查询的技术方案1. XML数据作为文件存储在文件系统中或者作为CLOB对^储在 关系数据库中。在这样的存储方案中,当查询或者更新XMLlt据时,必 须对XML文件或者CLOB对象进行解析,以获得所需的信息或者更新数 据,这样,需要花费大量的时间。2. XML数据的存储是基于XML模式文件或者文档类定义(DTD ) 文件。具体地,在该技术方案中,首先分析XML文件的模式文件,并创 建一组关系表,在这些关系表之间具有引用关系。与XML文件对应的XML 数据模型树的节点之间的层次和排序关系被映射成关系表之间的引用关 系,在关系表中还存储了节点的值。这样,XML文件被分解成关系表,并存储在关系数据库中。当使用XPath字符串查询XML数据时,将XPath 字符串转换为若干作用于这些关系表的SQL语句,执行这些SQL语句以 获得查询的结果,最后将这些查询结果序列化为最终的XML片段返回给 用户。然而,这种技术方案的问题在于实际的应用程序的XML模式很复 杂,因此,对XML文件的分解会导致出现大量的关系表和这些关系表之 间复杂的引用关系,从而造成查询非常复杂。而且,XML模式的变化要求 大量的数据库模式的维护,并且这种技术方案不能处理无模式的XML数 据。3. XML数据的存储不依赖于XML模式文件或DTD文件,也就是说, 该存储方案是模式无关的。具体地,使用一些标记方法来对XML文件的 节点加标签,例如基于Dewey排序的ORDPath、 DLN方法等,并将这些 标签与节点的值一起存储在磁盘上。这样,XML树的节点之间的层次和排 序关系可以通过比较它们的标签而容易地推导出。在这种技术方案中, XML数据的存储是基于标签的聚束,也就是说,XML文件是顺序存储的。 这样,当进行XML查询时,需要访问多个驻留有不同XML文件的磁盘 页,从而造成性能的降低。例如,假设在XML仓库中有10000个XML文件,每个XML文件是 4KB,而磁盘页的大小也是4KB。如果采用上述第3种存储方案,则这些 XML文件被顺序地存储在10000个磁盘页上,并且每个文件包括一个文章 的全部信息,诸如作者信息、文章的内容、发表时间等,图l示出了一个 XML树的例子。假J殳XML查询是"/article/author/name",即查询所有 作者的名字,那么需要访问10000个磁盘页,如果名字字段的大小不超过 64字节,则有10000*(4KB-64B )的无用数据被取出,浪费率达到98.44%, 从而使得XML查询的性能下降。
技术实现思路
本专利技术正A^于上述技术问题而提出的,其目的在于提供一种基于简 单路径在XML仓库中存储XML数据的方法和装置,其能够处理无模式的XML数据并提高XML数据查询的性能。本专利技术的目的还在于提供一种在XML仓库中执行XML查询的方法和装置,根据本专利技术的第一个方面,提供一种基于简单路径在XML仓库中存储XML数据的方法,所述XML仓库包括筒单路径仓库和数据仓库,所述方法包括对XML文档中的每一个节点,生成用于唯一识别该节点的节点标识符;生成所述XML文档的筒单路径;将所述简单路径存储到所 述简单路径仓库中;以及以简单路径为索引将每一个所述简单路径中的每个节点的数据依次存储到所述数据仓库中,其中所述数据包括该节点的节 点标识符和值。根据本专利技术的第二个方面,提供一种在XML仓库中执行XML查询 的方法,其中,在所述XML仓库中使用上述的存储XML数据的方法存 储有多个XML文档,所述方法包括接收所述XML查询;基于所述XML 仓库的简单路径仓库,解析所述XML查询以生成执行树,其中,所述执 行树由一个或多个主简单路径构建,并且每个主简单路径关联有零个或多 个次级简单路径和谓词简单路径;以及基于所述XML仓库的数据仓库, 执行所述执行树以获得所述XML查询的结果。根据本专利技术的第三个方面,提供一种基于简单路径在XML仓库中存 储XML数据的装置,所述XML仓库包括简单路径仓库和数据仓库,所 述装置包括节点标识符生成冲莫块,用于对XML文档中的每一个节点, 生成用于唯一识别该节点的节点标识符;以及筒单路径生成才莫块,用于生 成所述XML文档的简单路径;其中,所生成的简单路径净皮存储到所述筒 单路径仓库中,并且以简单路径为索引将每一个所述简单路径中的每个节 点的数据依次存储到所述数据仓库中,其中所述数据包括该节点的节点标 识符和值。根据本专利技术的第四个方面,提供一种在XML仓库中执行XML查询 的装置,其中,在所述XML仓库中使用上述的存储XML数据的装置存 储有多个XML文档,所述装置包括接收模块,用于接收所述XML查 询;解析模块,用于基于所述XML仓库的简单路径仓库,解析所述XML9查询以生成执行树,其中,所述执行树由一个或多个主简单路径构建,并且每个主简单路径关联有零个或多个次级筒单路径和谓词简单路径;以及 执行模块,用于基于所述XML仓库的数据仓库,执行所述执行树以获得 所述XML查询的结果。附图说明图1是XML数据模型树的一个例子的示意图2是根据本专利技术的一个实施例的基于简单路径在XML仓库中存储 XML数据的方法的流禾呈图3是具有编码串的XML数据模型树的示意图; 图4是采用B+树的数据仓库的示意图5是才艮据本专利技术的一个实施例的在XML仓库中执行XML查询的 方法的流程图6是执行树的一个例子的示意图7是根据本专利技术的一个实施例的基于简单路径在XML仓库中存储 XML数据的装置的示意性方框图8是根据本专利技术的一个实施例的在XML仓库中执行XML查询的 装置的示意性方框图。具体实施例方式相信通过以下结合附图对本专利技术的具体实施例的详细说明,本专利技术的 上述和其它目的、特征和优点将会变得更明显。图2示出了才艮据本专利技术的一个实施例的基于简单路径在XML仓库中 存储XML数据的方法的流程图。下面结合附图,详细说明本实施例。在本实施例中,XML仓库包括简单路径(Simple Path)仓库和数据 仓库,其中,简单路径仓库用于存储所有的简单路径,数据仓库用于存储 所有XML文档的数据。关于简单路径的定义,将在后面进行说明。如图2所示,在步骤S201,对XML文档中的每一个节点,生成用于唯一识别该节点的节点标识符(DOrderPath)。在本实施例中,节点的节 点标识符包括该节点所属的XML文档的文档标识(DocID)和该节点的 编码串(OrderPath)。编本文档来自技高网
...

【技术保护点】
一种基于简单路径在XML仓库中存储XML数据的方法,所述XML仓库包括简单路径仓库和数据仓库,所述方法包括:    对XML文档中的每一个节点,生成用于唯一识别该节点的节点标识符;    生成所述XML文档的简单路径;    将所述简单路径存储到所述简单路径仓库中;以及    以简单路径为索引将每一个所述简单路径中的每个节点的数据依次存储到所述数据仓库中,其中所述数据包括该节点的节点标识符和值。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘长浩张国根武硕
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1