數據庫發(fā)展史
信息系統產(chǎn)生了海量的數據,有數據必須要有數據的存放位置,
無(wú)庫時(shí)代 :沒(méi)有專(zhuān)門(mén)的數據庫,數據大多以文件形式存放
層次狀數據庫 :使用層次狀模型進(jìn)行數據庫設計和存放
網(wǎng)狀數據庫 :使用網(wǎng)狀模型進(jìn)行數據庫設計和存放
關(guān)系型數據庫 :使用關(guān)系型模型進(jìn)行數據庫設計和存放
非關(guān)系型數據庫:為適應水平擴展性和處理超大量的數據環(huán)境,近幾年發(fā)展非常迅速的發(fā)展,衍生類(lèi)型非常多。
本文主要考慮對于OLTP和OLAP占據主流的關(guān)系型數據庫,目前關(guān)系型數據庫軟件主要有:
大型商用關(guān)系型數據庫:Oracle,DB2,SQL Sever/Sybase;
近年發(fā)展較快的開(kāi)源關(guān)系型數據庫:MySQL,PostgreSQL,SQLite
關(guān)系型數據庫主要人物與發(fā)展歷史
關(guān)系型數據庫的發(fā)展,大致可分為理論奠基、SQL標準、商用成型、多家發(fā)展等幾個(gè)階段,在每個(gè)階段都有對應的重要人物與貢獻。
首先是數學(xué)家E.F.Codd發(fā)表了數學(xué)論文《用于大型共享數據庫的關(guān)系數據模型》,提出關(guān)系和關(guān)系運算的概念,奠定了關(guān)系型數據庫的理論模型;
然后是Codd的同事DonChamberlin將Codd的論文和關(guān)系運算,轉換成為比較容易理解和使用的SQL語(yǔ)言,并且在后面成為所有關(guān)系型數據庫的標準;
有了上面的數據理論和SQL基礎,LarryElision和他的同事看到商機,開(kāi)發(fā)出第一個(gè)商用大型關(guān)系型數據庫Oracle,Scott作為一個(gè)開(kāi)發(fā)的員工,將其測試賬戶(hù)放在里面了;
除了Oracle數據庫,IBM也開(kāi)發(fā)出了DB2數據庫,但其他主流的關(guān)系型數據庫都與Michael Stonebraker有關(guān),開(kāi)發(fā)了Postgres并放在BSD版權下,后來(lái)演變成了Postgres SQL;87年微軟和Sybase合作,開(kāi)發(fā)除了MS SQL和Sybase;后又加入Ingres和Informax,其他的主流關(guān)系型數據庫幾乎都和Michael Stonebraker有關(guān)。
關(guān)系型數據庫之父:E.F.Codd
1970年,Codd劃時(shí)代的論文《用于大型共享數據庫的關(guān)系數據模型》
Codd全關(guān)系系統十二準則
準則0
一個(gè)關(guān)系形的關(guān)系數據庫系統必須能完全通過(guò)它的關(guān)系能力來(lái)管理數據庫。
準則1 信息準則
關(guān)系數據庫系統的所有信息都應該在邏輯一級上用表中的值這一種方法顯式的表示。
準則2 保證訪(fǎng)問(wèn)準則
依靠表名、主碼和列名的組合,保證能以邏輯方式訪(fǎng)問(wèn)關(guān)系數據庫中的每個(gè)數據項。
準則3 空值的系統化處理
全關(guān)系的關(guān)系數據庫系統支持空值的概念,并用系統化的方法處理空值。
準則4 基于關(guān)系模型的動(dòng)態(tài)的聯(lián)機數據字典
數據庫的描述在邏輯級上和普通數據采用同樣的表述方式。
準則5 統一的數據子語(yǔ)言
一個(gè)關(guān)系數據庫系統可以具有幾種語(yǔ)言和多種終端訪(fǎng)問(wèn)方式,但必須有一種語(yǔ)言,它的語(yǔ)句可以表示為嚴格語(yǔ)法規定的字符串,并能全面的支持各種規則。
準則6 視圖更新準則
所有理論上可更新的視圖也應該允許由系統更新。
準則7 高級的插入、修改和刪除操作
系統應該對各種操作進(jìn)行查詢(xún)優(yōu)化。
準則8 數據的物理獨立性
無(wú)論數據庫的數據在存儲表示或存取方法上作任何變化,應用程序和終端活動(dòng)都保持邏輯上的不變性。
準則9 數據邏輯獨立性
當對基本關(guān)系進(jìn)行理論上信息不受損害的任何改變時(shí),應用程序和終端活動(dòng)都保持邏輯上的不變性。
準則10 數據完整的獨立性
關(guān)系數據庫的完整性約束條件必須是用數據庫語(yǔ)言定義并存儲在數據字典中的。
準則11 分布獨立性
關(guān)系數據庫系統在引入分布數據或數據重新分布時(shí)保持邏輯不變。
準則12 無(wú)破壞準則
如果一個(gè)關(guān)系數據庫系統具有一個(gè)低級語(yǔ)言,那么這個(gè)低級語(yǔ)言不能違背或繞過(guò)完整性準則。
SQL之父:唐-錢(qián)伯林(Don Chamberlin)
唐·錢(qián)伯林(DonChamberlin),是IBM Fellow,ACM及IEEE 特別會(huì )員。他是SQL關(guān)系數據庫語(yǔ)言的發(fā)明人之一,也是XQuery語(yǔ)言的設計基礎Quilt語(yǔ)言的發(fā)明人之一。Don擁有加利福尼亞大學(xué)博士學(xué)位。他目前在IBM Almaden 研究中心工作,在過(guò)去幾年中,他代表IBM參與W3C XML Query工作組的工作。
Scott和他的貓的故事
第一個(gè)商用關(guān)系型數據庫——Oracle
左起 Ed Oates、Bruce Scott、Bob Miner、Larry Ellison
Oracle與Larry Ellison
主流數據庫的奠基人——Michael Stonebraker
Michael Stonebraker,SQL Server/Sysbase奠基人。
著(zhù)名的數據庫科學(xué)家,他在1992 年提出對象關(guān)系數據庫模型在加州伯克利分校計算機教授達25年。在此期間他創(chuàng )作了Ingres,Illustra, Cohera, StreamBase Systems和Vertica等系統。Stonebraker教授也曾擔任過(guò)Informix的CEO,目前他是MIT麻省理工學(xué)院客席教授。
Stonebraker 教授領(lǐng)導了稱(chēng)為Postgres的后Ingres項目。這個(gè)項目的成果非常巨大,在現代數據庫的許多方面都做出的大量的貢獻。Stonebraker 教授還做出了一件造福全人類(lèi)的事情,那就是把Postgres 放在了BSD 版權的保護下。如今Postgres名字已經(jīng)變成了PostgreSQL,功能也是日漸強大。
87年左右,Sybase聯(lián)合了微軟,共同開(kāi)發(fā)SQL Server。原始代碼的來(lái)源與Ingres有些淵源。后來(lái)1994年,兩家公司合作終止。此時(shí),兩家公司都擁有一套完全相同的SQLServer代碼??梢哉J為,Stonebraker教授是目前主流數據庫的奠基人。
1973 年 IBM 啟動(dòng)了 System R 項目,項目組發(fā)表了一系列關(guān)于關(guān)系數據庫的的文章。兩個(gè)伯克萊大學(xué)的科學(xué)家,Michael Stonebraker 和 Eugene Wong 讀了這些文章后非常感興趣,于是決定自己?jiǎn)?dòng)一個(gè)關(guān)系數據的研究項目。他們已經(jīng)為一個(gè)地理數據庫系統申請到了資金,他們稱(chēng)為 ingres,意思是交互式圖形獲取系統
Ingres的代碼是可以免費獲得的,到 1980 年止,共分發(fā)了 1000 份拷貝,不少公司使用這些代碼形成了自己的產(chǎn)品線(xiàn)。Informix 是最早的用戶(hù)之一,并且其員工完全是 Ingres 項目的人員。他們在 1984 發(fā)布了基于 Ingres 的第一版產(chǎn)品,到 1997 年已經(jīng)成了第二大數據庫供應商。然而,一系列管理和財會(huì )方面的失誤在短短兩年內毀了公司的信譽(yù),并于 2000 年被 IBM 收購。
Robert Epstein 在伯克立大學(xué)項目中的重要的程序員,創(chuàng )建了 Britton-Lee,后來(lái)的 Sybase,Sybase 在 80 到 90 年期間是第二號數據庫產(chǎn)品,Sybase 于1992年將產(chǎn)品賣(mài)給微軟,微軟稱(chēng)之為 MSSQLServer。
Stonebraker 自己離開(kāi)了伯克立大學(xué)在1982年創(chuàng )建了Ingres 公司,Stonebraker 在這個(gè)公司工作到 1991 年,然后公司賣(mài)給了 ASK,1994年 ASK/ingres 被 CA Computer Associates 收購。2004 年 CA 在開(kāi)源許可下發(fā)布了 Ingres release 3,并繼續開(kāi)發(fā)銷(xiāo)售 Ingres。
在返回 Berkeley 之后,Stonebraker 開(kāi)始了一項后-Ingres 計劃來(lái)致力于解決關(guān)系模型的數據庫管理現有實(shí)現的局限性。其中主要的是它們不能讓用戶(hù)定義組合更簡(jiǎn)單域的新域(或者叫類(lèi)型)(參見(jiàn)關(guān)系模型獲得對術(shù)語(yǔ)域的解釋。)結果的計劃叫做 Postgres,以介入對增加完整的類(lèi)型支持所需要的最小數目的特征為目標。其中包括定義類(lèi)型的功能,還有完全描述聯(lián)系的能力 - 聯(lián)系至今已經(jīng)廣泛使用但仍由用戶(hù)完全維護。在 Postgres 中數據庫理解聯(lián)系,并能以使用規則的自然方式在有關(guān)聯(lián)的表中檢索信息。詳情請參見(jiàn) PostgreSQL 的文章。在 1990 年 Stonebraker 再次離開(kāi) Berkeley 去商業(yè)化 Postgres,使用了名字 Illustra。Illustra 后來(lái)被 Informix 并購,而 Stonebraker 再次回去搞高等教育了。
數據庫廠(chǎng)商的發(fā)展歷史之Oracle
所有這一切要從IBM的一篇論文談起,1970年的6月,IBM公司的研究員埃德加·考特(Edgar Frank Codd) 在 Communications ofACM 上發(fā)表了那篇著(zhù)名的《大型共享數據庫數據的關(guān)系模型》(A Relational Model ofData for Large Shared Data Banks)的論文。這是數據庫發(fā)展史上的一個(gè)轉折。要知道,當時(shí)還是層次模型和網(wǎng)狀模型的數據庫產(chǎn)品在市場(chǎng)上占主要位置。從這篇論文開(kāi)始,拉開(kāi)了關(guān)系型數據庫軟件革命的序幕。IBM雖然1973年就啟動(dòng)了SystemR的項目來(lái)研究關(guān)系型數據庫的實(shí)際可行性,也沒(méi)有及時(shí)推出這樣的產(chǎn)品,因為當時(shí)IBM的的IMS(著(zhù)名的層次型數據庫)市場(chǎng)不錯,如果推出關(guān)系型數據庫,牽涉到IBM很多人的自身利益。再者,IBM龐大復雜的官僚機構處在決策上遠不那么靈活
1977年6月,Larry Ellison與Bob Miner和Ed Oates在硅谷共同創(chuàng )辦了一家名為軟件開(kāi)發(fā)實(shí)驗室(Software Development Laboratories,SDL)的計算機公司(ORACLE公司的前身)。那個(gè)時(shí)候,32歲的Larry Ellison,這個(gè)讀了三家大學(xué)都沒(méi)能畢業(yè)的輟學(xué)生,還只是一個(gè)普通的軟件工程師。公司創(chuàng )立之初,Miner是總裁,Oates為副總裁,而Ellison,因為一個(gè)合同的事情,還在另一家公司上班。沒(méi)多久,第一位員工Bruce Scott(用過(guò)ORACLE數據庫軟件的人都知道有個(gè)Scott用戶(hù)的吧?沒(méi)錯,就是這個(gè)Scott,至于Scott用戶(hù)的密碼Tiger,那是Scott養的貓的名字, Oracle也一直沒(méi)有忘記她的第一位程序員)加盟進(jìn)來(lái),在Miner和Oates有些厭倦了那種合同式的開(kāi)發(fā)工作后,他們決定開(kāi)發(fā)通用軟件,不過(guò)們還不知道自己能開(kāi)發(fā)出來(lái)什么樣的產(chǎn)品。Oates最先看到了埃德加·考特的那篇著(zhù)名的論文連同其他幾篇相關(guān)的文章并推薦Ellison和Miner也閱讀一下。Ellison和Miner預見(jiàn)到數據庫軟件的巨大潛力(跟著(zhù)IBM走,沒(méi)錯),于是,SDL開(kāi)始策劃構建可商用的關(guān)系型數據庫管理系統(RDBMS)。
根據Ellison和Miner他們在前一家公司從事的一個(gè)由中央情報局投資的項目代碼,他們把這個(gè)產(chǎn)品命名為ORACLE。因為他們相信,ORACLE(字典里的解釋有“神諭, 預言”之意)是一切智慧的源泉。1979年,SDL更名為關(guān)系軟件有限公司(Relational Software,Inc.,RSI),畢竟“軟件開(kāi)發(fā)實(shí)驗室”不太像一個(gè)大公司的名字。1983年,為了突出公司的核心產(chǎn)品,RSI再次更名為ORACLE。Oracle從此正式走入人們的視野。
RSI在1979年的夏季發(fā)布了可用于DEC公司的PDP-11計算機上的商用ORACLE產(chǎn)品,這個(gè)數據庫產(chǎn)品整合了比較完整的SQL實(shí)現,其中包括子查詢(xún)、連接及其他特性。出于市場(chǎng)策略,公司宣稱(chēng)這是該產(chǎn)品的第二版,但卻是實(shí)際上的第一版。這就是Oracle這種“要命”的市場(chǎng)策略,事實(shí)上,這種策略有時(shí)候也是非常成功的。

