Firebird es un sistema de administración de bases de datos relacionales SQL de código abierto que "se ejecuta en Linux , Microsoft Windows , macOS y varias plataformas Unix ". [3] La base de datos se bifurcó a partir de la edición de código abierto de InterBase de Borland en 2000, pero el código se ha reescrito en gran medida desde Firebird 1.5. [4]
Desarrollador (es) | Proyecto Firebird |
---|---|
Versión inicial | 2000 |
Lanzamiento estable | 4.0 [1] / 1 de junio de 2021 |
Versión de vista previa | 4.0 Beta 2 [2] / 14 de mayo de 2020 |
Repositorio | |
Escrito en | C ++ |
Sistema operativo | Multiplataforma |
Tipo | RDBMS |
Licencia | IPL , IDPL |
Sitio web | www |
Historia
Una semana después de que Borland publicara la fuente de InterBase 6.0 el 25 de julio de 2000, [5] [6] se creó el proyecto Firebird en SourceForge . [7] [8] Firebird 1.0 fue lanzado para Linux, Microsoft Windows y Mac OS X el 11 de marzo de 2002, [9] con puertos a Solaris , FreeBSD 4 , HP-UX durante los siguientes dos meses. [10]
El trabajo para migrar la base de código de C a C ++ comenzó en 2000. El 23 de febrero de 2004, se lanzó Firebird 1.5, [11] que fue la primera versión estable de la nueva base de código. La versión 1.5 presentó un optimizador de consultas mejorado , expresiones condicionales SQL-92 , puntos de guardado SQL: 1999 y soporte para bloqueo explícito . [12] Firebird 2.0 fue lanzado el 12 de noviembre de 2006, [13] agregando soporte para arquitecturas de 64 bits , tablas anidadas en cláusulas FROM y tiempos de espera de bloqueo programables en transacciones de bloqueo . [14]
La versión estable anterior fue la versión 2.1.6, que agregó nuevas características que incluyen disparadores de procedimientos , consultas recursivas y soporte para sentencias SQL: 2003 MERGE . [15]
Firebird 2.5 introdujo nuevas características como subprocesos múltiples mejorados , sintaxis de expresiones regulares y la capacidad de consultar bases de datos remotas. [dieciséis]
La versión estable más reciente es Firebird 3.0, lanzada el 19 de abril de 2016, y se centra en el rendimiento y la seguridad. Una importante re-arquitectura del código permitió un soporte total a las máquinas SMP cuando se usaba la versión SuperServer. [17]
A través de Google Summer of Code 2013, se ha comenzado a trabajar en la integración de Firebird como reemplazo de HSQLDB en LibreOffice . [18] [19]
Conflicto de nombre de Mozilla Firefox
En abril de 2003, la Organización Mozilla anunció un cambio de nombre de su navegador web de Phoenix a Firebird después de una disputa de marca registrada con Phoenix Technologies . [20]
Esta decisión causó preocupación dentro del proyecto de la base de datos Firebird debido a la suposición de que los usuarios y los motores de búsqueda de Internet se confundirían con una base de datos y un navegador web que usaran el nombre Firebird. [21] [22] Los desarrolladores de Mozilla emitieron una declaración, [23] aclarando que su paquete de software se llamaba "Mozilla Firebird", no "Firebird". [24] [25] La declaración también decía que el nombre de Mozilla Firebird era un nombre en clave de proyecto .
La disputa se resolvió el 9 de febrero de 2004, cuando Mozilla cambió el nombre de su navegador a Mozilla Firefox , poniendo fin al conflicto. [26] [27] [28]
Principales características
- Soporte completo para procedimientos almacenados y activadores [29]
- Completa ACID transacciones compatibles
- Integridad referencial
- Arquitectura multigeneracional (a veces denominada MVCC) [30]
- Soporte para funciones externas ( UDF )
- La actividad de SQL puede enviar eventos de notificación asincrónica a los clientes
- Herramientas de terceros, incluidas herramientas administrativas de GUI y herramientas de replicación
- Escrituras cuidadosas: recuperación rápida, sin necesidad de registros de transacciones
- Muchos métodos de acceso: nativo / API, controladores dbExpress / FireDAC [31] , ODBC, OLE DB, proveedor .NET, controlador JDBC tipo 4 nativo, módulo Python, [32] PHP, Perl
- Backups incrementales
- Implementación completa del cursor en PSQL
Tecnología de índice y almacenamiento
La arquitectura multigeneracional (MGA)
Firebird heredó la arquitectura de almacenamiento de Interbase. Para garantizar las propiedades ACID de las transacciones, el motor de la base de datos mantiene diferentes versiones de cada registro modificado por los usuarios activos en la base de datos. Cuando se confirman las transacciones, la última versión de cada registro modificado se marca como definitiva. Si las transacciones se revierten, el motor de la base de datos mantiene la marca en las versiones originales del registro, dejándolas intactas. [33] Como resultado, las escrituras en disco de Firebird son muy reducidas en comparación con las bases de datos que utilizan la arquitectura tradicional de registro de transacciones. [34] Escribir transacciones no impide la lectura y viceversa, porque cada uno ve su propia versión de la base de datos. [35] La compensación es que se requiere algo de mantenimiento ("barrido") de vez en cuando para limpiar las versiones antiguas de los registros y el espacio libre en el disco. [36]
La arquitectura multigeneracional garantiza que las operaciones OLTP y DSS / OLAP se puedan ejecutar simultáneamente sin las demoras causadas por los mecanismos de bloqueo que se encuentran en otros productos. [37]
Índices
Firebird hace que todos los índices de la base de datos se comporten como "índices agrupados" bien ajustados utilizados por otras arquitecturas. Los depósitos de índices de Firebird no están sujetos al bloqueo de dos fases, y las operaciones booleanas "y" y "o" se pueden realizar en mapas de bits intermedios a un costo insignificante, eliminando la necesidad de que el optimizador elija entre índices alternativos. [38]
Variantes
- Firebird SuperServer tiene un solo demonio / servidor para todas las conexiones de clientes, multiproceso con caché compartido
- Firebird SuperClassic también tiene un solo demonio / servidor para todas las conexiones de cliente, multiproceso con cachés separados
- Firebird Classic usa inetd para ejecutar una copia del servidor por conexión de cliente, recomendado para sistemas SMP pero puede tener problemas de notificación de eventos si el acceso es a través de un firewall
- Firebird Embedded para crear catálogos en CD-ROM, versiones de evaluación o de usuario único de aplicaciones
Licencia
El motor de base de datos Firebird y sus módulos se publican bajo una licencia de código abierto , la Licencia Pública de Desarrollador Inicial (IDPL), una variante de la Licencia Pública de Mozilla (MPL) versión 1.1. No requiere que el desarrollador abra los productos usando Firebird o incluso derivados personalizados hechos a partir de su código fuente, pero si el desarrollador elige hacerlo, entonces se deben respetar algunos términos y condiciones. El IDPL permite al desarrollador crear aplicaciones propietarias de código cerrado que usan Firebird o se basan en él. [39]
API de conectividad
API nativa de Firebird de bajo nivel, API de servicios y SQL incorporado
La API nativa de Firebird es utilizada directa o indirectamente por aplicaciones o middleware que se conectan a una base de datos de Firebird. Está implementado en la biblioteca cliente, fbclient.dll, en los sistemas Windows y en libfbclient.so en los Unix. [40]
La API de servicios es un conjunto de funciones especiales para acceder y controlar las tareas de administración del servicio, como la gestión de usuarios, la copia de seguridad / restauración y la recopilación de estadísticas.
El SQL incrustado es una técnica que simplifica el desarrollo de aplicaciones C / C ++ y COBOL Firebird, mediante el uso de un preprocesador llamado gpre, que permite incrustar sentencias SQL directamente en el código fuente del lenguaje host. [41]
Premios
- 2007. Premio SourceForge Community Choice: Mejor proyecto para empresas, Mejor soporte al usuario. [42]
- 2009. Premio SourceForge Community Choice: Mejor proyecto para empresas. Finalista en Mejor Proyecto y Mejor Proyecto de Gobierno. [43]
Ver también
- Fundación Firebird
- Comparación de sistemas de gestión de bases de datos relacionales
- Lista de sistemas de gestión de bases de datos relacionales
- Control de concurrencia multiversion
- Cumplimiento de SQL
Referencias
- ^ "Se lanza Firebird 4.0" . 1 de junio de 2021.
- ^ "La versión Firebird 4.0 Beta 2 está disponible para pruebas" . 14 de mayo de 2020 . Consultado el 23 de diciembre de 2020 .
- ^ "Firebird: un potente sistema de base de datos SQL multiplataforma" . SourceForge . SourceForge Media, LLC. 25 de abril de 2018 . Consultado el 2 de mayo de 2018 .
- ^ "Notas de la versión de Firebird 1.5.5" . Consultado el 29 de septiembre de 2009 . Notas generales de Firebird 1.5.5 para reescribirlo de lenguaje C a C ++
- ^ "Inprise / Borland presenta InterBase 6.0 ahora gratuito y de código abierto en Linux, Windows y Solaris" . 16 de julio de 2000. Archivado desde el original el 6 de diciembre de 2004 . Consultado el 29 de enero de 2009 .
- ^ "Borland.com: Inprise / Borland presenta Interbase 6.0 ahora gratuito y de código abierto en Linux" . Linux hoy . Consultado el 29 de enero de 2009 .
- ^ "Historia de Firebird" . Consultado el 14 de marzo de 2014 .
- ^ Paul Reeves. "Qué está pasando con InterBase" . Grupo de usuarios de Borland. pag. 2 . Consultado el 14 de marzo de 2014 .
- ^ "Archivo de noticias de la comunidad IBPhoenix" . 11 de marzo de 2000 . Consultado el 29 de enero de 2009 .[ enlace muerto permanente ]
- ^ "Archivo de noticias de la comunidad IBPhoenix" . 11 de abril de 2000 . Consultado el 29 de enero de 2009 .[ enlace muerto permanente ]
- ^ "Salida final de la base de datos relacional de Firebird 1.5" . Slashdot. 23 de febrero de 2004 . Consultado el 31 de enero de 2009 .
- ^ Helen Borrie (5 de octubre de 2009). "Notas de la versión de Firebird 1.5.6" . Proyecto Firebird . Consultado el 10 de junio de 2012 .
- ^ Dmitry Yemanov. "Lanzamiento de la versión final de Firebird 2.0 en Praga" . Consultado el 5 de febrero de 2009 .
- ^ Helen Borrie (5 de abril de 2012). "Notas de la versión de Firebird 2.0.7" . Consultado el 10 de junio de 2012 .
- ^ Helen Borrie (20 de julio de 2014). "Notas de la versión de Firebird 2.1" . Consultado el 20 de julio de 2014 .
- ^ Helen Borrie (19 de noviembre de 2015). "Notas de la versión de Firebird 2.5.5" . Consultado el 19 de noviembre de 2015 .
- ^ Gray, James (29 de julio de 2016). "Base de datos relacional Firebird del proyecto Firebird | Linux Journal" . www.linuxjournal.com . Diario de Linux . Archivado desde el original el 1 de marzo de 2020 . Consultado el 1 de marzo de 2020 .
- ^ mariuz (14 de febrero de 2012). "Firebird Embedded y LibreOffice es la combinación perfecta para escalar desde una aplicación de un solo archivo a un enfoque cliente / servidor" . Firebirdnews.org . Consultado el 8 de julio de 2013 .
- ^ ahunt (28 de mayo de 2013). "GSOC 2013: Conector SQL de LibreOffice Firebird" . Consultado el 8 de julio de 2013 .
- ^ Dotzler, Asa (14 de abril de 2003). "Phoenix y Minotauro pasarán a llamarse Firebird y Thunderbird" . MozillaZine . MozillaZine . Consultado el 29 de enero de 2016 .
- ^ El navegador Mozilla se convierte en Firebird , IBPhoenix, archivado desde el original el 23 de abril de 2003 , consultado el 29 de enero de 2016
- ^ Bishop, Alex (21 de abril de 2003). "Entrevista a Ann Harrison, administradora del proyecto de base de datos Firebird" . MozillaZine . MozillaZine . Consultado el 29 de enero de 2016 .
- ^ "marca de mozilla" . La Organización Mozilla. 25 de abril de 2003. Archivado desde el original el 26 de abril de 2003 . Consultado el 31 de enero de 2016 .
- ^ Festa, Paul (7 de mayo de 2003). "Firebird de Mozilla se corta las alas" . CNET . CBS Interactive . Consultado el 29 de enero de 2016 .
- ^ Bishop, Alex (14 de mayo de 2003). "Christopher Blizzard de mozilla.org habla sobre el conflicto de nombres de Firebird" . MozillaZine . MozillaZine . Consultado el 29 de enero de 2016 .
- ^ Paul Festa (9 de febrero de 2004). "Mozilla tiene 'fuego' en la lucha de nombres" . CNET . CBS Interactive . Consultado el 29 de enero de 2016 .
- ^ "Mozilla Firebird renombrado Firefox, versión 0.8 publicada" . MozillaZine . MozillaZine. 9 de febrero de 2004 . Consultado el 29 de enero de 2016 .
- ^ "Mozilla Firefox - Preguntas frecuentes sobre el nombre de la marca" . mozilla.org . Fundación Mozilla . Consultado el 29 de enero de 2016 .
- ^ "Conozca Firebird en 2 minutos" .
- ^ Roman Rokytskyy. "Una discusión no tan técnica del control de concurrencia de múltiples versiones" . Consultado el 21 de noviembre de 2011 .
- ^ "Conectarse a Firebird (FireDAC)" .FireDAC
- ^ https://pypi.python.org/pypi/fdb/
- ^ "Arquitectura multigeneracional (MGA) y versionado de registros" . Software HK . Archivado desde el original el 1 de octubre de 2011 . Consultado el 14 de julio de 2011 .
- ^ "Entrevista con Jim Starkey de InterBase World" . Marina Novikova, InterBase World . Consultado el 14 de julio de 2011 .
- ^ "¿Qué es la arquitectura multigeneracional (MGA)?" . Las preguntas frecuentes de Firebird . Consultado el 14 de julio de 2011 .
- ^ "Limpieza de bases de datos y recolección de basura" . El Proyecto Firebird . Consultado el 14 de julio de 2011 .
- ^ "¿Qué es la arquitectura multigeneracional (MGA)?" . Las preguntas frecuentes de Firebird . Consultado el 14 de julio de 2011 .
- ^ "Entrevista con Jim Starkey de InterBase World" . Marina Novikova, InterBase World . Consultado el 14 de julio de 2011 .
- ^ "Firebird: Versión 1.0 de la licencia pública del desarrollador inicial" . Proyecto Firebird . Consultado el 13 de julio de 2011 .
- ^ "La biblioteca cliente de Firebird" . El Proyecto Firebird . Consultado el 14 de julio de 2011 .
- ^ "Desarrollo de aplicaciones" . El Proyecto Firebird . Consultado el 14 de julio de 2011 .
- ^ "Ganadores de los premios Community Choice Awards 2007 de SourceForge.net" . SourceForge.net . Consultado el 13 de julio de 2011 .
- ^ "SourceForge.net: 2009 CCA: Ganadores" . SourceForge.net . Consultado el 13 de julio de 2011 .
enlaces externos
- Firebird - Sitio web del proyecto
- Firebird: portal para desarrolladores
- Colaciones , gráficos de Firebird .
- Documentación de Firebird por IBProvider
- FirebirdFAQ
- FirebirdNews - Noticias sobre Firebird y proyectos relacionados
- Guía de migración a Firebird 3 - eBook
- Controlador Firebird Ole Db (alternativa para ODBC)
- JayBird - controlador JDBC para Firebird