支援版本:目前 (16) / 15 / 14 / 13 / 12
開發版本:開發
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

2. PostgreSQL 簡史 #

現在稱為 PostgreSQL 的物件關係資料庫管理系統源自於加州大學柏克萊分校編寫的 POSTGRES 套件。經過數十年的開發,PostgreSQL 現在是世界上最先進的開放原始碼資料庫。

2.1. 柏克萊 POSTGRES 專案 #

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 版結束。

2.2. Postgres95 #

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 編譯(已修正雙倍精度的資料對齊)。

2.3. PostgreSQL #

到了 1996 年,很明顯地,名稱 Postgres95 無法經得起時間的考驗。我們選擇了一個新名稱 PostgreSQL,以反映原始 POSTGRES 與較新版本之間的關係,這些版本具備 SQL 功能。同時,我們將版本編號設定為從 6.0 開始,將數字放回最初由柏克萊 POSTGRES 專案開始的順序。

許多人繼續將 PostgreSQL 稱為 Postgres(現在很少全部使用大寫字母),因為傳統或因為發音較容易。此用法廣泛被接受為暱稱或別名。

在開發 Postgres95 期間,重點在於識別和了解伺服器程式碼中現有的問題。有了 PostgreSQL,重點已轉移到擴充功能和功能,儘管所有領域的工作仍在繼續。

有關 PostgreSQL 自那以後發生的事情的詳細資訊,請參閱 附錄 E

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。