PostgreSQL 的歷史簡介

現在被稱為 PostgreSQL 的對象-關係型資料庫管理系統(有一段時間被稱為 Postgres95)是從伯克利寫的 POSTGRES 軟件包發展而來的。經過十幾年的發展, PostgreSQL 是世界上可以獲得的最先進的開放源碼的資料庫系統, 它提供了多版本並行控制,支援幾乎所有 SQL 構件(包括子查詢,交易和用戶定 義類型和函數), 並且可以獲得非常廣闊範圍的(開發)語言綁定 (包括 C,C++,Java,perl,tcl,和 python)。

伯克利的 POSTGRES 項目

Michael Stonebraker 領導的 POSTGRES 項目是由防務高級研究項目局(DARPA), 陸軍研究辦公室(ARO),國家科學基金(NSF), 以及 ESL, Inc 共同贊助的。 POSTGRES 的實現始於 1986 年, 該系統最初的概念詳見 POSTGRES的設計。 最早的資料模型定義見 The POSTGRES Data Model。 當時的規則系統設計在 POSTGRES 規則系統的設計 裡描述. 儲存管理器的理論基礎和體系結構在 POSTGRES儲存系統的設計 裡有詳細描述。

從那以後,POSTGRES 經歷了幾次主要的版本更新。 第一個"演示性"系統在 1987 年便可使用了, 並且在 1988 年的 ACM-SIGMOD 大會上展出。在 1989 年六月發佈了版本 1(在 POSTGRES的實現 裡有描述)給一些外部的用戶使用。 為了回應用戶對第一個規則系統的批評,(POSTGRES 規則系統的註解), 我們重新設計了規則系統(有關資料庫系統的規則,過程,緩存和視圖)並在1990年6月發佈了使用新規則系統的版本 2。 版本 3 在1991年出現, 增加了多儲存管理器的支援, 並且改進了查 詢執行器, 重新編寫了規則系統。 從那以後,隨後的版本直到 Postgres95 發佈前(見下文),工作都集中在移植性和可靠性上。

POSTGRES 已經在許多研究或實際的應用中得到了應用。 這些應用包括: 一個財務資料分析系統,一個噴氣引擎性能監控軟件包,一個小行星跟蹤資料庫, 一個醫療訊息資料庫和一些地理訊息系統。 POSTGRES 還被許多大學用於教學用途。 最後, Illustra Information Technologies Illustra Information Technologies (後來併入 Informix) 後者現在屬於 IBM) 拿到代碼並使之商業化。在 1992 年末 POSTGRES 成為 Sequoia 2000 科學計算計劃的首要資料管理器。

到了 1993 年,外部用戶的數量幾乎翻番。隨著用戶的增加。 用於原始碼維護的時間日益增加 佔用了太多本應該用於資料庫研究的時間, 為了減少支援的負擔,伯克利的POSTGRES 項目在版本 4.2 時正式終止。

Postgres95

在 1994 年, Andrew Yu 和 Jolly Chen 向 POSTGRES 中增加了 SQL 語言的解釋器。並隨後將 Postgres95 原始碼發佈到互聯網上供大家使用, 成為一個開放源碼的,原先伯克利 POSTGRES 代碼的繼承者。

Postgres95 所有原始碼都是完全的 ANSI C , 而且代碼量減少了 25%。並且有許多內部修改以利於提高性能和代碼的維護性。 Postgres95 版本 1.0.x 在進行 Wisconsin Benchmark 測試時大概比 POSTGRES v4.2 快 30-50%。除了修正了一些錯誤,下面的是一些主要改進:

PostgreSQL

到了 1996 年, 我們很明顯的看出"Postgres95"這個名字已經不能經得起時間 的考驗了。於是我們起了一個新名字 PostgreSQL 用於反映最初的 POSTGRES 和最新的使用 SQL 的版本之間的關係。 同時版本也 重新從 6.0 開始, 將版本放回到最初的由 伯克利 POSTGRES 項目開始的順序中。

Postgres95 版本的開發重點放在標明和理解現有的後端代碼的問題上。 PostgreSQL 開發重點轉到了 一些有爭議的特性和功能上面,當然各個方面的工作同時都在進行。

自那以來,PostgreSQL 發生的變化可以在 Appendix E 裡面找到。