本章讨论 PostgreSQL 里的规则系统。生产规则系统的概念是很简单的,但是在实际使用的时候会碰到很多细节问题。
有些其它数据库系统定义动态的数据库规则。这些通常是存储过程和触发器,在 PostgreSQL 里,这些东西也可以通过函数和触发器来实现。
规则系统(更准确地说是查询重写规则系统)是和存储过程和触发器完全不同的东西。它把查询修改为需要考虑规则的形式,然后把修改过的查询传递给查询规划器执行。这是非常有效的工具并且可以用于许多像查询语言过程、视图、版本等。这个规则系统的理论基础和能力在 On Rules, Procedures, Caching and Views in Database Systems 和 A Unified Framework for Version Modeling Using Production Rules in a Database System 里有讨论。