無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

PostgreSQL 小史

現在 PostgreSQL として知られるオブジェクト指向リレーショナルデータベース管理システムは、カリフォルニア大学バークレイ校で作成された POSTGRES パッケージから派生しています。 20年以上にわたる開発の背景を持ち、 PostgreSQL は現在最も先端的な、どこからでも入手可能なオープンソースデータベースです。

バークレイ校 POSTGRES プロジェクト

Michael Stonebraker教授率いる 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 scientific computing project の主要なデータ管理システムになりました。

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

Postgres95

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に取って代わりました。 (インタフェースライブラリ libpq はPostQUELにちなんで命名されました。) PostgreSQL になる以前は副問い合わせはサポートされていませんでしたが(下記を参照)、 Postgres95 ではユーザ定義 SQL 関数で模倣できました。 集約は再実装されました。 GROUP BY問い合わせ句のサポートも追加されました。

  • GNU Readline を使った新しいプログラム( psql )が、対話式SQL問い合わせのために用意されました。 これは古い monitor プログラムにほぼ取って代わるものになりました。

  • 新しいフロントエンドライブラリ、 libpgtcl Tcl ベースのクライアントをサポートしました。 サンプルシェル pgtclsh Tcl Postgres95 サーバとインタフェースをとる新規Tclコマンドを提供しました。

  • ラージオブジェクトインタフェースがオーバーホールされました。 転置ラージオブジェクトが唯一のラージオブジェクト格納機構でした (転置ファイルシステムは削除されました)。

  • インスタンスレベルのルールシステムが削除されました。 ルールは書き換えルールとしてまだ利用できました。

  • 標準 SQL の機能や Postgres95 の機能を紹介したチュートリアルがソースコードとともに配布されました。

  • GNU makeが( BSD makeの代わりに)構築に使われました。 また、 Postgres95 はパッチの当たっていない GCC でコンパイルできました (doubleにおけるデータ整列が修正されたおかげです)。

PostgreSQL

1996年になると "Postgres95" という名前が時代の試練に耐えられなくなったことが明らかになりました。 そこで、オリジナルの POSTGRES SQL の能力を持つ、より最近のバージョンとの関係を反映する、 PostgreSQL という新しい名前を選びました。 同時に、元々バークレイ POSTGRES プロジェクトで始まった連番に戻す番号の6.0で始まるバージョン番号を設定しました。

歴史的な理由か発音しやすいためか、多くの人々は PostgreSQL "Postgres" と参照しつづけています。 (いまではすべて大文字と記載することは稀です。) こうした使い方は愛称や別名として広く受け入れられています。

Postgres95 開発で重視されたのは、サーバのコードに内在する問題点を特定し、原因を理解することでした。 PostgreSQL においては、全ての分野に目を留めているとしても、保守作業を続けつつ特徴や能力を強化することに重点が移りました。

その後 PostgreSQL がたどった足跡の詳細は 付録E を参照してください。


powered by SEO.CUG.NET