Re: Capacidades objeto-relacionales de postgres??

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Jesús CG <jesus_c_g(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Capacidades objeto-relacionales de postgres??
Date: 2005-01-21 13:37:23
Message-ID: 20050121133723.GB12168@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Jan 21, 2005 at 12:20:21PM +0100, Jesús CG wrote:

Hola,

> La idea es definir una clase Persona con sus métodos, de forma similar a
> como se haría en un sistema OO, pero basado en OR, es decir los datos
> siguen estando en tablas y se aprovecha la robustez del paradigma
> relacional y no nos movemos a un modelo jerárquico que sería el propio de
> un sistema OO 100%.

Hmm ... lamentablemente no puedes definir metodos sobre los tipos.
Observa que tampoco es sencillo pasar tipos compuestos hacia las
funciones hasta versiones antes de 8.0; en la nueva version se puede,
incluso se pueden crear campos en las tablas con tipos compuestos (si
eso es o no buena idea no lo voy a comentar aqui); esto te permitiria
tener un atributo de un objeto que podria ser otro objeto. (pensando en
modelo relacional no me parece una idea demasiado espectacular).

Como en 8.0 puedes crear funciones que reciban tipos compuestos,
entonces puedes usarlas para operar con ellos: en ellas puedes operar
sobre otras tablas, y puedes retornar otro objeto (o un conjunto de
objetos de una misma clase).

Con respecto a la herencia de tablas, la verdad es que en Postgres tiene
suficientes problemas como para sugerir no usarla. Las restricciones de
unicidad (incluyendo llaves primarias) y llaves foraneas no se heredan,
por ejemplo. Supongo que esto es un impedimento importante para pensar
en modelos OO directamente. Siempre puedes usar los mecanismos de JOINs
y UNIONs para simular las jerarquias de clases, pero esto es mucho menos
conveniente.

> Conforme me adentre más en el mundo de Postgres (me he leído la mayor parte
> del manual de la versión 7.4 aunque no lo parezca) intentaré ayudar a la
> gente que tenga problemas.

La documentacion de 8.0 ha sido muy corregida y mejorada, y la nueva
version tiene varios cambios que te pueden ser utiles. Echale un
vistazo.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Y dijo Dios: "Que sea Satanás, para que la gente no me culpe de todo a mí."
"Y que hayan abogados, para que la gente no culpe de todo a Satanás"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Chema Cortés 2005-01-21 13:44:22 BLOBs con bytea o con Large Objects
Previous Message Alvaro Herrera 2005-01-21 13:21:03 [josh@agliodbs.com: [HACKERS] It's OSCON Submission time again!]