トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

PostgreSQL 8.3.5 内部の概要



目次



記事一覧

キーワード

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


 接続の確立

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



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.