数据库发展史上的一个里程碑 原生XML数据库

(文/范之望)

长期以来,IT业界一直在寻求新型数据库系统以弥补经典的关系数据库的不足。本文试图从数据库发展的历史、企业界的战略考虑以及近年来出现的XML语言的重要意义,来简单介绍德国软件股份公司(Software AG)在数据库技术上的新思维。

 

数据库系统发展历史及对新型数据库的寻求

 

  自六十年代商用数据库系统面世以来,数据库系统的发展大概经历了以下几个阶段:

七十年代以前,数据库系统并没有一个完整和坚固的数学理论基础,数据库产品直接按实际应用的要求来设计。这段时期的数据库产品以层次型数据库系统为主。业界把这段时期的产品称为“前关系型数据库系统(pre-relational database)”时期。

 

1970年,IBM公司的研究员Codd发表了题为《大型数据库的数据关系模型》①著名文章。从此,数据库系统的发展进入了“关系型数据库系统(relational database)”时期。关系型数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善。其代表产品有Oracle、IBM公司的DB2、 微软公司的MS SQL Server以及Informix、ADABASD等等。

 

随着信息技术和市场的发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见的:它能很好地处理所谓的“表格型数据”,却对技术界出现的越来越多的复杂类型的数据无能为力。九十年代以后,技术界一直在研究和寻求所谓的“后关系型数据库系统(post-relational database)”。尤其是九十年代中后期,世界著名的产业战略调查咨询公司Gartener Group发表了一系列关于数据库系统发展的调研报告,其重点归纳起来大概有以下几点:

 

l       关系型数据库系统技术已相当成熟,其发展已趋顶峰;

l       尽管有了很大发展,关系型数据库系统能处理的数据类型仍相当有限;

l       随着信息技术的发展,市场越来越需要能处理复杂数据类型的数据库;

l       由于大型数据库管理系统的技术复杂性以及开发的高昂费用,今后新型数据库系统很可能只在现有的数据库系统产品厂家内产生。

 

Gartner Group的报告引起了IT业界的高度重视。但在什么是新型数据库系统的发展方向的问题上,产业界一度是相当困惑的。受当时技术风潮的影响,在相当一段时间内,人们把大量的精力花在研究“面向对象的数据库系统(object oriented database)”或简称“OO数据库系统”。值得一提的是,美国Stonebraker教授提出的理论曾一度受到产业界的青睐。Stonebraker在其著作《面向对象的关系型数据库系统:未来的巨浪》②指出:

 

l       纯关系型数据库系统市场已逐渐饱和;

l       纯面向对象型数据库系统除一些特殊用途外,市场极其狭小;

l       面向对象的关系型数据库才是新型数据库系统的发展方向。

 

Stonebraker不仅对现有的数据库类型及市场进行了详尽的分析,提出了“面向对象的关系型数据库” 的基本思想,更难能可贵的是还提出了一系列具体技术实施的方法。比如,他提出的不放弃已经非常成功的查询语言SQL,而直接在SQL语言上进行功能扩展。 Stonebraker的著作一面世立即受到了研究界和工业界高度重视,新版本的SQL3标准(99年发表)正是引进面向对象的关系型数据库的许多内容。而Stonebraker本人也在当时被Informix花大价钱聘作技术总负责人。

 

然而,数年的发展表明,面向对象的关系型数据库系统产品的市场发展的情况并不理想。理论上的完美性并没有带来市场的热烈反应。笔者以为,其不成功的主要原因在于,这种数据库产品的主要设计思想是企图用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统多年并积累了大量工作数据的客户,尤其是大客户来说,是无法承受新旧数据间的转换而带来的巨大工作量及巨额开支的。另外, 面向对象的关系型数据库系统使查询语言变得极其复杂,从而使得无论是数据库的开发商家还是应用客户都视其复杂的应用技术为畏途。 

 

Internet的异军突起以及XML语言的出现,给数据库系统的发展开辟了一片新的天地。九十年代末,随着德国软件股份公司(Software AG)宣布世界上第一个“原状XML数据库系统(Native XML Database System)”产品──Tamino问世,标志着数据库系统进入了新的一个的发展时期。随后,一些大型数据库系统生产厂家,如:甲骨文、微软公司等纷纷宣布要发展支持XML的数据库产品。

 

