有數據的地方必有庫,詳解關系型數據庫的發展歷史
數據庫發展史
信息系統產生了海量的數據,有數據必須要有數據的存放位置,
無庫時代 :沒有專門的數據庫,數據大多以文件形式存放
層次狀數據庫 :使用層次狀模型進行數據庫設計和存放
網狀數據庫 :使用網狀模型進行數據庫設計和存放
關系型數據庫 :使用關系型模型進行數據庫設計和存放
非關系型數據庫:為適應水平擴展性和處理超大量的數據環境,近幾年發展非常迅速的發展,衍生類型非常多。
本文主要考慮對于OLTP和OLAP占據主流的關系型數據庫,目前關系型數據庫軟件主要有:
大型商用關系型數據庫:Oracle,DB2,SQL Sever/Sybase;
近年發展較快的開源關系型數據庫:MySQL,PostgreSQL,SQLite
關系型數據庫主要人物與發展歷史
關系型數據庫的發展,大致可分為理論奠基、SQL標準、商用成型、多家發展等幾個階段,在每個階段都有對應的重要人物與貢獻。
首先是數學家E.F.Codd發表了數學論文《用于大型共享數據庫的關系數據模型》,提出關系和關系運算的概念,奠定了關系型數據庫的理論模型;
然后是Codd的同事DonChamberlin將Codd的論文和關系運算,轉換成為比較容易理解和使用的SQL語言,并且在后面成為所有關系型數據庫的標準;
有了上面的數據理論和SQL基礎,LarryElision和他的同事看到商機,開發出一個商用大型關系型數據庫Oracle,Scott作為一個開發的員工,將其測試賬戶放在里面了;
除了Oracle數據庫,IBM也開發出了DB2數據庫,但其他主流的關系型數據庫都與Michael Stonebraker有關,開發了Postgres并放在BSD版權下,后來演變成了Postgres SQL;87年微軟和Sybase合作,開發除了MS SQL和Sybase;后又加入Ingres和Informax,其他的主流關系型數據庫幾乎都和Michael Stonebraker有關。
關系型數據庫之父:E.F.Codd
1970年,Codd劃時代的論文《用于大型共享數據庫的關系數據模型》
Codd全關系系統十二準則
準則0
一個關系形的關系數據庫系統必須能完全通過它的關系能力來管理數據庫。
準則1 信息準則
關系數據庫系統的所有信息都應該在邏輯一級上用表中的值這一種方法顯式的表示。
準則2 保證訪問準則
依靠表名、主碼和列名的組合,保證能以邏輯方式訪問關系數據庫中的每個數據項。
準則3 空值的系統化處理
全關系的關系數據庫系統支持空值的概念,并用系統化的方法處理空值。
準則4 基于關系模型的動態的聯機數據字典
數據庫的描述在邏輯級上和普通數據采用同樣的表述方式。
準則5 統一的數據子語言
一個關系數據庫系統可以具有幾種語言和多種終端訪問方式,但必須有一種語言,它的語句可以表示為嚴格語法規定的字符串,并能全面的支持各種規則。
準則6 視圖更新準則
所有理論上可更新的視圖也應該允許由系統更新。
準則7 高級的插入、修改和刪除操作
系統應該對各種操作進行查詢優化。
準則8 數據的物理獨立性
無論數據庫的數據在存儲表示或存取方法上作任何變化,應用程序和終端活動都保持邏輯上的不變性。
準則9 數據邏輯獨立性
當對基本關系進行理論上信息不受損害的任何改變時,應用程序和終端活動都保持邏輯上的不變性。
準則10 數據完整的獨立性
關系數據庫的完整性約束條件必須是用數據庫語言定義并存儲在數據字典中的。
準則11 分布獨立性
關系數據庫系統在引入分布數據或數據重新分布時保持邏輯不變。
準則12 無破壞準則
如果一個關系數據庫系統具有一個低級語言,那么這個低級語言不能違背或繞過完整性準則。
SQL之父:唐-錢伯林(Don Chamberlin)
唐·錢伯林(DonChamberlin),是IBM Fellow,ACM及IEEE 特別會員。他是SQL關系數據庫語言的發明人之一,也是XQuery語言的設計基礎Quilt語言的發明人之一。Don擁有加利福尼亞大學博士學位。他目前在IBM Almaden 研究中心工作,在過去幾年中,他代表IBM參與W3C XML Query工作組的工作。
Scott和他的貓的故事
一個商用關系型數據庫——Oracle
左起 Ed Oates、Bruce Scott、Bob Miner、Larry Ellison
Oracle與Larry Ellison
主流數據庫的奠基人——Michael Stonebraker
Michael Stonebraker,SQL Server/Sysbase奠基人。
著名的數據庫科學家,他在1992 年提出對象關系數據庫模型在加州伯克利分校計算機教授達25年。在此期間他創作了Ingres,Illustra, Cohera, StreamBase Systems和Vertica等系統。Stonebraker教授也曾擔任過Informix的CEO,目前他是MIT麻省理工學院客席教授。
Stonebraker 教授領導了稱為Postgres的后Ingres項目。這個項目的成果非常巨大,在現代數據庫的許多方面都做出的大量的貢獻。Stonebraker 教授還做出了一件造福全人類的事情,那就是把Postgres 放在了BSD 版權的保護下。如今Postgres名字已經變成了PostgreSQL,功能也是日漸強大。
87年左右,Sybase聯合了微軟,共同開發SQL Server。原始代碼的來源與Ingres有些淵源。后來1994年,兩家公司合作終止。此時,兩家公司都擁有一套完全相同的SQLServer代碼。可以認為,Stonebraker教授是目前主流數據庫的奠基人。
1973 年 IBM 啟動了 System R 項目,項目組發表了一系列關于關系數據庫的的文章。兩個伯克萊大學的科學家,Michael Stonebraker 和 Eugene Wong 讀了這些文章后非常感興趣,于是決定自己啟動一個關系數據的研究項目。他們已經為一個地理數據庫系統申請到了資金,他們稱為 ingres,意思是交互式圖形獲取系統
Ingres的代碼是可以免費獲得的,到 1980 年止,共分發了 1000 份拷貝,不少公司使用這些代碼形成了自己的產品線。Informix 是最早的用戶之一,并且其員工完全是 Ingres 項目的人員。他們在 1984 發布了基于 Ingres 的產品,到 1997 年已經成了第二大數據庫供應商。然而,一系列管理和財會方面的失誤在短短兩年內毀了公司的信譽,并于 2000 年被 IBM 收購。
Robert Epstein 在伯克立大學項目中的重要的程序員,創建了 Britton-Lee,后來的 Sybase,Sybase 在 80 到 90 年期間是第二號數據庫產品,Sybase 于1992年將產品賣給微軟,微軟稱之為 MSSQLServer。
Stonebraker 自己離開了伯克立大學在1982年創建了Ingres 公司,Stonebraker 在這個公司工作到 1991 年,然后公司賣給了 ASK,1994年 ASK/ingres 被 CA Computer Associates 收購。2004 年 CA 在開源許可下發布了 Ingres release 3,并繼續開發銷售 Ingres。
在返回 Berkeley 之后,Stonebraker 開始了一項后-Ingres 計劃來致力于解決關系模型的數據庫管理現有實現的局限性。其中主要的是它們不能讓用戶定義組合更簡單域的新域(或者叫類型)(參見關系模型獲得對術語域的解釋。)結果的計劃叫做 Postgres,以介入對增加完整的類型支持所需要的最小數目的特征為目標。其中包括定義類型的功能,還有完全描述聯系的能力 - 聯系至今已經廣泛使用但仍由用戶完全維護。在 Postgres 中數據庫理解聯系,并能以使用規則的自然方式在有關聯的表中檢索信息。詳情請參見 PostgreSQL 的文章。在 1990 年 Stonebraker 再次離開 Berkeley 去商業化 Postgres,使用了名字 Illustra。Illustra 后來被 Informix 并購,而 Stonebraker 再次回去搞高等教育了。
數據庫廠商的發展歷史之Oracle
所有這一切要從IBM的一篇論文談起,1970年的6月,IBM公司的研究員埃德加·考特(Edgar Frank Codd) 在 Communications ofACM 上發表了那篇著名的《大型共享數據庫數據的關系模型》(A Relational Model ofData for Large Shared Data Banks)的論文。這是數據庫發展史上的一個轉折。要知道,當時還是層次模型和網狀模型的數據庫產品在市場上占主要位置。從這篇論文開始,拉開了關系型數據庫軟件革命的序幕。IBM雖然1973年就啟動了SystemR的項目來研究關系型數據庫的實際可行性,也沒有及時推出這樣的產品,因為當時IBM的的IMS(著名的層次型數據庫)市場不錯,如果推出關系型數據庫,牽涉到IBM很多人的自身利益。再者,IBM龐大復雜的官僚機構處在決策上遠不那么靈活
1977年6月,Larry Ellison與Bob Miner和Ed Oates在硅谷共同創辦了一家名為軟件開發實驗室(Software Development Laboratories,SDL)的計算機公司(ORACLE公司的前身)。那個時候,32歲的Larry Ellison,這個讀了三家大學都沒能畢業的輟學生,還只是一個普通的軟件工程師。公司創立之初,Miner是總裁,Oates為副總裁,而Ellison,因為一個合同的事情,還在另一家公司上班。沒多久,員工Bruce Scott(用過ORACLE數據庫軟件的人都知道有個Scott用戶的吧?沒錯,就是這個Scott,至于Scott用戶的密碼Tiger,那是Scott養的貓的名字, Oracle也一直沒有忘記她這位程序員)進來,在Miner和Oates有些厭倦了那種合同式的開發工作后,他們決定開發通用軟件,不過們還不知道自己能開發出來什么樣的產品。Oates看到了埃德加·考特的那篇著名的論文連同其他幾篇相關的文章并推薦Ellison和Miner也閱讀一下。Ellison和Miner預見到數據庫軟件的巨大潛力(跟著IBM走,沒錯),于是,SDL開始策劃構建可商用的關系型數據庫管理系統(RDBMS)。
根據Ellison和Miner他們在前一家公司從事的一個由中央情報局投資的項目代碼,他們把這個產品命名為ORACLE。因為他們相信,ORACLE(字典里的解釋有“神諭, 預言”之意)是一切智慧的源泉。1979年,SDL更名為關系軟件有限公司(Relational Software,Inc.,RSI),畢竟“軟件開發實驗室”不太像一個大公司的名字。1983年,為了突出公司的核心產品,RSI再次更名為ORACLE。Oracle從此正式走入人們的視野。
RSI在1979年的夏季發布了可用于DEC公司的PDP-11計算機上的商用ORACLE產品,這個數據庫產品整合了比較完整的SQL實現,其中包括子查詢、連接及其他特性。出于市場策略,公司宣稱這是該產品的第二版,但卻是實際上初版。這就是Oracle這種“要命”的市場策略,事實上,這種策略有時候也是非常成功的。
1983年3月,RSI發布了ORACLE第三版。Miner和Scott歷盡艱辛用C語言重新寫就這一版本。(說老實話,太佩服這兩個大牛了,為什么一直沒多少媒體宣傳這兩個人呢,懷疑Miner簡直就是“少林老僧”般的人物。)要知道,C語言當時推出不久,用它來寫ORACLE軟件也是具有一定的風險的,但除此之外,別無他法。很快就證明了這樣做是多么的正確:C編譯器便宜而又有效,還有很好的移植性。從現在起,ORACLE產品有了一個關鍵的特性:[可移植性]。同樣是1983年,IBM發布了姍姍來遲的Database 2(DB2),但只可在MVS上使用。不管怎么說,ORACLE已經占取了先機。
在開發第三版還沒有結束的時候,Scott離開了ORACLE。當時用C語言改寫ORACLE的壓力很大,無休止的軟件調試終于讓Scott不堪重負,選擇了一走了之。把剩下的重擔交給了Miner一個人。在交易了自己的4%的股票之后,Scott 后來創建了Gupta公司(現更名為Centura Software)和PointBase公司,都是開發和數據庫相關的產品。多年后有人問到他的4%的ORACLE股票的時候,Scott,這個曾經給ORACLE寫出代碼的技術高手,也只能報以一笑了。如果能堅持下來,那是一筆幾億美金的財富。不過當時的Scott沒有那么多的想法,他只是太累了。
很長一段時間里,公司研發由Miner獨力承擔。Miner視金錢如無物,為人低調,和Ellison的鋒芒必露形成鮮明的對比。在公司里,大家一致認為他是老好人,他也深受員工愛戴。Ellison是公司的大腦,Miner則當之無愧的成為公司的心臟。他是個沉默的英雄,正如Steve Jobs背后的Steve Wozniak一樣。
1984年10月,ORACLE發布了第4版產品。產品的穩定性總算得到了得到了一定的增強,用Miner的話說,達到了“工業強度”。
在1985年,ORACLE發布了5.0版。有用戶說,這個版本算得上是ORACLE數據庫的穩定版本。這也是首批可以在Client/Server模式下運行的的RDBMS產品,在技術趨勢上,ORACLE數據庫始終沒有落后。
那是在1985年,當時曾經的獨立軟件公司Cullinet(主要銷售網狀數據庫)已經如流星般隕落。ORACLE的主要競爭對手是Ingres數據庫。Ingres在加州大學伯克利分校誕生,主要的設計者是當時鼎鼎大名的MichaelStonebraker教授。可以說Ingres數據庫軟件是上個世紀80年代技術上數據庫,Ingres市場分額的快速增長已經給ORACLE早成了很大的壓力。巧的是,這個時候,IBM公司再一次伸出“上帝之手”。
Ingres使用的是Stonebraker 發明的QUEL(Query Language))的查詢技術,這和IBM的SQL大不相同。在某些地方QUEL甚至要優于SQL。IBM當時擔心Ingres把QUEL變成標準會對自己不利。經過一番衡量,決定把自己的SQL提交給數據庫標準委員會。而Stonebraker教授可不打算把QUEL提交給數據庫標準委員會,學院派的他認為這麼做實際上是扼殺了創新精神。可以看出,學院派,大都會把事情搞雜。
1986年3月12日,ORACLE公司以每股15美元公開上市,當日以20.75美元收盤,公司市值2.7億美元。3月13日,微軟以每股21美元的發行價上市,以28美元收市,公司市值達到7億美元。遠遠超過了ORACLE。成功的光環的微軟和蓋茨遮蓋住了ORACLE和Ellison的光芒,可能這也是Ellison敵視微軟的開始。
ORACLE第6版于1988年發布。由于過去的版本在性能上屢受詬病,Miner帶領著工程師對數據庫核心進行了重新的改寫。引入了行級鎖(row-level locking)這個重要的特性,也就是說,執行寫入的事務處理只鎖定受影響的行,而不是整個表。這個版本引入了還算不上完善的PL/SQL(Procedural Language extension to SQL)語言。第6版還引入了聯機熱備份功能,使數據庫能夠在使用過程中創建聯機的備份,這極大地增強了可用性。
在第六版剛發布之后,很多迫不及待開始使用的用戶就怨聲載道。這是個根本就沒有測試好就進行發布的產品(也怪Ellison,大話總要說在前頭,只好自嘗苦果)。用戶開始對ORACLE大肆抨擊,ORACLE的一些對手也開始落井下石,針對ORACLE產品的一些弱點進行威脅。
噩夢延續到ORACLE第七版的推出而結束。這個公司已經空談了好幾年的新版本(一度被譏諷為不過是Ellison的故計重施而已),直到1992年6月才終于閃亮登場,這一次公司吸取了第六版匆忙上市的教訓,聽取了用戶的多方面的建議,并集中力量對新版本進行了大量而細致的測試。該版本增加了許多新的性能特性:分布式事務處理功能、增強的管理功能、用于應用程序開發的新工具以及安全性方法。
ORACLE 第七版是ORACLE真正出色的產品,取得了巨大的成功。這個版本的出現真是好時機,當時Sybase公司的數據庫已經占據了不少份額,ORACLE借助這一版本的成功,一具擊退了咄咄逼人的Sybase。公司的銷售人員這次算到了給用戶兌現空頭許諾的時候。公司經過兩三年的治理,終于擺脫了種種麻煩,重新開始健康發展,銷售額也從92年的15億美元變為四年后的42億美元。
1997年6月,ORACLE第八版發布。ORACLE8支持面向對象的開發及新的多媒體應用,這個版本也為支持Internet、網絡計算等奠定了基礎。同時這一版本開始具有同時處理大量用戶和海量數據的特性。
1998年9月,ORACLE公司正式發布ORACLE 8i。“i”代表Internet,這一版本中添加了大量為支持Internet而設計的特性。這一版本為數據庫用戶提供了全方位的Java支持。ORACLE 8i成為一個完全整合了本地Java運行時環境的數據庫,用Java就可以編寫ORACLE的存儲過程。對,Java,只要是能夠打擊微軟的武器,ORACLE都要派上用場。
在2001年6月的ORACLEOpenWorld大會中,ORACLE發布了ORACLE 9i。在ORACLE 9i的諸多新特性中,最重要的就是Real Application Clusters(RAC)了。說起ORACLE集群服務器,早在第五版的時候,ORACLE就開始開發ORACLE并行服務器(ORACLE Parallel Server ,OPS),并在以后的版本中逐漸的完善了其功能,不過,嚴格來說,盡管OPS算得上是個集群環境,但是并沒有體現出集群技術應有的優點。
2003年9月8日,舊金山舉辦的ORACLE World大會上,Ellison宣布下一代數據庫產品為“ORACLE 10g”。ORACLE應用服務器10g(ORACLEApplication Server 10g)也將作為甲骨文公司下一代應用基礎架構軟件集成套件。“g”代表“grid ,網格”。這一版的特性就是加入了網格計算的功能。
最近兩年,Oracle先后又收購了People soft(103億$), BEA(80多億$),還有Sibel之類的就不說了。通過收購,實力大增。
2007年11月,Oracle 11g正式發布,功能上大大加強。11g是甲骨文公司30年來發布的最重要的數據庫版本,根據用戶的需求實現了信息生命周期管理(InformationLifecycle Management)等多項創新。大幅提高了系統性能安全性,全新的Data Guard可用性,利用全新的高級數據壓縮技術降低了數據存儲的支出,明顯縮短了應用程序測試環境部署及分析測試結果所花費的時間,增加了RFID Tag、DICOM醫學圖像、3D空間等重要數據類型的支持,加強了對Binary XML的支持和性能優化。
從Oracle的發展來看,它的市場策略直接引導著公司的發展。與別的公司有很大的不同。
數據庫廠商的發展歷史之DB2
1973年,IBM研究中心啟動System R項目,為DB2的誕生打下良好基礎。System R 是 IBM 研究部門開發的一種產品,這種原型語言促進了技術的發展并最終在1983年將 DB2 帶到了商業市場。
在這期間,IBM發表了很多數據庫領域的精典論文,前邊E.F.Codd就不說了,1976年, 身在IBM的Gim Gray發有了他的代表作:共享數據庫的一致性和鎖的粒度。他同樣也是數據庫領域的圖靈獎獲得之一。后來被微軟挖走(應該是在他退休之后),去年他獨自一人出海,失蹤,不知下落如何。此君因為不喜歡Seattle的雨天,使得Bill Gates為拉他入Microsoft在San Francisco為其新建了一座研究院讓他做院長。據說此君在一次學術會議上demo他的新程序,聽眾中有人提出界面可以如何改進,此君竟然在講壇上就打開VC++開始改起代碼來,然后給人看新效果。這樣的大師,太讓人尊敬了。
1981年, E.F.Codd因為發明關系數據庫模型,獲得ACM圖靈獎,當然他前邊還有一位大師,Charles W.Bachman。
1982年,IBM發布SQL/DS for VSE and VM,以System R為原型。
1983年,發布Database2 (DB2) forMVS, 內部代號為"Eagle",于是DB2正式誕生。
1986年,System/38 V7發布,配置查詢優化器,能對應用的存取計劃進行優化。
1987年,DB2完成了到OS/2的擴展,進入微機領域。
1988年,發布SQL/400,為AS/400服務器提供SQL支持。到此時為止,感覺IBM的數據庫產品的發展十分凌亂,似乎同時在做多個產品,平臺又不統一。
1992年,IDUG大會在瑞士如開,DB2應用開始全球化。DB2 for OS2 V1和DB2 for RS/6000 V1推出,在Intel和Unix平臺上推出DB2產品。
1993年,郭士納進入IBM,大刀改革。
1994年,DB2實現了HP unix和Solaris版本。實際上,還真不知道這兩個平臺上有多少用戶。
也是在1994年,AIX平臺上DB2開始支持對象型數據。
1995年,DB2開始支持Windows NT, Unix等多個平臺。(標志性的一年?)
1995年,收購Lotus,暈,現在我們還在用Lotus的郵件系統。不好用,但是不容易中毒。
1996年,DB2正式更名為DB2 通用數據庫。
1997年, DB2 UDB forUnix/windows/OS2同時發布
1998年,DB2 開始支持SCO Unixware
1998年, DB2 UDB5.2出現。(不知道以前的版本是怎么定義的,有些亂。。。)
1999年,DB2支持Linux on intel cpu
2000年,DB2 支持XML擴展
2000年,進一步支持Linux集群
2002年,收購Rational Soft,從此, rose這個大炮工具被IBM弄走了
2002/2003,DB2 V8.1出現
2007年, DB2 V9出現,好像是一個混合模式(關系型、層次型)數據庫出現,既有關系模型,又有直接支持XML的層次模型。不知道是否屬于叫好不叫座。
在這期間,忘了是哪一年,印象中,好像是2001/2002年的光景,IBM還收購了Informix,花了1個Billion$,那也是一家曾經響當當的數據庫廠商。
數據庫廠商的發展歷史之MySQL
MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴“my”已經有10年以上,而且不管怎樣,MySQL AB創始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個密,包括開發者在內也不知道。
MySQL的海豚標志的名字叫“sakila”,它是由MySQL AB的創始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發者Ambrose Twebaze提供。根據Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉烏干達附近的坦桑尼亞的Arusha的一個小鎮的名字。
MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導致很多人都了解到這個數據庫。它的歷史也富有傳奇性。
MySQL的歷史最早可以追溯到1979年,那時Oracle也才小打小鬧,微軟的SQL Server影子都沒有。有一個人叫Monty Widenius, 為一個叫TcX的小公司打工,并用BASIC設計了一個報表工具,可以在4M主頻和16KB內在的計算機上運行。過了不久,又將此工具,使用C語言重寫,移植到Unix平臺,當時,它只是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg。
可是,這個小公司資源有限,Monty天賦極高,面對資源有限的不利條件,他反而更能發揮潛能,總是力圖寫出代碼。并因此養成了習慣。與Monty同在一起的還有一些別的同事,很少有人能堅持把那些代碼持續寫到20年后,而Monty卻做到了。
1990年,TcX的customer 中開始有人要求要為它的API提供SQL支持,當時,有人想到了直接使用商用數據庫算了,但是Monty覺得商用數據庫的速度難令人滿意。于是,他直接借助于mSQL的代碼,將它集成到自己的存儲引擎中。但不巧的是,效果并不太好。于是, Monty雄心大起,決心自己重寫一個SQL支持。
1996年,MySQL 1.0發布,只面向一小撥人,相當于內部發布。到了96年10月,MySQL 3.11.1發布了,呵呵,沒有2.x版本。最開始,只提供了Solaris下的二進制版本。一個月后,Linux版本出現了。
緊接下來的兩年里,MySQL依次移植到各個平臺下。它發布時,采用的許可策略,有些與眾不同:允許免費商用,但是不能將MySQL與自己的產品綁定在一起發布。如果想一起發布,就必須使用特殊許可,意味著要花銀子。當然,商業支持也是需要花銀子的。其它的,隨用戶怎么用都可以。這種特殊許可為MySQL帶來了一些收入,從而為它的持續發展打下了良好的基礎。(細想想,PostgreSQL曾經有幾年限入低谷,可能與它的完全免費,不受任何限制有關系)。
MySQL3.22應該是一個標志性的版本,提供了基本的SQL支持。
1999-2000年,有一家公司在瑞典成立了,叫MySQL AB(不知道AB是什么意思,待查)。 雇了幾個人,與Sleepycat合作,開發出了 Berkeley DB引擎, 因為BDB支持事務處理,所以,MySQL從此開始支持事務處理了。
2000年4月,MySQL對舊的存儲引擎進行了整理,命名為MyISAM。同時,2001年,Heikiki Tuuri向MySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個引擎同樣支持事務處理,還支持行級鎖。
如今,遺憾的是,BDB和InnoDB好像都被Oracle收購了,為了消滅競爭對手,哪怕是開源的,都是不擇手段。
MySQL與InnoDB的正式結合版本是4.0。
到了MySQL5.0,2003年12月,開始有View, 存儲過程之類的東東,當然,其間, bug也挺多。
在2008年1月16號 MySQL被Sun公司收購。
最近,MySQL的創始人Monty Widenius已經向Sun提交了辭呈。head都要走了。
據說,被Sun收購的公司多薄命,不知道MySQL今后前途如何,希望一路走好。相信MySQL的生命力還是很長久的。
派生版本
派生版本有Drizzle,MariaDB,Percona Server及OurDelta等。
數據庫廠商的發展歷史之Sybase
Sybase公司成立于1984年,公司名稱“Sybase”取自“system”和“database”相結合的含義。Sybase公司的創始人之一Bob Epstein 是Ingres 大學版(與System/R同時期的關系數據庫模型產品)的主要設計人員。
Sybase公司的關系數據庫產品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 數據庫體系結構的思想,并率先在SybaseSQLServer 中實現。
提到Ingres數據庫,不得不提一下Michael Stonebraker,他是Ingres的創始人。他是加州大學伯克利分校的教授,著名的數據庫學者,他在1992 年提出對象關系數據庫模型。Stonebraker 教授領導了稱為Postgres 的后Ingres 項目。這個項目的成果是非常巨大的,在現代數據庫的許多方面都做出的大量的貢獻。Stonebraker 教授還做出了一件造福全人類的事情,那就是把Postgres 放在了BSD 版權的保護下。如今Postgres名字已經變成了PostgreSQL,功能也是日漸強大,我也非常喜愛這個數據庫。你可自由的瀏覽它的代碼庫,可以實時了解一線工程的思路。
話說,87年的時候,Sybase覺得單靠一家力量,難以把SQLServer(那時不叫ASE)做到老大,于是聯合微軟,共同開發。至于原始的代碼從何而來,這個應該與Ingres有些淵源。后來1994年,兩家公司合作終止。截止此時,應該是都擁有一套完全相同的SQLServer代碼。
然后可想而知了,Sybase繼續開發,將Sybase SQLServer往各個平臺移植,版本也是跳躍式的變化,從4.2,好像一下子就到了11.0。
Sybase SQLServer后來為了與微軟的MS SQL Server相區分,改名叫:Sybase ASE(Adaptive Server Enterprise),其實,應該改名字的是微軟。代碼的最初擁有者是Sybase,結果得到正式名字的居然是微軟。這筆交易,實在是有些虧。不過,ASE也還好記,把Sybase的前邊三個字母去就是ase了。
ASE如今已經發展到了15.0.2版了。13和14兩個數,對于老美來說,都不是好數,所以直接從12.5.4跳到15.0了。估計Oracle以后也會這樣命名。
現在的Sybase,產品策略已經有了調整,在移動數據庫市場上,它的ASA (SQL Anywhere)占據了絕對的老大地位,70%以上的市場。同時,Sybase ASE仍然保持著大型數據庫廠商的地位。在電信、交通、市政、銀行等領域,擁有強大的市場。它的產品全是多平臺支持。
Sybase ASE又分出了Replication Server(復制服務器), Sybase IQ等重量級產品,相當于對大型數據庫市場又進行了細分。
算起來,MS SQL Server應該算是Sybase ASE的同胞兄弟了,不過,ASE血統更純正。無論誰更成功,都證明當初的那個SQL Server生命力還在持續,它仍擁有強大的生命力。