论文部分内容阅读
近几年,随着Internet的飞速发展,网络的信息量与日俱增。XML作为一种可扩展标记语言(Extensible Markup Language),正在成为各种数据交换事实上的标准,得到了极其广泛的应用。XML不仅表达信息的方式简洁、有效,而且,以XML作为数据传输的格式,能够方便地实现内容和格式的分离,使得同样的内容可以服务于不同的应用。此外,XML还可以处理各种数据,包括文本、图像和声音,并且可以由用户进行扩展以处理任何特殊类型的数据,因此,如何管理XML标记的数据,成为网络应用的一个研究热点。
本文针对当前的一些XML数据库产品存在的问题,提出了一种新的XML,数据库中间件VegasXML的框架,以关系数据库为载体,灵活高效地实现XML数据的输入和输出。本文重点论述了XML数据模型和关系数据模型的映射算法和映射规则的设计,对处理XML数据时的一些细节问题:二进制数据、空值和编码集等问题作了概要的描述,并且详细介绍了使用对象树技术实现xQuery查询的方法。
VegasXML包含两个基本功能模块──XMLGenerator和XMLSaver。XMLGenerator实现XML数据的输出,根据数据库的查询结果和映射规则生成XML。映射规则定义了XML数据和关系数据的映射关系、数据合并条件和数据处理方法,能够生成多样化的XML文档。XMLSaver将XML中的数据按照映射规则存入数据库,其映射规则定义了数据对应关系和数据处理方法,不仅能够存储XML中的数据,还能存储XML片断和整个XML,实现了不同粒度XML的存储。为了适应不同的应用,映射规则具有良好的可扩展性。
基于VegasXML的数据输出模块,可以实现XML数据库查询的功能。目前存在多种XML数据库查询语言,例如XQL,XMLL-QL,QUILT等,但是没有一个正式的标准,VegasXML以W3C提出的XQuery1.0为查询语言,基于XMLGenerator,建立了一个高级应用模块XQuerySolver,实现了数据查询功能的原型,并且通过不同实现方式之间的比较,改进了整体的性能。
本文介绍的两个基本模块和一个高级应用模块都已经实现,通过各种不同实现方法之间的比较,已经多次改进,保证了XML数据操作的高效性。通过将VegasXML和Oracle的XSU在多种数据库平台下进行数据的存入和取出性能方面的比较,得出结论:对于flat XML,VegasXML与其它产品性能相当,优势不明显,在XML文件结构比较复杂的情况下,VegasXML在性能上的优势十分明显,在使用非Oracle数据库时,能将优势进一步扩大。
VegasXML已经实现了一些基本的数据操作功能,但是在XML数据更新方面,仍然有大量的工作需要进一步的研究,这部分的工作还有待W3C提出XML数据更新语言的标准。此外,使用的映射规则也需要扩充和改进。