viernes, 17 de junio de 2011

GESTOR DE BASE DE DATOS: FIREBIRD

 
Firebird es un sistema de administración de base de datos relacional (o RDBMS) (Lenguaje consultas: 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++. El proyecto se desarrolla activamente, el 18 de abril de 2008 fue liberada la versión 2.1 y el 26 de diciembre de 2009 fue liberada la versión 2.5.0 RC1.

HISTORIA: 

A una semana de ser liberado el Interbase 6.0 por Borland el 25 de julio del 2000, El  proyecto Firebird fue creado en SourceForge. Firebird fue desarrollado para Linux, Windows y Mac OS X el 11 de marzo del 2002, con los puertos de Solaris, ,FreeBSD 4 , HP-UX fue desarrollado en los siguientes 2 meses.
 El trabajo en portar el código base de C a C++ empezó en el año 2000, El 23 de febrero del 2004, Firebird 1.5 fue lanzado, el cual fue la primera versión estable de la nueva base de código. La versión 1.5 tenía como característica la mejora de un optimizador de consultas, SQL-92 expresiones condicionales, SQL:1999 puntos de guardado y soporte para bloqueo explícito. Firebird 2.0 fue lanzado el 12 de noviembre del 2006, añadiendo soporte para arquitectura de 64-bit, tablas anidadas en DRON clauses, y bloqueos temporales programables y transacción de bloqueo. 
La versión estable anterior fue la versión anterior 2.1.3, la cual añadió nuevas características incluyendo la acción de desencadenar procedimientos, consultas recursivas, y soporte para SQL:2003MERGE estados. 
Firebird 2.5 es la actual versión estable. Nuevas características incluyen la mejora: multithreading, sintaxis para expresiones regulares y la hablidad de consulta de base de datos remota.

La versión 3.0 que se lanzará posteriormente espera que soporte procedimientos almacenados en otros lenguajes como el Java y C++, y SQL y funciones de la ventana que restringen los resultados de la búsqueda. La versión Alpha 1 será desarrollada en el año 2011.
 
CARACTERISTICAS
  • Completo soporte para Procedimientos Almacenados y Disparadores
  • Transacciones 100% ACID
  • Integridad Referencial
  • Arquitectura multi-generacional
  • Bajo consumo de recursos
  • Completo lenguaje interno para procedimientos almacenados y disparadores (PSQL)
  • Soporte para Funciones Externas (UDFs)
  •  Poca o ninguna necesidad de DBAsespecializados.
  • Prácticamente no requiere configuración - solamente instalas y ¡comienzas a usarla!
  • Gran comunidad y muchos sitios donde podes encontrar excelente soporte gratuito.
  • Versión incrustada - ideal para crear catálogos en CDROM, versiones mono usuario, de evaluación o portátiles de las aplicaciones.
  • Docenas de herramientas de terceros, como herramientas de administración gráficas, herramientas de replicación, etc.
  • Escritura segura - recuperación rápida, ¡sin requerir logs de transacciones!
  • Muchas formas de acceder a tu base de datos: nativo/API, drivers dbExpress, ODBC, OLEDB, proveedor .Net, driver JDBC nativo tipo 4, módulo Python, PHP, Perl, etc.
  • Soporte nativo para todos los principales sistemas operativos, incluyendo Windows, Linux, Solaris, MacOS.
  • Copias de seguridad incrementales
  • Disponibilidad de binarios en arquitectura de64bits
  •  Implementación completa de cursores en PSQL
  • Tablas de Monitoreo
  • Disparadores a nivel de Conexión yTransacción
  • Tablas Temporales
  VENTAJAS: 
  • Firebird es una base de datos ligera y sencilla de instalar. Solo un ejecutable autoninstalable o un script segun plataforma.
  • No consume grandes recursos en el servidor.
  • Es rápida y potente. (Ver Límites Firebird).
  • Tiene un tipo de licencia similar a MPL (Mozilla PublicLicense), que permite su uso de forma gratuita y con una distribución muy poco restrictiva.
    Ejemplo:
    Permite su utilizacion en nuestras aplicaciones sin la obligacion de tener que  publicar el codigo fuente, de las misma.
  • Se pueden usar librerias externas que mejoran la operativa de Firebird.
  • Existe un driver ODBC para Firebird.ODBC Firebird
  • Existen multitud de componentes para distintos lenguajes de programacion para conectar con Firebird de forma nativa o indirecta. 
DESVENTAJAS:
 
  • Pobre optimización.
  • Pobre funcionalidad de las librerías
CLASIFICACION: 

Son la Classic,Superserver o Superclassic

A continuación se ofrece un resumen de las diferencias más importantes. 

Classic Server vs. Superserver vs. SuperClassic

ESTADO Y FIABILIDAD:
Classic Server:

Completamente maduro en Linux; todavía 'experimental' en cierta forma, en Windows.
Superserver:
Completamente maduro tanto en Windows como en Linux.
SuperClassic:
Modalidad recientemente liberada e implemantada en la version 2.5 de Firebird.
(No tenemos datos de su fialibidad, aun que su diseño hibrido lo dota de una solidez
para todo tipo de situaciones, asi como una escalabilidad muy buena.)

CONTROL Y ACCESOS:
Classic Server:
Crea un proceso por cada conexión cliente, cada uno con su propio caché. Utiliza menos recursos si la cantidad de conexiones es baja.
Superserver:
Proceso único con un hilo de ejecución (thread) separado para cada conexión. Se comparte el espacio de caché. Más eficiente si crece el número de conexiones simultáneas.
SuperClassic:
Cada cliente tiene un hilo dedicado dentro de un unico proceso.
No hay perdida de escalabilidad y reduce el costo de operatividad.
La sincronización de la cache se realiza directametne en la memoria, realizando todos
los procesos en hilos mucho masrapido.


CONEXION:
Classic Server:

Permite E/S directa, rápida, a archivos de bases de datos para conexiones locales (sólo Linux).

Superserver:
Las conexiones locales deben hacerse con la forma de acceso remoto, conectando a localhost. En Windows se pueden hacer conexiones locales, pero no son tan veloces como las de la versión “Classic” en Linux, y también son menos seguras.
SuperClassic:
Como en Superserver las conexiones locales deben hacerse con la forma de acceso remoto, conectando a localhost. En Windows se pueden hacer conexiones locales, pero no son tan veloces como las de la versión “Classic” en Linux, y también son menos seguras.

SERVICIOS EN EL SISTEMA:
Classic Server:

Windows: implementados parcialmente Services Manager (Administrador de Servicios), tareas de soporte como backup/restore, databaseshutdown (sacar de línea la base de datos) etc. a través de la red. Otras tareas de servicio tienen que ser realizadas localmente usando las herramientas cliente (pequeños ejecutables independientes) que vienen con Firebird. Linux: Administrador de Servicios completo.
Superserver:
Administrador de Servicios completo (en Windows y Linux) que le permite realizar tareas de administración (backup/restore, databaseshutdown, manejo de usuarios, estadísticas, etc.) programáticamente. Se puede conectar al Administrador de Servicios a través de la red y por lo tanto realizar estas tareas en forma remota.

SuperClassic:
Como Superserver.

RENDIMIENTO:
Classic Server:

Soporte para SMP (multi-procesador). Mejor rendimiento en caso de un pequeño número de conexiones simultáneas que no se influencian entre sí.


Superserver:
No hay soporte para SMP. En máquinas multiprocesador con Windows, el rendimiento puede incluso caer dramáticamente cuando el SO cambia el proceso entre las CPUs. Para prevenir esto, fije el parámetro CpuAffinityMask en el archivo de configuración firebird.conf.
SuperClassic:
Soporta SMP (multi-procesador). Buen rendimiento en cualquier situacion.
Aun que con particularidades.
Como puede ver, ninguna de las arquitecturas es mejor en todos los aspectos. Esto no es una sorpresa: no se mantendrian varias arquitecturas si una de ellas fuera perdedora en todos los frentes.  

No hay comentarios:

Publicar un comentario en la entrada