技术开发 频道

专访IBM DB2专家:XML引发数据库二次革命?

编者按:Don Chamberlin 是IBM院士,还是关系数据库标准化查询语言(SQL)和Quilt语言(后来演变为XQuery查询语言的基础)的核心发明者之一。在本次访谈中,他向大家介绍了IBM的历史、XQuery规范与XML数据模式、XML数据库的性能和安全。另外,还邀请到复旦大学计算机科学与工程系教授、博士生导师周傲英老师,探讨中、美数据库教育的差异,以及如何学好数据库开发技术。


XQuery规范与XML数据模式

熊建国(主持人):各位网友大家好,今天有幸请到IBM院士、IBM阿马丹(Almaden)研究中心高级工程师Don Chamberlin先生和复旦大学的周傲英老师做客IT168,与大家交流。

    IT168是专业的传播媒体,2000年我们成立了企业服务群组,定位为企业用户提供一流权威的咨询,IT168有中国最大的一个社区,即ITPUB,有65%会员是数据库开发人员和管理人员。 

    我们知道Don Chamberlin先生是SQL语言的发明人,目前在W3C组织中从事XQuery规范的制定和研究工作。Don Chamberlin先生从事数据库据相关的研究工作已经有30多年的,可以说是目睹了数据管理几十年的发展和变迁,下面我们首先请Don带我们回顾一下这些历史? 

Don Chamberlin:非常感谢各位,能有机会来到这里感到非常荣幸。我在IBM工作差不多有30年的历史了,最大的兴许爱好就是研究数据库技术与研究数据库的历史和现在。 


Don Chamberlin 先生



    数据库已经成为普通人生活中的一部分,如果大家去银行取钱、乘坐飞机,或者去商店里面购买物品,都不可避免的要和后台的数据库打交道。数据库虽然已经渗透到了生活各个方面,但从整个产业来看,数据库产业现在还是一个非常年轻的产业,只有40-50年的历史。 

    在过去的40---50年里,数据库发展受到很多创新型想法的影响,接下来会总结一下数据库50年产生的重要思想。 

    最早的电子化的数据是来自于美国的统计局,大概每隔十年左右的时间,国家会对工作的状态,家庭人员结构做一个全国性的普查和统计。但是有挑战性的是,虽然法律要求每十年做一个全国性的统计和普查,但是要对收集过来数据进行处理的时间往往会超过10年,所以每到下一次普查,上一次普查的数据还没处理完,所以国家需要一个新的方案来解决这个问题。 

    麻省理工的教授霍列瑞斯博士发明一种方法,就是我们最早熟悉的打孔机,把数据的结构用打孔机读下来,然后加快数据处理的过程。发明这个想法的霍列瑞斯博士,后来申请这个专利,然后开了一家公司。这家公司与另外一家公司在1924年合并了,这就是IBM公司。 

    从最开始IBM创立的时候就可以看到,IBM整个历史从一开始就和信息、数据的应用密切联系在一起。人们开始用打孔机记录数据一直延续到20世纪40年代,从现在观点来看,这是一个有非常悠久历史的产品,因为一个产品能超过15年的历史,应该算是一个非常好的产品。 

    但是这种打孔机的卡本身有一个缺陷,它只能按照一个方法读取,不能随机读取,这导致第二个重要思想产生,就是采用磁盘的技术,使得对数据的读取可以随机读取。 

    随着磁盘的产生,使得我们对数据的管理可以走向集成化的管理方式,使数据不再属于单个具体的应用,同时提供集中和管理模式,集中的备份等相关的内容。最早的数据库系统我们称为嵌套式数据库,它基本的原理,你要获取数据要编写一段代码,这段代码读取很多指针的链条,然后把数据找回来。很多那个时代的公司基于这样一个原理构建输出的系统,IBM是其中一家,我们基于这样一个技术构建了IBM的XML的系统。 

    另外一次对数据库影响深远的变化,由E.F.Codd博士,也是IBM院士,提出的关系型数据库理论。Codd的想法是希望构建这样的系统,不是让用户告诉计算机如何找到这个信息,而是让用户把想找什么样的信息告诉这个系统,系统自动找寻。 在关系型模式下,数据是放在表里面一系列的值,用户通过高层的语言去描述他想去找什么样的数据,而不是去描述如何找到这样的数据。 

    在这样一种设计下,比较重要的是物理存储的方式可以改变,用户可以自己添加数据或删除数据,这些都不影响应用访问数据的模式,这个想法最后称为数据独立性的想法。一开始人们认为这样的想法不现实,这里面最主要的原因,大家认为很难构建这样一种编译系统自动找寻访问数据的路径。我参与了IBM最早期关系型数据库的尝试——内部研究计划叫“Record System” ——去实现这个想法。我和Codd以及其他早期的研究人员一起共同构建一个实现关系型理论的系统,这里面的重点是侧重构建基于成本的编译器,可以按照语言的描述找到数据。这方面的研究产生的技术最后导致关系型数据库一系列产品的产生。 

    在过去20年里,关系型数据库在全球范围内非常广泛的被应用,大多数的商业型数据被存储在关系型数据库中。但是我们现在正在另一次大的变革门口,会改变整个对信息系统的管理,这样一种变革的动力来自于互联网的发展,使得信息的量以及信息的类型和复杂度和以前大大不同。 

    在传统的关系型数据库里,对数据的存储是片断式的信息存储,银行的账号、乘坐航空机票的预定以及产品信息都是要按照同样的结构来进行存储。但是由于互联网的发展,使得上述的情况发生了很大的变化,比如电子病历或健康档案,每个人每种病的描述情况都不一样,治疗的历史以及拥有医疗保险的情况都不同,采用传统的用表格结构化的模式来描述非常大差异型数据就面临非常巨大的挑战。 

    在互联网上大多数的信息都通过HTML语言描述,但是HTML在标签上有一些限制,不能够把很丰富的数据内容完全涵盖。未来会发展非常快的一种数据模式就是XML,它是对HTML这种标准的扩展,使得他们在标签上不再有固定的限制,可以很大程度的扩充很多新的类型的标签。 

    随着越来越多信息会采用XML格式,这就产生强烈的需求,需要针对这种数据提供查询的语言,在XML信息集里找到相应的信息。W3C是全球负责互联网相关标准的组织,他们建立了一个工作组来专门制定针对XML查询的语言标准。在参加这个工作组里面的人员包括从很多大的公司人员,以及一些主要的大学。 

    我代表IBM参加了这个工作组,在开发一种有点类似SQL的语言,但比传统理解的SQL语言更灵活更有扩展性。在今年1月份的时候,第一个版本的查询语言叫XQuery 1.0已经被采纳。现在这个工作组还在继续工作,在现有XQuery版本基础上增加很多新的功能,从SQL语言标准组产生有25年的历史,现在XQuery两个标准都会存在。现在我们所处的时代从数据库的角度来看是非常令人兴奋的时代,从数据库的技术和这方面的演进会对整个社会生活产生深远的影响。

