本书针对XQuery语言的原理,从抽象语法和形式语义出发分析了其语言特征,从数据库技术和编译技术两个角度全面介绍了XQuery语言的实现原理,深入讨论了适用于该语言的XML查询及其优化技术、查询计划描述语言的设计原理、编译优化技术和自动并行化方法,展示了XQuery查询引擎、XQuery并行查询引擎、XQuery编译系统等多种XQuery语言的实现方案,并且通过一个基于XQuery语言的网页编程工具的开发,介绍了面向应用领域的XML数据更新、脚本语言等多种功能的扩展方法。 本书适用于从事计算机科学与技术领域相关研究或开发工作的专业技术人员参考,也可以作为高等院校计算机软件与理论等相关专业研究生和本科生的教学用书。
样章试读
目录
- 前言
第1章 绪论
1.1 引言
1.2 XQuery语言的基础知识
1.2.1 XML
1.2.2 XPath语言
1.2.3 XQuery 1.0语言
1.3 XQuery语言相关的功能扩展
1.3.1 XML数据更新功能
1.3.2 XQuery脚本语言
1.3.3 面向分布式计算的XQuery语言扩展
1.3.4 面向Web应用的XQuery语言扩展
1.4 XQuery语言的实现技术
1.4.1 XML查询代数
1.4.2 XML树模式查询
1.4.3 XQuery程序优化
1.4.4 XQuery语言的编译实现
1.4.5 XQuery语言的自动并行化
参考文献
第2章 XQuery语言的语法和语义
2.1 数据模型和上下文
2.2 处理模型
2.3 语言结构
2.3.1 整体结构与声明部分
2.3.2 XQuery表达式
2.3.3 XPath路径表达式
2.3.4 FLWOR和量化表达式
2.3.5 XML节点构造表达式
2.3.6 类型相关的语言结构
2.4 形式语义
2.4.1 抽象语法
2.4.2 语义的形式化描述
2.5 XQuery数据更新规范
2.6 XQuery脚本语言扩展
2.7 总结
参考文献
第3章 中间语言与查询代数
3.1 FXQL语言
3.1.1 FXQL程序的案例
3.1.2 FXQL/1语言的数据模型
3.1.3 FXQL/1语言的语法
3.1.4 FXQL/1语言的语义
3.2 XML查询代数
3.2.1 XML查询代数的发展
3.2.2 XQA查询代数
3.3 查询计划的生成
3.3.1 FLWOR表达式的翻译
3.3.2 具有Orderby子句的FLWOR表达式的翻译
3.3.3 XPath表达式的翻译
3.3.4 其他XQuery表达式的翻译
3.3.5 XQuery程序的翻译案例
3.4 总结
参考文献
第4章 XQuery程序优化技术
4.1 FXQL表达式的图形化表示
4.2 FXQL代码优化
4.2.1 自动内联
4.2.2 复制传播
4.2.3 循环不变量外提
4.2.4 消除公共子表达式
4.3 XML数据查询的逻辑优化
4.3.1 选择移动
4.3.2 排序上浮
4.3.3 消除相关性
4.3.4 消除flat
4.4 各种程序优化的执行顺序
4.5 总结
参考文献
第5章 XML查询模式及其语言支持
5.1 XML树模式查询
5.1.1 XML树模式查询的概念
5.1.2 XML查询模式的发展
5.2 GTP++树模式查询
5.3 FXQL/2语言
5.3.1 FXQL/2语言的语法
5.3.2 GTP++模式的语言表示案例
5.3.3 FXQL/2语言的数据模型
5.3.4 FXQL/2语言的形式语义
5.4 树模式提取算法
5.4.1 标准树模式的提取
5.4.2 GTP++模式的生成
5.5 总结
参考文献
第6章 XML树模式查询的实现方法
6.1 XML树模式查询算法的发展
6.2 GTP++查询算法
6.2.1 树模式查询结果的表示
6.2.2 GTP++树模式查询算法
6.3 多级树模式查询
6.4 FXQL/3语言
6.4.1 多级树模式的语言表示
6.4.2 多级树模式的生成
6.4.3 FXQL/3语言的形式语义
6.5 多级树模式的查询算法
6.6 基于多级树模式的查询优化
6.6.1 内部树模式的提升
6.6.2 树模式提升算法
6.7 总结
参考文献
第7章 XQuery语言编译技术
7.1 XQuery编译技术的发展
7.2 基于SECD抽象机的XQuery编译方案
7.2.1 SECD抽象机模型
7.2.2 XQuery编译系统结构
7.2.3 扩展的SECD抽象机
7.2.4 抽象机指令系统
7.2.5 作为目标代码的Java字节码
7.2.6 XQuery程序的编译案例
7.3 从FXQL语言到SECD指令的翻译
7.3.1 FXQL表达式的翻译
7.3.2 树模式查询请求的翻译
7.3.3 XML查询原语的翻译
7.4 SECD抽象机的字节码实现
7.4.1 Java虚拟机的体系结构
7.4.2 Java栈帧和数组表示
7.4.3 Java类文件结构
7.4.4 SECD机的实现方法
7.4.5 从SECD指令到Java字节码的翻译
7.4.6 树模式查询的Java字节码实现
7.5 XQuery语言的动态编译
7.5.1 XQuery语言的Hotspot编译
7.5.2 XQuery程序模块的编译实现
7.5.3 动态编译策略
7.6 总结
参考文献
第8章 XQuery程序的自动并行化
8.1 XQuery程序的并行化处理
8.1.1 XQuery程序的三种并行处理方式
8.1.2 XQuery并行执行引擎的结构
8.2 XQuery语言的并行查询计划
8.2.1 可并行任务的任务图
8.2.2 针对XQuery语言的任务分解方法
8.3 XQuery程序并行执行的任务调度
8.3.1 XQuery程序的执行代价模型
8.3.2 XQuery程序执行的任务调度
8.3.3 XQuery并行执行引擎的实现算法
8.4 总结
参考文献
第9章 基于XQuery的网页开发语言
9.1 Web客户端网页开发语言
9.2 XQScript语言
9.2.1 浏览器对象及其文档对象的引用
9.2.2 浏览器对象及其文档对象的更新
9.2.3 JavaScript内置对象的方法激活
9.2.4 事件响应机制的支持
9.2.5 XQScript网页开发案例
9.3 XQScript语言的实现原理
9.3.1 从XQScript程序到XHTML网页的生成
9.3.2 XQScript软件开发系统
9.4 XQScript语言的执行引擎
9.4.1 快照语义的实现方法
9.4.2 HTML DOM对象操作的转换
9.4.3 事件响应函数的实现方法
9.5 XHTML网页的生成
9.5.1 XQScript程序的预处理
9.5.2 XHTML网页的生成过程
9.5.3 动态生成的XHTML文档案例
9.6 XQuery语言的扩展研究
9.7 总结
参考文献