現在稱為 PostgreSQL 的物件關係資料庫管理系統源自於加州大學柏克萊分校撰寫的 POSTGRES 套件。 經過數十年的發展,PostgreSQL 現在是任何地方都可以使用的最先進的開放原始碼資料庫。
POSTGRES 專案由 Michael Stonebraker 教授領導,並由國防高等研究計畫署 (DARPA)、陸軍研究辦公室 (ARO)、國家科學基金會 (NSF) 和 ESL, Inc. 贊助。POSTGRES 的實作始於 1986 年。 該系統的初始概念在 [ston86] 中提出,初始資料模型的定義出現在 [rowe87] 中。 當時的規則系統設計在 [ston87a] 中描述。 儲存管理器的原理和架構在 [ston87b] 中詳細說明。
POSTGRES 從那時起經歷了幾個主要版本。 第一個 “演示軟體” 系統於 1987 年投入運行,並在 1988 年的ACM-SIGMOD會議上展示。 [ston90a] 中描述的版本 1 於 1989 年 6 月發布給一些外部用戶。 為了回應對第一個規則系統的評論 ([ston89]),規則系統被重新設計 ([ston90b]),版本 2 於 1990 年 6 月發布,並帶有新的規則系統。 版本 3 出現在 1991 年,並增加了對多個儲存管理器、改進的查詢執行器和重寫的規則系統的支援。 在很大程度上,直到 Postgres95(見下文)之後的版本都側重於可移植性和可靠性。
POSTGRES 已被用於實作許多不同的研究和生產應用程式。 這些包括:金融資料分析系統、噴射引擎效能監控套件、小行星追蹤資料庫、醫療資訊資料庫和多個地理資訊系統。POSTGRES 也已被用作多所大學的教育工具。 最後,Illustra Information Technologies(後來併入 Informix,現在歸 IBM 所有)取得了該程式碼並將其商業化。 1992 年底,POSTGRES 成為 Sequoia 2000 科學計算專案的主要資料管理器。
外部用戶社群的規模在 1993 年幾乎翻了一番。 越來越明顯的是,維護原型程式碼和支援佔用了大量本應用於資料庫研究的時間。 為了減輕這種支援負擔,柏克萊 POSTGRES 專案隨著版本 4.2 正式結束。
1994 年,Andrew Yu 和 Jolly Chen 將 SQL 語言解譯器新增到 POSTGRES。 在一個新名稱下,Postgres95 隨後被發布到網路上,以作為原始 POSTGRES 柏克萊程式碼的開放原始碼後代,在世界上找到自己的道路。
Postgres95 的程式碼完全符合 ANSI C 標準,並且體積縮減了 25%。許多內部變更改善了效能和可維護性。Postgres95 1.0.x 版本在 Wisconsin Benchmark 測試中,比 POSTGRES 4.2 版快了約 30–50%。除了錯誤修復之外,以下是主要的增強功能:
查詢語言 PostQUEL 被替換為SQL(在伺服器中實現)。(介面函式庫 libpq 的命名取自 PostQUEL。)子查詢直到 PostgreSQL 才支援(見下文),但在 Postgres95 中可以使用使用者定義的SQL函式來模擬。彙總函式已重新實現。也新增了對 GROUP BY
查詢子句的支援。
提供了一個新的程式 (psql) 用於互動式 SQL 查詢,它使用了GNU Readline。這在很大程度上取代了舊的 monitor 程式。
一個新的前端函式庫 libpgtcl
支援Tcl為基礎的客戶端。範例 shell pgtclsh
提供了新的 Tcl 命令,使 Tcl 程式與 Postgres95 伺服器連接。
大型物件介面經過了徹底的修改。反轉大型物件是儲存大型物件的唯一機制。(反轉檔案系統被移除。)
實例級別的規則系統被移除。規則仍然可用作重寫規則。
一個簡短的教程介紹了常規的SQL功能以及 Postgres95 的功能,並隨原始碼一起發布
GNU使用 make(而不是BSDmake)進行構建。此外,Postgres95 可以使用未修補的 GCC 編譯(修復了 double 的資料對齊方式)。
到 1996 年,很明顯 「Postgres95」 這個名字無法經受時間的考驗。我們選擇了一個新名字,PostgreSQL,以反映原始 POSTGRES 與更近期的版本之間的關係,並具有更強的SQL能力。同時,我們將版本編號設定為從 6.0 開始,將數字放回 Berkeley POSTGRES 專案最初開始的序列中。
許多人仍然將 PostgreSQL 稱為 「Postgres」(現在很少使用全部大寫字母),因為傳統或因為它更容易發音。這種用法被廣泛接受為暱稱或別名。
Postgres95 開發期間的重點是識別和理解伺服器程式碼中現有的問題。對於 PostgreSQL,重點已轉移到增強功能和能力,儘管所有領域的工作仍在繼續。
有關此後 PostgreSQL 中發生的詳細資訊,請參閱 附錄 E。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。