pureXML 数据库的XML技术

我要开发同款
匿名用户2010年03月19日
80阅读
所属分类、数据库相关、开源XML数据库
授权协议未知

作品详情

关系数据库中的第一代XML支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB或BLOB)。这两个方法中的任一种都尝试将XML模型强制转换成关系模型。然而,这两种方法在功能和性能上都有很大的局限性。混合型模型将XML存储在类似于DOM的模型中。XML数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。

pureXML在以下领域具有显著优势:

存储:pureXML技术将以“节点级”(而非“文档级”)粒度存储XML。在数据库中,物理存储层的主要存储单元是节点。每一页中都存在一个节点,而其它的节点则来自相同或不同的文档。每个节点不仅连结其父节点,还连结其子节点。

因此,浏览到某个节点的父项、同级项或子项的效率都非常高,只要下一个引用的节点在同一页,其遍历速度将比指针的遍历速度还要快,无需重写整个文档即可增加或减少节点,或者将节点重新部署到其它页。

索引机制:管理着数百万的XML文档的XML应用程序并不罕见,因此要提供高查询性能就要为大量的XML数据编制索引。DB2支持在XML列上建立路径特定的索引,因此元素和属性常用作谓词,且可以编制跨文档连接的索引。

新的XML值索引可有效评估XML模式表达式,从而提高XML文档的查询性能。与传统的关系索引相比较,在关系索引中,索引键由用户指定一个或多个表格列组成,而XML值索引则使用特定的XML模式表达式(XPath的子集,XPath不包含谓词等等)来编制路径和XML文档(存储在一个XML列中)中的值的索引。如果值不是在文档中指定的,则该索引还可以在插入时通过模式来填充默认的属性和元素值。

创建索引时,您可以指定要编制索引的路径和索引类型。可以编制与存储在该列中的XML文档中的路径表达式以及路径表达式集匹配的任何节点的索引,而且该索引可以直接指向存储中的节点(它与其父节点和子节点连接以便于快速浏览)。索引条目并不是提供访问文档开头的索引,而是包含实际文档节点的位置信息。因此,该索引可以快速直接访问文档中的节点,并避免文档遍历。

查询:XQuery,即查询XML数据的一种新语言,用于处理不同的模式,包含诸如序列(而非SQL中的集)、多嵌套序列和稀疏属性。XQuery还可以支持不同种类的模式以及动态的结构更改。

IBM实施不包含独立的XQuery或XPath处理程序。基本的XQuery和XPath直接嵌入到查询引擎中。该查询编译器自身是双语的,带有两个可互操作的查询语言解析程序—一个用于SQL,另一个用于XQuery—以产生查询图表模型(用于处理关系和XML数据)的新变量。因为中间的查询表达法是中性语言,XQuery、SQL以及XQuery与SQL的组合将编译成同样的中间表达法,经过同样的重写和转化,以类似的方式优化并产生类似的可执行代码。无论使用什么语言来指定查询设计,此过程都将产生最优的互操作查询设计。

因为这两个解析程序可以相互操作,所以您可以在同一语句中混合使用SQL和XQuery,从而使搜索功能更强大:在XML文档中进行查询并从SQL返回其片断。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论