官术网_书友最值得收藏!

序章 數據庫行業:天生屬于挑戰者

今天的人們已經無法離開電子產品了。

每天清晨,我們或者被手機的鬧鈴叫醒,或者自然醒來后第一件事就是伸手去摸手機。數據庫管理軟件如同大樓中的鋼筋一樣,支撐著電子產品中的大部分重要軟件,支撐著我們信息化的現代生活。

如同人類并不是從誕生起便住進鋼筋水泥的大樓一樣,數據庫管理軟件也缺席了計算機的“童年時光”。

一般認為,1942年完成測試的阿塔納索夫-貝瑞計算機(Atanasoff-Berry Computer,通常簡稱ABC計算機)是世界上第一臺電子計算機,1946年2月誕生的電子數字積分計算機(Electronic Numerical Integrator And Computer,簡稱ENIAC)是世界上第一臺通用計算機。

早期的電子計算機更多地承擔科研計算的任務,其作用更接近于一個“豪華計算器”。這是當時技術發展的局限性所造成的:從硬件上來看,早期計算機并不具備數據存儲硬件,無法對生成的數據進行存儲和調取;從軟件上看,“文件”這種我們今天常見的數據組織形式在當時尚不完備,松散的數據尚不足以支持用戶進行復雜的查詢、修改、插入和刪除等大規模處理工作。

隨著電子計算機的核心處理能力不斷演進,加之1956年開始,由IBM公司發明的硬盤逐步成為計算機的標準配置,計算機的算力和存儲兩大短板被一點點補齊。數據不僅可以被保存、修改,還能被反復調取使用,這時更加高效、復雜、獨立的數據管理模式就成了用戶所需。

20世紀60年代初期,通用電氣公司的工程師查爾斯·巴赫曼(Charles Bachman)開發出了第一個網狀數據庫管理系統,這也是世界上第一個數據庫管理系統,名字叫IDS(Integrated Data Store,集成數據存儲)。網狀數據庫作為數據庫領域的先行者,對數據庫的概念、方法、技術起到了奠基作用。

時間進入20世紀60年代后期,電子計算機技術邁過了第一代電子管時代和第二代晶體管時代,正處于集成電路時代,并準備向大規模集成電路時代發起總攻。技術的發展讓計算機的體形與價格呈現了“雙重瘦身”:計算機不再是軍事機構和研究機構的專屬產品,而是進入民用領域,擁有了更多的使用場景。

1968年,IBM研發出了一種新型的數據庫管理系統IMS(Information Management System,信息管理系統),這種后來被稱為層次數據庫的數據庫管理系統,雖然普及度不如網狀數據庫那樣高,卻為IBM帶來了可觀的商業價值,甚至在一定程度上蒙蔽了IBM的雙眼,讓這個“藍色巨人”沒能在革命到來的前夜及時轉身,占據市場的橋頭堡。

迄今為止,數據庫發展史上最偉大的革命發生在1970年,一個顛覆認知的天才般的思想在這一年被公之于眾,啟發了包括甲骨文、達夢在內的所有后世數據庫企業。

改變來自英格蘭人埃德加·科德(Edgar Codd)。在牛津大學求學期間,他學習了數學和化學這兩個基礎學科。事實證明,基礎自然科學對于邏輯思維的訓練及影響貫穿科德終生。科德在日后提出的許多想法,與其說是雄心壯志的科學研究,倒不如說是沿著邏輯的藤蔓慢慢生長成熟的甘甜果實。1965年,科德在密歇根大學安娜堡分校取得計算機博士學位,隨后加入IBM的圣何塞實驗室從事研究工作。

科德仔細研究數據的排布形式,以關系代數為基礎,提出了一種新的數據庫模型。在此之前,網狀數據庫和層次數據庫模型雖然滿足了一部分數據管理的需求,但是它們物理層與邏輯層混淆,開發維護極其煩瑣,從架構上不方便實現復雜的查詢邏輯。這樣的結構也就注定,基于兩種早期數據庫模型而編成的數據庫管理系統,規模不可能做得很大。

通過引入數學中常見的“關系”概念,科德將數據庫的物理層和邏輯層分離,不但實現了非常復雜的查詢邏輯,能夠支持數據量龐大的數據庫,同時對物理層和邏輯層的開發人員進行了徹底分工:其中開發難度較高的物理層可以由少數專業人員來予以實現;邏輯層容易理解,開發難度較低,可以在短期內培養大量的開發人員——不必像過去那樣讓開發工程師“大筐小筐一肩挑”。工種的細化有助于實現數據庫軟件研發的產業化。

