级别: 初级 IBM FellowAlmaden 研究实验室
2003 年 10 月 01 日 IBM Fellow 和 SQL 发明者之一 Don Chamberlin 谈论有关 XQuery 的工作。
作为 SQL 数据库语言的主要设计者之一,Don Chamberlin
有很高的知名度。他在 IBM 的 Almaden 研究中心工作,专攻数据库语言、数据库系统和文档处理。1994年,他获得 ACM Fellow 荣誉称号。1997年,他当选为 National Academy of
Engineering,这也是工程学界的最高荣誉。由于在关系数据库语言方面的出色工作,最近他被评为 IBM Fellow。目前,他在 W3C XML Query
工作组中担当 IBM 的代表,同时也是多个 XQuery 语言工作草案的编辑。
Q:最近,您因为在数据库语言方面的工作而当之无愧地获得 IBM Fellow
称号,首先请允许我对此表示祝贺。我认为大多数读者都知道您是 SQL 的奠基人之一。那么,您将注意力从关系数据库转移到 XQuery,是一种自然而然的延伸,还是因为您需要作出一些调整呢?
A: 非常感谢!事实上,我在 IBM 的工作主要分为两大块:一个是数据库,还有一个是文档。我有幸能够有机会与 Ted Codd
一起参与了早期的关系数据库方面的工作,后来这些工作导致了 SQL 和 DB2 的诞生。之后,我花了几年的时间编辑和格式化结构化文档,当时凭借的是一种被称作
SGML 的符号,也就是 XML 的前身。在过去的几年当中,万维网已经将各自独立的文档和数据库融合到一起。因此我觉得,我在 XQuery
方面的工作正是我整个职业生涯中不断追求的兴趣的一个再自然不过的高峰。
Q:作为 XML Query 工作组的一名成员,您有何感想?
A: 这是一份很棒的工作!工作组大约有 40 名成员,代表着大约 25
家不同的公司。他们有着不同的工作背景,从关系数据库到图书馆学(library
science)。这些人有些精于理论,有些则是实用主义者,还有几个是其他查询语言的设计者。我们每周有一次常规的电话会议,每 6
个星期举行一次碰面会议,而且,每个月我们都要互相发送数百份电子邮件。试想一下,要设计一门复杂的语言,同时要受到一些现有语言的接口的限制,这些设计工作都是在 25
个思维敏捷而又坚持己见的人之间进行,您可以想象得到,我们在工作中会碰到多少有趣的事情,为什么这一过程要花那么长的时间。
Q:那么 XML Query 目前进展如何?人们什么时候可以再次看到一份稳定的规范的诞生呢?
A:您知道,XQuery 被描述为在 Query
工作组 Web 页面上有链接的一套工作草案。这些工作草案提供了对 Query
语言的概览,并描述了这门语言的各个方面,例如数据模型、函数库、静态类型检查规则等等。到目前为止,有两份草案已经进入“Last Call”状态,这意味着公众可以在一段有限的时期内针对该文档提交评论和提出一些相关的问题。我认为在 2003 年结束之前,XQuery 规范的其余部分也进入“Last
Call”状态是比较有把握的。
万维网联盟(W3C)在创建一个标准时都会采用一种非常结构化的过程,W3C
将这种标准称作建议(Recommendation)。在解决了 Last Call 期间提出的所有问题之后,XQuery
就符合了发展为候选建议(Candidate
Recommendation)的条件。之后,如果至少有两套可互操作的实现通过了论证,那么它就进一步成为推荐建议(Proposed
Recommendation)。W3C 理事会最后决定是否采用新的建议。上述过程通常需要花费几个月的时间。由于 XQuery 是一种复杂的语言,而且与其他一些
W3C 建议相互之间有着很大的影响,因此它获得批准的过程比起通常情况来要花更长的时间。我们正在尽量加快进程,以便能够与其他的 W3C
工作组保持步调一致,这些工作组包括 Schema 和 XSLT。
Q:听起来好像还要耽搁一些时间?
A: 不是这样,我上面所说的并不意味着实现者在实现 XQuery 之前将等待(或者必须等待)最终的 W3C
建议的出炉。目前,该规范的某些部分已经相当可靠了。这门语言的一些早期实现已经出现,在我提到过的 XML Query
Web页面上,已经提供了其中某些实现的链接。在该规范完全确定下来之前实现这门语言的供应商要担当一定的风险,当工作草案完成之时他们可能需要作出一些修改。
Q: 假设大多数读者都熟悉 SQL 和关系数据模型,那么他们有望看到怎样的为了容纳 XML
数据而作出的语言修改呢?
A:
关系数据模型涉及结构化商业数据领域,其中的信息往往都是规则的、同构的。这就允许将“元数据(metadata)”,即描述数据的数据分解出来,按照单独的类别进行存储。另一方面,XML
涉及出版(publishing)领域,其中每一个文档都有不同的结构,每一块数据都必须是自描述的。在 XML 中,元数据以标记的形式分布在整个文档中。这意味着 XQuery
的操作符必须非常的灵活,因为它们不能确切地知道它们会碰到什么。例如,在 SQL 中,表达式 “salary + bonus”总是将一个 salary 值加上一个
bonus 值。但是在 XQuery 中,同样的表达式可应用于这样的一个 XML 元素:它具有值为 0 的 salary,或者有多个 bonus。 为这样非常灵活和动态的环境设计一门语言是一个很大的挑战。
关系数据和 XML 数据之间的另一个重要的不同之处在于,XML
数据有其固有的排列次序,而且这种排列次序与数据的值无关。同样,因为 XML
作为一种文档标记语言有其自己的根,一个文档的内容都具有自然顺序。排序是
XML 中的基本概念,对 XQuery
的许多操作符都有影响。
Q:XQuery 与正在 ANSI 中进行的工作有哪些不同?
A: SQL
是一种关系查询语言,它被设计用来对具有行和列的表进行操作。在
ANSI 中的 SQL/XML 工作被设计用来扩展
SQL 以提供某些 XML
相关的特性。例如,这些扩展将允许把 XML
数据存储在一个表的一列中,还将允许以
XML
的格式交付关系查询的结果。但是,事实上这些只不过是添加到一门基础性的关系语言中的一些新特性而已。
另一方面,XQuery
是一门全新的语言,它被设计用来操作 XML
数据。XQuery
不理解任何与行和列相关的事物。它是基于
XML Schema
的类型系统的,这与关系数据模型有很大的区别。XQuery
使用二值(two-valued)逻辑,而不是像
SQL 那样使用三值(three-valued
)逻辑。XQuery 的许多操作符是从
XPath
继承而来的,这也使得这些操作符在行为上与
SQL 的操作符有所不同。例如,XQuery
中的“equals”操作符对值序列进行操作,如果左边序列的任何成员与右边序列的任何成员相等,那么该操作将返回“true”。
Q:
我们有望在什么时候能够看到 XQuery 受到 IBM
一些产品,例如 DB2® Universal Database
和 DB2 Information Integrator 的支持呢?
A: IBM 已经发布了 alphaWorks®
上的
XML for Tables
。XML for Tables 是 DB2 UDB
上的 XQuery 功能的技术预览。IBM
还计划在将来直接将 XQuery 功能构建到 DB2 UDB
和 DB2 Information Integrator 中。
Q: 大家都喜欢您撰写的 DB2 Universal Database
方面的
书籍。我们是否有望在将来看到你撰写的关于
XQuery 的书籍呢?
A:
多谢关心。恰好就在这个月(2003年8月),Addison-Wesley
将出版一本题为
XQuery from the Experts
的书,书中包含了由 XML Query
工作组中的十名成员编写的一些章节。我写的那一章题为“Influences on the Design of
XQuery”。在书中我力图解释 XQuery
设计是如何进展的,其中要研究 8
个有争议的“分水岭问题(watershed issues)”,这些问题对
XQuery
语言有着很大的影响。在其他章节中,有一章是一个语言教程。每个参与编写的作者都从不同的角度描述了
XQuery,我认为这样写出来的书为读者提供了对
XQuery 语言的很好的概览。
Q: 完成了 XQuery
之后,您打算下一步做些什么?
A: XQuery 版本 1
将缺少一些重要的特性,包括更新功能、全文搜索和一个错误恢复程序。这只是因为我们没有足够的时间在第一次尝试中解决这些问题。我估计还会有后续版本,例如版本 1.1
或者版本 2,这样的后续版本将会把上述特性以及其他特性加进
XQuery 语言中。我很乐意与 XML Query
工作组里的人一起工作,我还希望参与
XQuery 将来的改进工作。
从长远来看,在信息检索领域的工作是激动人心的。Web
已经使得各种各样的信息随时、随地可以获取。这是一次革命性的发展,而其影响才刚刚为人所认识。组织和开发这笔信息财富的方法的发现任重而道远,足以让像我这样的工具建造者(tool-builder)忙上好一阵子。
Q:谢谢您抽空接受采访,Don。
A:谢谢对我的邀请!
声明
所有有关 IBM 的未来方向或意向的信息都可以随时更改,而不另行通知,它们仅表示了目的和目标而已。
关于作者  | |  | IBM has authored this article |
对本文的评价
|