数据库历史的二次革命

熊建国(主持人):非常感谢Don先生带我们回顾了数据管理的历史,刚才谈到XML可能成为数据库第二次大的变革,为什么是XML而不是其他的(比如面向对象的数据库),为什么XML会是第二次数据库革命呢?

Don Chamberlin:我认为XML是一个非常重要的技术,其中最重要的几点,一个是非常强的灵活性。这里面来源一个重要的特点,XML数据是自我描述的,根据XML数据本身可以理解数据以及数据之间的结构。

    与此相对应的面向对象的技术,基础是针对对象来说,但是OO(Object –Oriented,面向对象)技术来说对对象的描述遵循更为严格的体系,从这个点来看,我们认为XML重要的要点在于“X”,使得这个技术能有更好的扩展性。


XQuery 1.0新标准

熊建国(主持人):今年年初发布了新的标准XQuery 1.0,目前商用数据库对这些标准的支持情况怎样?我们了解IBM去年发布了DB2 9,它对相关标准的支持是怎样的?其他厂商对这些标准支持情况怎样?

Don Chamberlin:你的问题让我想起SQL在过去25年被业界采纳的过程,目前W3C有一个网站,列出现阶段商用采纳的标准,支持的有超过50个,其中有IBM的产品,也包括其他厂商的产品。

SQL面临的挑战

熊建国(主持人):您作为SQL语言的发明人,面对新的查询语言XML,SQL有哪些问题和挑战,如何看待SQL语言的发展前景,它会往什么方向去走?

Don Chamberlin:首先关系型数据库会存在下去,而且会长久存在下去,关系型数据库经过很长时间的发展,已经证明对非常规律的结构化数据,在这个领域会比XQuery做得更好,关系型数据库数据独立性的原则会永远存在下去。

    XQuery语言的产生,更多适应一些需要有更强数据灵活性的结构,以及灵活数据需求的产品。从SQL语言发展的挑战来说,目前技术上大的挑战,是如何将这两项技术很好整合在一起,在用户应用中可能一部分数据要来源于关系型的信息,另外一部分来自半结构化非关系型的XML,如何很好的把这样两个技术无缝的整合在一起,这是目前面临最大的挑战。

