Chapter 13. ルールシステム

Table of Contents
13.1. 序文
13.2. 問い合わせツリーとは
13.3. ビューとルールシステム
13.3.1. PostgreSQLにおけるビューの実装
13.3.2. SELECTルールの動き
13.3.3. 非SELECT文のビュールール
13.3.4. PostgreSQLにおけるビューの能力
13.3.5. ビューの更新について
13.4. INSERT、UPDATE、DELETEについてのルール
13.4.1. ビュールールに対しての差異
13.4.2. これらのルールの動作
13.4.3. ビューとの協調
13.5. ルールと権限
13.6. ルールおよびコマンドの状態
13.7. ルール対トリガ

著者: Jan Wieckによって書かれました。7.1用にTom Laneが更新しました。

13.1. 序文

本番で稼働するルールシステムは概念としては単純ですが、実際に使ってみると、わかりにくいところが少なからずあります。これらいくつかのわかりにくいところと、PostgreSQLのルールシステムにおける基本的な理論についてはOn Rules, Procedures, Caching and Views in Database Systemsに書かれています。

他のいくつかのデータベースシステムは能動的データベースルールを定義しています。通常それらはストアドプロシージャとトリガですが、PostgreSQLでは関数とトリガとして実装されています。

問い合わせ書き換えシステム(以降ルールシステムと呼びます)はストアドプロシージャとトリガとはまったく異なります。ルールシステムはルールを参照して問い合わせを修正し、修正した問い合わせを、計画作成と実行のために問い合わせプランナに渡します。これは非常に強力なため、問い合わせ言語プロシージャ、ビューあるいはバージョンなど多くのパターンで使用することができます。このルールシステムの能力はA Unified Framework for Version Modeling Using Production Rules in a Database SystemOn Rules, Procedures, Caching and Views in Database Systemsで解説されています。