1.2. 基本設計構造

先に進む前に、PostgreSQL システム構造の基本について理解していなければなりません。PostgreSQL の各構成要素がどのように相互作用するのかを理解できれば、この章で解説していることが明らかとなります。

データベースの用語では PostgreSQL はクライアント/サーバモデルを採用しているといいます。PostgreSQL のセッションは以下に説明するような協調するプロセス(プログラム)で構成さています。

典型的なクライアント/サーバアプリケーションにおいて、クライアントとサーバは異なったホスト上にあっても構いません。その場合、クライアントとサーバは TCP/IP ネットワーク接続で通信します。このことに注意して下さい。なぜなら、クライアントマシン上でアクセスできるファイルは、データベースサーバマシン上ではアクセスできない(または、異なるファイル名を使ってのみアクセスできる)可能性があるからです。

PostgreSQL サーバはクライアントからの複数の同時接続を取り扱うことができます。そのため、サーバは接続毎に新しいプロセスを開始("forks")します。その時点から、クライアントと新しいサーバプロセスは元のpostmaster プロセスによる干渉なしに通信を行います。ですから、postmaster は常に稼働を続けてクライアントとの接続を待ちます。一方、クライアントとそれに関連したサーバプロセスは生成されたり消滅したりします。(この過程はもちろんユーザからは見えません。ここでは単に一貫した説明をしたい目的です。)