1983年3月,RSI發(fā)布了ORACLE第三版。Miner和Scott歷盡艱辛用C語(yǔ)言重新寫(xiě)就這一版本。(說(shuō)老實(shí)話(huà),太佩服這兩個(gè)大牛了,為什么一直沒(méi)多少媒體宣傳這兩個(gè)人呢,懷疑Miner簡(jiǎn)直就是“少林老僧”般的人物。)要知道,C語(yǔ)言當時(shí)推出不久,用它來(lái)寫(xiě)ORACLE軟件也是具有一定的風(fēng)險的,但除此之外,別無(wú)他法。很快就證明了這樣做是多么的正確:C編譯器便宜而又有效,還有很好的移植性。從現在起,ORACLE產(chǎn)品有了一個(gè)關(guān)鍵的特性:[可移植性]。同樣是1983年,IBM發(fā)布了姍姍來(lái)遲的Database 2(DB2),但只可在MVS上使用。不管怎么說(shuō),ORACLE已經(jīng)占取了先機。
在開(kāi)發(fā)第三版還沒(méi)有結束的時(shí)候,Scott離開(kāi)了ORACLE。當時(shí)用C語(yǔ)言改寫(xiě)ORACLE的壓力很大,無(wú)休止的軟件調試終于讓Scott不堪重負,選擇了一走了之。把剩下的重擔交給了Miner一個(gè)人。在出售了自己的4%的股票之后,Scott 后來(lái)創(chuàng )建了Gupta公司(現更名為Centura Software)和PointBase公司(提供百分之百純Java嵌入式數據庫),都是開(kāi)發(fā)和數據庫相關(guān)的產(chǎn)品。多年后有人問(wèn)到他的4%的ORACLE股票的時(shí)候,Scott,這個(gè)曾經(jīng)給ORACLE寫(xiě)出第一行代碼的技術(shù)高手,也只能報以一笑了。如果能堅持下來(lái),那是一筆幾億美金的財富。不過(guò)當時(shí)的Scott沒(méi)有那么多的想法,他只是太累了。
很長(cháng)一段時(shí)間里,公司研發(fā)由Miner獨力承擔。Miner視金錢(qián)如無(wú)物,為人低調,和Ellison的鋒芒必露形成鮮明的對比。在公司里,大家一致認為他是老好人,他也深受員工愛(ài)戴。Ellison是公司的大腦,Miner則當之無(wú)愧的成為公司的心臟。他是個(gè)沉默的英雄,正如Steve Jobs背后的Steve Wozniak一樣。
1984年10月,ORACLE發(fā)布了第4版產(chǎn)品。產(chǎn)品的穩定性總算得到了得到了一定的增強,用Miner的話(huà)說(shuō),達到了“工業(yè)強度”。

