Too Cool for Internet Explorer

Bases de datos open source

Hora y Fecha: Febrero 17, 2007 @ 1:17 am Autor: Moisés Maciá
Categorías:
674 views

No solo de MySQL vive el programador, hoy daremos un repaso al amplio abanico que ofrece el mundo del sofware libre en el ámbito de las bases de datos.

No es mi intención encontrar la mejor de ellas, o realizar un análisis en profundidad de todas y cada una de sus características, solo comentaré la variedad de soluciones que hay disponibles ahí fuera. Supongo que mis lectores habituales ya conocen que es el software libre, y porque se debería utilizar. Si no es así, echa un vistazo a los recursos del final del artículo.

Entonces, ¿cuales son las bases de datos de código libre? La mayoría de los lectores habrán oído hablar de MySQL. Es por definición la base de datos de código libre más popular del mundo después de todo. También está PostgreSQL (la base de datos de código libre más avanzada del mundo), así como Firebird (la base de datos relacional del nuevo milenio). Sin embargo, todavía hay más. BerkeleyDB, si bien no es directamente comparable, merece una mención, mientras que Computer Associates ha lanzado recientemente Ingres, e IBM ha hecho lo mismo con Cloudscape (bajo el nombre de Derby).

Echemos un vistazo a cada uno de estos productos:

Berkeley DB

Al contrario que muchas otras listadas aquí, Berkeley DB no es un DBMS completo, lleno de herramientas gráficas de reportes y cosas así. Ni siquiera tienen una capa de proceso de consultas. En lugar de eso, es un motor relacional de almacenamiento empotrado muy ligero, pensado para aplicaciones que no requieren una instalación de un DBMS completo. Los usuarios de MySQL tienen la opción de utilizar el motor de datos de Berkeley DB (al principio era a única manera de garantizar capacidades transaccionales en MySQL).

Derby

Si Derby tuviera una definición, probablemente sería la base de datos empotrada en Java más famosa del mundo. Esto da una idea del nicho que cubre este producto. IBM donó la base de datos comercial Cloudscape con el nombre de Derby bajo una licencia libre a la Fundación Apache, en la que permanece bajo consideración como un proyecto incubado, poco después de que Computer Associates hiciera lo propio con Ingres.

Cloudscape es una base de datos empotrada orientada a Java, lo cual significa que el DBMS forma parte de la aplicación Java, tiene un consumo de memoria muy reducido y está diseñada para funcionar sin la necesidad de tener a un DBA dedicado a su mantenimiento. No está enfocada a ser una base de datos de calidad empresarial, su función es cubrir las necesidades de los desarrolladores de Java.

Firebird

Inprise (ahora Borland) fue una de las primeras compañías comerciales en lanzar una base de datos bajo los términos del software libre cuando liberaron a principio del 2000 su producto Interbase. Interbase 6 fue lanzado bajo una variante de la licencia Mozilla. Borland ha lanzado desde entonces las versiones 6.5, 7, 7.1 y 7.5 de su producto comercial, pero Firebird ha continuado desarrollándose en paralelo basándose en la versión del código fuente de Interbase 6.0.

Firebird tiene una comunidad de usuarios pequeña pero muy activa, y hasta hace poco era el factor olvidado en los debates MySQL vs PostgreSQL. Firebird ha tenido siempre muchas más características que MySQL, y también, al contrario que PostgreSQL, siempre ha funcionado sin problemas bajo plataformas Windows, Linux y otras variantes de Unix. Firebird por otra parte también ha sido un poco maltratada por Borland desde su lanzamiento, en el sentido que no lanzaron todos sus componentes, y los scripts de compilación ¡ni siquiera funcionaban!

