存储DB2 9 XML 数据的作用有哪些?

数据库
我们今天主要向大家讲述的是在关系数据库中存储DB2 9 XML 数据将会提供更为一些在实际操作中具有可靠性、可管理性以及 RDBMS 的等一些其他的优点描述。

在关系数据库中存储DB2 9 XML 数据将会提供一些更为具有可靠性、可管理性以及 RDBMS 的等一些其他的优点。但是假如你所采用笨拙的存储方法,应用程序的性能将会出现问题。以下就是正文的主要内容描述。 

在关系数据库中存储 XML 数据会提供可靠性、可管理性以及 RDBMS 的其他优点。但是,如果采用笨拙的存储方法(比如分解和 CLOB),应用程序的性能就会出现问题。当 IBM 在 DB2 9 中引入 pureXML 之后两年,这个问题已经解决了。

当 IBM 在 2006 年推出 DB2 9 时,它的 pureXML 技术引起了广泛的关注。但是,人们并没有马上接受 “关系/XML” 混合型 DBMS 的思想。这种思想的好处很明显:通过把 XML 引擎和现成的 RDBMS 集成在一起,XML 数据可以轻松地合并到数据操作中,还可以对 XML 数据应用关系系统的许多数据管理特性,比如安全性和存档。

但是,这种做法的性能怎么样呢?考虑到对象-关系数据库过去的性能,人们对混合型系统的性能抱着怀疑态度。

两年之后,pureXML 的性能影响不仅停留在理论上,而且已经在真实环境中表现出来了。

希望通过DB2 9 XML 获得什么?

在开发 pureXML 和 DB2 9 的 5 年中,IBM 深入研究了 XML 的性质(XML 具有强大的灵活性,同时也非常繁琐),发现了需要改进的五个方面。IBM 主要关注两个性能因素:存储模型和查询优化。

XML 数据由一个层次化的树结构表示,通常包含多个层和大量节点,因此这种格式很难优化和编制索引。它还涉及某种形式的压缩。因此,XML 查询可能变得非常复杂。

存储 XML 数据的一种常用方法是字符大对象(CLOB)。与二进制大对象(BLOB)一样,CLOB 通常作为一个整体存储,很少为编制索引或查询优化进行预处理。另一种方法是把 XML 数据 “分解” 为关系数据的列;这种方法需要复杂的解析技术,通常使用大量存储空间。

DB2 pureXML 把 XML 数据存储为经过预先解析的层次化格式,这种格式反映数据的底层嵌套结构。这种格式支持编制复杂的索引,并允许对物理存储中的数据进行压缩。在执行查询时,pureXML 把 XQuery 和 SQL/XML 查询转换为一种在多方面(跨语言、查询重写、优化索引和成本)经过优化的统一格式。

XML 压缩、查询优化以及关系和 XML 处理的混合(在 DB2 9.5 中还改进了插入和更新性能)改进了数据库的处理性能;IBM 的测试和真实项目表明,与 DB2 V8 或其他 DBMS 中的相似操作相比,速度提高了 10 到 20 倍(参见相关内容中 “成功带来的喜悦”部分)。

更适合DB2 9 XML 的模型

pureXML 的性能特点还包括其适应性。要点:XML 数据并不会取代关系数据。对于标准的金融业务,XML 数据很难超越关系数据库,但是 RDBMS 很难处理出版物,比如整本书、杂志或期刊。如果应用程序中的数据具有复杂的层次结构,或者包含大量非结构化信息,RDBMS 也很难处理。

例如,生命科学组织正在把许多常用数据由各种专有格式转换为 XML。在某些情况下,对于难以在传统 RDBMS 中存储和提取的数据,XML 格式提供了优化的数据访问路径,这使 XML 数据库在根本上具有显著的性能优势。

XML DBMS 还有一个优点:它们能够通过 Web 服务或其他方法与 XML 应用程序直接通信。因为 XML 在因特网上使用广泛,应用程序之间的通信也大量采用 XML 格式,所以让整个通信链(应用程序 - 消息 - 数据库)都采用 XML 格式是很有意义的。

IBM 的 pureXML 在技术方面有许多重要的创新(68 项新专利!),但是 IBM 关系/XML 模型真正的价值在于它在主流企业应用程序中表现出的性能。

【编辑推荐】

  1. DB2数据导入时哪些事项必须注意?
  2. 使用DB2临时表中应注意的事项描述
  3. DB2 9.7的三大武器的作用描述
  4. DB2文件系统已满的破解方案描述
  5. DB2 9.7 兼容Oracle,IBM发布

 

责任编辑:佚名 来源: 51cto.com
相关推荐

2010-09-06 15:00:40

DB2 9 XML

2010-08-26 11:05:39

DB2数据移动

2010-08-04 08:52:35

2010-08-12 17:23:20

DB2存储过程编写流程

2010-08-09 12:30:17

DB2 9数据库管理软

2010-07-29 13:44:17

DB2 9数据库

2010-08-06 13:55:58

DB2数据库命令

2010-07-28 10:28:47

DB2数据移动

2010-07-30 13:28:10

2010-08-16 09:48:28

DB2数据库

2010-07-27 11:08:49

DB2数据移动

2010-08-13 13:31:14

DB2编程序

2009-03-10 09:08:06

DB2存储过程实施

2010-08-10 15:30:21

2010-07-27 09:09:07

JDBC连接DB2

2010-08-05 16:19:06

DB2建立数据库分区

2010-08-20 13:17:50

DB2数据库分区管理

2011-05-13 10:06:17

DB2 9

2010-08-12 16:52:01

DB2实施备份

2010-08-02 17:37:06

DB2建立databa
点赞
收藏

51CTO技术栈公众号