| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「PostgreSQL 8.3.5 内部の概要」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
==PostgreSQL 8.3.5 内部の概要==
+
==[[PostgreSQL 8.3.5 内部の概要]]==
[[PostgreSQL 8.3.5]] | {{category 編集中}}
+
[[PostgreSQL 8.3.5]] | [[Category:編集中]]
 
===構造的な基本事項===
 
===構造的な基本事項===
 
http://www.postgresql.jp/document/pg835doc/html/tutorial-arch.html
 
http://www.postgresql.jp/document/pg835doc/html/tutorial-arch.html
  
PostgreSQLはクライアント/サーバモデルを使用しており、セッションは以下の協調動作するプロセス(プログラム)から構成される。
+
[[PostgreSQL]]はクライアント/サーバモデルを使用しており、セッションは以下の協調動作するプロセス(プログラム)から構成される。
  
 
{|class="wikitable"
 
{|class="wikitable"
14行目: 14行目:
 
|-
 
|-
 
|クライアント(フロントエンド)アプリケーション
 
|クライアント(フロントエンド)アプリケーション
|さまざまなツールがある。PostgreSQLの配布物では、いくつかのクライアントアプリケーションを用意しています。
+
|さまざまなツールがある。[[PostgreSQL]]の配布物では、いくつかのクライアントアプリケーションを用意しています。
 
|-
 
|-
 
|}
 
|}
  
 
*クライアント/サーバアプリケーションでは、クライアントとサーバはホストが異なっても構いません。
 
*クライアント/サーバアプリケーションでは、クライアントとサーバはホストが異なっても構いません。
*クライアントとサーバはTCP/IPネットワーク接続経由で通信を行います。
+
*クライアントとサーバは[[TCP/IP]]ネットワーク接続経由で通信を行います。
 
*サーバはクライアントから複数の同時接続を取り扱うことができます。
 
*サーバはクライアントから複数の同時接続を取り扱うことができます。
 
*サーバは接続ごとに新しいプロセスを開始("fork")します。
 
*サーバは接続ごとに新しいプロセスを開始("fork")します。
29行目: 29行目:
 
===接続の確立===
 
===接続の確立===
 
http://www.postgresql.jp/document/pg835doc/html/connect-estab.html
 
http://www.postgresql.jp/document/pg835doc/html/connect-estab.html
*PostgreSQLは単純な「1プロセスに1ユーザ」のクライアント/サーバモデル
+
*[[PostgreSQL]]は単純な「1プロセスに1ユーザ」のクライアント/サーバモデル
 
*1つのサーバプロセスに対し厳密に1つのクライアントプロセスしか存在しない
 
*1つのサーバプロセスに対し厳密に1つのクライアントプロセスしか存在しない
 
*接続要求の度に新しいプロセスを作るマスタープロセス(postgres と呼ばれる)
 
*接続要求の度に新しいプロセスを作るマスタープロセス(postgres と呼ばれる)
43行目: 43行目:
 
*の情報を表すために作成されるデータ構造を問い合わせツリーと呼ぶ
 
*の情報を表すために作成されるデータ構造を問い合わせツリーと呼ぶ
  
===PostgreSQLルールシステム===
+
===[[PostgreSQL]]ルールシステム===
 
http://www.postgresql.jp/document/pg835doc/html/rule-system.html
 
http://www.postgresql.jp/document/pg835doc/html/rule-system.html

2022年2月15日 (火) 13:46時点における最新版

PostgreSQL 8.3.5 内部の概要

PostgreSQL 8.3.5 |

構造的な基本事項

http://www.postgresql.jp/document/pg835doc/html/tutorial-arch.html

PostgreSQLはクライアント/サーバモデルを使用しており、セッションは以下の協調動作するプロセス(プログラム)から構成される。

プロセス(プログラム) 内容
サーバプロセス データベースファイルを管理し、クライアントアプリケーションからのデータベースの接続を受け付け、クライアントに代わってデータベースに対する処理を行います。データベースサーバプログラムはpostgresと呼ばれています。
クライアント(フロントエンド)アプリケーション さまざまなツールがある。PostgreSQLの配布物では、いくつかのクライアントアプリケーションを用意しています。
  • クライアント/サーバアプリケーションでは、クライアントとサーバはホストが異なっても構いません。
  • クライアントとサーバはTCP/IPネットワーク接続経由で通信を行います。
  • サーバはクライアントから複数の同時接続を取り扱うことができます。
  • サーバは接続ごとに新しいプロセスを開始("fork")します。

問い合わせの経路

http://www.postgresql.jp/document/pg835doc/html/query-path.html 0961 postgres01.jpg

接続の確立

http://www.postgresql.jp/document/pg835doc/html/connect-estab.html

  • PostgreSQLは単純な「1プロセスに1ユーザ」のクライアント/サーバモデル
  • 1つのサーバプロセスに対し厳密に1つのクライアントプロセスしか存在しない
  • 接続要求の度に新しいプロセスを作るマスタープロセス(postgres と呼ばれる)

構文解析過程

http://www.postgresql.jp/document/pg835doc/html/parser-stage.html

パーサ

  • 構文チェックを行い正しい場合は構文解析ツリーが作られて返されます。 正しくない場合はエラーが返されます
  • パーサと字句解析はlexとyaccを使用して実装されている

書き換えプロセス

  • 構文解析が終わった後に入力としてパーサから戻されたツリーを書き換えプロセスが引き受け、どのテーブル、関数、そして演算子が問い合わせによって参照されているのかの判断に必要な語義翻訳を行う
  • の情報を表すために作成されるデータ構造を問い合わせツリーと呼ぶ

PostgreSQLルールシステム

http://www.postgresql.jp/document/pg835doc/html/rule-system.html