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 版本的开发。
Firebird 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 |
| 许可/价格 |
| 每台服务器价格(无限连接) |
| 社区支持 |
| 专业支持,每台服务器 |
| 恢复、监控、跟踪/审计、优化、原生复制工具 |
联系我们
您有任何问题吗?请随时通过电子邮件联系我们!