熊建国(主持人):IBM去年发布了DB2 9,IBM是否已经解决了这个问题,混合型数据库的发展方向是怎样?

Don Chamberlin:DB2 9在这方面是很好的开端,但并不是结束,就像SQL一样,还会有很多新的特性不断往这个标准里填充。目前第一个版本XQuery的制定主要的规范表述是如何访问数据,还没有包括一些重要的内容,比如如何更新这些数据,这些工作正在进行,一旦这个标准完成,DB2就会采用这些成熟的技术。

XML数据库的性能和安全

熊建国(主持人):刚才谈到XML适合比较灵活性的应用,对一些不变的还是采用关系型数据库,现在大家对XML技术还是持观望的态度,一个是性能问题,在XML数据库在性能方面是否会有很大的问题,另外安全问题XML安全性如何?在新的标准制定,核心产品的研发过程当中,我们对性能如何考虑的,会达到怎样的级别?

Don Chamberlin:这个问题好像30年前刚刚出现SQL语言的时候,大家对这个技术所产生的不确定性以及怀疑是类似的。

    XML数据类型比传统关系型数据库可以解决更多、更复杂的问题,现在侧重对XML的研究,是侧重于对XML优化器方面的突破。另外一个重要的问题,现在从研究体系里正在关注的是对于XML数据的安全性,由于XML信息存储很多普通人的信息,这些信息对人们生活产生重要的影响,包括财务信息、保险信息,以及医疗相关的信息,这些信息通过XML的方式进入数据库进行管理的时候,需要考虑更多私秘性的问题,需要考虑数据完整性、准确性等相关的问题。

熊建国(主持人):关于XML的性能,现在关系型数据库处理数据非常快的,Oracle出了一个新的技术fast file,XML技术以后会不会达到这样的速度,性能会不会达到这样的性能?

Don Chamberlin:我主要的研究领域是语言而不是性能,但根据过去的经验非常有信心,因为现在技术人员在参与这个研究,在不久的将来,就像30年前,当大家刚刚实现SQL语言的时候有很多性能方面的担心,今天在XML领域,随着人们在这方面研究力量的投入,这方面的性能问题一定能够解决。

pureXML的实现方式

熊建国(主持人):现在其他的商业数据库都提供对XML的支持,IBM和甲骨文也都提出了支持,这些不同的厂商对XML的支持有哪些不一样?去年IBM发布了DB2 9,申请了pureXML的专利,请您分析一下它们实现的不同方式。

Don Chamberlin:IBM把XML数据看成一个战略性的方向,我们采用的方式不是用关系型的方式,我们采用的是完全按照XML原生态的方式处理这种技术,不是其他的通过关系型把XML分解成关系型来实现。

    在这个领域也提供两种语言都支持,支持SQL也支持XQuery,而且都是用原生态的方式支持,我们这里面专门针对XML,另外不依附于关系型数据库,有对应的编译方式,有对应数据库的优化方式,有相应的索引的技术和存储技术,而不是通过数据转换和翻译的方式把XML翻译成关系型,或者把关系型的信息翻译成XML。

中、美数据库教育的差异

熊建国(主持人):今天我们请到复旦大学的周老师,目前中美数据库教育有哪些差异,都讲哪些内容,如何做实践?

周傲英:今天很高兴和Don Chamberlin一起来到IT168。