XML:Internet技术上的一次新革命

 

XML的全称是“可扩展的标识语言(extensible markup language)”。1998年2月W3C组织公布了XML第一版本的标准③,从此Internet技术进入了一个新的革命。如果说以http传输协议 和超文本标识语言HTML为标志是第一代Internet技术的话,那么,围绕着XML所形成的一系列标准和技术将构成新一代的Internet技术。世 界上几乎所有的大型IT公司都在跟踪和研究开发XML产品。

 

为什么XML技术如此重要?事实上,我们只要回顾一下IT行业的发展历史就不难理解其中的意义。

 

当计算机技术摆脱纯科学计算而转入商业用途之后,在其通用软件的发展上大约经历了以下几个阶段:

 

第一阶段,IT业界大多把研发的重点放在办公室桌面自动化上,主要是解决与办公文件有关的一系列处理软件,追求所谓“无纸办公自动化”。这方面的代表产品有美国微软公司的MS Office等。

 

IT发展的第二阶段,以公司企业内部的计算机管理自动化为方向,解决的是企业内部各职能部门内部的管理及部门与部门之间的协调问题,即ERP系统。这方面的典型产品以德国SAP公司的产品为代表。相对于办公室桌面自动化来说,企业管理所涉及的面更广、问题更复杂。

自从Internet被引入商业用途以后,IT的发展进入了第三个阶段:即企业与企业间、实体与实体间业务交流的自动化,这种交流的自动化不仅仅是局部性的,更是区域的乃至全球性的。这个阶段的发展无论从其广度和复杂程度都要大大超过前两个阶段,它带来的革命性意义也将是十分深刻的。电子商务、B2B等等前几年炒作相当热的概念就是这个阶段发展的一部份。电子商务之所以时至今日尚未发展出一个统一的解决方案,依笔者之见,主要是作为电子商务的基础技术发展尚未成熟,而且市场也需要一个酝酿期。

 

经过这几年的研究和探索,虽然尚未发展出一个统一的方案来解决企业与企业间业务交流的自动化的问题,但在其基础技术上各业界几乎已经统一了思想:解决方案必须在跨操作平台、跨软件系统的Internet平台上进行,其基础技术就是XML。

 

虽然XML与HTML都属标识语言,但他们的意义却是完全不同的。HTML文件中的标识符仅表示该文件应该如何显示(如字体的大小等等),而对机器来说极 难判断其表达的语义。文件中表达意义完全需要人通过对文字的阅读才能理解。而XML则不同,它所采用的标识符本身就代表了语义结构,文件的具体语义完全可 以通过对语义结构的分解及该结构内变量值或字符的分析由机器来解释。因此,我们可以用通俗的话来概括HTML与XML的差别:

 

“HTML是写给人看的;而XML则是写给机器看的。”

 

扼要地说,XML有下列重要特性: 

 

l       XML是一种表意而非表形的元语言。采用不同的显示页(stylesheet)就可以做到同一数据源却有不同途径的显示结果。

 

l       XML是Internet的标准语言,因而具有跨操作平台、跨区域的特点,因而是网络世界里的一种“世界语”。

 

l       由于由XML所写的文件能为机器所解读,使得网络世界里“服务器对服务器(Server to Server)”的应用成为可能,从而奠定了Internet应用自动化的基础。

 

l       XML是一种可自我描述定义的元语言(self description meta language),所以它将大量用于制定行业内及行业间数据交换的标准。

 

围绕着XML已经形成了一大批新的技术及标准。工业界也在加紧制定自己行业的XML标准。关于这些新型技术和标准,我们将另行撰文详细讨论。目前,XML 数据已逐渐用于实际应用。可以预见,今后的一段时间内,XML数据将爆炸性地递增而出现在Internet世界里。XML数据的大量应用在呼唤着新型数据库系统的面世。

 

原生XML数据库系统和Tamino

 

在发展XML数据库上,存在着两种完全不同的方法。第一种方法是在不变动关系型数据库内核层的基础上,将XML的树型结构数据拆散、重组转换成关系型表格数据存入数据库。在提取XML数据时,利用SQL语言的优化将库内的表格型数据取出并还原成XML结构型数据。文献④详细讨论了有关表格型数据与XML数据的转换及优化的问题。第二种方法,也是被业界普遍认为是代表发展方向的方法,就是发展“原生XML数据库系统(Native XML Database)”。这一概念由德国软件股份公司(Software AG)首次提出并实施于其新型数据库Tamino之中。在这一数据库系统中,从数据库核心层直至其查询语言都采用与XML直接配套的技术。我们在这里介绍Tamino主要设计思想及技术。 

 