科德于1969年在IBM內部發表了論文。1970年,科德的論文在《美國計算機學會通訊》(Communications of the ACM)6月刊上公開發表。這篇題為《大型共享數據庫的數據關系模型》(“A Relational Model of Data for Large Shared Data Banks”)的論文此后被視為關系數據庫的起源。1974年,科德同實驗室的兩名同事在進行關系數據庫研究的過程中提出了一套體現數據應用原則的規范語言SEQUEL(Structured English Query Language),這一語言在1980年定名為SQL(結構查詢語言),經過多次修訂,至今仍然是關系數據庫的“圣經”。2003年,當達夢面臨技術分蘗時,舊版本的達夢數據庫軟件不完全符合SQL標準是其毅然決定拋棄舊架構、研發新版本數據庫的重要原因之一。

從研究成果來看,來自IBM圣何塞實驗室的科學家們像是在進行一場焰火表演,他們不斷地在夜空中爆閃出絢麗光彩。可事實上,IBM的管理層依然沉迷于層次數據庫IMS所帶來的回報。他們對于關系數據庫的研究是實驗性的,仿佛科德的全新模型并不是IBM的“親兒子”,而是一只變異了的小白鼠。他們把小白鼠放在玻璃柜里,取了個名字叫“系統R”(System R),讓一群科學家圍著它,喂它一點這個、喂它一點那個,看看這只小白鼠最終會變成什么樣。

沒有哪一種類型的數據庫可以一勞永逸地解決人類所有的數據管理問題,如果不能在技術上推陳出新、不斷發布契合當下時代的新產品,即使是家底深厚的IBM也難免受到挑戰。接連發生的幾件事印證了這個趨勢。

1973年,加州大學伯克利分校的研究人員利用IBM公開發布的“系統R”相關信息,開始開發關系數據庫系統Ingres。

1974年,在美國計算機學會(ACM)舉辦的研討會上,組織方專門請到了開發出第一個網狀數據庫的“老前輩”查爾斯·巴赫曼和鋒芒畢露的埃德加·科德同堂辯論。巴赫曼在一年前剛剛憑借對數據庫的貢獻,成為歷史上第八位ACM圖靈獎的獲得者。辯論中,巴赫曼代表著工程實用主義和已經成熟的技術,科德則代表根植于科學深處的嚴謹與高雅。遺憾的是,由于當時尚未誕生一個可投入實際使用的關系數據庫,這場不在一個維度的辯論注定無法形成定論。

1976年,霍尼韋爾(Honeywell)公司終于開發出了第一個商用關系數據庫系統——MRDS(Multics Relational Data Store),但這個數據庫在當時還不符合后來被奉為圭臬的SQL標準。

1977年,一家還不為人知的小公司——軟件開發實驗室(Software Development Laboratories,簡稱SDL)注冊成立,三名創始人分別是拉里·埃里森(Larry Ellison)、鮑勃·邁納(Bob Miner)和埃德·奧茨(Ed Oates)。公司注冊資本2000美元,埃里森出資1200美元占有60%的股份,邁納和奧茨各出資400美元,分別占有20%的股份。這家不起眼的公司開始闖入關系數據庫領域。

拉里·埃里森是硅谷歷史上最具爭議性的傳奇人物之一。1944年8月,他出生于紐約,母親是一名猶太裔未婚媽媽。出生后不久,九個月大的埃里森被交給他的姨媽撫養。養父母家恪守猶太教教規,可埃里森自童年起便展現出特立獨行的特質。13歲時,埃里森拒絕參加猶太教的成年禮,后來也一直是一個宗教懷疑論者。

1962年起,埃里森求學于伊利諾伊大學香檳分校、芝加哥大學和西北大學三所高校,但均未能取得學位。1965年,埃里森在芝加哥大學第一次見到了計算機,并學會了給IBM生產的晶體管計算機編寫程序。憑借這點手藝,埃里森得以在硅谷謀生。埃里森的張揚個性在生活方式上展露無遺,盡管收入并不算高,但他常常不惜花費巨資購買昂貴的奢侈品。在同事及好友埃德·奧茨的推薦下,埃里森讀到了科德于1970年發表的那篇著名論文,如獲至寶。不久,埃里森便發起成立了SDL公司,專門進行關系數據庫的研發。

