hola Gaby77, para esos casos depende mucho con lo que vas a trabajar, y como dice mith una cosa es el motor de BD y otra cosa como accesa a ellas..
En mi caso me base en unos patrones de diseño para .Net donde cada BD tiene su provider de objetos de acceso a datos, y se crean interfaces para saber a cual de ellos debe hacer caso..
En el design pattern que complementé se puede conectar con sql server, oracle, mysql, informix y db2 sin necesidad de cambiar el código en tu aplicaciones ya que a través de un archivo XML indicas a que provider te vas a conectar y puedes hacerlo desde uno solo hasta "N" providers dentro de la misma aplicación ya que cada uno está definido.
ejemplo
Cita: <instances>
<instance name="DataAccessMySQL" type="MySql" connectionString="LocalMySql" />
<instance name="DataAccessSqlServer" type="SqlServer" connectionString="LocalMySqlServer" />
<instance name="DataAccessInformix" type="Informix" connectionString="LocalInformix" />
.....etc
</instances>
ya con ello internamente el objecto Factory lee la configuración y mediante interfaces decide a cual provider apuntar y regresar sus objetos.
Esa sería la idea en general, aclaro que éste modelo lo uso para aplicaciónes en .Net, si quieres más detalles por aqui andamos.
Salu2