Chapter 13. 规则系统

Table of Contents
13.1. 介绍
13.2. Query Tree(查询树)是什么?
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. 与 View Rules 的区别
13.4.2. 这些规则是如何运转的
13.4.3. 与视图共存
13.5. 规则和权限
13.6. 规则和命令状态
13.7. 规则与触发器之比较

作者: 由 Jan Wieck 写作.Tom Lane 为 7.1 做了更新.

13.1. 介绍

生产规则系统的概念是很简单的,但是在实际使用的时候会碰到很多细微的问题. 这些问题的一部分和 PostgreSQL规则系统的理论基础可以在 有关数据库系统的规则,过程,缓存和视图 里找到.

有些数据库系统定义动态的数据库规则.这些通常是存储过程和触发器, 在 PostgreSQL 里是通过函数和触发器来实现的.

"查询重写规则系统"(从现在开始称之为 "规则系统") 是和存储过程和触发器完全不同的东西. 它把查询修改为需要考虑规则的形式, 然后把修改过的查询传递给查询优化器执行. 这是非常有效的工具并且可以用于许多象查询语言过程, 视图,和版本等.规则系统的能力在 [A Unified Framework for Version Modeling Using Production Rules in a Database System] 和 [有关数据库系统的规则,过程,缓存和视图]里有讨论.