《原生型扩展标记语言数据库查询及优化研究》由会员分享,可在线阅读,更多相关《原生型扩展标记语言数据库查询及优化研究(54页珍藏版)》请在金锄头文库上搜索。
1、华中科技大学硕士学位论文原生型扩展标记语言数据库查询及优化研究姓名:王玮申请学位级别:硕士专业:软件工程指导教师:吴涛20041115摘要XMLeXtensible Markup Language作为数据交换的标准更着重于统一数据格式 而不是提供数据库的特性 因此在 XML 应用中 数据库作为数据管理的位置依然没有改变 IBM 公司 Microsoft 和 Oracle 等传统数据库厂商现在也在踏入 NXDNative XML Database的领域XQuery 语言是 W3C 推荐的最新的XML 查询语言它继承了以往各种 XML 或半结构化查询语言的优点在 NXD中实现 XQuery并对其进
2、行查询优化在整个 NXD 研究中有着重要的意义系统在 XQuery 实现上将其分为词法分析语法分析XQuery 规范化和查询计算求值等部分词法分析时区分了各种不同的状态分析时记住当前的上下文状态根据不同的上下文状态选择不同的词法分析函数解决了词法分析中需要单独分析不同的词在不同的上下文环境下的语义这个最重要的问题语法分析根据词法分析器提供的语法单元构造查询的语法树 在语法分析时 对 XQuery中外部函数用户定义函数和内部函数采用不同的处理方法避免了外部函数由于存在递归和引用时还未定义等问题对语法分析后的语法树用类似中间代码进行规范化 便于机器识别和移植在 NXD 的查询优化中 受到传统关系数
3、据库的查询优化技术的启发 并根据XML 数据的半结构化特征 系统将 XML 结构信息和信息集内容分离 分别在 XML路径信息逻辑结构和信息集内容物理存储上进行优化对于 XML 的结构路径信息 即结点在 XML 文档中的位置及其与其它结点的关系选取扩展编码方式对结点结构信息进行量化 然后在此基础上采用 POEM Path Oriented Extensible Model模型选择最优的 XML 路径提高查询效率XML 结点及其内容以结点集合的形式独立存储 对节点的内容和其存储可以通过采用批量插入的 B+树索引的方式进行优化关键词扩展标记语言原生型数据库扩展标记语言查询查询优化IIIAbstrac
4、tExtensible Markup Language (XML), which is as a criterion of data exchanging,emphasizes on the uniform data format but not provides the database features. So in theapplication of XML, DBMS is still the main mean of data management. Sometraditional database vendors such as IBM, Microsoft and Oracle
5、step into Native XMLDatabase (NXD) field recently. XQuery is the latest XML query languagerecommended by W3C. It borrows advantages from many XML query languages orsemi-structure languages. Implementing XQuery in NXD and query optimization arevery important in the study of NXD.The XQuery implementio
6、n in our system mainly divides into such parts: lexicanalysis, semantic analysis, XQuery normalization and query computation etc. It candistinguish different status and memorize the present context while analyzing andchoose different lexic analysis function according to different context state. It a
7、lso cansolve the important problem of lexic analysis that we need analyze different lexis indifferent contexts. Lexic analysis constructs query semantic tree according to thesemantic unit which lexic analyzer provides. In semantic analysis, it deals with externalfunction (user-defined function) and
8、internal function differently. That can avoid theproblems there are recursions in the external function and external function is still notdefined when it being referenced. It normalizes the query tree which has processedlexic analysis. The normalization uses Intermediate Language to facilitate machi
9、nereplant and migrate.Inspired by the traditional RDBMS query optimization technology, we separatethe XML document into structure and content, meanwhile we optimize themindividually according to the XML languages semi-structure feature. Extendingnumbering is taken to quantitate the nodes which prese
10、nt XML path information. Wetake Path Oriented Extensible ModelPOEMmodel on the basis of the numberingmechanism to choose the most optimum path in order to improve query effeciency.XML nodes and contents are stored separately as node sets. The nodes content andstore can be optimized through the exten
11、ding B+_tree index.Key words: eXtensible Markup Language,Native Database,XQuery,Query OptimizationIV1 绪论XML 技术从诞生之日就预示了它辉煌的未来1 特别是随着近一两年 WebService 的蓬勃发展2 XML 越来越多地活跃在数据交换和存储领域 事实上 XML作为数据交换的标准更着重于统一数据格式而不是提供数据库的特性因此在 XML 应用中 数据库作为数据管理的位置依然没有改变31.1 课题背景数据库产品处理 XML 数据的技术上有两大阵营XML Enabled DBMSXED 和 Na
12、tive XML DBMS NXD) 4XED 是在原有数据库基础上扩展了 XML 支持模块 完成 XML 数据和数据库之间的格式转换和传输 但关系数据库和 XML 在很多特性方面有着较大区别 导致 XED 存在着一些难以克服的缺点如一些 XML 文档存入到数据库时需要将其打碎取出时需要组合不仅效率低下而且文档的格式可能会因此不同 出现一些偏差和错误 XML 文档和数据库之间的模式转换复杂 在前期开发阶段需要投入很大对以文档为中心格式复杂的 XML 文档处理性能较差在采纳 XML 技术标准方面落后5NXD 则出现在 XML 数据处理领域内6 一般采用层次数据存储模型 7 保持XML 文档的树形
13、结构 省掉了 XML 文档和传统数据库的数据转换过程 XML 文档存取无需模式转换 存取速度快 效率高 对格式复杂的 XML 文档支持比 XED要好 支持大部分的最新的 XML 技术标准8 随着 XML 的时代的到来 NXD 技术的重要性已经被越来越多的人所瞩目 9专门从事 NXD 技术研究的组织XML:DB 的出现 商用 NXD 产品 Tamino Software AG 公司开发 和 Ipedo Ipedo公司开发的应用告诉我们一个不争的事实NXD 技术在处理 XML 数据上有着无限的发展空间和极大的潜能而任何一个数据库管理系统中查询处理都是它的核心问题而查询优化技术又是查询处理的关键技术10,11 随着 XML 作为一种存储数据的格式不断趋于成熟用于从非结构化和半结构化的数据源如 XML 数据中检索信息的类 SQL语言的重要性也就越大12为了响应了这一需求W3C 研究组织于 2001 年 2 月1