在1985年,ORACLE發(fā)布了5.0版。有用戶(hù)說(shuō),這個(gè)版本算得上是ORACLE數據庫的穩定版本。這也是首批可以在Client/Server模式下運行的的RDBMS產(chǎn)品,在技術(shù)趨勢上,ORACLE數據庫始終沒(méi)有落后。
那是在1985年,當時(shí)曾經(jīng)的最大的獨立軟件公司Cullinet(主要銷(xiāo)售網(wǎng)狀數據庫)已經(jīng)如流星般隕落。ORACLE的主要競爭對手是Ingres數據庫。Ingres在加州大學(xué)伯克利分校誕生,主要的設計者是當時(shí)鼎鼎大名的MichaelStonebraker教授??梢哉f(shuō)Ingres數據庫軟件是上個(gè)世紀80年代技術(shù)上最好的數據庫,Ingres市場(chǎng)分額的快速增長(cháng)已經(jīng)給ORACLE早成了很大的壓力。巧的是,這個(gè)時(shí)候,IBM公司再一次伸出“上帝之手”。
Ingres使用的是Stonebraker 發(fā)明的QUEL(Query Language))的查詢(xún)技術(shù),這和IBM的SQL大不相同。在某些地方QUEL甚至要優(yōu)于SQL。IBM當時(shí)擔心Ingres把QUEL變成標準會(huì )對自己不利。經(jīng)過(guò)一番衡量,決定把自己的SQL提交給數據庫標準委員會(huì )。而Stonebraker教授可不打算把QUEL提交給數據庫標準委員會(huì ),學(xué)院派的他認為這麼做實(shí)際上是扼殺了創(chuàng )新精神??梢钥闯?,學(xué)院派,大都會(huì )把事情搞雜。
1986年3月12日,ORACLE公司以每股15美元公開(kāi)上市,當日以20.75美元收盤(pán),公司市值2.7億美元。3月13日,微軟以每股21美元的發(fā)行價(jià)上市,以28美元收市,公司市值達到7億美元。遠遠超過(guò)了ORACLE。成功的光環(huán)的微軟和蓋茨遮蓋住了ORACLE和Ellison的光芒,可能這也是Ellison敵視微軟的開(kāi)始。
ORACLE第6版于1988年發(fā)布。由于過(guò)去的版本在性能上屢受詬病,Miner帶領(lǐng)著(zhù)工程師對數據庫核心進(jìn)行了重新的改寫(xiě)。引入了行級鎖(row-level locking)這個(gè)重要的特性,也就是說(shuō),執行寫(xiě)入的事務(wù)處理只鎖定受影響的行,而不是整個(gè)表。這個(gè)版本引入了還算不上完善的PL/SQL(Procedural Language extension to SQL)語(yǔ)言。第6版還引入了聯(lián)機熱備份功能,使數據庫能夠在使用過(guò)程中創(chuàng )建聯(lián)機的備份,這極大地增強了可用性。
在第六版剛發(fā)布之后,很多迫不及待開(kāi)始使用的用戶(hù)就怨聲載道。這是個(gè)根本就沒(méi)有測試好就進(jìn)行發(fā)布的產(chǎn)品(也怪Ellison,大話(huà)總要說(shuō)在前頭,只好自嘗苦果)。用戶(hù)開(kāi)始對ORACLE大肆抨擊,ORACLE的一些對手也開(kāi)始落井下石,針對ORACLE產(chǎn)品的一些弱點(diǎn)進(jìn)行攻擊。
噩夢(mèng)延續到ORACLE第七版的推出而結束。這個(gè)公司已經(jīng)空談了好幾年的新版本(一度被譏諷為不過(guò)是Ellison的故計重施而已),直到1992年6月才終于閃亮登場(chǎng),這一次公司吸取了第六版匆忙上市的教訓,聽(tīng)取了用戶(hù)的多方面的建議,并集中力量對新版本進(jìn)行了大量而細致的測試。該版本增加了許多新的性能特性:分布式事務(wù)處理功能、增強的管理功能、用于應用程序開(kāi)發(fā)的新工具以及安全性方法。

