4.事务处理和版本控制
目前的商用XML数据库一般提供事务处理功能,包括提交、撤回和日志文件。我们知道,事务为数据库的一组操作,这些操作组成一个逻辑单元,执行时要么全部完成,要么全部不做(do all or do nothing)。XML数据库通过提供事务日志机制,纪录系统执行的每个事务的详细情况,保证在系统出现问题后可以完全恢复。
事务遵循的ACID性质 (原子性、一致性、独立性和持久性) 保证了大部分事务处理稳定地运行。
商用XML数据库也包含对XML文档的版本控制功能。使用版本控制,用户或应用程序可以检入(check in)或检出(check out)XML文档,利用版本号、日期或者标签获得以前版本的文档,以及显示XML文档的版本历史信息。每一个处于版本控制之下的文档都有自己的历史信息,纪录了修改文档的作者以及时间等。使用者可以根据文档或用户或日期来查看整个的版本历史信息。
版本控制允许用户通过查询更新原信息。通过更新引擎可以注释、修改和精炼信息。内置的版本系统跟踪信息的变化,提供这些变化的历史信息。
应该说,在事务处理和版本控制机制上,实验室产品的考虑是不够的,所提供的事务处理的功能显得简单。尽管加州大学洛杉矶分校的数据库实验室在XML的版本控制方面有一些突出的成果,但是,目前尚未形成产品。
还有一个需要说明的是多事务并发控制机制和加锁协议。这项技术的研发目前刚刚起步。现今的商用XML数据库只在逻辑层面提供并发加锁协议,但粒度为整个文档。随着单个XML文档的增大,这个粒度显然太粗。这一点可能要等待研究界开发出粒度为文档元素节点的并发协议了。
5.代数系统和模式规范化
代数表达式和数据库模式设计理论曾经是关系数据库理论的精髓。代数系统成为关系库查询优化的重要工具,而范式理论的提出也曾为RDBMS设计优化的库结构提供了依据。那么,人们不禁要问,在XML数据库中是否存在相类似的理论和方法?
由于这两个问题有一定的难度,注定只能是由学术界的实验系统先行一步。
学术界公认的三大实验系统都设计了相应的代数系统,其中影响最为广泛的是Timber中实现的TAX(Tree Algebra for XML)。TAX以整个文档树作为操作的基本单位,在逻辑层提供选择、投影、联接等类似关系库的9种基本操作和5种附加操作,以匹配模式树得到实例树(witness tree)为基本操作方法。在物理层提出7种基本操作实现上述逻辑运算。
Timber依据TAX对XML查询语句进行改写和优化,但是效果并不理想。业界对TAX存在问题的看法是,过分地模仿了关系库的代数系统而忽略了对XML文档本身特点的考虑。
XML模式规范化理论的早期开拓者是宾夕法尼亚大学的樊文飞等人。从定义XML的键(key)和函数依赖,到XML和DTD范式,再到基于约束的XML数据库的模式规范化,XML数据库的模式规范化理论在稳步地推动着。国内的复旦大学数据库研究中心等单位也有着不错的研究进展。在未来两年内,估计会有较成熟的XML数据库模式设计理论投入到实验室产品和商用系统中。
6.多数据源的集成
多数据源的集成是数据库市场对XML数据库系统提出的要求。从1970年IBM公司的E.F.Codd提出关系数据库的概念以来,关系数据库在几乎所有的应用领域都取得了巨大成功。XML数据库是一个新事物,它从诞生的那一天起,就面临着关系数据库一统天下的局面。有人说,关系数据库完全战胜层次和网状数据库用了将近20年时间,XML数据库也会用20年时间战胜关系数据库。这种看法并不全面。至少从目前来看,两者应该各展所长,共同服务于巨大的数据库市场。
那么,XML数据库的优势在哪呢?用XML技术来进行多数据源的集成就是其中之一。
从2001年以后,面对多数据源的集成这个传统关系型数据库系统做不了的事情,Ipedo等商用数据库系统将自己的数据库系统扩展为一个集成平台,它可以将关系数据库系统、MIS系统、OA系统、文件系统等集成在同一个平台上,给用户提供统一的界面。如Ipedo公司的Ipedo XML智能平台,为用户提供XML View来统一访问底层的异构数据。人们也从这一点上进一步看到了XML技术的力量。
四.未来的技术发展方向
经过近5年业界同仁的共同努力,XML数据库技术取得了很大的进展,已经有若干种XML数据库产品问世并服务于社会生活的各个方面。但是,XML数据库的事业才刚刚开始,还有很多问题等待着我们去解决。
未来几年,XML数据库技术有可能在下述方面取得进展:
● 异构数据源的集成。XML数据库对多数据源的集成,是对XML技术可扩展性这一长处的极好发挥。但是,就目前的集成程度和在应用层上所提供的功能来看还是远远不够的。如何从对数据的集成过渡到对系统的集成,从而在远景目标上实现类似于网格计算(grid computing)概念的系统,恐怕是XML数据库工作者的核心任务之一。
● 底层索引结构。目前的商用XML数据库系统优于实验室原型系统的特点之一就是其底层的索引结构。但是,现有的商用XML数据库的底层索引结构一般都是B+树。虽然B+树索引是一种成熟的索引结构,但是,研究结果显示,在XML数据库中,它的性能表现并不是最好的。学术界已经开发出了若干种适用于XML数据的索引结构,如XR树、XB树等,需要XML数据库工作者来进一步关注。
● 并发加锁协议。在现有的XML数据库系统中,加锁的粒度是整个文档,事务并发的层次也在文档一级。随着应用级文档的日益增大,这个粒度在一定程度上将会成为系统效率的瓶颈。如何通过边锁(edge lock)机制来实现元素节点级粒度的加锁?这一工作现在吸引了不少研究者的目光,而且,上述的锁协议是在逻辑层,如何将它映射到底层的B+树索引(或者XR树索引)上,也是必须要做的一件事情。
● XML模式规范化是一个值得关注的方向。一旦取得突破,将会使我们可以像在关系库中那样方便地设计XML数据库的结构,消除数据的冗余和不一致现象。目前,这一领域已经成为学术界关注的热点。但是,完整的、为业界所公认的理论体系尚未建立。
【编辑推荐】
| 第 1 页:学术界与工业界的不同索求 | 第 2 页:核心技术的进展 |
| 第 3 页:代数系统和模式规范化 |






















