Re: Metodos

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: ZerGY <ZkrGY(at)ono(dot)com>
Cc: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Metodos
Date: 2005-07-18 16:36:22
Message-ID: 20050718163622.GA10355@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, Jul 18, 2005 at 06:11:24PM +0200, ZerGY wrote:

Hola,

> Miren, no estoy seguro si quizas estoy complicandome demasiado. Yo pretendo
> implementar un esquema lógico.
> Imaginen el típico ejemplo de 'Profesores imparten Asignaturas'. Esto en un
> SGBDR serían simplemente dos relaciones 'unidas' por clave foranea, donde
> cada tupla sería un profesor y una asignatura respectivamente.
> Bien, eso en un SGBDR, pero en un SGBDOR la forma más lógica de
> implementarlo sería crear los tipos profesor y asignatura, con sus
> atributos y sus métodos ( por ejemplo, si un atributo es fecha de
> nacimiento del profesor, un método podría ser mostrarEdad() ), vaya, tan
> sólo estoy aprovechando lo se supone que me proporciona el paradigma de la
> orientación a objetos.

Hum, bueno, Postgres implementa primero el esquema objeto-relacional,
que es muy distinto de orientado a objetos. Objeto-relacional es mas
que nada un invento para extender "relacional", lo cual implica tener
un sistema extensible de tipos de datos, poder crear funciones, el uso
de arrays, etc. AFAIK no tiene relacion directa con el uso de "objetos"
o "metodos" como los conoce la gente que programa en Java (que es una
definicion bastante particular de OOP).

> Eso es lo único que pretendo, crear tipos con sus atributos y métodos. De
> hecho el estandar SQL3 lo permite, por eso me extraña que Postgres no lo
> implemente.

Bueno, yo no conozco todos los detalles de SQL3, pero estoy seguro que
Postgres no implementa ni REF ni metodos, _excepto_ la sobrecarga que te
puede servir como "a poor man's methods".

(BTW, el estandar mas reciente es SQL:2003. Se pueden conseguir copias
gratis en la web, si te interesa te doy un enlace, pero son miles de
paginas)

> Del mismo modo, también he estado buscando en Postgres el tipo REF
> (referencia) y no lo encuentro (también lo contempla el estandar SQL3).
> En el caso de que Postgres no implemente el tipo REF, ¿Cómo implementan
> ustedes las relaciones 1:N ? (Imaginemos que un profesor puede impartir mas
> de una asignatura).

Las relaciones 1:N y M:N se pueden implementar trivialmente usando una
tabla con referencias a uno y otro conjunto de entidades.

create table profes (profe_id serial primary key, nombre ...)
create table asignaturas (asignatura_id serial primary key, ...)

create table profe_asignatura (profe_id int not null references profes,
asignatura_id int not null references asignaturas)

> Tengo bastantes dudas en éste sentido porque soy nuevo en Postgres. Estoy
> bastante acostumbrado a trabajar en Oracle y veo que aunque ambos sean
> SGBDOR, las cosas son bastante diferentes.

Por otro lado, Oracle implementa muchas cosas que son contrarias al
estandar.

Te sugiero mirar los tutoriales de Postgres para aprender como se hacen
las cosas.

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
The easiest way to resolve [trivial code guidelines disputes] is to fire
one or both of the people involved. (Damian Conway)

In response to

Responses

  • Re: Metodos at 2005-07-19 13:40:51 from Gustavo Garay

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-07-18 16:41:05 Re: Metodos
Previous Message ZerGY 2005-07-18 16:11:24 Re: Metodos