周傲英 老师



    我们读书的时候就知道SQL,数据库发展30多年,在中国的教育,从20世纪80年代初的时候,中国就开始在大学里面有数据库这门课程。 

    这么多年以来,数据库的变化很大,特别教材的变化特别快,几十年发展过程,现在我们的课程主要包括的内容,总结起来有三个部分。第一部分主要讲理论部分,理论部分讲的是数据模型,主要讲关系型数据的模型。在我读书的时候(20世纪80年代初)还是讲网状的,所谓层次型的数据库。现在那些东西都放弃了,那些更多是技术实现的问题,从建模的角度来说没有特别的理论根基,为什么关系型数据库能那么流行,最主要的是有它强大、坚实的理论基础,结合了数据逻辑。加上在这上面的一些操作,比如关系代数,关系演算,我们理论部分讲模型,主要讲这些内容,这很抽象的主要从建模角度来说。理论的另外一部分就是讲数据库的设计,我们学数据库都要讲这一部分,要讲数据库的设计,范式理论函数依赖。在教学的过程当中,如果光讲理论部分,讲完了以后,学生毕业了,还不知道数据库怎么用的。 

    现在情况有很大的变化,因为我们有更多的机会可以动手,我们有实验室,很多学校安装了比如IBM的系统,DB2的系统或者甲骨文的系统,再早一点的还有很多的系统,大家有动手的机会,再理解这些理论。除了理论以外,要把数据库变得实用,我们课程里面还要介绍一部分,也就是我们讲的实现,关系型模型提出来,当时经过了10年,从E.F.Codd提出这个系统,到这个系统真正实现,开发这个实验系统,到SQL到 DB2,这些系统出现在差不多20世纪80年代,经过了10年,这10年主要解决性能的问题,本身是导航的,是人来做的,要让它怎么存储数据,现在关系型模型,不来存储,要系统来做,这系统就要变得很聪明,要有技术,查询优化的技术,主要为了解决性能的问题,所以在数据库课程里面介绍第二部分就是实现技术,要讲优化,要实现,要讲索引。 

    数据库讲DBMS的应用要讲另外一部分,事务的处理。最早的Navigational数据库里最早就是事务处理,我们在操作系统就有这个问题,只不过在数据库里变得更为严重,我要解决安全,要能恢复,系统出错不丢失,不出问题,现在把所有数据库放在以前,以前用文件系统个人管个人的,一家出了问题,另外一家不受影响,现在整个大的企业,整个都是中心数据库,如果一出问题可能整个数据库都要瘫痪,所以如何保证这个问题,这就是实现的内容一定要讲清楚,对学数据库的学生来说,出来以后不见得实现DBMS,但是要知道工作的机理和机制。 
    
    第三部分要讲应用,也就是我们怎么动手,这方面我们跟国外比是比较欠缺的部分,因为要做一个好的设计,要做一个实验要花很多的时间,要有一个很好的开放实验室,有一些学校做到了,有一些学校没有做到,我们现在数据库的教学主要这三个部分。我们新技术的教学来看,比如XML,数据仓库,数据挖掘这一块,会包括一些,但本科生的课程只是引导性的。

Don Chamberlin:在美国大学里面教授数据库的模式跟周老师谈到的情况比较类似的,首先美国对于本科的学生会从用户角度介绍基本数据库的知识,包括关系型数据库的模型,包括SQL语言的介绍,包括范式性的数据建模等基本概念。比较高级的课程主要侧重于数据库系统的实现,这里包括数据库优化技术,数据库索引技术,数据库锁技术,数据库交易系统以及数据库的访问系统等等。 

    还有一些是相对比较专门性的课程,其中包括对于非结构化数据的访问,这里面比较典型的就是搜索技术,我们知道查询技术一般访问结果有明确定义的结果,一般只有两种情况,是或否的判断,对于搜索技术适用的范围是更模糊的范围,通过一系列的方式,不是完全结构化的数据,不会提供特别严格精确的结构。这个领域每个大学都提供一些这些方面的课程。

数据库技术人才的培养

熊建国(主持人):周老师刚才谈到,我们这边偏重的数据库应用的教学,我们培养的本科生是否能培养数据库的研发人员和设计人员的培养?

周傲英:应该说这和学校有关系,比如数据库研究历史比较久,师资力量比较强的学校都是有意识的做这方面,比如我们学校以及北京的很多学校都是这样的。但是对于绝大多数学校来说,主要的是要培养一个理念,让学生出来以后知道,数据库从某种意义来说是一种理念,要把数据都放在一起,大家在学数据库以前没有这种感觉,大家觉得自己管自己的数据,去在日常生活、学习当中,学校里面数据库,学校里面成绩登录,包括选课都是数据库在后台,他有体会但是没有这个感觉,所以培养他们一种理念和技术。

    更多的他们知道建模,知道SQL语言,知道SQL语言可以跟C语言结合在一起用,可以做一些应用的开发,绝大多数学校是这样一种方式,从研究角度来说中国需要数据库研究人员。但为什么不像美国那样大规模的培养,因为DBMS在中国,我们没有形成自己的产业,没有这个产业就没有人才的需求,包括IBM在中国的研究院,各种各样公司都成立研究机构,他们对数据库研究的核心慢慢移过来,前几年还是在本土。所以从研究的角度来说,人才的去向不是特别明确,现在一些学校培养的博士毕业,硕士毕业慢慢加入这些研究机构,比如国内的一些大公司也会成立自己的研究院、研究所或研究中心,会吸引这样一些人进去,随着我们应用水平的提高,和整个技术的提高需要这方面人才的培养。

熊建国(主持人):如果我们产业起来,或国外研发公司在数据库方面的需求,本土人才的培养会加快。

