Firebird (数据库)

Firebird，是一个跨平台的关系数据库系统，目前能够运行在Windows、linux和各种Unix操作系统上，源于Borland公司的InterBase 6.0，是一个完全非商业化的产品，但源代码经过大规模重写，使用C++开发。

## 特色

支援多版本并行控制（Multiversion Concurrency Control，MVCC）、预存程序（Stored Procedure）、触发程序（Trigger）、自定义方法（User-defined function，专有名词缩写UDF）等商用数据库行为程序。同时因为与interbase的血缘关系，部分interbase的GUI工具可以直接应用到Firebird开发中。

## 版本区分

Firebird提供三个服务器环境版本，分别是超级服务器版本（SuperServer）、标准服务器版本（ClassicServer）与嵌入式版本（Embedded）：

超级服务器版本（SuperServer）：支援多执行绪（Multithreading）模式，可以以背景Service模式执行。

标准服务器版本（ClassicServer）：支援每个执行绪可以个别管理自己的数据库，允许数据库与服务器不是储存在同一台情境，适合用于多处理器环境。

嵌入式版本（Embedded）：针对嵌入式系统要求独占程序设计版本，允许数据库与服务器在同一台运行情境。

## 历史

### Firebird 1.0

2002年3月11日公开，初期支援Linux、Windows、Mac OS X版本，两个月后公开Solaris、FreeBSD、HP-UX移植版本，以C语言为中心开发。

Firebird 1.0 发行历史

版本｜发布日期｜重要改进

1.0｜2002年3月11日

1.0.1｜2002年7月1日

1.0.2｜2002年12月19日

1.0.3｜2003年6月3日

### Firebird 1.5

2004年2月23日公开，自此版本开始变更为C++为中心开发。支援SQL92陈述句（SQL-92）标准函式、SQL1999陈述句（SQL1999）的SAVEPOINT函式与明确锁定（explicit locking）等。

Firebird 1.5 发行历史

版本｜发布日期｜重要改进

1.5｜2004年2月23日

1.5.1｜2004年7月14日

1.5.2｜2004年12月26日

1.5.3｜2006年1月24日

1.5.4｜2007年2月8日

1.5.5｜2007年12月12日

1.5.6｜2009年10月8日

### Firebird 2.0

2006年11月12日公开，支援SQL2003陈述句（SQL2003）的MERGE函式。更新版本2.1开始支援64位元Windows环境、触发式（Trigger）等。

Firebird 2.0 发行历史

版本｜发布日期｜重要改进

2.0｜2006年11月12日

2.0.1｜2007年3月21日

2.0.2｜2007年8月27日

2.0.3｜2007年9月21日

2.0.4｜2008年4月28日

2.0.5｜2009年1月27日

2.0.6｜2010年7月22日

2.0.7｜2012年5月13日

### Firebird 2.1

2008年4月18日公开。

Firebird 2.1 发行历史

版本｜发布日期｜重要改进

2.1｜2008年4月18日

2.1.1｜2008年7月16日

2.1.2｜2009年4月1日

2.1.3｜2009年9月8日

2.1.4｜2011年3月15日

2.1.5｜2012年6月23日

2.1.6｜2014年7月26日

2.1.7｜2014年12月5日

### Firebird 2.5

2010年10月4日公开。支援正规表示式（Regular Expression，专有名词缩写RE）等。

Firebird 2.5 发行历史

版本｜发布日期｜重要改进

2.5｜2010年10月4日

2.5.1｜2011年10月4日

2.5.2｜2012年11月6日

2.5.3｜2014年7月17日

2.5.4｜2015年3月30日

2.5.5｜2015年11月18日

2.5.6｜2016年7月14日

2.5.7｜2017年2月17日

2.5.8｜2018年7月15日

2.5.9｜2019年6月24日

### Firebird 3.0

2016年4月19日公开。支援布林值（BOOLEAN）与自动递增数值（IDENTITY）储存规格。允许使用IPv6网际协定连线数据库等。更新版本3.0.2起开始支援Android环境。

自该版本起不再提供Firebird 3.0之前旧版本数据库相容（On Disk Structure，专有名词缩写ODS）。

旧版本｜最新版本｜未来版本

Firebird 3.0 发行历史

版本｜发布日期｜重要改进

3.0 Beta 1｜2014年12月2日｜、官方版Firebird 3.0 Beta 1释出

3.0 Beta 2｜2015年7月3日｜、官方版Firebird 3.0 Beta 2释出

3.0 RC1｜2015年11月9日｜、官方版Firebird 3.0 RC 1释出

3.0 RC2｜2016年3月3日｜、官方版Firebird 3.0 RC 2释出

3.0｜2016年4月19日｜、官方版Firebird 3.0释出

3.0.1｜2016年9月27日｜、稳定性更新

