現在 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 問い合わせのために用意されました。
新しいフロントエンドライブラリ、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 を参照して下さい。