周傲英:对,现在从本科生角度来看,一般设计课程的时候,数据库作为基础核心课、操作系统、数据库和网络这是三大核心专业课程,每个学校都是很重要,要把它提升到跟后面的研究。因为本科生如果读研究生,比如我们招研究生就要看数据库背景怎样,有没有研究的感觉,不是只会写SQL语言,要知道问题在什么地方。 

    另外一个角度来说,在中国做,因为我们没有自己DBMS,为什么国外有那么多数据库研究人才,我们从研究的角度来说,数据库研究还是走在前沿的,我们在国际上没有那么落后,只是深度广度不够,是受我们产业的限制,我们对国外的了解以及关注的问题都差不多,他们有很多的贡献,我们要想深入下去要靠国内应用需求的推动,这不仅是DBMS产业,从数据库研究人员的角度,要关注中国特有的应用,其实现在国际上数据库研究前沿的里面,真正核心技术,DBMS相关的东西不见得特别多,更多的是数据库部署那么多,在应用中有各种各样的问题,这些问题你要研究它,我们有意识得,在国内的数据库研究人员,从本科生、研究生教学,我们也有意识安排应用驱动的研究,这样可以把教学研究和应用结合起来,这样形成一个良性循环,我相信整个应用水平,研究水平都会有相当的提高。

数据库技术教育

熊建国(主持人):我们目前中国使用数据库的教材,据我了解没有XML的技术,您觉得是否有必要,以后在新的教材有必要把XML数据库加进去,甚至把XQuery语言加进去,有没有这个必要?现有教材有哪些需要补充的?

周傲英:其实我们的教材更新不够快,如果从教材内容来看,去年年底的时候就接到过邀请,刘晶炜跟我们讨论写DB2的书,XML的书的时候我们接受到高教社的邀请写一本新的数据库教材,当时我们很感兴趣也答应了,因为数据库有DB2和XML在前面,写一本书相当难,特别写教材,但是我们想把IBM这两本书写好,我们会积累一些经验,因为IBM的书相对是技术成份多一些,但是从教学角度来说,可以考虑的少一些,这部分写完了我们可以积累一些经验。所以数据库教材这本书我们还在策划当中,我们希望早一点把DB2书交稿了,我们可以马上写教材。

    从内容来看,从我理解来说,我可以分成两大阶段的变化,第一阶段的变化是80年代中后期,当时很大的变化,包括从王姗老师的书,最早的版本很多在讲导航,讲指针,讲逻辑儿子,逻辑父亲那都是指针,物理指针只有一个,其他就要靠逻辑指针做,那就是网状数据库和层次数据库,因为那跟语言有关,跟操纵语言有关,那个语言非常复杂,有很多指针和新的概念在里面,而那些概念没有一个逻辑性,完全是为了做到这一点,必须要做,没有任何理由,你必须要去用,然后变得熟练,所以当时是那样的特点。 

    差不多到了20世纪90年代,那本书包括王老师的书和其他老师的书就变化了,那部分变成介绍历史的时候才会提,这是一个大的变化,这变化持续到现在,为什么那么多老师和学生包括出版社觉得要有新的教材,因为数据库演化到今天中间有很多新的故事,当时大家没有迫切的要求必须放在数据库教材里面,用来取代关系,或并驾齐驱,当时只是让大家做一个了解性的认识。 

    现在已经到了一个阶段,我们必须把XML放进去,并且和关系型数据库并驾齐驱的介绍,因为XML所解决的问题是原来努力想解决的问题,其实关系数据库一成熟,大家就考虑关系数据库建模不够灵活,把所有东西变成关系表会有很多问题,丢失语义,并且不自然。包括语义的模型,图的模型面向对象的模型都没解决这个问题。XML从建模角度来说,跟关系模型是互补的,有它的灵活性,但是关系模型在很多方面有它的优势,它有很好的可扩展性,高可用性, XML可以弥补它的不灵活,如果有一种技术支持把这两种东西放在一起,DB2 9做到这一点,以前的系统,DB2 9以前的系统,所谓可扩展的实现,甲骨文里面的XML的一些支持,都是把它当成一个大对象,或者当成一个特殊的,或者是硬打碎放里面的,这些不自然。我们开始做研究也是这么做的,现在这种情况下,有过德国的系统,当时吸引了大家很多的注意力,大家觉得看到曙光了。 

    DB2 9给出一个很好的解决办法,让它与关系型数据共存,以前把XML放在一个数据库里面,用数据库的话来说是二等公民,不是一等公民,它是特殊的,我们或者叫ADT(抽象数据类型)来解决,它要有相关额外的措施来解决,没有得到一等公民的待遇。现在这种情况都是一等的,在这种情况下是共存的,SQL要想办法支持XQuery的功能,XQuery有自己独立的语言,希望可以跟SQL有密切的结合,他们可以互操作,两种数据类型,结构化的和半结构化的可以互操作。这样我们对整个数据库建模的时候,就不是一种模式来建,可以有两种办法来建模,这时候问题变得相对简单,建模问题解决,系统可以支持这两种模型,整个现实当中的问题解决就会比较容易。刚才说到DB2 9是好的开始,但绝对不是故事的结束,会有很多新的问题发生。传统的数据库解决那么多问题,如果把XML变成一等公民加进去会带来很多问题,一个是设计的问题,原来的设计,要做成范式,现在的选择,你可以把它做成范式也可以变成XML,现在到底怎么选择,以前有设计的工具、规则、原理,这些规则就会发生变化,因为你可以选择,有选择就会灵活。 

    另外一个问题就是事务模型,以前事务模型考虑到DBMS应用的场合,原来要增加、删除、更新,打电话记录要记下去,银行取钱账户要减掉,这是很自然的,在商业系统里面,商业数据库有这样的要求。XML是树的结构,是自描述的结构,它的删除、增加、修改是什么样的,有没有那么频繁,原来在做事务处理的时候,可以加锁,可以加一个表,一个页或一行,现在加锁怎么加?你锁的机制,或事务处理的机制,有没有办法直接搬过来用,事务处理这一块,最重要的是,我们所说对XML的操纵是什么,要做什么操纵,有没有删除,有没有增加,有没有更改等,根据使用情况,使用场合才能决定做什么事务模型,我是不是关系事务模型有了就行,这是一个问题,我们没有解决,我相信DB2 9里面会解决这个问题。 

    另外一种是优化,优化是永恒的话题,因为优化涉及索引,还有各种各样的机制,就像原来学对象数据库一样,对象数据库很大的优化就是沿着路径优化。我在XML里面,就是有路径表达式,这就代替了原来在关系数据库里面的交易,这是一个代价最大的问题,你怎么解决它,为了解决这个问题需要一个什么索引,这些东西都解决了,才有可能真正把XML和关系数据库放在一起,所以面临着很多,我相信在IBM的研究部门,IBM的产品部门,可能都会考虑这些问题。从研究的角度来说,XML的研究最热的时候已经过去了,它完全是站在研究的角度来说,从实现的角度来说可能会引发新一轮XML原生态数据库技术的研发。