埃里森處在一個極好的時代。所謂的“好”,不僅僅源于IBM對于新興關系數據庫技術的興致索然,從而為其他數據庫廠商提供了市場空隙;更在于,軟件作為一種獨立的產品正從硬件中脫離出來。在此之前的計算機市場上,硬件是一切的指揮棒,每一家計算機企業都是一個全套的集成廠商,同時提供硬件(包括處理器、硬盤、打印機等)、軟件(包括操作系統、應用軟件等)和人工服務,還沒有一家計算機公司把軟件部分拿出來單獨出售——由于各品牌的計算機互不兼容,軟件零售事實上也沒有可操作性。軟硬件之間存在著強行捆綁關系,隨著計算機產業的發展,這樣落后的商業模式越來越難以符合市場的需要,而這也為專業軟件公司的誕生提供了機會。在埃里森創業的兩年前,即1975年,比爾·蓋茨和保羅·艾倫成立了微軟公司,從公司的名字中就可以看出,他們對于軟件市場的未來發展充滿信心。

1978年,SDL開發出了第一款關系數據庫產品,項目代號為Oracle 1。“Oracle”源于埃里森之前在硅谷工作時為美國中央情報局開發的一個項目,這個單詞的寓意是“智慧之源”,埃里森十分喜歡這個單詞。Oracle 1并沒有正式對外發布,埃里森的理由是,這是一個沒有人會愿意買的版本。1979年,SDL開發出了Oracle 2,這是第一個由純軟件公司開發出的商用關系數據庫管理系統。所謂的“商用”體現在,這個系統后來被銷售給了美國空軍。

想要做市場通用的、產品化的軟件,就需要獲得硬件廠商的兼容支持。埃里森等人希望自家公司的數據庫軟件能夠兼容IBM的產品,可是IBM每年從客戶處收取的服務費占到了集成打包價格的10%以上,產品化的軟件一旦推行,將會使得用戶的駐場服務需求不再頻繁,數錢數得不亦樂乎的IBM自然沒有動力去做這樣的改變。可體量遠不如IBM的另一家廠商數字設備公司(Digital Equipment Corporation,簡稱DEC)卻對兼容Oracle數據庫的提議很感興趣。DEC把賬算得很明白:如果同時有四五家硬件廠商都愿意兼容以SDL為代表的軟件公司,那么每家實際分攤的軟件開發成本只有原來的五分之一到四分之一。

埃里森的公司并沒有改變終端用戶的消費習慣,用戶依然可以像他們所熟悉的那樣,打包支付一個價格,獲得硬件、軟件的各種服務,可是與埃里森合作的公司卻攤薄了成本。與此同時,計算機硬件領域“摩爾定律”的存在,使得關系數據庫運行緩慢的缺點不再那么顯眼,甚至已經不為用戶所在意;相應地,關系數據庫靈活便捷的優點越發閃耀,迅速幫助它從老式的數據庫手中搶到了市場。埃里森和他的伙伴們能夠殺出重圍,既有商業模式的助力,又有科技進步的助力。

1982年,埃里森發現,Oracle數據庫的市場知名度遠遠大于公司的知名度,他索性把公司也更名為Oracle(甲骨文)。直到一年后的1983年,最早提出關系數據庫概念的IBM,才姍姍來遲地發布自己的第一款商用關系數據庫管理系統DB2。

“當市場已建立好,你知道百事可樂要花多少錢才能奪得可口可樂1%的市場?非常非常昂貴!”埃里森后來的這句話證明他深知市場份額的重要性。在數據庫領域的大衛與巨人歌利亞的斗爭中,Oracle這個“大衛”并沒有殺死巨人,而是變成了另一個讓世界膽寒的巨人,牢牢地把控住了世界數據庫軟件的市場。

無論是年輕的科德在學術研討會上與巴赫曼的激情辯論,還是Oracle在面對IBM時的突飛猛進,數據庫這個行業天生就具有顛覆屬性,也天生就屬于挑戰者。只要一家企業、一個產品符合了市場的期待,它所積聚的勢能就會在一個臨界點集中爆發。

就在Oracle創立這一年,1977年,中國也第一次正式認識了數據庫。

