現在稱為 PostgreSQL 的物件關係資料庫管理系統源自於加州大學柏克萊分校編寫的 POSTGRES 套件。經過數十年的開發,PostgreSQL 現在是世界上最先進的開放原始碼資料庫。
POSTGRES 專案由麥可史東布雷克教授領導,由國防高等研究計畫署 (DARPA)、陸軍研究辦公室 (ARO)、國家科學基金會 (NSF) 和 ESL 公司贊助。 POSTGRES 的實作始於 1986 年。系統的初始概念在 [ston86] 中提出,初始資料模型的定義則出現在 [rowe87] 中。當時規則系統的設計在 [ston87a] 中說明。儲存管理程式的原理和架構在 [ston87b] 中詳細說明。
POSTGRES 自此歷經多次重大版本更新。第一個 “示範軟體” 系統於 1987 年開始運作,並於 1988 年 ACM-SIGMOD 會議中展示。第一版,如 [ston90a] 所述,於 1989 年 6 月發布給少數外部使用者。針對第一個規則系統的批評 ([ston89]),規則系統重新設計 ([ston90b]),並於 1990 年 6 月發布包含新規則系統的第二版。第三版於 1991 年問世,並新增了對多個儲存管理程式的支援、改良的查詢執行器,以及重新編寫的規則系統。在很大程度上,後續版本直到 Postgres95(見下文)都專注於可移植性和可靠性。
POSTGRES 已用於實作許多不同的研究和生產應用程式。這些應用程式包括:財務資料分析系統、噴射引擎效能監控套件、小行星追蹤資料庫、醫療資訊資料庫,以及數個地理資訊系統。POSTGRES 也已被用作數個大學的教育工具。最後,Illustra Information Technologies(後來併入 Informix,目前為 IBM 所有)取得了程式碼並將其商業化。1992 年底,POSTGRES 成為 Sequoia 2000 科學運算專案 的主要資料管理員。
1993 年,外部使用者社群的規模幾乎增加了一倍。維護原型程式碼和支援服務耗費了大量時間,而這些時間本應投入資料庫研究,這一點變得越來越明顯。為了減輕這種支援負擔,柏克萊 POSTGRES 專案正式在 4.2 版結束。
1994 年,Andrew Yu 和 Jolly Chen 為 POSTGRES 新增了一個 SQL 語言直譯器。在一個新名稱下,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(而非 BSD make)用於建置。此外,Postgres95 可以使用未修補的 GCC 編譯(已修正雙倍精度的資料對齊)。
到了 1996 年,很明顯地,名稱 “Postgres95” 無法經得起時間的考驗。我們選擇了一個新名稱 PostgreSQL,以反映原始 POSTGRES 與較新版本之間的關係,這些版本具備 SQL 功能。同時,我們將版本編號設定為從 6.0 開始,將數字放回最初由柏克萊 POSTGRES 專案開始的順序。
許多人繼續將 PostgreSQL 稱為 “Postgres”(現在很少全部使用大寫字母),因為傳統或因為發音較容易。此用法廣泛被接受為暱稱或別名。
在開發 Postgres95 期間,重點在於識別和了解伺服器程式碼中現有的問題。有了 PostgreSQL,重點已轉移到擴充功能和功能,儘管所有領域的工作仍在繼續。
有關 PostgreSQL 自那以後發生的事情的詳細資訊,請參閱 附錄 E。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。