章 39. 规则系统

目录
39.1. 查询树
39.2. 视图和规则系统
39.2.1. SELECT规则如何工作
39.2.2. SELECT语句中的视图规则
39.2.3. PostgreSQL中视图的能力
39.2.4. 更新一个视图
39.3. 物化视图
39.4. INSERTUPDATEDELETE上的规则
39.4.1. 更新规则如何工作
39.4.2. 与视图合作
39.5. 规则和权限
39.6. 规则和命令状态
39.7. 规则 vs 触发器

本章讨论PostgreSQL中的规则系统。产生规则系统的概念很简单,但是在实际使用的时候会碰到很多细节问题。

某些其它数据库系统定义活动的数据库规则,通常是存储过程和触发器。在PostgreSQL中,这些东西可以通过函数和触发器来实现。

规则系统(更准确地说是查询重写规则系统)与存储过程和触发器完全不同。它把查询修改为需要考虑规则,并且然后把修改过的查询传递给查询规划器进行规划和执行。它非常强大,并且可以被用于许多东西如查询语言过程、视图和版本。这个规则系统的理论基础和能力也在 On Rules, Procedures, Caching and Views in Database Systems A Unified Framework for Version Modeling Using Production Rules in a Database System中讨论。