Está en la página 1de 4

El Gestor de Base de Datos, Firebird

Firebird, es un sistema de administración de base de datos relacional (o


RDBMS) SQL de código abierto, basado en la versión 6 de Interbase, cuyo
código fue liberado por Borland en 2000. Su código fue reescrito de C a C++.

Características

• Es multiplataforma, y actualmente puede ejecutarse en los sistemas


operativos: Linux, HP-UX, FreeBSD, Mac OS, Solaris y Microsoft Windows.
• Ejecutable pequeño, con requerimientos de hardware bajos.
• Arquitectura Cliente/Servidor sobre protocolo TCP/IP y otros (embedded).
• Soporte de transacciones y claves foráneas.
• Es medianamente escalable.
• Buena seguridad basada en usuarios/roles.
• Diferentes arquitecturas, entre ellas el Firebird empotrado (embedded server)
que permite ejecutar aplicaciones monousuario en ordenadores sin instalar
el software Firebird.
• Bases de datos de sólo lectura, para aplicaciones que corran desde
dispositivos sin capacidad de escritura, como cd-roms.
• Existencia de controladores ODBC, OLEDB y JDBC.
• Controlador nativo para PHP.
• Requisitos de administración bajos, siendo considerada como una base de
datos libre de mantenimiento, al margen de la realización de copias de
seguridad y restauraciones periódicas.
• Pleno soporte del estándar SQL-92, tanto de sintaxis como de tipos de datos.
• Completo lenguaje para la escritura de disparadores (triggers) y
procedimientos almacenados.
• Capacidad de almacenar elementos BLOB (binary large objects).
Tipos de servidor
Existen dos tipos de servidor Firebird para ser instalados: “Classic” y “Super
Server”. Si bien tienen varias diferencias menores entre si, la principal consiste en
que el super server maneja hilos de ejecución individuales para cada conexión. Por
lo tanto para un número reducido de conexiones el recomendado sería el classic
porque consumirá menor cantidad de recursos.
Los propios desarrolladores de Firebird recomiendan lo siguiente a la hora de
decidirse por uno de estos servidores:

• En plataformas Windows seleccionar el Superserver.


• En Linux simplemente elegir cualquiera, según las conexiones estimadas. En la
mayoría de las situaciones no se notará diferencias en la ejecución.

Podría considerarse un tercer tipo, el Embedded. Éste consiste en una única DLL
(de unos 2 MB de tamaño) que contiene todo el servidor. De esta forma se puede
tener un DBMS completo disponible y distribuíble junto con aplicaciones de usuario.

Conceptos básicos
Para empezar, hay que entender que un servidor de base de datos -como
Firebird/InterBase- es un proceso -es decir, un programa- ejecutándose en la
computadora que se utiliza como servidor. Este proceso servirá de "intermediario"
entre el programa cliente -que puede estar hecho con Power Builder, Java, Delphi,
C++Builder, etc- y la base de datos física -en este caso, el archivo de base de datos,
generalmente con extensión gdb-.
Este programa -Firebird/InterBase-, debe atender todas las órdenes que le hacen
los programas cliente. Estas órdenes tienen que ver con alguna base de datos, por
ejemplo: insertar un registro, modificar el valor de una columna de una tabla,
modificar la estructura de una tabla, eliminar un registro, obtener un conjunto de
registros, etcétera.
En el caso de los servidores de base de datos SQL, las órdenes deben ser escritas
en ese lenguaje (SQL), pues es el único que el servidor entiende. Por ejemplo, para
insertar un registro se debe escribir una orden INSERT, para eliminar uno o más
registros se le debe dar una orden DELETE, etc.

Diferencias entre formatos de archivos y servidores SQL


Cuando utilizamos un formato de archivos (Paradox, dBase, Access), el programa
cliente (hecho con Delphi/C++ Builder) utiliza una interfaz prefabricada de acceso a
los archivos, como la BDE. Menciono el término prefabricada porque son bibliotecas
de funciones precompiladas (DLL) las cuales al ser utilizadas por el programa
cliente, permiten abrir, modificar y obtener datos de los archivos de datos (los
archivos DB, DBF, MDB). Cuando utilizamos programas cliente que acceden a una
base de datos localizada en un servidor de archivos, lo que estamos haciendo es
que todos los programas cliente abren físicamente el archivo de datos, mediante un
proceso que se ejecuta en cada computadora cliente.

Esta situación conlleva algunas “desventajas” como las siguientes:

• Si alguna conexión de red o programa cliente tiene un problema, puede dañar


el archivo de datos, ya que lo está abriendo directamente.
• Las consultas a datos pueden llegar a ser muy lentas, ya que para
seleccionar los registros de una consulta, cada programa cliente debe de
pedir todo el archivo al servidor de archivos y toda esta información debe
viajar por la red.
• No se están aprovechando los recursos del servidor, solamente aquellos que
optimizan el acceso a los archivos, dado que la máquina que ejecuta la
consulta es la máquina cliente, además de que se crean cuellos de botella
en la red, como se explica en el punto anterior.
Ahora veamos las “ventajas” de utilizar un servidor SQL:

• Se minimizan los daños a la base de datos cuando falla uno de los programas
clientes, pues lo peor que puede pasar es que se quede abierta una o más
transacciones, las cuales posteriormente se pueden recuperar o eliminar.
• Se aprovecha al máximo las capacidades del hardware del servidor, debido
a que el proceso de consulta de datos es ejecutado por el servidor SQL, el
cual corre sobre el servidor de hardware.
• Se optimiza el tráfico en la red, debido a que cuando el servidor SQL
devuelve los datos de una consulta al programa cliente, solamente envía el
conjunto de datos producto de la consulta, y no el total de los datos de la
tabla, como sucede cuando se utiliza un servidor de archivos.
• Estas son únicamente las ventajas a nivel de acceso y transmisión de datos,
ya que a nivel de seguridad e integridad tiene muchas más ventajas.
Programa para Administración de la Base de Datos
Personalmente utilizo IBExpert versión 2006.12.13, el cual es un gran
Administrador para manejar las bases de datos de Firebird, es intuitivo y permite
una gestión rápida de los objetos de la BD. En cuanto a la programación de
disparadores y procedimientos almacenados presenta seguimiento paso a paso
para identificar errores (debug).

También podría gustarte