Capítulo 39. O Sistema de regras

Índice

39.1. A árvore de consulta
39.2. Visões e o sistema de regras
39.2.1. Como funcionam as regras SELECT
39.2.2. Regras de visão em instruções não-SELECT
39.2.3. O poder das visões no PostgreSQL
39.2.4. Atualização de visão
39.3. Visões materializadas
39.4. Regras para INSERT, UPDATE e DELETE
39.4.1. Como funcionam as regras de atualização
39.4.2. Cooperação com visões
39.5. Regras e privilégios
39.6. Regras e status de comando
39.7. Regras versus gatilhos

Este capítulo discute o sistema de regras no PostgreSQL. Os sistemas de regras de produção são conceitualmente simples, mas há muitos pontos sutis envolvidos ao usá-los de fato.

Alguns outros sistemas de banco de dados definem regras de banco de dados ativas, que são geralmente procedimentos armazenados e gatilhos. No PostgreSQL, eles também podem ser implementados usando funções e gatilhos.

O sistema de regras (mais precisamente falando, o sistema de regras de reescrita de consultas) é inteiramente diferente dos procedimentos armazenados e gatilhos. Ele modifica as consultas para levar as regras em consideração e, em seguida, passa a consulta modificada para o planejador de consulta para planejamento e execução. É muito poderoso e pode ser usado para muitas coisas, como procedimentos de linguagem de consulta, visões, e versões. Os fundamentos teóricos e o poder desse sistema de regras também são discutidos em [ston90b] e [ong90].