先に進む前に、PostgreSQLシステム構成の基礎を理解すべきです。 PostgreSQLの各部分がどのように相互作用しているかを理解することにより、この章の内容が判りやすくなります。
データベースの用語ではPostgreSQLはクライアント/サーバモデルを使用しています。 PostgreSQLのセッションは以下の協調動作するプロセス(プログラム)から構成されます。
サーバプロセス。 これは、データベースファイルを管理し、クライアントアプリケーションからのデータベースの接続を受け付け、クライアントに代わってデータベースに対する処理を行います。 データベースサーバプログラムはpostmasterと呼ばれています。
ユーザの、データベース操作を行うクライアント(フロントエンド)アプリケーション。 クライアントアプリケーションはその性質上非常に多様性があります。 テキスト指向のツール、グラフィカルなアプリケーション、データベースにアクセスしwebページを表示するwebサーバ、あるいはデータベースに特化した保守ツールなどがあります。 PostgreSQLの配布物では、いくつかのクライアントアプリケーションを用意しています。 そのほとんどはユーザによって開発されました。
典型的なクライアント/サーバアプリケーションでは、クライアントとサーバは異なるホストになることができます。 その場合、それらはTCP/IPネットワーク接続経由で通信を行います。 このことは注意して下さい。 なぜなら、クライアントマシンからアクセスできるファイルは、データベースサーバマシンではアクセスできない(または、異なるファイル名でアクセスできるだけである)可能性があるからです。
PostgreSQLサーバはクライアントから複数の同時接続を取り扱うことができます。 そのため、サーバは接続毎に新しいプロセスを開始("forks")します。 その時点から、クライアントと新しいサーバプロセスは元のpostmasterプロセスによる干渉がない状態で通信を行います。 こうして、postmasterは常に稼働し、クライアントとの接続を待ち、一方、クライアントと関連したサーバプロセスは通信を行います。 (もちろんこれは全てユーザからは判りません。ここでの説明は完全性のみを目的としています。)