6.2 Sistemas de Bases de Datos

6.2.1 Introducción

En el Mundo Open/Free, cabe destacar que una de las áreas más fuertes y de continuo desarrollo es el de los sistemas de Bases de Datos Relacionales, en parte gracias a comunidades históricas de desarrollo como la de PostgreSQL (con ya 16 años) o a empresas comerciales de software OpenSource1 con todo un equipo de desarrollo trabajando exclusivamente, como el caso de SleepyCat y MySQL AB (la primera desarrollando la Berkley DB y la segunda MySQL Server y MAX DB), y también gracias a una movida de grandes empresas desarrolladoras de Bases de Datos liberando el código de sus DBMS como IBM, Borland, SAP AG, Computers Associates.

Gracias a la conjunción de todos estos factores, nos encontramos en la actualidad con sistemas de Bases de Datos OpenSource/Free tan potentes como los sistemas comerciales, se analizaran principalmente los dos productos más famosos y utilizados dentro del mundo Open/Free, MySQL y PostgreSQL, se hará también mención a Firebird, sistema sucesor del InterBase 6.0 de Borland y que gracias a ello ya posee también todas las funcionalidades de los grandes DBMS sin haber que tenido que pasar por el proceso de maduración de un producto Open/Free y hoy día esta tomando fuerza en la disputa de los Sistemas de Bases de Datos OpenSource.

6.2.1 Servidor de Bases de Datos MySql

Probablemente el servidor de base de datos open source más popular en el mundo sea MySQL [115]. Cuenta con más de 5 millones de instalaciones activas y rápidamente se esta convirtiendo en parte fundamental de muchas aplicaciones críticas de negocio con manejo de datos de alto volumen. MySQL es desarrollado por MySQL AB, dicha empresa tiene alrededor de 60 desarrolladores trabajando para sus productos.

Entre sus usuarios encontramos a Yahoo!, Google, Cisco, HP y la NASA. Dichas empresas han obtenido ahorros significativos utilizando software MySQL para potenciar sitios web de gran magnitud, aplicaciones empresariales de negocios críticas y aplicaciones de software cerrado.

La popularidad de MySQL se dio principalmente gracias a que fue utilizada en miles de sitios web por las características que las versiones tempranas ofrecían para aplicaciones de esta índole, dado que el 80% de las operaciones sobre bases de datos en los sitios web es solamente de consultas, MySQL era el favorito dada su velocidad para consultas (en parte por su motor de almacenamiento no-transaccional). Con el correr del tiempo, se fueron agregando funcionalidades, más compatibilidad con los estándares SQL y motores de almacenamiento transaccionales. Lo que fue en un principio una Base de Datos tipo "juguete" para desarrolladores de sitios web, se convirtió en todo un DBMS que hoy día rivaliza con los sistemas de Bases de Datos comerciales más poderosos.

6.2.2.1 Principales Características
6.2.2.1.1 Características internas y portabilidad
6.2.2.1.2 Tipos de Datos
6.2.2.1.3 Funciones y Sentencias
6.2.2.1.4 Seguridad
6.2.2.1.5 Escalabilidad y Límites
6.2.2.1.6 Conectividad
6.2.2.1.7 Internacionalización
6.2.2.2 Clientes y herramientas

El servidor MySQL cuenta con soporte built-in para sentencias SQL para chequeo, optimización y reparación de tablas. Estas sentencias están disponibles desde línea de comandos vía el cliente mysqlcheck.

6.2.2.3 Documentación

El sitio de developers de mySQL cuenta con una vasta documentación acerca de los productos mySQL. [128]

6.2.3 MAX DB

MaxDB es un sistema de de Base de datos de nivel empresarial que una vez fue conocido como SAP DB.

La historia de SAP DB remonta hacia los años 80, originalmente fue desarrollado como un producto comercial (Adabas), cuando la empresa SAP AG tomó el desarrollo, pasó a llamarse SAP DB. SAP AG desarrolló dicho Motor de Base de datos para que sirviera de sistema de almacenamiento para aplicaciones SAP de gran porte (llamadas R/3).

SAP DB fue concebida como una alternativa a productos de terceros para SAP R/3, como lo son Oracle, SQL Server y DB2.

En octubre de 2000 SAP AG libera SAP DB bajo licencia GPL, de ese entonces hasta principios del 2004 cerca de 2000 clientes de SAP AG utilizan SAP DB.