在計算機發展的歷史上,美國并不是一枝獨秀,同為“超級大國”的蘇聯也早早地意識到計算機技術的先進性。從20世紀60年代初開始,蘇聯提出自動化管理系統(簡稱ACY系統),并迅速將其應用于工業生產中。截至1975年,蘇聯已經擁有2700個ACY系統。

此時,中國國家計劃委員會(以下簡稱國家計委)希望能夠仿照蘇聯國民經濟自動化管理系統,研制我國的經濟信息管理系統[1],包括硬件設備的制造和軟件系統的研究,這當中便涉及了數據庫系統的研發。為此,1977年,國家計委委托中國科技大學組織一次數據庫相關的學者研討會,會址定在安徽黃山。

11月的黃山已經清冷,山上風云變幻,隨時可能大雪封山。從北京、南京、吉林、上海等地前來的五十余人聚集在黃山腳下。那時,“文革”剛剛結束,社會生產生活逐步回歸正軌,黃山也不如今天這樣游人如織,五十余名學者沒有預先打招呼突然到訪,山下的賓館也能順利地安排下來。

當時的關系數據庫理論還靜靜地躺在IBM的研究所里等待世人發掘,世界還是網狀數據庫和層次數據庫的天下。中國的數據庫理論和技術的發展,是從學習和消化美國數據系統語言會議(Conference on Data Systems Languages,簡稱CODASYL)的報告開始的。

1969年,CODASYL下屬的數據庫任務組(Data Base Task Group,簡稱DBTG)發布了一篇有關網狀數據庫語言規范的報告,并不斷對其進行修改和完善。該報告的1973年版本由中國科學院計算所翻譯為中文,并刊載在《計算機工程與應用》上。在黃山會議上,中國科學院計算所提出的數據庫管理系統(DBMS)的設計方案就是基于DBTG的報告而形成的。

黃山會議一共錄用了七篇論文。值得注意的是,來自中國人民大學的薩師煊與吉林大學的管紀文做了關于關系數據庫模型的報告。這種天生更為先進的數據庫模型在黃山腳下播下了種子,等待著在這片土地上生根發芽。

從11月9日至23日,整個會議持續了近半個月。會議期間氣氛熱烈,參會的學者們常常因為一個問題的深入討論,而忘了吃飯的時間。日后在中國數據庫行業星輝閃耀的薩師煊、羅曉沛、張作民、周龍驤等諸多學者參加了會議,同樣是中國數據庫研究領域泰斗的施伯樂未能親赴黃山,他的夫人樂淑珍有幸參會,對與會學者留下了深刻的印象。[2]

1977年的黃山會議對于數據庫在中國的宣傳和推廣起到了開創性的作用,盡管當時“全國數據庫學術會議”還沒有確立,后來的數據庫學者們還是將黃山會議定為“第一屆全國數據庫學術會議”。

至此,數據庫作為支撐信息技術時代的“數字鋼筋”正式進入中國。

黃山會議召開時,達夢數據庫的創始人馮裕才還沒有機會接觸數據庫。幾年后,當立志將未來的人生投入數據庫這一領域時,馮裕才與中國數據庫的其他先行者面對的是同一個問題:一個前所未有的、經濟高速發展的時代即將到來,中國應該如何利用數據庫,又該利用什么樣的數據庫?

馮裕才希望給出一個實用的答案。


[1]羅曉沛、岳麗華:《憶第一屆中國數據庫年會》,《中國數據庫40年》,清華大學出版社,2017年10月。

[2]施伯樂:《全國數據庫學術會議回顧》,《中國數據庫40年》,清華大學出版社,2017年10月。

主站蜘蛛池模板: 镇宁| 荃湾区| 惠安县| 拉萨市| 布尔津县| 黔西| 邵阳市| 宜兴市| 礼泉县| 南昌市| 塘沽区| 成武县| 永寿县| 汉阴县| 来安县| 于田县| 浙江省| 井冈山市| 青川县| 汽车| 分宜县| 陇西县| 奇台县| 英超| 包头市| 鄂尔多斯市| 丰顺县| 高要市| 新巴尔虎左旗| 湄潭县| 夹江县| 湘潭市| 寻乌县| 沂源县| 长治县| 太白县| 济宁市| 瑞昌市| 平罗县| 衡阳市| 南开区|