Diferencias entre Firebird e InterBase
(c) Dmitry Kuzmenko, Alexey Kovyazin, IBSurgeon, 21.05.2017
Resumen histórico
InterBase fue creado en 1985: fue la primera base de datos comercial con versionado múltiple. A finales de 1999, Borland decidió cerrar el desarrollo de InterBase y publicó sus códigos fuente bajo la Licencia Pública de InterBase. Este código fue copiado (está permitido por la licencia), y nació Firebird - desde la versión 1.0, Firebird es una base de datos lista para producción, basada en décadas anteriores de desarrollo de InterBase.
A finales de 2000, Borland volvió al código cerrado y a las licencias comerciales (exactamente como antes) con InterBase y comenzó el desarrollo de la versión 6.5.
Firebird 1.0 fue lanzado en 2002, con muchas correcciones de errores y extensiones de DDL y DML. El desarrollo activo de Firebird continuó después de la 1.0, y en 2004 se lanzó la segunda versión principal de Firebird (v.1.5). Borland en ese momento también introdujo nuevas versiones (7.0 y 7.1). Firebird 1.5 e InterBase 7.0 eran incompatibles tanto en formato de base de datos (ODS) como en funcionalidad principal. La migración de InterBase a Firebird y viceversa con copia de seguridad/restauración es imposible desde Firebird 2.0 e InterBase 7.0.
Desde entonces, la diferencia entre Firebird e InterBase se ha hecho mayor.
Situación actual (2017)
La única forma de migrar entre versiones actuales de InterBase y Firebird es mediante script SQL (con la corrección manual de diferencias) y luego el bombeo de datos de la base de datos antigua a la nueva. Sin embargo, la migración de InterBase a Firebird sigue siendo más fácil que a otro DBMS, ya que los principios de gestión de transacciones son los mismos.
Hemos realizado varias migraciones de este tipo para diversas versiones de InterBase y Firebird - consulte más detalles sobre nuestro servicio de migración aquí - y todo salió bien.
A continuación puede encontrar la tabla con la lista de diferencias entre las últimas versiones: Firebird 3.0 e InterBase 2017.
| Diferencias entre Firebird e InterBase |
|---|
| Características |
| — |
| SQL (DML y DDL) |
| Estabilidad del cursor (INSERT FROM SELECT correcto) |
| Cursores desplazables (bidireccionales) |
| Execute Statement |
| Execute Statement On External (consultas a bases de datos Firebird externas) |
| Transacciones autónomas |
| Tablas derivadas (SELECT de SELECT) |
| Expresiones de tabla comunes recursivas (CTE) |
| Funciones de ventana y estadísticas |
| MERGE |
| Cláusula RETURNING para insert/update/delete |
| Disparadores en conexión/desconexión |
| Disparadores en inicio/confirmación/reversión de transacciones |
| Disparadores para DDL |
| Soporte de Regexp para SUBSTRING |
| Tipo de dato Boolean |
| Tipo de dato BIGINT |
| Funciones PSQL |
| Procedimientos, funciones y disparadores externos ( Java) |
| Procedimientos y funciones anidados |
| Funciones deterministas |
| Variables de contexto en espacios de nombres SYSTEM, USER_SESSION y USER_TRANSACTION |
| Paquetes (procedimientos y funciones) |
| Excepciones con parámetros |
| Columna IDENTITY |
| RECREATE (combinación de CREATE o ALTER) |
| Soporte UTF8 |
| Soporte de búsqueda sin distinción de mayúsculas/minúsculas Unicode |
| Longitud de identificador |
| Índices COMPUTED BY (sobre expresión) |
| Arquitectura/Administración |
| SMP SuperServer (soporte multinúcleo) |
| Classic (instancia por conexión) |
| SuperClassic |
| Múltiples instancias (en diferentes puertos) |
| Alias de bases de datos |
| Re-enrutamiento entre instancias de servidor |
| Registro de escritura anticipada (WAL) |
| Recuperación en un punto en el tiempo |
| Creación paralela de índices durante la restauración |
| Copia de seguridad incremental |
| Tablas de monitoreo del sistema |
| Cliente y servidor de 64 bits |
| Versión embebida |
| Embebido para Android (móvil) |
| Embebido para iOS (móvil) |
| ChangeViews ( ¿qué es?) |
| Compresión de cable |
| Mejoras del protocolo de red para redes de alta latencia (para consultas SQL a través de internet) |
| Replicación a nivel de servidor (nativa) |
| Trazado y auditoría |
| Validación de base de datos en línea |
| Seguridad |
| Base de datos de seguridad |
| Usuarios en la base de datos |
| Cifrado de base de datos |
| Cifrado de columnas |
| Múltiples claves de cifrado |
| Cifrado de cable |
| Derechos de usuario DDL |
| Gestión de usuarios mediante SQL |
| UDF y funciones integradas |
| Funciones definidas por el usuario |
| SDF también conocidas como funciones definidas por el servidor (más rápidas que UDF) |
| Soporte de controladores y bibliotecas de cliente |
| Java |
| .NET |
| PHP |
| Python |
| ODBC |
| Node.JS/TypeScript |
| Golang |
| Yii2 |
| Ruby |
| Perl |
| Erlang |
| QT |
| Licencias/Precios |
| Precio por servidor (conexiones ilimitadas) |
| Soporte comunitario |
| Soporte profesional, por servidor |
| Herramientas de recuperación, monitoreo, trazado/auditoría, optimización y replicación nativa |
Contáctenos
¿Tiene alguna pregunta? No dude en contactarnos por correo electrónico.