Crear aplicaciones que funcionen con DBMS diferentes

25/06/2008 - 01:46 por Javier Lozano | Informe spam
Saludos compañeros

Uno de los paradigmas que enfrentamos los desarrolladores es poder crear una
aplicacion que funcione con diferentes motores de basos de datos, por
ejemplo, me gustaria hacer una aplicacion que funcione con SQL Server, con
DB2
Express y con Oracle. No se como enfrentar esto, por eso solicito su ayuda:

1- Es viable (lease rentable), mas alla del punto de vista teorico, si no
desde un enfoque basado en la vida real, llevar a cabo un proyecto de ese
tipo?

2- En cuanto a costos, la creacion y posterior mantenimiento de la
aplicaicon implicaria mas costos operativos($$$)

3- Entiendo que seria dificil mantener el mismo store procedure en todas las
bases de datos, sea por temas de sintaxis, sea por aprovechar
caracteristicas particulares de cada base de datos, etc.

4- Por favor comentar cualquier experiencia al respecto o tal vez
bibliografia especializad.


Gracias anticipadas

Javier Lozano
Lima-Peru
 

Leer las respuestas

#1 Alberto Poblacion
25/06/2008 - 07:50 | Informe spam
"Javier Lozano" wrote in message
news:
Uno de los paradigmas que enfrentamos los desarrolladores es poder crear
una aplicacion que funcione con diferentes motores de basos de datos, por
ejemplo, me gustaria hacer una aplicacion que funcione con SQL Server, con
DB2
Express y con Oracle. No se como enfrentar esto, por eso solicito su
ayuda:

1- Es viable (lease rentable), mas alla del punto de vista teorico, si no
desde un enfoque basado en la vida real, llevar a cabo un proyecto de ese
tipo?



Es viable, pero costoso. Aunque hay soluciones tales como usar OleDb o
IDBConnection, hay que tener cuidado al programar para no utilizar ninguna
característica de base de datos que sea exclusiva de una base de datos
concreta. Y a veces las diferencias no son evidentes. Por ejemplo, si haces
el desarrollo contra Oracle y utilizas una columna de tipo Unique que admita
nulls, y escribes el programa de forma que grabe null en esa columna en
varios registros de esa tabla, si luego cambias la base de datos a Sql
Server el programa fallará porque Sql Server sólo admite un único null en
las columnas Unique.


2- En cuanto a costos, la creacion y posterior mantenimiento de la
aplicaicon implicaria mas costos operativos($$$)



Sí, es considerablemente más costoso. En el pasado mi empresa desarrolló
una aplicación que funcionaba con varias bases de datos, y el coste de
mantenimiento era tan elevado que en nuevos desarrollos hemos optado por
soportar una única base de datos.


3- Entiendo que seria dificil mantener el mismo store procedure en todas
las bases de datos, sea por temas de sintaxis, sea por aprovechar
caracteristicas particulares de cada base de datos, etc.



Por temas de sintaxis, los procedimientos no son compatibles entre
distintas bases de datos. Tuve una aplicación que llamaba a procedimientos
almacenados en T-SQL cuando funcionaba contra Sql Server, PL-SQL cuando iba
contra Oracle, y cuando funcionaba contra otra base de datos distinta, no
utilizaba procedimientos almacenados sino que realizaba todas las
operaciones mediante código cliente. Como puedes imaginarte, el coste de
desarrollo, test, y mantenimiento de estas tres variantes era muy elevado.

Preguntas similares