ORACLE 第七版是ORACLE真正出色的產(chǎn)品,取得了巨大的成功。這個(gè)版本的出現真是好時(shí)機,當時(shí)Sybase公司的數據庫已經(jīng)占據了不少份額,ORACLE借助這一版本的成功,一具擊退了咄咄逼人的Sybase。公司的銷(xiāo)售人員這次算到了給用戶(hù)兌現空頭許諾的時(shí)候。公司經(jīng)過(guò)兩三年的治理,終于擺脫了種種麻煩,重新開(kāi)始健康發(fā)展,銷(xiāo)售額也從92年的15億美元變?yōu)樗哪旰蟮?2億美元。
1997年6月,ORACLE第八版發(fā)布。ORACLE8支持面向對象的開(kāi)發(fā)及新的多媒體應用,這個(gè)版本也為支持Internet、網(wǎng)絡(luò )計算等奠定了基礎。同時(shí)這一版本開(kāi)始具有同時(shí)處理大量用戶(hù)和海量數據的特性。
1998年9月,ORACLE公司正式發(fā)布ORACLE 8i?!癷”代表Internet,這一版本中添加了大量為支持Internet而設計的特性。這一版本為數據庫用戶(hù)提供了全方位的Java支持。ORACLE 8i成為第一個(gè)完全整合了本地Java運行時(shí)環(huán)境的數據庫,用Java就可以編寫(xiě)ORACLE的存儲過(guò)程。對,Java,只要是能夠打擊微軟的武器,ORACLE都要派上用場(chǎng)。
在2001年6月的ORACLEOpenWorld大會(huì )中,ORACLE發(fā)布了ORACLE 9i。在ORACLE 9i的諸多新特性中,最重要的就是Real Application Clusters(RAC)了。說(shuō)起ORACLE集群服務(wù)器,早在第五版的時(shí)候,ORACLE就開(kāi)始開(kāi)發(fā)ORACLE并行服務(wù)器(ORACLE Parallel Server ,OPS),并在以后的版本中逐漸的完善了其功能,不過(guò),嚴格來(lái)說(shuō),盡管OPS算得上是個(gè)集群環(huán)境,但是并沒(méi)有體現出集群技術(shù)應有的優(yōu)點(diǎn)。
2003年9月8日,舊金山舉辦的ORACLE World大會(huì )上,Ellison宣布下一代數據庫產(chǎn)品為“ORACLE 10g”。ORACLE應用服務(wù)器10g(ORACLEApplication Server 10g)也將作為甲骨文公司下一代應用基礎架構軟件集成套件?!癵”代表“grid ,網(wǎng)格”。這一版的最大的特性就是加入了網(wǎng)格計算的功能。(Oracle絕對是造概念的能手,只要是能引領(lǐng)出新的賣(mài)點(diǎn),出些新概念,也是值得的)。
最近兩年,Oracle先后又收購了People soft(103億$), BEA(80多億$),還有Sibel之類(lèi)的就不說(shuō)了。通過(guò)收購,實(shí)力大增。
2007年11月,Oracle 11g正式發(fā)布,功能上大大加強。11g是甲骨文公司30年來(lái)發(fā)布的最重要的數據庫版本,根據用戶(hù)的需求實(shí)現了信息生命周期管理(InformationLifecycle Management)等多項創(chuàng )新。大幅提高了系統性能安全性,全新的Data Guard最大化了可用性,利用全新的高級數據壓縮技術(shù)降低了數據存儲的支出,明顯縮短了應用程序測試環(huán)境部署及分析測試結果所花費的時(shí)間,增加了RFID Tag、DICOM醫學(xué)圖像、3D空間等重要數據類(lèi)型的支持,加強了對Binary XML的支持和性能優(yōu)化。
從Oracle的發(fā)展來(lái)看,它的市場(chǎng)策略直接引導著(zhù)公司的發(fā)展。與別的公司有很大的不同。
數據庫廠(chǎng)商的發(fā)展歷史之DB2
1973年,IBM研究中心啟動(dòng)System R項目,為DB2的誕生打下良好基礎。System R 是 IBM 研究部門(mén)開(kāi)發(fā)的一種產(chǎn)品,這種原型語(yǔ)言促進(jìn)了技術(shù)的發(fā)展并最終在1983年將 DB2 帶到了商業(yè)市場(chǎng)。
在這期間,IBM發(fā)表了很多數據庫領(lǐng)域的精典論文,前邊E.F.Codd就不說(shuō)了,1976年, 身在IBM的Gim Gray發(fā)有了他的代表作:共享數據庫的一致性和鎖的粒度。他同樣也是數據庫領(lǐng)域的圖靈獎獲得之一。后來(lái)被微軟挖走(應該是在他退休之后),去年他獨自一人出海,失蹤,不知下落如何。此君因為不喜歡Seattle的雨天,使得Bill Gates為拉他入Microsoft在San Francisco為其新建了一座研究院讓他做院長(cháng)。據說(shuō)此君在一次學(xué)術(shù)會(huì )議上demo他的新程序,聽(tīng)眾中有人提出界面可以如何改進(jìn),此君竟然在講壇上就打開(kāi)VC 開(kāi)始改起代碼來(lái),然后給人看新效果。這樣的大師,太讓人尊敬了。
1981年, E.F.Codd因為發(fā)明關(guān)系數據庫模型,獲得ACM圖靈獎,當然他前邊還有一位大師,Charles W.Bachman。
1982年,IBM發(fā)布SQL/DS for VSE and VM,以System R為原型。
1983年,發(fā)布Database2 (DB2) forMVS, 內部代號為'Eagle',于是DB2正式誕生。
1986年,System/38 V7發(fā)布,首次配置查詢(xún)優(yōu)化器,能對應用的存取計劃進(jìn)行優(yōu)化。
1987年,DB2完成了到OS/2的擴展,進(jìn)入微機領(lǐng)域。
1988年,發(fā)布SQL/400,為AS/400服務(wù)器提供SQL支持。到此時(shí)為止,感覺(jué)IBM的數據庫產(chǎn)品的發(fā)展十分凌亂,似乎同時(shí)在做多個(gè)產(chǎn)品,平臺又不統一。
1992年,IDUG大會(huì )在瑞士如開(kāi),DB2應用開(kāi)始全球化。DB2 for OS2 V1和DB2 for RS/6000 V1推出,這是第一次在Intel和Unix平臺上推出DB2產(chǎn)品。
1993年,郭士納進(jìn)入IBM,大刀改革。
1994年,DB2實(shí)現了HP unix和Solaris版本。實(shí)際上,還真不知道這兩個(gè)平臺上有多少用戶(hù)。
也是在1994年,AIX平臺上DB2開(kāi)始支持對象型數據。
1995年,DB2開(kāi)始支持Windows NT, Unix等多個(gè)平臺。(標志性的一年?)
1995年,收購Lotus,暈,現在我們還在用Lotus的郵件系統。不好用,但是不容易中毒。
1996年,DB2正式更名為DB2 通用數據庫。
1997年, DB2 UDB forUnix/windows/OS2同時(shí)發(fā)布
1998年,DB2 開(kāi)始支持SCO Unixware
1998年, DB2 UDB5.2出現。(不知道以前的版本是怎么定義的,有些亂。。。)
1999年,DB2支持Linux on intel cpu
2000年,DB2 支持XML擴展
2000年,進(jìn)一步支持Linux集群
2002年,收購Rational Soft,從此, rose這個(gè)大炮工具被IBM弄走了
2002/2003,DB2 V8.1出現
2007年, DB2 V9出現,好像是第一個(gè)混合模式(關(guān)系型、層次型)數據庫出現,既有關(guān)系模型,又有直接支持XML的層次模型。不知道是否屬于叫好不叫座。
在這期間,忘了是哪一年,印象中,好像是2001/2002年的光景,IBM還收購了Informix,花了1個(gè)Billion$,那也是一家曾經(jīng)響當當的數據庫廠(chǎng)商。
數據庫廠(chǎng)商的發(fā)展歷史之MySQL
MySQL這個(gè)名字,起源不是很明確。一個(gè)比較有影響的說(shuō)法是,基本指南和大量的庫和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng )始人之一的Monty Widenius的女兒也叫My。這兩個(gè)到底是哪一個(gè)給出了MySQL這個(gè)名字至今依然是個(gè)密,包括開(kāi)發(fā)者在內也不知道。
MySQL的海豚標志的名字叫“sakila”,它是由MySQL AB的創(chuàng )始人從用戶(hù)在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來(lái)自非洲斯威士蘭的開(kāi)源軟件開(kāi)發(fā)者Ambrose Twebaze提供。根據Ambrose所說(shuō),Sakila來(lái)自一種叫SiSwati的斯威士蘭方言,也是在A(yíng)mbrose的家鄉烏干達附近的坦桑尼亞的Arusha的一個(gè)小鎮的名字。
MySQL,雖然功能未必很強大,但因為它的開(kāi)源、廣泛傳播,導致很多人都了解到這個(gè)數據庫。它的歷史也富有傳奇性。
MySQL的歷史最早可以追溯到1979年,那時(shí)Oracle也才小打小鬧,微軟的SQL Server影子都沒(méi)有。有一個(gè)人叫Monty Widenius, 為一個(gè)叫TcX的小公司打工,并用BASIC設計了一個(gè)報表工具,可以在4M主頻和16KB內在的計算機上運行。過(guò)了不久,又將此工具,使用C語(yǔ)言重寫(xiě),移植到Unix平臺,當時(shí),它只是一個(gè)很底層的面向報表的存儲引擎。這個(gè)工具叫做Unireg。
可是,這個(gè)小公司資源有限,Monty天賦極高,面對資源有限的不利條件,他反而更能發(fā)揮潛能,總是力圖寫(xiě)出最高效的代碼。并因此養成了習慣。與Monty同在一起的還有一些別的同事,很少有人能堅持把那些代碼持續寫(xiě)到20年后,而Monty卻做到了。
1990年,TcX的customer 中開(kāi)始有人要求要為它的API提供SQL支持,當時(shí),有人想到了直接使用商用數據庫算了,但是Monty覺(jué)得商用數據庫的速度難令人滿(mǎn)意。于是,他直接借助于mSQL的代碼,將它集成到自己的存儲引擎中。但不巧的是,效果并不太好。于是, Monty雄心大起,決心自己重寫(xiě)一個(gè)SQL支持。
1996年,MySQL 1.0發(fā)布,只面向一小撥人,相當于內部發(fā)布。到了96年10月,MySQL 3.11.1發(fā)布了,呵呵,沒(méi)有2.x版本。最開(kāi)始,只提供了Solaris下的二進(jìn)制版本。一個(gè)月后,Linux版本出現了。
緊接下來(lái)的兩年里,MySQL依次移植到各個(gè)平臺下。它發(fā)布時(shí),采用的許可策略,有些與眾不同:允許免費商用,但是不能將MySQL與自己的產(chǎn)品綁定在一起發(fā)布。如果想一起發(fā)布,就必須使用特殊許可,意味著(zhù)要花銀子。當然,商業(yè)支持也是需要花銀子的。其它的,隨用戶(hù)怎么用都可以。這種特殊許可為MySQL帶來(lái)了一些收入,從而為它的持續發(fā)展打下了良好的基礎。(細想想,PostgreSQL曾經(jīng)有幾年限入低谷,可能與它的完全免費,不受任何限制有關(guān)系)。
MySQL3.22應該是一個(gè)標志性的版本,提供了基本的SQL支持。
1999-2000年,有一家公司在瑞典成立了,叫MySQL AB(不知道AB是什么意思,待查)。 雇了幾個(gè)人,與Sleepycat合作,開(kāi)發(fā)出了 Berkeley DB引擎, 因為BDB支持事務(wù)處理,所以,MySQL從此開(kāi)始支持事務(wù)處理了。
2000年4月,MySQL對舊的存儲引擎進(jìn)行了整理,命名為MyISAM。同時(shí),2001年,Heikiki Tuuri向MySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個(gè)引擎同樣支持事務(wù)處理,還支持行級鎖。
如今,遺憾的是,BDB和InnoDB好像都被Oracle收購了,為了消滅競爭對手,哪怕是開(kāi)源的,都是不擇手段。
MySQL與InnoDB的正式結合版本是4.0。
到了MySQL5.0,2003年12月,開(kāi)始有View, 存儲過(guò)程之類(lèi)的東東,當然,其間, bug也挺多。
在2008年1月16號 MySQL被Sun公司收購。
最近,MySQL的創(chuàng )始人Monty Widenius已經(jīng)向Sun提交了辭呈。head都要走了。
據說(shuō),被Sun收購的公司多薄命,不知道MySQL今后前途如何,希望一路走好。相信MySQL的生命力還是很長(cháng)久的。
派生版本
派生版本有Drizzle,MariaDB,Percona Server及OurDelta等。
數據庫廠(chǎng)商的發(fā)展歷史之Sybase
Sybase公司成立于1984年,公司名稱(chēng)“Sybase”取自“system”和“database”相結合的含義。Sybase公司的創(chuàng )始人之一Bob Epstein 是Ingres 大學(xué)版(與System/R同時(shí)期的關(guān)系數據庫模型產(chǎn)品)的主要設計人員。
Sybase公司的第一個(gè)關(guān)系數據庫產(chǎn)品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 數據庫體系結構的思想,并率先在SybaseSQLServer 中實(shí)現。
提到Ingres數據庫,不得不提一下Michael Stonebraker,他是Ingres的創(chuàng )始人。他是加州大學(xué)伯克利分校的教授,著(zhù)名的數據庫學(xué)者,他在1992 年提出對象關(guān)系數據庫模型。Stonebraker 教授領(lǐng)導了稱(chēng)為Postgres 的后Ingres 項目。這個(gè)項目的成果是非常巨大的,在現代數據庫的許多方面都做出的大量的貢獻。Stonebraker 教授還做出了一件造福全人類(lèi)的事情,那就是把Postgres 放在了BSD 版權的保護下。如今Postgres名字已經(jīng)變成了PostgreSQL,功能也是日漸強大,我也非常喜愛(ài)這個(gè)數據庫。你可自由的瀏覽它的代碼庫,可以實(shí)時(shí)了解一線(xiàn)工程的思路。
話(huà)說(shuō),87年的時(shí)候,Sybase覺(jué)得單靠一家力量,難以把SQLServer(那時(shí)不叫ASE)做到老大,于是聯(lián)合微軟,共同開(kāi)發(fā)。至于原始的代碼從何而來(lái),這個(gè)應該與Ingres有些淵源。后來(lái)1994年,兩家公司合作終止。截止此時(shí),應該是都擁有一套完全相同的SQLServer代碼。
然后可想而知了,Sybase繼續開(kāi)發(fā),將Sybase SQLServer往各個(gè)平臺移植,版本也是跳躍式的變化,從4.2,好像一下子就到了11.0。
Sybase SQLServer后來(lái)為了與微軟的MS SQL Server相區分,改名叫:Sybase ASE(Adaptive Server Enterprise),其實(shí),應該改名字的是微軟。代碼的最初擁有者是Sybase,結果得到正式名字的居然是微軟。這筆交易,實(shí)在是有些虧。不過(guò),ASE也還好記,把Sybase的前邊三個(gè)字母去就是ase了。
ASE如今已經(jīng)發(fā)展到了15.0.2版了。13和14兩個(gè)數,對于老美來(lái)說(shuō),都不是好數,所以直接從12.5.4跳到15.0了。估計Oracle以后也會(huì )這樣命名。
現在的Sybase,產(chǎn)品策略已經(jīng)有了調整,在移動(dòng)數據庫市場(chǎng)上,它的ASA (SQL Anywhere)占據了絕對的老大地位,70%以上的市場(chǎng)。同時(shí),Sybase ASE仍然保持著(zhù)大型數據庫廠(chǎng)商的地位。在電信、交通、市政、銀行等領(lǐng)域,擁有強大的市場(chǎng)。它的產(chǎn)品全是多平臺支持。
Sybase ASE又分出了Replication Server(復制服務(wù)器), Sybase IQ等重量級產(chǎn)品,相當于對大型數據庫市場(chǎng)又進(jìn)行了細分。
算起來(lái),MS SQL Server應該算是Sybase ASE的同胞兄弟了,不過(guò),ASE血統更純正。無(wú)論誰(shuí)更成功,都證明當初的那個(gè)SQL Server生命力還在持續,它仍擁有強大的生命力。
聯(lián)系客服