next up previous contents index
Next: Vistas y el sistema Up: Curso de Bases de Previous: Ejemplos de Trigger   Índice General   Índice de Materias

Sistema de reglas de PostgreSQL

El sistema de reglas en PostgreSQL consiste en modificar las consultas de acuerdo a reglas almacenadas como parte de la base de datos. Dichas consultas modificadas son pasadas, en orden, al optimizador, planificador y finalmente al ejecutor. Esto es a diferencia de otros DBMS que simplemente implementan los sistemas de reglas como procedimientos y triggers almacenados. Este sistema es muy poderoso y puede ser empleado para procedimientos, vistas y versiones.

Para comprender cómo funciona el sistema de reglas, es necesario saber cuando es invocado y cuáles son las entradas que recibe y los resultados que arroja.

El sistema de reglas se haya entre el reconocedor sintáctico de consultas y el optimizador. Toma la salida del reconocedor, un árbol de consultas, y reescribe las reglas de acuerdo al catálogo pg_rewrite, donde se encuentran las reglas ya en formato de árbol de consulta con alguna información extra, y produce cero o más arboles de consulta como resultado. De esta manera, tanto la entrada como la salida es fácilmente representable como una aserción SQL.

Los arboles de consultas son una representación interna de una aserción SQL donde las partes individuales que lo componen son almacenadas independientemente. Estos arboles de consulta son visibles desde psql al iniciar el servidor de PostgreSQL con la bandera de debug en nivel cuatro. Las reglas en pg_rewrite están escritas en el mismo formato, aún cuando no son presentadas como la salida de depuración descrita.

Leer e interpretar un árbol de consultas requiere experiencia y conocimientos que van más allá de la intención de este documento. Sin embargo en la documentación que se distribuye con PostgreSQL se encuentra toda la información necesaria para comprender y modificar el sistema de reglas. Nuestra intención llega sólo hasta el punto donde el lector pueda utilizar de manera eficiente las reglas.



Subsecciones
next up previous contents index
Next: Vistas y el sistema Up: Curso de Bases de Previous: Ejemplos de Trigger   Índice General   Índice de Materias
Ismael Olea 2001-04-21