[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

Chapter 16. ルールシステム

Table of Contents
16.1. 序文
16.2. 問い合わせツリーとは
16.3. ビューとルールシステム
16.3.1. PostgreSQLにおけるビューの実装
16.3.2. SELECTルールの動き
16.3.3. 非SELECT文のビュールール
16.3.4. PostgreSQLにおけるビューの能力
16.3.5. ビューの更新について
16.4. INSERT、UPDATE、DELETEについてのルール
16.4.1. ビュールールに対しての差異
16.4.2. これらのルールの動作
16.4.3. ビューとの協調
16.5. ルールと権限
16.6. ルール対トリガ

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

16.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で解説されています。