论文部分内容阅读
Internet的飞速发展,通过网络进行信息交流和共享越来越多了。XML是一种可扩展标记语言,由于它能有效、简便地表达信息和文档,在基于网络的商业应用中得到了广泛的应用,其数量急剧增加。因此,有效地搜集、分析、挖掘和管理XML数据成为网络应用的研究重点。将传统的数据库与XML结合是必然的趋势,这种技术正在蓬勃发展,相关标准也正在制定中,所以进行此方面的研究是相当有意义的。
本文分析了当前将XML与数据库结合的多种技术,包括中间件、原始XML数据库、能驱动XML的数据库等。使用中间件在XML与传统关系数据库或对象关系数据库进行信息交换是其中一种方法,可以利用关系数据库的优势和成熟经验,有着广阔的应用范围,在此过程中,也存在一些需要研究的问题,例如:XML数据模型与关系数据模型的映射;如何将XML存入数据库;又如何从数据库中查询出XML数据。
本文提出了VegasXML中间件框架,希望能够实现XML与关系数据库的灵活的转换模式,基于XML的数据库查询机制,有效的存储或取出XML数据。在设计与实现中,始终将效率和灵活性作为第一目标,与其他中间件相比,本系统的特色在于:使用XML表达转换规则,功能强大,可扩充性好;纯Java编码,与平台无关;适应多种底层数据库,能够高效地连接数据库。作为中间件技术,我们定义的规则集较好的处理了需要关注的几个问题:数据类型、二进制数据、空值、字符集、处理指令和注释。
XML文档可以分为以数据为中心和以文档为中心,本文侧重于存取以数据为中心的XML文档,讨论了XML数据模型与数据库模型的映射方法和XML查询语言。VegasXML使用了对象映射模型,有强大的表达能力,支持XQuery查询语言的最新标准。
VegasXML框架提供两个基本模块,XMLGenerator用于从数据库中取出XML,XMLSaver用于将XML存入数据库,在此基础上提供的高级模块XQuerySolver,以XML查询的方式查询数据库,解析XQuery语言并驱动XMLGenerator得到XML形式的结果。
XMLGenerator模块根据数据库的查询结果和映射规则集生成XML。映射规则集定义了XML的结构、数据对应关系、元组合并条件和数据处理方法,能够生成非常多样化的XML文档,特别是其强大的合并元组功能,文中详细介绍了实现该功能的独创算法。
XMLSaver模块将XML中的数据按照规则集存入数据库,其映射规则集定义了数据对应关系,元组对应关系和数据处理方法。我们使用快速高效的SAX模型解析XML,不仅能够存储XML中的数据,还能存储XML片i断和整个XML。
XQuerSolver将XML查询语言XQuery应用到数据库中的表所对应的虚拟XML模型上,解析XQuery语言后生成SQL语句和供XMLGenerator使用的映射规则集,由于该规则集的强大,我们能够支持XQuery中与数据库相关的所有使用例。
虽然我们的系统已经实现,但是在XML载入、XML更新、性能比较和改进等方面还需要做进一步的工作。