3.0.2｜2017年3月22日｜、稳定性更新、支援 Android 32位元版本

3.0.3｜2018年2月2日｜、稳定性更新

3.0.4｜2018年10月14日｜、稳定性更新

3.0.5｜2020年1月12日｜、稳定性更新

3.0.6｜2020年6月26日｜、稳定性更新

3.0.7｜2020年10月20日｜、稳定性更新

3.0.8｜2021年11月17日｜、稳定性更新、支援 Android 64位元版本

3.0.9｜2022年2月15日｜、稳定性更新

3.0.10｜2022年6月8日｜、稳定性更新、最后一个版本支援Mac OS X 32位元版本

3.0.11｜2023年8月4日｜、稳定性更新

### Firebird 4.0

2021年6月1日公开。支援128位元整数（INT128）储存规格。上修浮动十进制（DECFLOAT）与十进制整数（DECIMAL）储存精度规格等。

旧版本｜最新版本｜未来版本

Firebird 4.0 发行历史

版本｜发布日期｜重要改进

4.0 Beta 1｜2019年2月20日｜、官方版Firebird 4.0 Beta 1释出

4.0 Beta 2｜2020年5月14日｜、官方版Firebird 4.0 Beta 2释出

4.0 RC1｜2021年2月1日｜、官方版Firebird 4.0 RC1释出

4.0｜2021年6月1日｜、官方版Firebird 4.0释出

4.0.1｜2021年12月22日｜、稳定性更新、新增PKCS 1.5 支援

4.0.2｜2022年8月11日｜、稳定性更新、新增对Apple M1通讯埠支援

4.0.3｜2023年8月4日｜、稳定性更新

4.0.4｜2023年11月8日｜、稳定性更新

### Firebird 5.0

2024年1月11日公开。

旧版本｜最新版本｜未来版本

Firebird 5.0 发行历史

版本｜发布日期｜重要改进

5.0 Beta 1｜2023年3月27日｜、官方版Firebird 5.0 Beta 1释出

5.0 RC1｜2023年9月29日｜、官方版Firebird 5.0 RC1释出

5.0 RC2｜2023年12月18日｜、官方版Firebird 5.0 RC2释出

5.0｜2024年1月11日｜、新增分析PSQL语法执行效能PSQL profiler语法

## 判断数据库所执行引擎版本

- Windows

执行command应用程序，然后执行下列查询：

```dos
gstat [switches] database_name
```

例如安装Firebird位于Program Files，数据库档案test.fdb位于分割区C，则执行下列查询：

```dos
C:\PROGRA~1\Firebird\Firebird_5_0>gstat -h c:\test.fdb 
```

Command应用程序将会回传以下讯息：

```dos
Database "c:\test.fdb"
Gstat execution time Wed Jun 19 19:02:46 2024

Database header page information:
Flags                   0
Generation              33
System Change Number    0
Page size               8192
ODS version             13.1
Oldest transaction      24
Oldest active           25
Oldest snapshot         25
Next transaction        26
Sequence number         0
Next attachment ID      5
Implementation          HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC
Shadow count            0
Page buffers            0
Next header page        0
Database dialect        3
Creation date           Jan 11, 2024 11:07:27
Attributes              force write

Variable header data:
Database GUID:  {2193572f-c8d2-404e-b779-08671a1309dd}
*END*

Gstat completion time Wed Jun 19 19:02:46 2024
```

回传讯息当中的ODS version即为数据库所执行引擎版本。

- Linux

执行Tux应用程序，然后执行下列查询：

```dos
gstat database_name  [switches] 
```

例如安装Firebird位于bin，数据库档案test.fdb位于根目录，则执行下列查询：

```dos
gstat test -h
```

Tux应用程序将会回传以下讯息：

```XML
Database "/test.fdb"
Database header page information:

Flags              0
Checksum           0
Greeration         0
page size          0
ODS version        11.2
Oldest transection 0
Oldest actuive     0
Oldest snapshot    0
Next transection   0
Bumped transection 0
Sequence number    0
Next attachent ID  0
Implentation ID    0
Shadow count       0
Pager buffers      0
Next header page   0
Database diaect    0
Creation date      Jan 1, 2024 00:00:00
Attributes         force write

Variable header data:
Sweep interval: 0
*END*
```

回传讯息当中的ODS version即为数据库所执行引擎版本。

## GUI工具

<image>

- FlameRobin
- Database Master
- ibWebAdmin

## 外部链接

- Firebird - Relational Database for the New Millenium

## 基本资料

- 日语原文：Firebird
- 开发者：Firebird专案
- 编程语言：C++, C
- 操作系统：跨平台
- 类型：关联式数据库管理系统
- 平台：IA-32, x86-64, FreeBSD
- 许可协议： IPL, IDPL
- 发行日期：2000年