支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不再支援的版本:12 / 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 專案由 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 正式結束。

2.2. Postgres95 #

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 的資料對齊方式)。

2.3. PostgreSQL #

到 1996 年,很明顯 Postgres95 這個名字無法經受時間的考驗。我們選擇了一個新名字,PostgreSQL,以反映原始 POSTGRES 與更近期的版本之間的關係,並具有更強的SQL能力。同時,我們將版本編號設定為從 6.0 開始,將數字放回 Berkeley POSTGRES 專案最初開始的序列中。

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

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

有關此後 PostgreSQL 中發生的詳細資訊,請參閱 附錄 E

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。