XML+XQuery=?

熊建国(主持人):也就是说数据库还有很多东西要做,另外教学方面也赞同把XML技术,包括XQuery技术跟关系型数据库一起。

周傲英:我们介绍模型不仅介绍SQL模型,也要介绍XML的类型,作为本科生教材比较容易,如果细下去查询优化,我们可以讲我们了解的,做研究的东西,那些东西不是现在主流的。我看过DB2 9很多技术报告、白皮书,但并没有介绍太多,它并没有讲优化,也可能是商业机密,或者没有成熟的东西在里面。

    从XML的角度来说,如果从建模的角度来说,完全可以和关系型数据放在一起。讲数据库讲ER模型,讲ER模型要转过来,转到关系模型有一套转换的规则,如果我们转换成XML的模型是更自然的,自然而然让学生知道。我们有各种各样办法,我们讲ER模型是概念模型,最终用户和设计人员之间,我为了刻划现实世界比较容易,先有ER模型,ER模型过来到物理世界到XML是很自然的,那XML有没有标准,我们说有这样的标准,那XML有没有类似的操纵语言?我们说XQuery也是类似这样的。国外的教材尽管更新比较快,但也没有这样的考虑。我去年在高教社主办计算机教学教材讨论会中,我提出这么一个观点,很多人很赞成,但是要把这个事情做的比较平滑的连接,跟原来知识整体性考虑我们还要有一些考虑,这是很好的问题。

熊建国(主持人):那国外教材对XML添加的情况,这部分内容取舍是怎么取舍的?

Don Chamberlin:在斯坦福大学已经开设XML相关的课程,这里请到麦克凯瑞,是Wisconsin大学著名的教授。这只是一个开始,这里有非常大的空间,使大学教育部门开始引入这个新的技术。在教育领域里面,关系型数据库由于非常成熟,所以有非常大的群体来了解,这里面所涵盖的知识也比较成熟,尤其在数据库设计等相关的技术在大学教育里面比较容易开展。而XML领域刚刚产生,所以目前来说没有很多的人才能够了解这个技术,同时有一些问题还没有得到完全的回答,比如XML技术可以很好解决灵活性,可以用新的方式表达数据,如何表达这些数据,什么是最好的方式可能要新的研究,这需要一些科研性、研究性的项目在前面做先导,进行大规模普及型教育会在研究性项目完成之后展开和推广。

