论文部分内容阅读
XML是可扩展标记语言(ExtensibleMarkupLanguage)的简称,具有有效的表达各种信息、数据和使各种应用协同工作的能力,它已经成为Web上数据发布和数据交换的事实标准。XML是典型的半结构化数据,对XML数据的查询要求不同于传统数据库,在查询时不仅要对数据库中的数值进行查询,而且要对XML文档的结构和数据之间的关系进行查询。随着XML相关技术的深入研究,XML查询已经具备了坚实的技术基础。在此基础上,W3C(WorldWideWebConsortium)于2001年12月提出了XML查询语言规范(工作草案)-XQuery语言。迄今为止,XQuery一直在不断发展中。
由于XQuery语言十分复杂,在对该语言规范体系的分析理解和研究的基础上,作者着重实现一个核心的功能子集,以其作为正在开发的XML数据库管理系统Next的一部分。由于Java的跨平台特性,作者使用Java语言实现该语言的查询引擎。
系统中XQuery处理分为两大部分:XML文档载入模块以及XQuery查询处理模块。在XML文档载入模块中,作者采用BerkeleyDB数据库存储XML文档和索引,提供数据库对外操作接口;与关系模型不同,XML数据是树状结构,路径表达式在查询中非常关键。而且FLWOR表达式是XQuery最为有特色且最为重要的语法类型之一,所以在查询处理模块中,着重处理了路径表达式和FLWOR表达式。抽象语法树在查询引擎中是关键部分,针对这一问题,作者细致地分析了主要表达式的语法树结构,并在此基础上提出了路径表达式和FLOWOR表达式的实现方法。