新技术带来的新麻烦
XML(Extensible Markup Language)技术作为一种自我描述的数据结构,具有极大的灵活性,凭借其可扩展、平台无关和易于交换等特性获得各方面的一致认可。随着业务和IT技术的进化,越来越多的公司开始广泛采用XML技术。同时,为了实现在不同的系统和应用程序之间交换数据以适应业务环境的快速变化,大量的企业开始建立 SOA(Service Oriented Architecture,面向服务的架构),而XML正是SOA得以建立的基础。因此,几乎所有的著名IT企业都在寻找办法来高效地共享、搜索和管理公司产生的大量 XML 文档和消息,从而帮助公司减少存储和使用 XML 数据所需的时间和工作量,进而减少开发费用并提高业务灵活性。
管理新的数据形式常常要面对新的挑战,迅速增长的XML格式数据就给企业带来了这种麻烦。XML数据模型与传统的关系模型有很大的区别,关系模型是以关系 (表)、属性 (列)为基础的,而XML数据模型是以节点 (元素、属性、备注等)和节点间存在着的相互关系为基础的,目前普遍采用的管理和共享 XML 数据的一般方法都存在一定的缺陷。
文件系统可以应付简单的任务,但是在需要处理大量文档时它们就表现出弱势了,并发性、恢复、安全和可用性问题变得难以管理。商业关系数据库管理系统(DBMS)解决了这些问题,但是在其他方面仍有所欠缺,它们常常提供两种基本的数据库设计选项 —— 将每个 XML 文档完整地存储为一个大型对象,或者将它拆散,分散存储在多个表的多个列中,在许多情况下,这些选项都会导致性能问题、管理困难、查询的复杂性增加以及其他一些问题。而纯粹的XML DBMS 在 IT 基础设施中引入了一种新型的环境,而且这种环境还没有经过考验,它的集成能力、需要的人员技能以及未来的生命力还不确定,会造成很多风险因素。
那如何才能做到即充分利用XML的各种特性,又能够简单、高效的存储XML数据呢?
IBM DB2 9破难关
面对这些挑战,经过多年的积累和持续创新,IBM在业内率先推出了第一个直接支持 XML 的混合数据服务器——IBM DB2 9(代号为Viper)。
IBM DB2 9提供了与以前版本非常不同的体系结构,它通过提供新的查询语言、新的存储技术、新的索引技术和支持XML 数据及其固有层次结构的特性,使得IBM DB2 9成为 IBM 的第一个“混合型”(即多结构)数据库管理系统。除了支持表数据模型之外,DB2 还支持 XML 文档和消息中固有的层次化数据模型。用户可以在一个表中自由地混合存储传统 SQL 数据和最新的 XML 数据。还可以使用 SQL(如果愿意,可以加上 XML 扩展)和 XQuery(新出现的 XML 数据查询标准)来查询和处理这两种形式的数据。在经过实践检验的数据库管理基础设施上进行扩展,IBM 为 DB2 9 用户提供了同时处理关系数据和 XML 数据的强大支持。新的基于XML的应用程序使用DB2可以无缝地访问关系数据库资源,拥有企业级XML应用的访问能力。
DB2 在所有特性/接口中都整合了对XML数据的支持,而DB2 对 XML 的 “固有”支持是在对其他技术的现有支持之外提供的,SQL、表格数据结构和各种 DBMS 特性现有仍然能够获得最好的支持。因此,用户可以用一个数据库对象同时管理 “传统的” SQL 数据和 XML 文档。
为了高效地管理传统 SQL 数据类型和 XML 数据,DB2 包含两种不同的存储机制。但是,一定要注意,给定数据类型所用的底层存储机制对于应用程序是透明的。换句话说,应用程序不需要显性地指定要使用的存储机制,也不需要管理存储的物理细节,比如如何将 XML 文档的各个部分拆分到多个数据库页上。系统会自动采用适合目标数据的格式,应用程序自然而然地获得存储和查询数据方面的运行时性能优势。
DB2 9的独到之处
DB2 使用户能够完整地存储 XML 文档,同时 DBMS 完全掌握文档的内部结构。这样就避免或减少了其他解决方案涉及的管理任务和程序设计任务。另外,它可以加快文档之间和文档内部的搜索,使顾客能够更快地适应 XML 模式中反映出的业务需求变化。DB2 对存储 XML 数据的惟一要求是它必须是 “良构的(well formed)” —— 也就是说,它必须符合 “W3C XML 标准”中指定的语法规则。这种宽松的方式给用户提供了很大的灵活性,更容易存储包含不同属性和内部结构的 XML 文档集合。