【IT168 技术文档】管理新的数据形式常常要面对新的挑战。许多 IT 领导者发现 Extensible Markup Language(XML)格式的数据就带来了这种情况。
通常,管理和共享 XML 数据的一般方法效果不好。文件系统可以应付简单的任务,但是在需要处理大量文档时它们就表现得不好了。并发性、恢复、安全和可用性问题变得难以管理。商业关系数据库管理系统(DBMS)解决了这些问题,但是在其他方面有所欠缺。它们常常提供两种基本的数据库设计选项 —— 将每个 XML 文档完整地存储为一个大型对象,或者将它 “撕开”,分散存储在多个表的多个列中。在许多情况下,这些选项都会导致性能问题、管理困难、查询的复杂性增加和其他问题。最后,纯 XML DBMS 在 IT 基础设施中引入了一种新型的环境,但是这种环境还没有经过考验,它的集成能力、需要的人员技能以及未来的生命力还不确定。
Linux、Unix 和 Windows 平台的 DB2 “Viper” 版引入了另一个可能。这个新的 beta 版可以非常好的支持 XML 数据。为此,IBM 对 DB2 进行了扩展,使其包含:
新的存储技术,可以高效地管理 XML 文档中固有的层次结构。
新的索引技术,可以提高在 XML 文档之间和内部进行搜索的速度。
新的查询语言支持(对于 XQuery)、新的图形化查询构建器(对于 XQuery)和新的查询优化技术。
根据用户提供的模式检验 XML 数据的能力。
新的管理功能,包括对关键数据库工具的扩展。
与流行的应用程序编程接口(API)的集成。
一定要注意,DB2 对 XML 的 “固有” 支持是在对其他技术的现有支持之外 提供的,SQL、表格数据结构和各种 DBMS 特性等现有支持仍然存在。因此,用户可以用一个数据库对象同时管理 “传统的” SQL 数据和 XML 文档。而且,可以编写一个查询同时搜索和处理这两种数据形式。
本文在介绍 DB2 对 XML 的固有支持的同时将研究这些特性。但是,我们先考虑一下为什么说正确地管理 XML 数据是很重要的。
潜在的好处
越来越多的公司开始转到 XML 技术,从而帮助他们实现面向服务的体系结构(SOA)、在不同的系统和应用程序之间交换数据并适应快速变化的业务环境。许多 IT 领导者正在寻找办法高效地共享、搜索和管理公司产生的大量 XML 文档和消息。DB2 新的 XML 支持的设计目的就是为了帮助公司减少存储和使用 XML 数据所需的时间和工作量,进而减少开发费用并提高业务灵活性。
例如,“结合使用 DB2 原生 XML 与 PHP”(developerWorks,2005 年 11 月)解释了 DB2 新的 XML 支持如何减少支持电子商务 Web 站点所需的数据库设计和应用程序代码的复杂性。“Managing XML for Maximum Return”(IBM,2005 年 11 月)讨论了顾客对对比测试场景的体验,这些测试表明新的 XML 支持可能减少工作量和开发时间。
这些好处的背后是什么?DB2 使用户能够完整地存储 XML 文档,同时 DBMS 完全掌握文档的内部结构。这样就避免或减少了其他解决方案涉及的管理任务和程序设计任务。另外,它可以加快文档之间和文档内部的搜索,使顾客能够更快地适应 XML 模式中反映出的业务需求变化。
体系结构概述
DB2 使客户机应用程序能够通过它们选择的查询语言 —— SQL(包括具有 XML 扩展的 SQL,常常称为 “SQL/XML”)或 XQuery —— 同时处理表格数据结构和 XML 数据结构。如 图 1 所示,DB2 中的引擎级组件支持用这两种语言指定的查询。
图 1. 新的 DB2 “Viper” 版的体系结构 
为了高效地管理传统 SQL 数据类型和 XML 数据,DB2 包含两种不同的存储机制。我们将简要地讨论新的 XML 存储技术。但是,一定要注意,给定数据类型所用的底层存储机制对于应用程序是透明的。换句话说,应用程序不需要显式地指定要使用的存储机制,也不需要管理存储的物理方面,比如如何将 XML 文档的各个部分拆分到多个数据库页上。系统会自动采用适合目标数据的格式,应用程序自然而然地获得存储和查询数据方面的运行时性能优势。
| 第1页: 了解DB2 Viper 的新特性之一 | 第2页: 了解DB2 Viper 的新特性之二 |
| 第3页: 了解DB2 Viper 的新特性之三 |