此页面为机器翻译。请阅读英文原文。 English

IBSurgeon 文库

Firebird 与 InterBase 之间的差异

(c) Dmitry Kuzmenko, Alexey Kovyazin, IBSurgeon, 21.05.2017

历史概述

InterBase 创建于1985年:它是第一个商业多版本数据库。1999年底,Borland 决定关闭 InterBase 的开发,并按照 InterBase Public License 发布了其源代码。该代码被复制(许可证允许这样做),Firebird 由此诞生–从 1.0 版本开始,Firebird 就是一个生产就绪的数据库,基于 InterBase 过去几十年的开发成果。

2000年底,Borland 重新转向闭源和商业许可(与之前完全一样)继续开发 InterBase,并开始了 6.5 版本的开发。

FirebirdSQLFirebird 1.0 于2002年发布,包含大量错误修复以及 DDL 和 DML 的扩展。Firebird 在 1.0 之后继续积极开发,2004年发布了第二个主要版本 Firebird(v.1.5)。当时 Borland 也推出了新版本(7.0 和 7.1)。Firebird 1.5 和 InterBase 7.0 在数据库格式(ODS)和核心功能上都不兼容。自 Firebird 2.0 和 InterBase 7.0 起,通过备份/恢复在 InterBase 和 Firebird 之间进行迁移已不可能。

从那时起,Firebird 和 InterBase 之间的差异变得越来越大。

当前状况(2017年)

在 InterBase 和 Firebird 当前版本之间进行迁移的唯一方法是通过 SQL 脚本(手动修复差异),然后将数据从旧数据库导入到新数据库。然而,从 InterBase 迁移到 Firebird 仍然比迁移到其他 DBMS 更容易,因为事务管理原则是相同的。

我们为各种版本的 InterBase 和 Firebird 完成了多次此类迁移–请参阅我们迁移服务的更多详情–并且都进行得很顺利。

下面您可以找到最新版本:Firebird 3.0 和 InterBase 2017 之间的差异列表表格。

Firebird 与 InterBase 之间的差异
功能
SQL(DML 和 DDL)
游标稳定性(正确的 INSERT FROM SELECT)
可滚动(双向)游标
Execute Statement
Execute Statement On External(查询外部 Firebird 数据库)
自治事务
派生表(从 SELECT 中 SELECT)
递归公共表表达式(CTE)
窗口和统计函数
MERGE
INSERT/UPDATE/DELETE 的 RETURNING 子句
连接/断开触发器
事务开始/提交/回滚触发器
DDL 触发器
SUBSTRING 的正则表达式支持
布尔数据类型
BIGINT 数据类型
PSQL 函数
外部过程、函数、触发器(Java
嵌套过程和函数
确定性函数
SYSTEM、USER_SESSION 和 USER_TRANSACTION 命名空间中的上下文变量
包(过程和函数)
带参数的异常
IDENTITY 列
RECREATE(CREATE 或 ALTER 的组合)
UTF8 支持
Unicode 不区分大小写搜索支持
标识符长度
COMPUTED BY 索引(基于表达式)
架构/管理
SMP SuperServer(多核支持)
Classic(每连接实例)
SuperClassic
多实例(不同端口)
数据库别名
服务器实例之间的重新路由
预写日志(WAL)
时间点恢复
恢复期间并行创建索引
增量备份
系统监控表
64 位客户端和服务器
嵌入式版本
适用于 Android 的嵌入式版本(移动端)
适用于 iOS 的嵌入式版本(移动端)
ChangeViews(这是什么?
线路压缩
针对高延迟网络的网络协议改进(用于通过互联网的 SQL 查询)
服务器级复制(原生)
跟踪和审计
在线数据库验证
安全性
安全数据库
数据库中的用户
数据库加密
列加密
多个加密密钥
线路加密
DDL 用户权限
通过 SQL 管理用户
UDF 和内置函数
用户定义函数
SDF 即服务器定义函数(比 UDF 更快)
驱动程序和客户端库支持
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
许可/价格
每台服务器价格(无限连接)
社区支持
专业支持,每台服务器
恢复、监控、跟踪/审计、优化、原生复制工具

联系我们

您有任何问题吗?请随时通过电子邮件联系我们!