En mayo de 2003, se forma una sociedad entre MySQL AB y SAP AG, en la cual el desarrollo de SAP DB queda a cargo de MySQL AB, luego en octubre de 2003 SAP DB pasa a llamarse MAX DB.

6.2.3.1 Diferencias entre MAX DB y MySQL

MAX DB trabaja de la forma Cliente/Servidor y esta diseñado para soportar grandes cargas de OLTP (On-Line Transaction Process), tanto backup como expansión online del sistema están soportados.

Diferencias más significativas:

6.2.4 MySQL AB y su licencia dual

La empresa MySQL AB utiliza un sistema de licenciamiento dual para sus productos, si MySQL o MAX DB son utilizados para proyectos GPL, utiliza la licencia GPL, pero si se quiere desarrollar y utilizar código de alguno de los productos embebido en sistemas cerrados o el proyecto no se adecua al licenciamiento GPL de los productos de MySQL AB, la empresa ofrece un licenciamiento comercial (el cual es más barato que cualquier licencia de DBMS comercial).

6.2.5 PostgreSQL

Desde su concepción, PosgtreSQL [112] (anteriormente POSTGRES) fue diseñada para ser un sistema de Bases de Datos relacional completo, que estuviera a la par de sus homónimos comerciales (IBM DB2 UDB u Oracle DB, etc.). PostgreSQL es una mejora del sistema de Base de Datos POSTGRES, ya que mantiene los puntos fuertes de su antecesor como ser su poderoso modelo de datos y toda su riqueza en cuanto a tipos de datos, y remplaza el lenguaje de consultas PostQuel con un subconjunto más extenso de SQL.

PostgreSQL esta licenciado bajo BSD. Se considera también que PostgreSQL es un proyecto OpenSource mucho más puro, ya que no tiene empresas comerciales detrás como ser MySQL o Firebird (en un principio fue Borland).

Grandes corporaciones, instituciones gubernamentales y pequeños negocios en línea usan PostgreSQL para aplicaciones de misión crítica. Cuenta además con una historia de desarrollo de 16 años, una de las comunidades de desarrollo más fuertes del mundo y una reputación global de una alta calidad de ingeniería de software.

6.2.5.1 Principales características
6.2.5.1.1 Características internas y portabilidad
6.2.5.1.2 Tipos de Datos

Es considerado uno de los más completos en cuanto a tipos de Datos tanto cumpliendo con el estándar SQL2003 (ver apéndice 7.3) así como en tipos de datos propios, inclusive cuenta con tipos de datos más modernos como tipos de datos geométricos para el soporte de sistemas de información geográficos (OpenGIS) aunque aún faltan algunos tipos de datos importantes como BLOB y CLOBS.

6.2.5.1.3 Funciones y Sentencias
6.2.5.1.4 Escalabilidad y límites

La palabra "ilimitado" representa un límite virtual ya que todo esta limitado al espacio en disco y memoria/swap que se disponga. El máximo tamaño de tabla no requiere soporte de archivos especial por parte del sistema operativo ya que dichas tablas se almacenan en múltiples archivos de 1 GB.

6.2.5.1.5 Seguridad
6.2.5.2 Internacionalización

En esta área, podemos afirmar que, los mensajes de los programas de Postgresql (servidor y clientes) pueden ser presentados en diferentes idiomas, siempre y cuando hayan sido traducidos los catálogos de mensajes.

6.2.5.2.1 Clientes y herramientas

Para hacer diseño de bases de datos:

6.2.5.2.2 Documentación

Existe extensiva documentación de PostgreSQL incluida con la distribución así también como los manuales oficiales Online y libros Online en el sitio postgreSQL.org .

También en el sitio se encuentra una colección de artículos técnicos [113].

Está también la ayuda de línea de comandos del cliente psql.

6.2.6 Que sistema elegir (PostgreSQL vs MySQL)

Históricamente y actualmente también, las afirmaciones que se pueden recabar para los dos Sistemas de Bases de datos Open/Free más famosos son:

MySql

PostgreSQL

Un poco de cierto, un poco de mito, actualmente la realidad dicta que aparentemente ambos sistemas están convergiendo en un punto medio.

MySQL ya tiene soporte transaccional y bloqueo a nivel de registro (con InnoDB) y para siguiente versión, la implementación de vistas, triggers, stored procedures entre otras cosas, existen benchmarks que señalan que MySql esta a la par de Oracle en cuanto a performance en pruebas de carga de varios usuarios

