【IT168分析评论】
【聆听IT专家讲座,了解如何降低数据管理成本,更有机会获得限量蓝牙耳机!】
【了解更多数据管理产品信息。】

今年7月,在DB2经历了二十多年的发展后,推出了其最新版本—— DB2 9,这个代号为“蝰蛇”的信息管理软件是数据库历史上的一个重要的里程碑,具有从量变到质变的突破。它从底层实现了关系数据库与层次数据库的结合,解决了在数据复杂度不同情况下的应用问题。然而这个划时代的产品意义何在?似乎人人都有不同的观点,带着这样的问题,本刊记者采访了IBM院士王云先生。
《程序员》:王院士,您好!我们知道您是从做数据库,或者说是信息管理软件逐渐成为IBM院士的,能否结合您从业三十余年的经验谈谈您对这个领域的看法?
王云:回首过去三十余年的职业生涯,我确实一直坚持在数据库与信息管理领域。对于个人技术的发展,我认为可以比作‘T’字型,其含义是,对知识领域不仅要有深度上的钻研,也要有广度上的扩展,其实在数据库领域也是一样,这一点我在后面会提及。我经常和年轻人提及我对他们的祝愿,就是三星高照,所谓三星,就是指传统的“福禄寿”,‘福’代表运气和机会;‘禄’代表把握机会,做出贡献,实现价值;‘寿’代表在自己的领域中继续深入研究。我认为自己很幸运,已经基本实现了三星高照。然而要达到成功并不仅仅只是运气,如果机会来临无法把握,那就是个人成长的问题了。现在看来,我可以把过去30 年分成三个不同的阶段:
成长期:
1979 年我赴美读博士时,开始在一家IT公司打工,这是一家做信息管理系统的软件公司,那时开始我就算是真正进入到信息管理这个行业当中来了。真正加入IBM,我是在1985 年。当时我作为一个拥有工作经验的员工加入到IBM公司,一开始就承担了很多任务,除了做一些软件设计的工作外,我还常常需要帮人浏览和走查代码。刚开始的那段时间承受住了很大的压力,接下来便开始承担更多来自其它部门和其它项目的任务,这也是我能比旁人获得更多机会的原因之一。当时IBM的主要产品都在主机上,我所在的部门主要从事DB2功能性模块的开发工作。这个时期是我事业的成长期,我在这一时期的工作中除了摸索出了做事的方法外,还渐渐开始从深层次上了解信息管理软件的功能问题,并逐渐由接受任务变成自己主动做策划。
成熟期:
1993 年左右,我从产品部门转到了研发部门。当时的数据库产品功能还不像今天这样强大,尤其是面对不同数据源与数据类型,数据库往往无法识别与整理。这道理就好比两个地址在数据库中的表现只是两个互不相干的字符串,但是在现实世界中,它们所表达的含义还包括两者空间上的距离。为了将这些具有相关性的信息添加到数据库中需要很复杂的处理,它除了包含用户自定义类型之外,还增加了用户定义的索引和搜索功能。要知道,内存中的数据做搜索不是问题,但是在硬盘、光盘或者磁带上做搜索可不是一件简单的事情,而是需要建立新的数据模型,并且把一些可以快速运算的工作交给底层完成。这就是早期数据库产品面临的功能性问题。在完成这些工作的同时,我花费了一些精力去了解市场与产品的需求,直接面对客户,这样也就把有限的研究经验结合到产品当中。
传承期:
5年后,公司又把我调回了主机部门,因为历经十几年的发展,以前的数据库基础设施已经不能完全满足需求,需要大规模改进。就像一幢地基只有100平方米的大楼,上层已经达到了几百平方米,并且仍在扩展。因为需要不断把新的功能和项目从应用层压缩到数据库中去。就需要有强大的底层功能来支持它。98年开始,我将主要精力花在主机数据库上层功能的重新构建(Reengineering)这项工作直到2002年才完成。其工程难度可想而知,如果用建造房子来比喻:建造一座新房子的困难程度远远低于在原有建筑上进行重新的修缮和框架重组,同时还需要保证其中的居住者正常使用。这段时间我算是“下海”做了项目经理,带了一个超过100人的团队,由于主机项目技术和管理的依赖性很强,我同时承担技术和管理的工作,直到项目结束。
2003 年开始,为了进一步扩展技术知识的广度,我先后加入了内容管理部门和IBM Lotus部门。这也是将职业人生中的那个‘T’的上面那一横延长的过程。今天的内容管理与信息管理有很大的联系,而协同软件也同样需要和信息产生交互,这是我为什么会选择从事随后这两个部门工作的原因。2005 年以后,我就来中国这边的实验室了。
《程序员》:您见证了IBM 数据库从IMS 到DB2及Informix的过程,结合您的经验,请谈谈DB2 9 的历史意义。
王云:事实上,DB2 9最大的贡献在于它形成了一种新的数据模型。从程序员的角度来讲,数据库的开发和应用都习惯用表格表示关系和数据模型,这也是早期由IBM提出的关系型数据模型,历史上这个模型几乎领导了信息管理领域几十年时间。这样的模型中,有些信息很难表达。比如说医生的诊断书和客户的商品目录,这类对象的属性何止成千上万,但我们真的需要将它们全部描述出来?为了满足关系模型的完整性需要,我们不得不列一张具有几万个字段的表格,而在层次模型上,我只需要一个XML 文件。DB2 9 正是在数据库底层支持XML 的存储,用以处理层次数据模型。在信息属性很多或者属性的架构比较复杂的时候,如医疗检验报告,用关系型数据库难以描述,就可以选择用XML数据来进行处理。
DB2 9提倡的新理念就是由数据库来解决复杂的问题,为应用层减轻负担。对于程序员来讲,则提供了一个新的数据模型——树状结构,程序员面临的挑战就是如何运用这个新模型。在与数据库接轨的地方出现一个树状的结构,我们需要有办法对这种树状结构进行快速访问,需要有新的索引方式来找到树状结构的内容,并且应用层需要与数据库沟通,所以必须采用标准的语言来实现,于是我们选择了XML。DB2在不同的平台上会有不同的版本,第九版本UDB在开放平台上推出了,可能到年底在主机平台上也会推出。
《程序员》:回顾数据库发展的历程,从层次型走向关系型,而目前又回到了层次型,您怎样看待这样的一个回归?
王云: 我想这是由需求决定的,这两个数据模式代表了不同的应用,当需要表达两个人之间的复杂的多元化的关系时,关系型数据库就派上了用场。当然树状结构也可以对两个人之间的关系进行描述,但是表现出来关系体现在在应用角度而不是实体角度,因为树状结构只能体现单向的简单的关系。如果把实体间所有的联系看作一些平滑的接在一起的火柴棒,那么在任何一个节点拎起来都能形成一棵自然的树。树状结构是最直接最有效的展现方式,却不是一个本质的方式。IBM最初的IMS数据库,看起来是层次型数据库,但事实上它是网状结构,由许多的树组成,其中也可以包括虚拟的树,应用的时候站在某个节点的角度,把这些树看成一棵树。当时数据库之所以从树状结构转变成关系型模式,是因为关系型数据库表现力更丰富,可以表现更复杂的关系。比如说供应商和元件的关系,属于多对多型,树状结构就无法表达表达这种关系。今天出现的XML应用,并不是要取代关系型数据库,而是关系型的一个扩展。目的只有一个,就是提高应用层的效率,提供一个更经济有效的在展现层进行处理的数据模型。
《程序员》:这一次的DB2 9 发布中,真正将层次性的数据结构放在了数据库的底层,从IBM 的IMS 开始,数据库经历了网状、关系和层次的发展历史,请您简单谈谈这几者之间的关系。
王云:不管是网状、关系还是层次的数据结构,其表现形式都各有优势。其实网状模型所表示的,就是多于二者的关系,比如刚才提到的供应商和元件的关系,如果再加上项目的话,就变成了三者的关系,在这种情况下,关系型数据库的表现力更丰富。关系模型库与网状模型相比,最大的优势就是,它可以描述动态的关系,有些事物,表面上看是不存在任何联系的,但是当需要的时候,利用关系型数据库就可以找到他们的关系。树状结构是展现层的一个有效的、容易理解的交流方式,但是无法表现现实中错综复杂的关系。总结一下不难看出,事实上关系模型可以包含和覆盖网装模型。
《程序员》:当DB2 9面市的时候,有IBM的专家戏称这个产品是DB3,请问您觉得这个产品能当此大名吗?
王云:这种观点是从某种程度上讲,是不无道理的。从前关系型数据库更注重整体关系,但是在展现层处理上存在着一定的欠缺。在某个实体的属性多达两万个、而实际上只有两三个属性可用时,完全没有必要把所有属性都罗列出来,比如我刚才提到的诊断书和产品目录就是这种情况。以前IT的服务对象主要是企业,信息关系既明确又简单,目前IT 是服务于社会,信息变得越来越复杂。由于IT与人的关系日益密切,将来的信息管理会进入非架构化、非数字化的形式。在某种意义上,DB2的确具有DB3的特性,但是这并不意味着要把关系数据库完全抛弃。就如同进行数学研究,简单的原理可以深入讨论,定量分析,而没有清楚定义的问题只能定性分析。以前简单的商业信息可以进行定量分析,而目前的复杂的社会信息需要只能定性分析。生活中的许多事情,并不能定量分析,比如说我太太上街买东西,我可以问她都买了什么,但是我没有必要问,每件东西都花了几毛几分钱,如果量化那种程度,家庭矛盾就不可避免了。
《程序员》:数据与信息从最初集中走向分布,从网络走向网格,从字符检索走向语义,目前已经可以看成是一个交汇点了,那么DB2 9站在这个位置,是否代表了将来数据与信息管理系统的发展方向?
王云:其实这几个问题之间存在一定的联系。先从由集中到分布说起,我认为这两者一直会并存,就如关系型数据库和XML 一样,不会出现A取代B的状况,因为它们各有特色。分布式和集中式在某种条件下是可以相互转换的,依需求而定。由集中走向分布的含义是,随着科技的发展,出现了分布的应用,并不是说分布式将会取代集中式。比如每个人有自己的银行存款簿,看起来是分布式的应用,但是真正的存款簿是由银行系统集中管理的,如果进行转帐业务,只有通过集中的方式进行才更高效。当年之所以会出现超级计算机,是因为解决类似矩阵运算这类数学问题,不可以分布完成,只能通过一个高性能的计算机来完成运算。在这里我们可以套用web1.0 和web2.0 的说法,如果今天没有百度Google 或Yahoo 这类搜索引擎,互联网是无法正常工作的,因为成千上万个分散的网点不能被整合起来,人们无法找到自己需要的信息。实际上搜索引擎系统本身是集中的,因为互联网需要一个集中的路径来监管信息,搜索引擎通过这些路径提供了分布式的服务。分布式和集中式是相辅相成的,我们接触的分布式可能较多,因为我们是作为个体去应用信息管理软件的,但是不可否认,分布式在进步的时候,集中式系统也在随之成长,离开集中式,分布式也是无法成长起来的。
关于由网络走向网格的说法,我认为这是集中与分布的另外一种表达方式。网格概念给人的感觉是集中的,但是事实上它是分布的,网格就是把所有的信息集中起来,在逻辑上是集中的,而在物理上则是分布的。
至于从字符到语义的跨越,我想这是定量和定性的差别。由于不确定的信息增加,需要处理不确定的数据模型,目前的信息服务趋势正在从定量向定性发展。这不仅是数据库要处理的问题,也是IT行业要解决的问题。比如在调查中国移动和中国联通的受欢迎程度时,从前会进行问卷调查,是定量分析的方法,现在我们可以到网站上去寻找信息,根据大家的评论得出结论,属于定性分析。这不仅是收集到信息的变化,也是方法的变化,是基于模式从定量变成定性所带来的冲击。IT的发展趋势随社会发展而改变,因为IT 是服务于社会的。