互联网周刊:数据库走入混合时代

    在经历了层次型数据库和关系型数据库的时代以后,也许我们已经站在了混合型数据库时代的门口
  
    自从1970年E.F.Codd发表他那篇著名的关于关系模型的文章?“A Relational Model  of Data for Large Shared Data Bank”,并从此开启了关系型数据库的时代之后,人们已经在以关系型数据库为主角的世界里待了将近四十年。而对于技术更新换代速度很快的IT业,这简直可以说是一潭死水?除了习以为常的商业竞争之外,已经很久没有让人兴奋的新技术出现。但现在,随着XML数据格式的盛行,IBM带着它的第三代数据库理想,以及“Viper”计划(DB2 9计划代号Viper,即毒蛇),呼啸着站到了世人面前。
  
    故纸堆的管理难题
  
    在数据只能以穿孔卡片的形式来保存的年代,人们对数据的管理还只停留在物理阶段,根本无法进行高效的存储和查询。直到1956年IBM生产出第一个磁盘驱动器(Model 305 RAMAC)之后,随机存储数据才得以实现,但此时依旧没有相应的软件能够对数据进行系统管理。
  
    直到1961年,通用电气公司开发成功的IDS(Integrated DataStore,集成数据存储)是世界上第一个网状数据库管理系统(DBMS),也是第一个DBMS。此时的数据,以网状模型的形式存在着。但是由于它只能运行于通用电气的主机上,且数据库只有一个文件,所有的表必须通过手工编码生成,因此有着极大的局限性。
  
    所以,当面向对象的层次型数据模型开始受到关注,层次型数据库也随之出现。1966年IBM与其客户(北美洛克维尔公司和卡特彼勒公司)合作开发的层次型数据库IMS(Information Management System,信息管理系统)被应用来管理阿波罗计划繁琐的资料。当它作为IBM的产品正式发布之后,成为了当时最著名也是最典型的层次型数据库管理系统。数据库管理系统也进入了自己第一个相对成熟的年代。
  
    然而尽管层次数据库已经可以很好地解决数据集中和共享的问题,但是在数据独立性和抽象级别上的欠缺,使得新的数据模型再次酝酿出现。1970年,IBM研究员E.F.Codd提出了关系模型的概念,由此奠定了关系模型的理论基础。他的那篇著名论文也被认为是数据库系统历史上具备划时代意义的里程碑。在经过不断的发展和论证之后,更具备优势的关系型数据库终于替代层次型数据库成为了市场的主流。
  
    尤其是在1974年Ray Boyce和Don Chamberlin提出了SQL语言之后,数据库生命周期中的全部操作都可以借由SQL语言来实现,这无疑为关系数据库奠定了另一块里程碑。自那以后,关系型数据库作为数据库领域霸主的地位就一直没有动摇过,IBM DB2和Oracle的数据库,成为了这个一直延续到至的关系型数据库时代的王者。
  
    网络时代呼唤新模型
  
    然而随着网络时代的到来,数据不再仅仅是保存在企业内部的商业秘密,而是更多地被用来在企业间进行传输和交流。正如IBM院士王云博士所说:“关系型数据库在对数据进行结构化存储的时候表现良好,但在大量的信息传输和交流中产生的非结构化和半结构化数据,比如对针对某个现象进行描述的时候,关系模型便很难加以体现。”
  
    于是,随着网络时代人们交流的需要、企业间、企业内部信息交换的需要,XML(Extensible Markup Language)作为新的标准化数据存储格式,在金融等许多行业成为事实上的数据交换标准,就连盖茨雄心勃勃的“Windows Live”战略当中,新版的微软Office软件也将以XML格式存储文档。
  
    “然而传统的关系型数据库无法对XML数据进行处理。”中国人民大学信息学院的陈红教授说,“解决的办法有两个,一个是通过对现有的关系型数据库进行对XML的支持改进,另一个就是干脆以XML作为数据标准开发一个纯粹的XML数据库。”不过她也强调,开发一个新的、完全根据XML数据模型特性来设计的数据库,不仅困难而且将会不可避免地失去商业关系型数据库在数据存储方面的优势。
  
    混合的下一代?
  
    怎么办?几乎所有的数据库厂商都意识到了XML的重要性,也几乎所有厂商,包括Oracle和微软,都在去年就为自己的关系型数据库加上了对XML数据的支持。
  
    然而目前关系型数据库对XML数据的处理方式往往非常生硬?只有两种基本的数据库设计选项,即将每个XML文档完整地存储为一个大型对象,或者将它“撕开”,分散存储在多个表的多个列中。正像Storebrand 高级企业架构师Thore Thomassen所抱怨的那样:“现有的支持技术就是XML‘切碎’技术。”用户们抱怨这样的处理方式不仅无法完整体现XML的层次结构,而且效率低下、不够灵活;文件系统尽管可以应付简单的任务,但是在需要处理大量文档时它们就表现不佳,并发性、恢复、安全和可用性等问题变得难以管理。
  
    在此情况下,“PureXML”技术就显得格外令人兴奋。正是利用这种技术,IBM DB2 9才能作为一种新的层次型和关系型数据的混合数据库,同时存储和查询XML数据和关系型数据,而不用进行数据转换。
  
    IBM中国开发中心总经理郑妙勤说:“DB2是业界第一款也是惟一一款可以使用行业标准接口的关系数据来管理‘PureXML’的数据库,以后用户不仅可以使用同一个数据库对象同时管理‘传统的’SQL数据和XML文档,甚至还可以编写一个查询同时对这两种数据形式进行搜索和处理。”事实上,DB2新的XML支持的确包含了新的查询语言功能。程序员现在可以使用 SQL 或 XQuery 搜索数据,XQuery 是一种新的查询语言,支持导航(即基于路径的)表达式。应用程序可以自由地使用这两种语言的语句,而且任何一个查询语句都可以结合使用 SQL 和 XQuery。SQL语言的盛行代表了关系数据库时代的繁荣,如今XQuery语言的出现,是否真的预示着新时代即将到来?
  
    商业迷局
  
    然而技术上的创新并不一定能够带来商业上的成功。翻开数据库领域的技术成长史,你会发现有一长串的记录都与IBM有关?第一个层次型数据库,第一个提出关系型数据模型,第一个提出SQL语言标准……但是时至今日,Oracle在全球关系数据库市场上成绩显得更加亮眼。
  
    尽管根据市场调研厂商Gartener去年的关系数据库市场份额报告,DB2与Oracle不相上下,但是Oracle和微软的SQL Server的销售额增长速度都在DB2之上。Oracle自从第一个开发出了以关系型数据模型为核心的关系型数据库产品之后,在这一领域领先的优势就从来没有丢失过。微软相比前两名尽管市场份额和技术全面性依然不足,但是具有天然的与操作系统的关联优势和价格竞争力。在2004年,微软就已经成为增长最快的关系数据库供应商,销售收入一年内增长了18%,而同期Oracle和IBM的增长仅有15.6%和5.8%,而这一数字还只是在 SQL Server 2005推出之前。
  
    面对如此情景,IBM自然对此次DB2 9的推出寄予厚望。IBM主管数据库软件的副总裁鲍勃在“Viper”计划发布时就明确表示:希望DB2 9能够吸引Oracle的客户,并帮助IBM公司抵御开放源代码数据库软件的进攻。
  
    当年E.D.Codd博士提出关系型数据模型理论的时候他在IBM,但最终首先将这一最佳商业数据模型付诸实现,并由此成为关系数据库时代领先者的,却是Oracle。如今,XML已经俨然成为下一代数据库的关键词。是IBM承上启下的混合型数据库战略能够获得成功,还是“纯的XML数据库”像当年的关系型数据库全面取代网状数据库和层次数据库那样,创造新的数据库时代,目前还难有定论。但毫无疑问,谁判断准确,谁就能抓住这个机会。