現在PostgreSQLとして知られるオブジェクト指向リレーショナルデータベース管理システムはカリフォルニア大学バークレイ校で作成されたPOSTGRESパッケージから派生しています。 10年以上にわたる開発の背景を持ち、PostgreSQLは現在最も進歩したどこからでも入手可能なオープンソースデータベースです。
マイケル・ストーンブレイカ教授率いるPOSTGRESプロジェクトにはその後援者としてDefense Advanced Research Projects Agency(DARPA)、National Science Foundation(NSF)、そして ESL, Inc. が名を連ねていました。 POSTGRESの実装は1986年から始まりました。 当初のシステムに対する概念はThe design of POSTGRESで発表され、最初のデータモデルの定義はThe POSTGRES data modelで紹介されました。 当時のルールシステムの設計はThe design of the POSTGRES rules systemで説明されました。 ストレージ管理の理論や構造はThe design of the POSTGRES storage systemで詳しく示されました。
Postgresはそれ以来いくつかの主要なリリースを重ねてきました。 最初の"デモウェア"システムが1987年に使用可能になり、1988年のACM-SIGMODコンファレンスで紹介されました。 The implementation of POSTGRESで説明されているバージョン1は1989年6月に一部の外部ユーザにリリースされ、最初のルールシステムに対する批評の結果(A commentary on the POSTGRES rules system)を基にルールシステムは再設計(On Rules, Procedures, Caching and Views in Database Systems)され、バージョン2が1990年6月に新しいルールシステムを実装してリリースされました。 バージョン3は1991年に登場し、複数ストレージ管理機構、改善された問い合わせエクゼキュータ、書き直しされたルールシステムのサポートが追加されました。 Postgres95まで引き続いた各リリース(下記を参照)のほとんどの部分についてでは移植性と信頼性に焦点をあてていました。
POSTGRESは様々な研究用、そして実際の業務アプリケーションを実装するために使われてきています。 その中には、金融データ分析システム、ジェットエンジン性能分析パッケージ、小惑星追跡データベース、医療情報データベース、幾つかの地図情報処理システム(GIS)などがあります。 POSTGRESは更にいくつかの大学で教材としても使われています。 最後に、Illustra Information Technologies社がコードを整理し商用化しました。 (同社は後にInformix社に吸収合併され、現在はIBM社が所有しています。 POSTGRESは1992年後半から始まったSequoia 2000科学計算プロジェクトの主要なデータ管理システムになっています。
1993年には外部ユーザコミュニティの大きさは約2倍に膨れました。 データベースの研究に費されるべき時間がプロトタイプコードの保守とサポートに取られていることが次第に明らかになってきました。 このサポートの重荷を減らすために、バークレイPOSTGRESプロジェクトはバージョン4.2をもって公式に終了しました。
1994年にAndrew YuとJolly ChenがPOSTGRESにSQL言語インタプリタを追加しました。 引き続いてPostgres95がWeb上でリリースされ、オリジナルのPOSTGRESバークレイコードのオープンソースによる後続として世界への独自の道を歩み始めました。
Postgres95のコードは全てANSI C準拠となるように書き直され、これまでに膨れ上がったコードの25%を整理することで身軽になりました。 多くの内部改造によって性能と保守性が改善されました。 Postgres95リリース1.0.xはPOSTGRESバージョン4.2に比べWisconsin Benchmarkで約30〜50%速く動作しました。 バグ修正以外では、下記の大きな改善がありました。
(サーバに実装された)SQLが問い合わせ言語PostQUELに取って替わりました。 PostgreSQLになる以前は副問い合わせはサポートされていませんでしたが(下記を参照)、Postgres95ではユーザ定義SQL関数で模倣できました。 集約は再実装されました。 GROUP BY 問い合わせ句のサポートも追加されました。
新しいプログラム(psql)がGNUのReadlineを使って対話式SQL問い合わせのために用意されました。 これはほぼ古いmonitorプログラムに取って代わるものになりました。
新しいフロントエンドライブラリ、libpgtclがTclベースのクライアントをサポートしました。 サンプルシェルpgtclshはTclとPostgres95サーバとインタフェースをとる新規Tclコマンドを提供しました。
ラージオブジェクトインタフェースがオーバーホールされました。 転置ラージオブジェクトが唯一のラージオブジェクト格納機構でした。 (転置ファイルシステムは削除されました。)
インスタンスレベルのルールシステムが削除されました。 ルールは書き換えルールとしてまだ利用できました。
標準SQLの機能やPostgres95の機能を紹介したチュートリアルがソースコードと共に配布されました。
GNU makeが(BSD makeの代わりに)ビルドに使われました。 また、Postgres95はパッチの当たっていないないGCCでコンパイルできました (doubleにおけるデータ整列が修正されたおかげです)。
1996年になると"Postgres95"という名前が時代の試練に耐えられなくなったことが明らかになりました。 そこで、オリジナルのPOSTGRESとSQLの能力を持つ、より最近のバージョンとの関係を反映する、PostgreSQLという新しい名前を選びました。 同時に、元々バークレイPOSTGRESプロジェクトで始まった連番に戻す番号の6.0で始まるバージョン番号を設定しました。
Postgres95開発で強調しておきたいことはサーバのコードに内在する問題点を特定し、原因を理解することにありました。 PostgreSQLにおいては、全ての分野に目を留めているとしても、保守作業を続けつつ特徴や能力を強化することに重点が移ったことです。
その後PostgreSQLがたどった足跡の詳細は付録Eを参照してください。