關系型數據庫的發展,從有人提出關系型模型的理論、歷經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在軟件生命周期各階段的環境限制,以及當時的發展重點。
傅毓勤曾參與DB2 For Linux Unix and WindowsLUW)的第2版至第6版,以及DB2 For 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 平台。