Mientras tanto PostgresSQL en cada release, esta apuntando a mejoras significativas de performance y los límites de tamaños de tablas, registros, cantidades de índices por tablas se han vuelto virtualmente "ilimitados".

Ambos sistemas de DBMS en la actualidad tienen todas las cualidades para soportar todo tipo de aplicativo que requiera un Servidor de Bases de datos robusto, performante y con funcionalidades avanzadas. La decisión ya no depende de limitantes históricas como ser "utilizar postgreSQL si se necesita transacciones" o "utilizar MySQL si los registros son de un tamaño mayor a 32k".

Lo cierto es que como solución integral para PyMEs, hoy en día, ambos paquetes cubren ampliamente cualquier requerimiento que se le pueda presentar, desde aplicaciones web, aplicaciones críticas de negocio, soporte para otros paquetes como ser Servidores de correo, servidores de MI, Groupware, ERP's. En casos particulares que ameriten, la coexistencia de ambos DBMS se da sin problemas.

6.2.7 Firebird: El “nuevo” contendiente

El 25 de julio de 2000, Borland libera bajo la licencia, aprobada por OSI InterBase, Public License (similar a la MPL), el código fuente de InterBase 6.0 (cuya primera versión data de 1984), a partir estos fuentes comienza a desarrollarse por un equipo independiente de la empresa de voluntarios el motor de bases de Datos Firebird, la versión actual 1.5 es fundamentalmente el traspaso del código en C a C++, lo que implicó una gran limpieza en el código.

De todas formas Firebird 1.0.x [123] continúa manteniéndose de forma activa, con la corrección de errores y la inclusión de mejoras tomadas de la versión 1.5.

Los puntos fuertes de Firebird son claramente heredados de Interbase, cubre prácticamente todas las características de sistemas de Bases de Datos comerciales. Los desarrolladores de Firebird afirman que el producto es muy poderoso pero sin embargo muy liviano y requiere mínima configuración y administración.

Es un sistema muy escalable pudiendo pasar de sistemas con solo un usuario en una sola base de datos a Sistemas para empresas. Un solo servidor Firebird es capaz de manejar múltiples bases de datos independientes, cada una con sus múltiples conexiones de clientes.

6.2.7.1 Características más destacables:
6.2.7.2 Límites

El límite teórico de Firebird para una Bases de datos de una sola tabla es de 64 TB, el límite práctico lo da el sistema operativo, el sistema de archivos o el almacenamiento del que se disponga. El máximo número de índices para una tabla es de 256.

6.2.7.3 Versiones

Existen tres versiones del motor de Firebird, todos comparten el mismo formato de almacenamiento de BD, y se pueden intercambiar según se necesite sin ninguna consecuencia sobre los datos.

6.2.7.4 Sistemas Operativos soportados:

Windows, Mac OS X, Solaris and HP-UX. La migración de una plataforma a otra es muy sencilla ya que tiene la facilidad de respaldar las bases de datos utilizando lo que se llama Formato Transportable, luego se recupera en el otro Sistema Operativo

6.2.7.5 Documentación

Uno de los posibles problemas de Firebird es que la documentación en general consta de una quick-guide y la documentación de la Interbase 6.0 Beta, la documentación oficial (de InterBase 6.0) sale US$ 50. Sin embargo, no se puede considerar mucho problema ya que la base de datos de conocimiento del sitio de firebird, tiene varios aportes de usuarios y referencias a falta de documentación oficial técnica.

6.2.7.6 Conclusión

Vemos que Firebird tiene todas las características para soportar cualquier tipo de aplicación para una pequeña o mediana empresa, también cuenta con las características para ser utilizada como soporte para aplicaciones para empresas como ser: Servidores de Correo, Mensajería instantánea, Groupware, etc.

Lo que es palpable, es que por su tardía entrada en el mundo Open/Free no está teniendo la misma fuerza ni adopción que sus dos principales contendientes, que fueron adoptados ya como los estándares de facto al hablar de DBMS's Open/Free (estamos hablando de MySQL y PostgreSQL).

En parte, esto se debe, a que los usuarios de estos dos sistemas ya están más que satisfechos con lo que le brindan dichos productos, pero de todas formas resulta una alternativa atractiva e interesante a tener en cuenta.

1Llamadas Empresas de Segunda Generación de OpenSource dado sus licenciamientos tanto compatibles con OSI como licenciamientos comerciales.

Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.