德国软件股份公司(Software AG)是欧洲第二大具有大型独立品牌软件产品的公司,具有三十多年以生产数据库系统产品为主的历史,她的传统产品ADABAS是一大型数据库管理系统,被用于西班牙国防部、美国的一些地区政府等安全要求严,敏感性高、客用量大、系统稳定性要求高的业务。在XML标准尚在讨论而未正式发表之时,Software AG即从战略发展的高度制定出发展支持XML数据的数据库系统,并率先在世界上第一次提出“原生XML数据库系统(Native XML Database)”的概念,并于99年10月推出新型数据库系统Tamino。

 

在这短短的几年中,Tamino已发展到第三个版本。相对于传统的关系型数据库管理系统来说,这是一种结构完全不同、设计思想新颖的全新的数据库系统。概括来说:

 

l       “原生XML数据库系统”无需转换

 

如果用关系型数据库来处理XML数据,将需要一系列复杂的转换工作,从而极大地影响应用的速度。更有甚者,当转换选择不合理时,很有可能对应用造成致命的伤害。而原状XML数据库系统则不同,XML数据不经任何转换而按原结构形状直接存入数据库内,因而对XML的应用来说是最优的。

 

l       快速的XML信息服务器(XML Information Server)

 

原状XML数据库系统对于XML应用其速度相对于其他数据库来说要快得多。对于相同的XML数据,Tamino的处理速度比其他数据库快数十倍乃至上百倍。

 

l       Tamino可处理XML数据也可处理关系型数据

 

Tamino带有两个不同的数据处理器。一是所谓的“X-机器(X-Machine),专门用来处理XML数据的检测、存储及提取。其次是SQL引擎,用来处理关系型数据。这两部分处理器各自带有自己的编程接口。

 

l       Tamino直接支持http传输协议

 

通常的数据库系统只是简单的client/server结构。如果要投入到Internet的应用中,则需要另外在Webserver与数据库之间写一层接口程序,以保证Internet的应用中数据交换的实现,而这一部分的编程工作量相当大且复杂。Tamino的X-Machine直接支持http传输协议,只要输入相应的URL,就可以直接取得或处理XML数据。

 

l       Tamino的XML查询语言—Xquery

 

众所周知,查询语言是数据库系统的一个重要部分。由于XML数据与关系型数据的结构完全不同,设计思想也不一样,因此要真正应用XML数据库, 就要放弃SQL而采用新型的查询语言。W3C组织发布了一系列有关XML查询语言的建议标准,并对外公布(见http: www.w3c.org/xml)。Tamino采用的是XQuery语言。该语言是基于http的请求基础上的,也就是说当在浏览器上敲入或在应用程序 内输入一条含有XQuery内容的URL,用户将得到相应的带有XML结构的数据。

 

l       面向市场需求的X-Node技术。

 

X-Node是一种设计思想非常新颖的技术。Tamino的宗旨并不是取代现有的数据库系统,而是能集合已有数据库系统共同来完成Internet的XML应用。具体地说,如果某XML文件,其单元数据分别来自不同的数据库系统。这时可将Tamino放置前端,利用X-Node技术将Tamino与其它数据库系统(包括关系型数据库)相联。具体应用时,Tamino分别从不同的数据库内提取数据并连同自己库内的数据形成一个XML数据对象送入Internet世界中去。

 

XML技术及XML数据库系统是非常新的、大有发展前途的技术。中国IT行业要尽快进入发展的前列,应尽快加紧XML和XML数据库系统及其应用的研究和开发。

阅读更多

Web发展史上的十大里程碑(分享)

03-27