SQL语言设计过程中的故事

熊建国(主持人):这里有一个网友的问题,问道:Don Chamberlin先生您作为SQL语言主要设计者,想了解一下在设计过程中有什么信息和故事可以分享一下。

Don Chamberlin:在SQL发明过程中有很多故事,事实上在SQL发明过程中和另外一个SQL发明人Ray Boyce一起共同发明了SQL语言,那时候都很年轻,当时E.F.Codd提出关系型数据IBM非常重视,就把全美的技术精英集中在一起,开始做技术性的实现。那时候是在纽约工作,为了参加这个工作同时到了加州。

    你们可能听说过Boyce,比较遗憾的是,Boyce在SQL语言发明过程中,因为他头部的一个疾病去世了。当IBM启动System R项目的时候,很重要的步骤是要获得真实用户的反馈,一开始做了一个简单的原型,其中实现一小部分SQL语言子集的功能,IBM在北美选择不同的地区、行业选择三个客户,历时3年时间,以他们作为原型实现,了解这些用户的功能和反馈,我在那段时间亲自拜访了那些客户。 

    与此同时,在研究一些基础的技术,尤其是优化器的技术,这部分内容是部门的一个成员,构建一个基于成本的优化器,这里面有一个有趣的故事,关于万圣节的故事,万圣节是美国一个比较有名的节日。这个节日很多家庭的小孩都要出去买一些礼物,这就和当时研究一个内容联系在一起,当时研究如何更新数据库里面的数据,比如在万圣节之前需要给员工增加工资,如果工资小于10万美金的需要提高工资。在这里实现的技术是通过数据库的索引技术非常快的找到记录,然后进行更新,比如要对于收入低于10万美金的员工加薪,先找到这些记录,更新记录的时候会找到索引,索引的位置就会产生变化,又跳到前面去了。由于索引更新以后记录往后延了,继续往下搜索又会碰到再一次加薪,这样就会给很多员工加很多次薪水,所以碰到这个事这种算法不起作用的。那是星期五,又是万圣节,小孩要买礼物,我们把这个问题叫万圣节的问题,过了万圣节再来解决吧。后来这个问题被正式命名为万圣节的问题,即使在大学的教学中也是引用了这个问题。

下一版的XQuery标准

熊建国(主持人):还有网友提问到下一版的XQuery标准想解决什么问题,预计什么时候发布?

Don Chamberlin:在下一版XQuery标准里面要补充的重要内容就是对XQuery更新的语言,包括更新XML信息重新放置,重新命名的操作,目前关于更新的语言在做最后的征求意见,新的版本出来之前会有一个草案,这个草案会放到网上公示,有机会让大家提一些建议。

另外要增加的内容是全文的搜索功能,这是对XQuery的扩充,提供一些基于语义的搜索能力,比如查机场,就会把飞机相关的同义词信息放在里面一起查询,这种模式会提供Ranking的机制和标准,如何采用数据来验证Ranking的标准。这些数据考虑如何把全文搜索技术和现在XML标准整合在一个整体,而不是把它作为分开的技术来使用。这两个部分都处在最后一次征求意见的阶段,一般来说我们会等待三个月时间采集大家的意见,如果一切顺利的话应该在明年年初确定下来,把这两个内容加入到XQuery中。

我们还有一些长期的计划,其中就包括分组汇总这些内容,这些内容可能按照一些分类对产品的信息进行汇总,它会在多维分析、商业智能里面非常有价值,目前也正在制定计划中。另外一个特性叫错误恢复的功能,由于XQuery比较强大,也可以处理比较复杂的情况,如果在查询的过程中出现错误,现在的机制,这个查询就会被中止,现在标准组织希望做到类似于Java的出错机制,用开启错误的模式进行对错误的处理,使得即使碰到错误也不会中断整个查询。

另外有一个正在研究制定的标准就是XQuery的脚本语言,如同现在看到Java要调动XQuery,Java是一套自己的语言,跟数据打交道是XQuery,在传统关系型数据库层面也面临同样的情况,不管是用C或其他语言调用SQL语句,我们使用的编程也不是完全匹配,中间要很多处理,在传统SQL方式下有一套机制提供一个针对SQL的控制模式,实现循环,实现分支处理和判断的因素,现在XQuery的标准也正在制定,希望把一些控制性的系统,和语言等内容放进去,可以由更多业务内容基于其中。

IBM与Oracle,谁占得先机

