sitio hackeado

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Nov 30 19:38:53 CLST 2005


Marcos Ramirez A. escribió:
> On Wed, 2005-11-30 at 16:19 -0300, Ubaldo Taladriz wrote:
> > > En todo caso el esquema de modelo de capas es el mas adecuado para la 
> > > construccion de sistemas por el concepto de encapsular la logica en el 
> > > cliente.
> 
> > Mi último punto tiene que ver con el origen de la discusión. Mientras
> > menos dependo de la BD, pierdo en eficiencia, pero gano en portabilidad.
> 
> imagino que aqui hablas de depender de cosas /especificas/ de cada BD.
> Porque es posible escribir codigo portable para BD's distintas sin tanto
> esfuerzo: me ha tocado el caso de escribir programas que usaran
> Postgresql y/o Oracle, y no he tenido que prescindir de funciones,
> triggers, vistas y otros, ni perdida de portabilidad.

Por supuesto!  Eso es porque entre Oracle y Postgres comparten un
subconjunto grande de funcionalidades que todo el mundo espera que un
gestor de bases de datos tenga.  MySQL no tiene esto, y por lo tanto en
realidad no puede competir en este segmento.

> > Es teniendo en cuenta esto que discrepo de Alvaro. La pega de la BD son
> > los datos, y por lo tanto habitualmente lo que dejo a cargo de la bd,
> > son movimientos masivos de datos. El resto, todo a la capa intermedia.
> > Es decir, triggers, stored procedures, son bienvenidos para resolver la
> > problemática de datos, nada más
> 
> los triggers tienen sentido en conjunto con los datos (i.e, BD), los
> procedimientos funciones podrian ser vistos como entes separados y/o
> solo relacionados.

De acuerdo.  Viendolo desde un cierto punto de vista, lo que estariamos
haciendo seria implementar parte de la segunda capa en la BD, cosa que
no tiene nada de malo.  Si despues te quieres cambiar de BD puedes
simplemente cambiar la segunda capa.

-- 
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end." (2nd Commandment for C programmers)


Más información sobre la lista de distribución Linux