web发展史上有许多值得纪念的地方,我们精选了10个里程碑式的事件,也许这个能些许说明一些事实,我们过10年后再来回头来看,又会有更多的值得纪念的事情.rnrn 1. Linus Torvalds 创造了Linux核心rnrn当1991年Linux Torvalds发布了 Linux , 便遇到了其他UNIX系统开发者的严厉批评。一些人认为,它使用了错误的计算机架构(32位),根本就是错误的。尽管如此,Torvalds仍然开发他自己的UNIX内核, 最终成为了事实上的web服务器软件(更不要说个人电脑上的流行操作系统)。因为Torvalds发布这个软件是基于GNU许可证的,所以它能比那些在封闭的专有许可证下面的软件传播的更快。rnrnLinux是互联网的核心:它几乎是每个web主机使用和支持的软件,并且它有庞大,忠实和狂热的追随者。它是开源软件最流行的例子,并且它使web发展的可能更多。rnrnrn2. The Mosaic Browser Launchesrn没有Mosaic互联网会变的更加索然无味,第一个浏览器真正的普及到了互联网。在1993年发布的版本,Mosaic是第一款支持书签,图标和一套光溜溜的用户界面(1993年的标准),并且最大的革新是:图片支持。直到这一点出现在Web历史上,图片下载才成为可能。随着图片可以内置显示,它完全改变了互联网浏览的改变,并且大大有助于互联网日益成为主流。rnrnMosaic完全改变了因特网数据传输方式。没有它,整个web的发展会是一个非常非常不同的路。rnrnrn3. W3C 发布CSS1.0规范rn自从20世纪70年代以来,CSS已经以不同的形式运用在计算机上了。直到1996年12月一个世界万维网组织的一个工作组才发布了CSS1.0规范。微软不久之后推出了IE3,提供有限的CSS支持。其余的,正如他们所说,成为了历史。rnrn我不需要太深入CSS如何改变web开发方式的原因。CSS允许开发者用外联的样式表来取代那些难以维护的内嵌样式,这几秒钟之内就可改变全站的设计。并不需要返回到每个html页去寻找需要单独改变的文本元素。rnrn感谢CSS, 网站设计现在变的更加容易去维护和创造(即使在浏览器渲染的时候有些微妙变化)。rnrnrn4. 开源运动的正式开始rn开源运动已经以多种形式出现了很长很长时间了。信不信由你,Web不是为了商业的原因被创造的。它只是一种交流信息的方式。一旦成为了网站变成了盈利的途径,变成了商业空间,自由交流在WWW会变的更加封闭。直到今天还有很多人这样消极并依旧这样做。rnrn非常感谢开源运动。因特网就是在开源的帮助下被创建的,其根源可追溯到20世纪60年代。 1998年的时候,主要参与者在Tim O'Reilly的‘免费软件高级会议’上碰头,决定使用“开源”这一称呼并且开始了开源的第一步。Licensing被发放,用以保护开发者和软件版权,同一时间,允许其他开发者自由分发和修改源代码。rnrn开源以软件的形式使大量的“现代”web更有力量。Wordpress, Firefox, PHP 和 Linux 仅仅少数几个网络上的开发者就影响着web的发展和浏览。如果没有开源协议,软件将会更加封闭,我们会看到更少的创新解决方案。rnrnrn5. PHP 被Rasmus Lerdorf发布rn多亏了开源,像 PHP 这样的动态语言才可以在web开发者之间自由的分发。你很难找到没有安装PHP的主机。 它是web编程事实上的最流行的语言。它被安装在超过2000多万的网站和100多万web服务器上。rnrn当1995年PHP被 Rasmus Lerdorf 介绍的时候,它就迅速被许多人视为一个优秀的web编程语言。它运行在网络服务器上,可以嵌入在html里,可以和SQL数据库很好的工作。它允许开发者快速的去创建和维护复杂的数据库驱动的站点。rnrn有很多在因特网上最流行的站点(过去和现在),都是基于PHP的。 Facebook, Yahoo! 和 Wikipedia 都在运行PHP。 同时,几十个流行的网络应用软件是建立在PHP上的: Wordpress, Drupal, phpBB 和其他许多项目都采用了方便的语言。rnrnrn6. PayPal 创立rn虽然往往引起争议,PayPal无疑是开创了在线处理金钱交易的先河。 PayPal 创立于1998年,当初是作为一种在类似于eBay这拍卖网站上给投标人和卖方之间安全寄钱方式而开发的。PayPal 变的越来越受eBay用户的欢迎,到了2000年2月,每天已经有超过200000的拍卖额。 在易趣收购PayPal支付处理系统之后,开始允许商家使用他们的API.该API允许开发人员容易的处理金钱交易,并且为网站访问者的支付服务和订阅提供了方便安全的方式。rnrnPayPal 使得开发者有了一个通过他们提供的服务快速赚钱的方式。 由于它的广泛普及,无论是订阅服务或是一次性费用,PayPal都被用来处理款项。rnrnrn rn7. Firefox 发布rn在2003年, Internet Explorer制约了web浏览器的空间。IE最大的竞争对手网景公司已经退居其次,基本上没有竞争。 微软的web浏览器享受着web浏览器市场总额的94%这个丰厚的份额。因此,竞争的缺乏使得IE项目处于停滞状态,曾经被认为从版本1到6每年都更新的IE浏览器,变成了,2006年发布的IE7和IE6相差5年这样一个差距。IE发展落后的这些年,引发了Mozilla的开源web浏览器Firefox创作的火花。 rnrn2003年Firefox初次发布引爆了现场。Firefox浏览器解决了很多IE陈旧的缺点。 初始发布版本包括了分页浏览,拼写检查,live书签等许多特性,早期的采用者都非常喜欢这个软件。但更重要的是对于web开发者的,Firefox是基于遵循web标准的Gecko渲染引擎的。 rnrnWeb标准有助于降低web开发的成本和复杂性。当前的兼容设计意味着要支持大量不同的浏览器和他们的渲染‘怪癖’(译者注:不同浏览器渲染效果有所不同)。Internet Explorer不符合web标准是臭名昭著的,使得设计者和开发者的开发生活更加困难(因为他们仍然拥有一个主要浏览器市场份额)。 随着Firefox变得越来越流行,并且朝标准和规范推动着新的举措,web会变成一个更好的发展的地方。rnrnrn8. Ruby on Rails 成为主流rn虽然大多数人没有看到这个在web发展史上里程碑式的特别事件,但是Ruby on Rails的崛起式极其重要的,因为它象征着一种广泛的改变-使用框架和敏捷软件开发去高效的开发网站。rnrn rnrnDavid Heinemeier Hansson在2004年发布了Ruby on Rails。自那时起,许多以其他语言为核心的web开发框架也被发布了。 RoR 是一个model-view-controller 框架, 也就是说,它可以用脚手架(scaffolding)和其他辅助方法来消除程序中的重复任务。通过消除这些单调的编码任务,开发者可以在多个项目里有更快的周转时间。rnrn框架加快了开发工作的开发时间和改变的方式。 自那时起,各大网站,像Twitter,就用web框架建立起完整的web服务。当Apple的Leopard操作系统和ROR关联起来的时候,Ruby on Rails成为了一个重要的里程碑。rnrnrn9. 37 Signals发布了Getting Real 电子书rn37 Signals 在过去的五年中一直时最受欢迎的web开发公司。不仅仅是他们建立了优质的产品,同时他们也是现代web开发的精神领袖,特别是对敏捷web开发的拥护。他们的旗舰产品 Basecamp 是被Ruby on Rails的第一个版本构建的,并最终导致了2004年框架概念的产生。他们的web开发哲学已经是他们的一个重要组成部分,在web开发者之间普及。同时他们在2006年发布的Getting Real 电子书也普及小型的敏捷的web开发实践。rnrnWeb开发者们已经开始拥抱敏捷web开发实践和Getting Real电子书里的哲学。甚至像Google和微软这样的大公司也减少繁文缛节,接受了这个概念,去用较小的团队更快的开发周期来开发更好的web产品。rnrnrn10. Amazon 推出云存储和云服务rn随着2006年Amazon S3 和 EC2 的推出,云存储和web services正式成为了里程碑。创业公司只需要支持他们的实际使用的带宽费用就可以省掉他们日益成长需要增加昂贵服务器的费用。理论上讲,这种服务你只需要“按你的流量”支付一定费用就可以在几分钟内扩充规模。云web服务创建了一个更快更便宜的传统web服务器的替代品。rnrn云服务在成本和速度方面降低了web创业的门槛。因为云计算,通信的突发意外也不再是问题,当机时间也几乎消除。 云服务确保任何web开发人员可以开始他们的想法,而不必考虑资金或是昂贵的服务器费用,使你的web创意更好的变成现实。

没有更多推荐了,返回首页