Cargando

Autor: Alex Castillo R. Se permite la distribución libre de éste artículo siempre y cuando se conserve la fuente y el autor del mismo.

1 Introducción.

1.1 Historia.

Las personas que lean esta guía se estarán preguntando si Firebird es sólo un proyecto más entre los Open Source; la respuesta es un contundente NO. Firebird es un proyecto bien organizado que podría compararse con MySQL y PostgreSQL. Firebird es el descendiente directo de Interbase 6.0: Borland había liberado el código fuente de Interbase 6 por el año 2000 bajo una licencia OS similar a la MPL, pero llamada Interbase Public License (IPL) (http://info.borland.com/devsupport/interbase/opensource/).

Sin embargo, Borland se arrepintió de hacerlo y cerró el código de nuevo. Afortunadamente, una empresa lidereada por Ann W. Harrison llamada IBPhoenix tomó el código base de Interbase que se había liberado IPL y lo modificó para crear su propio DBMS: había nacido Firebird. A diferencia de otros proyectos, Firebird heredó directamente todas las características de su hermano gemelo, por lo que desde el pincipio podría considerarse como un producto maduro.

Con una base firme, los nuevos desarrolladores de este DBMS se dedicaron a corregir los errores de la versión OS del Interbase, haciendo a Firebird más estable y confiable que cualquier versión de Interbase 6.x. A Borland no le agradó mucho éso, por lo que ha anunciado que Interbase 7 (IB7) y posteriores no serán compatibles con Firebird. Ante tal noticia, le escribí un correo a Ann W. Harrison para conocer su opinión y su respuesta fue: Upward compatible from IB 6.0. Since Borland has declined to coordinate with us, we can't promise to be compatible with future versions. Así que de momento se tendrán compatibilidades entre ambos DBMS pero llegará el momento en que no será así.

El 3 de junio de 2003 se ha liberado la versión 1.0.3 que, además de corregir algunos bugs encontrados, agrega nuevas características al servidor, como extensiones del lenguaje SQL. Ésta versión es el preludio de lo que será la versión 1.5, la cual trae consigo muy importantes cambios como el renombrado de algunos archivos de configuración, mayores opciones, extensiones del lenguaje SQL y , sobre todo, el traspaso del viejo código en C a uno más limpio en C++. Sin embargo, será hasta la versión 2.0 cuando Firebird deje de ser considerado un clon de Interbase.

1.2 Características.

¿En qué sistemas operativos puede ser usado Firebird?

Corre en los siguentes: Darwin, FreeBSD, HPUX, Linux, Solaris y Windows. Por razones obvias, la versión más popular es la de Windows, aunque en mi experiencia, es en Linux en donde se le puede sacar mayor provecho. Debido a que Firebird no tiene optimizaciones internas para SMTP, la creencia general es que no se debería poner en un Host con más de 1 procesador; ésto es válido si el sistema operativo es Windows, sin embargo, en sistemas operativos, como Linux, que tienen mayor eficiencia en SMTP podría aprovecharse mejor; además de eso, Windows XP y posteriores incluyen una ?protección? para los archivos con extension gdb (los de Firebird), por lo que hacen más lento el desempeño de la base de datos; como ejemplo: al respaldar una base de datos pequeña (10MB) me tomó 9 seg. en una PC con Windows XP y sólo 3 seg. en una con Linux, ambas máquinas con las mismas características.

Por tales motivos, quien escribe esta guía preferiría usar el servidor en un Unix o Linux; finalmente, la decisión depende de la situación. Firebird es un DMBS 100% transaccional, por ello, todas las operaciones que efectuemos se verán forzosamente dentro del ámbito de alguna transacción, aunque sea implícita. Ésto lo habilita como ideal para entornos en los que se requiere de confiabilidad y a la vez velocidad en las operaciones.

También tiene características propias de los sistemas avanzados, como los procedimientos almacenados, triggers, funciones definidas por el usuario, entre otras. Para algunas personas lo más importante quizás sea la estabilidad y esa es una cualidad más de éste servidor de base de datos. Finalmente, cumple fielmente con la mayoría de las características del estándar ANSI SQL-92; aunque en este sentido cabe mencionar que a partir de la versión 1.5 se incluyen extensiones para soportar SQL-99 y algunas más parecidas a las disponibles en Oracle. ¿Cómo puedo comparar Firebird con MySQL o PostgreSQL? Firebird se puede ubicar en el medio de ambos DBMS, ya que tiene buen desempeño y características avanzadas.

Es por ello que puede ser ideal como soporte para un sitio web sustituyendo a MySQL o bien puede estar en un ambiente en el que se procesen muchas transacciones y la integridad sea crítica para el negocio sustituyendo a PostgreSQL. Dada su naturaleza, Firebird requiere muy poco o ningún mantenimiento, sin embargo, si se han efectuado muchos cambios en los metadatos puede ser necesario reconstruir los índices para que se recupere velocidad (algo así como el VACUUM es a PostgreSQL).

Como lenguaje para los procedimientos almacenados se utiliza una extensión del SQL llamada ISQL (Interbase SQL, no confundir con la utilería isql que es Interactive SQL). Además, cualquiera puede escribir sus propias funciones y transformarlas en una librería dinámica (.dll ó .so) que se vinculen directamente con el servidor, de tal forma que puedan utilizarse dentro de las consultas. Es común encontrar bases de datos de 2 GB que usan Firebid; el récord registrado hasta el momento de escribir estas líneas es de 980GB para un solo archivo. Con éso podemos darnos cuenta de la fiabilidad que podemos encontrar en el servidor. El que sea desarrollador se estará preguntando qué herramientas tiene disponibles para su uso.

Nuevamente, en la variedad está el gusto: hay librerías de C++ (http://sourceforge.net/projects/ibpp/), Perl (http://sourceforge.net/projects/dbi-interbase/), Java (http://firebird.sourceforge.net), PHP, Delphi, etc. También se dispone de un proveedor para .NET que se puede encontrar en http://firebird.sourceforge.net.

En este punto, el lector ya puede tener una idea de lo que este DBMS puede ofrecerle, así que en las siguientes secciones continuaré adentrandome ya en las cuestiones técnicas relativas al desarrollo de una base de datos.