PostgreSQL
マイケル・ストーンブレーカーは、自分が開発を主導した関係データベース管理システム (RDBMS) であるIngres の商業化事業を一段落させると、カリフォルニア大学バークリー校 (UCB) に戻り、同校で新たなプロジェクトを開始した。 プロジェクトの名称は Postgres と名づけられた。 このプロジェクト名称は、Ingres の後継を意味する Post-Ingres に由来している。 Postgresプロジェクトは、関係モデルを使ったこれまでの既存のデータベース管理システムの限界に対処することを目的として、開始された。 最も重要な課題は、これまでのDBMSではユーザが自分で新たな定義域 (ドメイン、型) を既存の単純な定義域をもとにして定義できない点であった。 Postgresでは型 (定義域) を完全にサポートするために必要な最小限の機能だけを導入した。 Postgres ではデータベースが関係を「理解」すると言われ、「規則」に従って自然な方法で関連する関係 (リレーション、表、テーブル) から情報を得ることができた。 ユーザ自身が型を定義する機能に加えて、関連を完全に記述できる機能も備えていた。 プロジェクトは他にも、追記型メディア (光ディスクなど) への対応、大容量記憶装置への対応、推論、オブジェクト指向型データモデルなどを、取り入れた。 実装においては、データベースとアプリケーションソフトウェアの間の新たなインタフェースを実験的に導入した。
プロジェクトチームは、1986年からPostgresシステムの基盤を説明した多数の論文を公表した。
PostgreSQL 9.0 より、ストリーミングレプリケーションを組み込みでサポートしている。トランザクションログを転送し、全てのデータベース・ファイルの変更をコミット後に他のサーバへ非同期に転送する。単一マスタと複数スレーブを構成でき、スレーブは参照の問い合わせを受け付ける。参照処理を複数のノードで負荷分散するスケールアウトが可能である。
PostgreSQL 10 より、ロジカルレプリケーションを組み込みでサポートしている。データベース全体ではなく、指定した部分だけをレプリケーションできる。
↑ 発音例
↑ D.1. サポートされている機能 / D.2. サポートされていない機能
↑ PostgreSQL PL/Java – PL/Java: stored procedures, triggers, and functions for PostgreSQLTM
↑ GitHub - pllua/pllua: Re-implementation of pllua, embedded Lua for postgresql
↑ Joseph Conway - PL/R
↑ GitHub - petere/plsh: PL/sh is a procedural language handler for PostgreSQL that allows you to write stored procedures in a shell of your choice.
↑ GitHub - plv8/plv8: V8 Engine Javascript Procedural Language add-on for PostgreSQL