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