Una falta importante es el motor de replicación (Firebird dispone de una funcionalidad llamada shadowing, que mantiene una copia idéntica de la base de datos en producción, pero no es exactamente un método de replicación). Hay en marcha proyectos, la mayoría de ellos comerciales, pero los de código libre no parecen muy maduros, o integrados en el código base de Firebird. El desarrollo de Firebird también es relativamente lento, con la versión 1.5 lanzada recientemente se han centrado en reescribir el código en C++ (desde C), y no se han añadidos nuevas características. Sin embargo, Firebird es un DBMS relativamente maduro, y está dirigido a reemplazar sistemas Oracle y SQL Server en aplicaciones comerciales.

Hay disponibles dos sabores: Classic y Super Server, la versión Super server gestiona mejor los recursos, y es la más indicada para entornos de gran volumen (parece que la mayoría del desarrollo se enfoca en este campo). También hay tres variantes de SQL, que varían en la conformidad con los estándares ANSI.

Firebird tiene una base de usuarios leales, es un buen producto para trabajar, y si consigue aumentar su velocidad de desarrollo, asi como mejorar su marketing, será un competidor muy fuerte.

Ingres

Ingres empezó como un proyecto de base de datos relacional en la Universidad de California, Berkeley (la misma universidad americana directa o indirectamente responsable de muchas de las contribuciones al mundo del software libre, incluyendo BSD Unix, Postgres, vi y Tcl). Se convirtió en uno de los proyectos mas influyentes en el mundo de las bases de datos. Con el código lanzado bajo una variante de la licencia BSD, todos los productos propietarios Sybase, SQL Server e Informix tienen sus raíces en Ingres, así como PostgreSQL.

En 1982, Michael Stonebraker, uno de los fundadores del proyecto, fundó Ingres Corporation, e intentó comercializar el producto. ASK y, posteriormente, Computer Associates compraron el producto, y continuaron desarrollándolo y haciendo negocio con él. Sin embargo, con el resto de bases de datos de código abierto haciendo serias incursiones en el mercado de las bases de datos comerciales, optaron por liberar todo el código en 2004.

Ingres es conocida por su fiabilidad y su escalabilidad, pero sufre de una mala reputación al retrasarse en incorporar características, parece que no ha habido mucho desarrollo desde que Computer Associates adquirió el proyecto en 1994. Podría decirse que, dejando a un lado a Oracle, esta implantada en más entornos empresariales que ninguna otra base de datos de código libre, y está por delante de MySQL en características, sin embargo la documentación disponible en linea es bastante pobre en comparación con las otras. Sus características mas importantes incluyen:

  • Consultas paralelas (permitiendo una escalabilidad soberbia, una simple consulta puede dividirse en componentes que se ejecutan a lo largo de todos los recursos disponibles).
  • Reorganización de tablas online (no es necesario parar la base de datos para realizar las rutinas de mantenimiento).

CA también subvenciona el proyecto a través del programa Million Dollar Challenge, por el que la comunidad de desarrolladores está invitada a crear soluciones que permitan migrar sistemas Oracle, SQL Server, Sybase, DB2, Informix, y/o MySQL a Ingres. Se anunciaron seis ganadores durante la conferencia anual de CA en Abril de 2005.

La liberación de Ingres bajo una licencia de software libre le ha dado una segunda oportunidad al proyecto, y se esperan ver grandes avances en el desarrollo del producto.

MySQL

MySQL es conocida por ser la base de datos más popular, impulsada por el boom de Internet, es utilizada ampliamente para aplicaciones web. En principio rápida y fácil de utilizar, pero con funcionalidad limitada, MySQL ha trabajado en dotar de nuevas funcionalidades al producto, y aunque todavía carece de presencia en el ámbito empresarial más exigente, su popularidad, y su gran base de usuarios significan que hay muchísimas herramientas y aplicaciones que trabajan con MySQL, con toneladas de soporte extra oficial que complementa el soporte oficial de MySQL.

MySQL no tiene demasiada potencia en vistas, triggers y procedimientos almacenados, características importantes para muchos usuarios.

