[如需转载,请注明出处]
目前,XQuery主要应用在两个方面:1,做为XML数据库的查询语言来操作XML文档;2,做为中间件用于企业信息的集成(EII)。
市面上的XML数据库,尤其是源生XML数据库(Native XML Database)如Ipedo XML Database、Software AG Tamino Server、Berkeley XML Database都提供了XQuery支持,用于查询存储在XML数据库中的XML片断或者XML节点。甚至Ipedo XML数据库还提供了XQuery Update功能,用于更新XML文档内容。下图是这类XQuery引擎的例示图。
这类XQuery引擎内嵌在XML数据库中,实现方面需要考虑内部存储的特性,如使用的数据结构、存储的XML Meta信息等。在查询优化方面需要考虑索引(Index)的使用,使用不使用索引以及使用哪一个索引。
第二种XQuery引擎用于企业信息集成。信息集成的目的在于将来自不同数据源、不同格式的信息整合起来用于分析和展示,为决策者提供帮助。目前EII厂商主要分为两大阵营:以IBM、Composite和MetaMatrix为代表的走RDBMS/SQL路线和以Bea、DataDirect、Ipedo、XAWare为代表的走XML/XQuery技术路线(Ipedo XIP4.0后推出了Dual-Core查询引擎,既有SQL又有XQuery引擎)。选择的技术路线不同,使用的查询语言查询优化技术以及缓存等都有所不同。近期来看,由于SQL语言已经被大多数开发人员熟悉,走RDBMS路线更容易为大家所接受。但是从长远来看,由于XML是可扩展的格式自由并且有用于转换和映射的XSLT等技术,在集成更多数据源方面比前者更有优势。
下图是使用XQuery来集成数据的例示图:
这种XQuery查询引擎一般会配带不同的连接器(Connector),用于远端数据源和XML数据之间的数据类型转换和函数映射。在查询优化方面则需要考虑将查询语句尽可能的推向远端数据源(主要是关系型数据源),使得XQuery引擎本身处理的数据量尽可能的减少。