Глава 38. Система правил

Содержание

38.1. Дерево запроса
38.2. Система правил и представления
38.2.1. Как работают правила SELECT
38.2.2. Правила представлений не для SELECT
38.2.3. Преимущества представлений в Postgres Pro
38.2.4. Изменение представления
38.3. Материализованные представления
38.4. Правила для INSERT, UPDATE и DELETE
38.4.1. Как работают правила для изменения
38.4.2. Сочетание с представлениями
38.5. Правила и права
38.6. Правила и статус команд
38.7. Сравнение правил и триггеров

В этой главе обсуждается система правил, реализованная в Postgres Pro. Промышленные системы правил по сути довольно простые, но при их использовании приходится сталкиваться с множеством неочевидных вещей.

В некоторых других базах данных определяются активные правила баз данных, которые обычно реализуются в виде процедур и триггеров. Так же их можно реализовать и в Postgres Pro.

Система правил (точнее говоря, система правил перезаписи запросов) полностью отличается от механизма хранимых процедур и триггеров. Она изменяет запросы по заданным правилам, а затем передаёт модифицированный запрос планировщику для планирования и выполнения. Это очень мощное средство, подходящее для решения множества задач, например, для определения представлений и процедур на языке запросов или реализации версионности. Теоретические основы и преимущества этой системы правил также описаны в [ston90b] и [ong90] (на английском языке).