2. Postgresの小史

現在PostgreSQLとして知られる(また 一時はPostgres95と呼ばれていた) オブジェクトリレーショナルデータベース管理システムは、カリフォルニア 大学バークレー校で書かれたPostgresという パッケージから派生しています。十年以上の開発により、 PostgreSQLはどこでも入手できる最も進歩したオープンソース データベースで、MVCC(multi-version concurrency control)を提供し、 ほとんど全ての SQL の構文(サブセレクト、トランザクション、そして ユーザ定義型と関数を含みます)をサポートし、幅広い言語バインド (C、C++、Java、 Perl、 Tcl、 Pythonを含みます)が可能です。

2.1. バークレーPostgresプロジェクト

PostgresDBMS の実装は1986年に始まりました。当初のシステムの概念は The Design of Postgresで発表されました。 そして最初のデータモデルの定義はThe Postgres Data Modelで紹介されました。当時のルールシステムの設計は The Design of the Postgres Rules Systemで説明されました。 ストレッジマネージャの理論や構造は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は様々な異なるリサーチや製造 アプリケーションを実装するために使われてきています。その中には、 金融データ分析システム、ジェットエンジン性能の監視パッケージ、 小惑星観測データベース、医療情報データベース、そしていくつかの 地理学情報システムなどがありました。 Postgresは更にいくつかの大学においては 教育用のツールとして使われています。 最後に、Illustra Information Technologiesが (Informix と合併したため)コードをまとめて商業化しました。 PostgresSequoia 20001992 年末の科学計算 プロジェクトの主要データマネージャになりました。

外部ユーザコミュニティのサイズは 1993 年に約 2 倍になりました。 データベースの調査に費されるべき時間がプロトタイプコードの保守 とサポートに取られていることが次第に明らかになってきました。 このサポートの重荷を減らすために、プロジェクトはバージョン 4.2 で公式に終りました。

2.2. Postgres95

1994 年にAndrew Yu と Jolly Chen がPostgres に SQL 言語インタプリタを追加しました。続いて Postgres95 がウェブ上でリリースされ、オリジナルPostgres バークレーコードのオープンソース子孫として世界への独自の道を歩み始め ました。

Postgres95のコードは完全に ANSI C で書かれており、25% が削除されました。多くの内部改造により 性能と保守性が改善されました。Postgres95 v1.0.x は、Postgresv4.2 に比べ Wisconsin Benchmark で 約 30-50% 速く動きました。バグ修正以外では、 下記の大きな改善が見られました。

2.3. PostgreSQL

1996年には、"Postgres95" という名前が時代を表すものに基づかなく なったことが明かになりました。そこで、オリジナルのPostgres SQLの能力を持つもっと最近の バージョンとの関係を反映する、PostgreSQL という新しい名前が選ばれたのです。同時に、元々Postgres プロジェクトで始まったシーケンスに戻す番号である 6.0で始まるバージョンナンバーを設定しました。

Postgres95開発での重点は、バックエンドの コード中にある既存の問題点を見極めて理解することにありました。 PostgreSQLでは、作業はすべてのエリアで 続けますが、重点は特徴や能力を増加させることに移りました。

主なPostgreSQLでの拡張機能には下記の ものがあります。