網狀數據庫之父—Charles Bachman
今天我們要介紹的人物,出身于二戰,他來自美國陸軍防空高炮師,名叫Charles Bachman。戰爭結束后,Bachman進入密歇根大學,1948年獲得機械工程學士學位,1950年獲得賓夕法尼亞大學碩士學位,同年獲得沃頓商學院MBA學位。隨后他加入密歇根州的陶氏化工。1960年,Bachman跳槽加入通用電氣,并在這里開發了第一代網狀數據庫管理系統—IDS。
1940年代,計算機在特殊的世界局勢中誕生,主要為了彈道計算、密碼破譯和原子彈研究等工作,這些全是基于數值的。當時的計算機只能處理數值,無法處理字母等其他符號;當時也沒有大容量的存儲器。到了1950年代初,這兩個問題得到了歷史性的突破,計算機可以處理字母等各種符號了,人們把磁帶系統引入了計算機,作為外部存儲器。但是,磁帶不僅速度奇慢,更大的問題是,它是順序讀寫的,對于一條磁帶而言,數據結構沒有意義,想取個數是需要倒帶的。1956年,IBM公司推出了磁盤系統,容量大、轉速很快,幾乎是隨機讀寫的。這個質的飛躍,使得數據的邏輯結構從此是非線性的了。此時最直觀的想法,自然是樹狀結構,IBM 360系列引入了世界上最早的數據庫管理系統之一IMS,此系統為1969年的阿波羅登月立下了汗馬功勞,它就是基于樹狀結構的。無論程序還是數據,本質都是對現實世界的一種抽象,我們希望這種抽象能盡可能貼切反映現實世界中的關系。很明顯,現實世界中的事物不都是樹狀的。于是我們又想到了網狀結構。至此,我們就來到了Bachman當時所處的背景。
網狀數據庫,聽起來很簡單。線性結構就是樹狀的一種特例,我們花了10多年才完成這種泛化,因為這里面需要隨機存儲器,需要硬件支持。但是,從樹狀到網狀的泛化,并不需要什么新型硬件,似乎只需要一個新型的數據庫管理系統。然而這個管理系統并不容易實現。在樹狀結構中,任何結點有且只有一條訪問路徑,就像在日常操作系統中,不可能建出另外一個根目錄,也不能建出一個同時屬于多個目錄的子目錄。但在網狀結構中,這都是可能的,可以有多個結點沒有父結點(但此時已不能把它們叫做“根”了),一個結點也可以有多個父結點。有多個父結點就意味著,要訪問一個結點,可能存在多條不同的路徑。這樣復雜的系統要如何管理?網狀數據庫還有很多類似的困難,等著人們來解決。
這一等,又將近10年。Bachman加入通用電氣之后,負責涉及全公司各部門的綜合管理系統,包括生產規劃、配件和原材料供給、訂單處理及反饋等許多方面。他要使用自家生產的GE 225計算機,設計全方位的企業生產信息和控制系統(MIACS)。1964年,該系統問世,包括很多組件,底層是集成數據存儲系統,也就是我們前面所說的IDS,這就是世界上第一款網狀數據庫管理系統。
時勢造英雄,Bachman抓住歷史時機,結合工業界的需求,創造了革命性的產品。1970年,通用電氣的計算機業務被霍尼韋爾收購,Bachman來到波士頓,在霍尼韋爾高級研究部從事數據庫工作。他還曾為ISO委員會設計過開放系統互連(OSI)模型,并擔任過美國國家標準委員會的數據庫管理系統研究組副主席,致力于數據庫管理語言的標準化工作。1971年,Bachman的研究組提出了DBTG報告,其中確立了包含外部、抽象和內部的三層模式,該模式在數據庫領域有著極為深遠的影響力。1973年,ACM授予Bachman圖靈獎,表彰他在數據庫領域,尤其是網狀數據庫管理系統方面的杰出貢獻。Bachman始終活躍在工業界,他是僅有的幾位沒有學術背景、沒有教職、甚至沒有博士學位的圖靈獎得主之一。