摘要:对IBM DB2来说,不少后续提升关系型数据系统的可用性、程序开发的便利性的做法,已大致底定。从IBM硅谷实验室资深技术经理傅毓勤口中,我们逐渐了解DB2在软件生命周期各阶段的环境限制,以及当时的发展重点。
关系型数据库的发展,从有人提出关系型模型的理论、历经SQL查询语言的发展、效能调校的理论建立、接着产品化趋于成熟、普遍,至今已有将近40年,而号称继承这个「道统」的IBM DB2,在这段历史当中占了25年,如果不把DB2的前身SQL/DS纳入,Oracle几乎就是史上第一个商业化的关系型数据库产品。
此外,在数据库系统发展史上,许多今日我们耳熟能详的产品,他们的研发团队和创办人,彼此之间的关系非常密切。
回顾1970年代,有人即以不同关系型数据库系统的原型,将这些产品或公司分成2大阵营。一脉是源自IBM研究院的System R计划,包括DB2、Oracle等,使用的是SEQUEL的查询语言;另一脉是加州柏克莱大学的学生所成立的Ingres公司,里面包含了 Ingres、Sybase等,使用的是QUEL的查询语言──从源头来说,微软SQL Server算是这个支系。其实这两个阵营的起源,仍旧是System R计划,因为关键在于提出查询最佳化理论的Pat Selinger,她将Jim Gray带入,一起参与开发,Jim Gray又是加州柏克莱大学的重要学者,该校的学生后来又成立公司开发出Ingres和Sybase。
除了关系型模型之外,还有根据其它模型所开发出来的产品吗?
在今天所有的数据库系统教科书上,我们还可以看到网络模型(Network Model)、阶层模型(Hierarchical Model),前者的产品较不知名,后者是IBM的IMS。
后来还有所谓的对象导向式模型(Object-Oriented Model)和对象关系型模型(Object-Relational Model),以对象关系型数据库来说,后来只要是遵守SQL:1999标准的产品,都被认可属于这类型,包括IBM DB2、Oracle database和微软SQL Server。
对IBM DB2来说,不少后续提升关系型数据系统的可用性、程序开发的便利性的做法,已大致底定。从IBM硅谷实验室资深技术经理傅毓勤口中,我们逐渐了解DB2在软件生命周期各阶段的环境限制,以及当时的发展重点。
傅毓勤曾参与DB2For Linux Unix and Windows(LUW)的第2版至第6版,以及DB2For z/OS的第7版至第9版的开发,也领导相关的开发团队,他强调任何一个成功的软件,每经过10~15年,一定要有个大改变。
人的眼光看得再远,产品当初的设计不可能一直不改,因为开发者无法想象10年后的软件形态和竞争态势。即使企业都认同这软件的质量好、具弹性,也能普遍应用,有效期一过,仍然会老旧。他很自豪地说,大部分软件都活不了那么久,所以不会有这种问题,而越成功的软件要有第二春,一定要渡过这样的时期!
在他的观察中,DB2初期发展时,新功能扩充得很快,一方面也是因为用户少,所以开发团队能够将心力全数花在新功能上。到了后来,用户数量越来越多,系统修改上须更加谨慎,不能随意乱加程序代码。
到了DB2第8个版本的研发,IBM本身决心执行一个大规模的调整计划,那时傅毓勤自己也从LUW调至z/OS部门。以DB2目前版本来说,他认为现在的DB2处于刚完成Reengineering的状态,他估计5到10年后,DB2要重新执行一次同样的改造程序。
下一步DB2将会发展什么?
有一个值得特别注意的工具,它是与数据库相关,但不是数据库的产品──IBM Data Studio,它号称能处理所有与数据库相关的开发工作,包含设计阶段、测试环境阶段、部署、监控、管理,一系列的工具全部整合在这套工具上。它支持 Eclipse、IBM的Rational和微软的Visual Studio 2005。它有一项功能pureQuery包含的功能与微软LINQ相近,但它叫做JLinQ,据说它包含LINQ的主要功能,而且是基于纯粹的Java 平台。