MySQL alcanzó un hito importante cuando SAP licenció el uso de su tecnología SAPDB a MySQL. SAPDB es un DBMS maduro y lleno de funcionalidades que, aunque no esta integrado completamente con el resto de MSQL, dota al sistema de un entorno preparado para las empresas respondiendo de esta manera a los más críticos. MySQL ha cobrado una tremenda fuerza después de esto, y si son capaces de implementar rápidamente las características que faltan, mientras mantienen la facilidad y velocidad del producto, tendrán una combinación imbatible.

PostgreSQL

PostgreSQL no existía como tal hasta 1996, cuando Postgres95 cambió de nombre, reflejando la importancia del recientemente añadido interprete de SQL. Antes de esto Postgres, también un proyecto del famoso Michael Stonebraker y diseñado para ser el sucesor de Ingres, usaba QUEL, que es bastante parecido a SQL y discutiblemente más consistente en su estructura. Sin embargo, la predominancia de bases de datos basadas en SQL como Oracle y DB2 hacían que QUEL no obtuviera el favor de la industria y se dejara de lado.

Afortunadamente, Postgres fue lanzado bajo la licencia BSD, y aunque el proyecto auspiciado por la Universidad de Berkeley había terminado, el código seguía disponible libremente, el proyecto continuó en desarrollo hasta lo que conocemos hoy en día.

Hasta el reciente lanzamiento de la versión 8.0, PostgreSQL no estaba disponible para Windows, pero es de esperar que que su cuota de mercado se incremente en la medida que los usuarios de Windows empiecen a descubrirlo. Su fama de avanzada no es en vano. Dispone de casi todas las características requeridas para ser una base de datos de nivel empresarial, así como un buen número de características poco habituales y potencialmente útiles:

  • Tipos de datos y operadores definidos por el usuario.
  • Herencia de tablas (donde una tabla puede heredar todas las columnas de su padre, pero las demás pueden ser definidas)
  • Indices parciales o por expresión (indices definidos sólo en una parte de la tabla, limitados por una condición, o creados en la salida de una expresión)
  • Múltiples lenguajes para procedimientos almacenados (incluyendo el nativo PL/PgSQL, PL/PHP, PL/Perl y PL/Python)

PostgreSQL era lento y no proporcionaba binarios nativos para Windows. Hoy en día han rectificado estas cosas y la base de datos está experimentando una aceleración en su crecimiento.

Recursos





« Anterior post: Have you tried to turn it off and on again? | Próximo post: No tienes ni puta idea »

5 Comentarios para “Bases de datos open source”

meneame.net
17 de Febrero de 2007 a las 3:08 am    

Bases de datos open source…

Repaso del amplio abanico que ofrece el mundo del sofware libre en el ámbito de las bases de datos….

dani
17 de Febrero de 2007 a las 3:33 am    

Muy interesante el post, no conocía ingres.

Sólo te ha faltado comentar que derby se ha integrado en la jdk 6 (JavaDB), por esto, personalmente, imagino que subirá su cuota de uso para pequeñas aplicaciones.

penyaskito
17 de Febrero de 2007 a las 4:59 am    

¿Y SQLite?
¿Y las bases de datos orientadas a objetos, como DB4O? No mencionas ninguna :/

Blaxter
17 de Febrero de 2007 a las 2:50 pm    

Las que ha nombrado penyaskito creo que son bastante importantes como para ignorarlas. SQLite es de las más usadas en proyectos de software libre.

DB4O creo que va a dar mucho de que hablar a medio plazo, puesto que tratar de usar una base de datos relacional si se trabaja con objetos, es una total incoherencia (e hybernate o similares no me valen :P), que se lleva a arrastrando desde hace años. Lo cual debe de desaparecer.

[...] post by QuarkBlog and software by Elliott Back Share and Enjoy:These icons link to social bookmarking sites where [...]


Bad Behavior has blocked 1991 access attempts in the last 7 days.