next up previous contents index
Next: Cómo funcionan las reglas Up: Sistema de reglas de Previous: Sistema de reglas de   Índice General   Índice de Materias

Vistas y el sistema de reglas

Una de las aplicaciones inmediatas del sistema de reglas es la implementación de vistas en PostgreSQL, que es realizado por el propio sistema. Es decir, las vistas en PostgreSQL están implementadas con el sistema de reglas. De hecho, las dos aserciones no son diferentes para PostgreSQL:

    CREATE VIEW mivista AS SELECT * FROM mitabla;

expresión válida en PostgreSQL, pero que se convierte en

    CREATE TABLE mivista (misma lista de atributos que para mitabla);
    CREATE RULE "_RETmivista" AS ON SELECT TO mivista DO INSTEAD
        SELECT * FROM mitabla;

porque eso es precisamente lo que internamente hace el comando CREATE VIEW. Sin embargo, esto presenta algunos efectos colaterales. Uno de ellos es que la información acerca de la vista en los catalogos del sistema PostgreSQL es exactamente la misma que para la tabla. Así, para el reconocedor sintáctico de consultas, no hay ninguna diferencia entre una tabla y una vista, ambas son relaciones.



Ismael Olea 2001-04-21