[Pgsql-ayuda] Re: Eficiencia en Base de Datos

Alvaro Herrera alvherre@dcc.uchile.cl
Fri, 9 May 2003 23:23:24 -0400


On Fri, May 09, 2003 at 12:33:40PM -0400, Renato Salvatore Moya L. wrote:
> hola les escribo  para consultar cual es la metodología de consulta más 
> eficiente para los usuarios en postgresql.

Estas seguro?  Por lo que leo abajo, el mail detalla un estilo en el que
harás la implementación de los modelos de datos, y luego una pregunta
con relación a otra cosa.  Sobre la metodología más eficiente, no hay ni
rastros.

Si de todos modos te interesa el tema, échale una mirada a 

http://developer.postgresql.org/docs/postgres/performance-tips.html


> Estoy leyendo que Postgresql tiene reglas, pero no las entiendo  muy 
> bien, según lo que he leido puedo crearlas y tb., hacer mas eficiente el 
> control de acceso y admin a la base  ( tablas, vistas, etc.), pero en el 
> escenario que te planteo como las podría implementar?

Debes pensar en una regla como una macro que reescribe una consulta,
convirtiéndola en una consulta distinta.  Con esta idea en mente, lees
el manual:
http://developer.postgresql.org/docs/postgres/rules.html
y http://developer.postgresql.org/docs/postgres/sql-createrule.html

Eso lo explica todo muy claramente.

> y por último como trabaja el encapsulamiento?

Que encapsulamiento?

> con las vistas si hay inconsistencias puedo tener roolback o todas 
> aquellas características de contingencia que me proporcione la base de 
> datos, en caso de errores no afecto directamente a las tabla.

Ojo, una vista _no tiene_ materialización fuera de la tabla.  De hecho,
una vista es "syntactic sugar" para las reglas.  

http://developer.postgresql.org/docs/postgres/rules-views.html

Las vistas en Postgres no son auto-actualizables.  Esto significa que no
puedes hacer UPDATE/INSERT/DELETE de una vista en principio.  Lo que si
puedes hacer es escribir una regla ON UPDATE/ON INSERT/ON DELETE para
que la consulta se reescriba a otra que trabaje sobre una tabla.
Evidentemente, si destruyes informacion que estaba en la vista, en
realidad vas a estar destruyendola en la tabla.  Ten cuidado con eso.

En perspectiva, te puedo adelantar que tienes un sistema muy poderoso
entre manos, pero no es trivial de usar y es fácil atraparse los dedos.
Prueba muy bien las cosas.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Entristecido, Wutra
echa a Freyr a rodar
y a nosotros al mar" (cancion de Las Barreras)