熊建国(主持人):有网友问到;每一次数据库技术的更新换代,IBM都站在最前端,但第一次关系型数据库发布的时候,IBM没有抢到先机反而让甲骨文抢到机会。这次IBM是不是认为已抢到先机?

Don Chamberlin:IBM在开放的标准上面做了很多的投入,我们和很多其他的公司一起,以及学校的研究机构一起共同制定和推广技术标准工作,在参与这些工作的同时也给我们自己建立了非常强大的技术实力以及为未来的产品奠定了很好的基础。

    另外一方面也听取很多用户实际的需求。这和我们当年推广关系型非常类似,IBM从技术研究来讲是比较开放的公司,当时关系型数据库突破之后,没有把这技术封锁在IBM,而是开放出来,对整个产业而言后来又了一系列关系型数据库的厂商,我们从这个过程学到经验,一旦标准出来,IBM需要把产品实现好,通过更好的技术实现建立起更好的竞争优势。

周傲英:Don意思是说他们制定标准公开有很多人会去跟踪,他们会实现,他们再来做的时候,他们不在意一开始是不是领先,这是IBM的策略。 

    现在当然DB2占的份额很大,特别是在中国,在几年前,我们跟IBM合作通过教育部有比较长的合作,我就跟他们说,数据库从你们那发源的,为什么没有特别好推自己的系统,现在他们已经加强DB2在这一块的力量,在市场的份额越来越大。当时他们为什么没有抢得先机,一个与Don说的“比较开放”有关,另外当时IBM其他能够盈利的点特别多,它的软件、硬件,其实以前真正盈利的是硬件,别人原来批评它最早的IBM软件是封闭的,包括大型机,一些系统都是封闭的,没有开放,这可能是一个原因,他们的系统,DB2也是一样,只在自己的上面运转,没有可以在其他的系统上装,所以占不了太大的份额。去年我参加了他们一个IOD,我们知道他们在信息这一块,软件这一块,服务这一块,有很大的改变,他们营业收入点早也不只是计算设备制造了,原来IBM给人感觉是国际商用机器公司,现在可能软件在加强、服务也在加强,可能在这些方面会更开放,跟市场的结合会起一些作用。包括现在提的SOA,IBM也是起领头的作用。

熊建国(主持人):现在DB2 9是不是应该抓住这次机会,占得了先机?

周傲英:原来DB2 UBD出来的时候,在之前我很了解,他们做一个系统,递归查询优化那一块,觉得他们功能做的很好,那时候觉得这个东西很快会在产品里面体现出来,过不了多久他们就出来了。DB2 9推出来之前,我还不知道他们在这方面有那么多的积累,所以我不知道,原来我感觉到,他们是顺理成章的,很自然的。是不是采用另外一种措施,把这个做得很好,一下子加到产品里面公布,所以给我们感觉,原来并没有意识到这一点。后面的问题在于怎么样推广应用,怎么样得到业界的认可,特别是合作者,第三方合作者,也就是那些开发商愿意用DB2 9做各种各样的应用,如果用的越来越多,自然而然对其他数据库公司造成很大的压力,如果对其他公司有压力,它就是领先的,因为先走一步,并且有IBM的实力。

推荐数据库书籍和经验

熊建国(主持人):今天由于时间关系,聊天活动差不多了,最后两位给我们ITPUB的网友推荐一些数据库的书籍和经验。

Don Chamberlin:十年前就写过一本关于DB2的书,在这个领域,因为在中国,可能周老师在这个领域对国内数据库的教学和书籍层面会有更多的了解,而且周老师目前正在写几本有关数据库的书。请周老师回答这个问题。

周傲英:如果从综合全面的学数据库来说,国内有一些教材,书店里面可以看的到,国外教材更新很快的,有5、6本书,从ChinaPub可以找到。

    因为数据库的观念在变化,技术也在变化,所以更新比较快,可以看新一点的书,原版的书会更新比较快一些。如果从专门一点来看,XML书很多的,XML更多的是讲怎么用XML语言来标注,其实XML最早不是数据库的人做的,最早是图书馆的人做的,做情报系统和图书馆的人,要把文档、资料存起来怎么标注,后面才是数据库接入,如果想学数据库,从XML角度看数据库,比如《Data On the Web》。 

    其实看书是一方面,如果IBM公布的白皮书,用户手册在网站上都可以拿到,这些书如果细的了解技术,我相信在其他数据库厂商里面也有类似的东西。如果在不同层次现在比较方便应该可以找到所需要的。

熊建国(主持人):各位网友,今天的聊天活动到此结束,感谢Don和周老师。谢谢!

0
相关文章