IBM 的新一代数据库 DB2 9中第一次实现了关系型引擎与层次型引擎的结合,实现了混合数据库。IBM将此技术称为pureXML技术。
关系型数据库很早就已经开始考虑对XML的支持,但传统的技术一般还是基于关系型数据库的基本框架,用表之间的关系去模拟XML的层次结构.仅仅是对关系型数据的一些功能性增强,而非真正去适应XML所代表的层次型结构和面向对象的数据处理方法,因而难以发挥XML的灵活性、扩展性等方面的优势,大大限制了XML技术在数据库的应用。
关系数据库中的第一代 XML 支持是切分(或分解)文档以适应关系表格,或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种,都尝试将 XML 模型强制转换成关系模型。以大对象保存XML数据的方式,使得数据库无法理解XML中的信息内容,每次对XML中任何信息的访问都必须将整个文档取出,然后再分解获得相应的信息内容,效率和灵活性都存在极大的限制。
如果采用将XML文档中的数据项都拆分到很多个对应的关系型表中的方式,首先失去了XML灵活性的优势。由于XML的数据项与关系型表中字段的对应是固定的,所以XML的扩展和变化必然要求数据库中对应表的结构改变;另外数据对象拆分后,已经不再有物理上对象的概念,同样在功能和性能上都有很大的局限性。
与过去关系型数据库的XML增强功能不同,pureXML技术第一次真正意义上提供了一种与XML层次型结构相匹配的层次型存储方式和相对应的操作访问方式。
在pureXML中,XML 作为一种新的数据类型。几乎每个 DB2 组件、工具和实用程序都已得到增强,以识别和处理这种新数据类型。新的存储模式以解析后的注释树形式(类似于 XML 文档对象模型 (DOM))保留 XML,它与关系数据存储分开。
DB2的新XML关系存储模型
在两种数据存储(关系和 XML)的顶部是一个混合型数据库引擎。该引擎可以处理 XQuery、Xpath、SQL和 SQL/XML。该引擎采用带有 SQL 和 XQuery 解析程序的双语查询编译器。因此,开发人员可以根据具体情况,使用相应的语言(或同时使用这两种语言)。使用混合型 DB2 ,您可以根据信息管理的需要来灵活地选择数据的存储组织模式和访问方法,实现二者之间灵活的转换。
在数据库管理系统中存储关系和 XML 数据可提供灵活性和一贯快速的性能,因为数据库管理系统在每一个级别(从客户端到引擎,再到磁盘)都了解和支持这两种模式。XML 数据继承了 DB2 为关系数据提供的相同的备份与恢复、优化、可伸缩性和高可用性。最终,统一的 XML/关系数据库通过避免对分开存储的 XML 数据和关系数据进行集成,简化了业务过程。