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.