Firebird (データベース)

Firebird（ファイアバード）は、InterBaseから派生したオープンソースの関係データベース管理システム (RDBMS)。オープンソースで開発されており、Mozilla Public Licenseを元にしたIPL(InterBase Public License)と IDPL (Initial Developer's Public License)（商用・非商用問わず利用できるが、オリジナル〈ここではFirebirdを指す〉のソースコードを改変したプログラムを利用する場合は、その変更箇所のコードを公開しなくてはならない）によってライセンスされている。 PostgreSQLやMySQL(InnoDB)のMVCC（多版同時実行制御）と同様のMGA（マルチ・ジェネレーション・アーキテクチャー）による高度なトランザクション管理機能を有する。ストアドプロシージャや、トリガー、UDF（ユーザー定義関数）等の商用データベースに通常備わっている機能を網羅している。ただしオブジェクトの命名則が厳しい(Firebird 4.0で拡張)、プライマリキーのAUTO INCREMENTが用意されていない(Firebird3.0で導入)など、やや旧式な仕様もある。なおPHPなどアプリケーションからの接続には、InterBase対応の関数・ライブラリを流用できる。 2007年6月に開催された「オープンソースカンファレンス2007.DB」で行われた公開ベンチマークテストでは高評価を得ているが、解説書籍の出版が少ない、レンタルサーバではサポートされていないなど日本国内での認知度はまだまだ低い。 特筆すべき機能として、有償ではあるが米IBフェニックス社の「IBPレプリケータ」を導入し、GUI上から設定することにより、IPネットワークで接続された複数のFirebird同士で同期処理を行なうことが可能となる。これはトリガーの機能を応用したもので、更新された箇所を同期処理用のテーブルに蓄積し、蓄積内容を設定された別のFirebirdに対し定期的に送信すると言うものである。この他にも、Firebirdのレプリケーションソフトは多数存在する。 Firebird 4.0からビルトインのレプリケーションが実装された。 また、RDBMS側からクライアントへのコールバックを実現する、イベントアラータはFirebirdの初期開発者であるJim Starkeyの発案によるものである。 Firebirdは一般的なC/S(Client Server)のデータベースとしての利用のほか、データベースライブラリとしても利用でき、生成されるデータベースファイルも一つのOSファイルであるため、アプリケーションへの組み込みが容易である。組み込んだ例としてはLibreOffice Baseの4.2以降でFirebird Embeddedが利用できる。 Windows版には専用のインストーラが用意されている。Linux版もダウンロードパッケージに含まれる「install.sh」を実行すれば自動的に「/opt」以下にインストールされる。ただしisqlコマンドを使う場合、実行環境（Fedoraなど）によっては同名の全く別のプログラムが起動してしまうので、「isql2」など重複しない別名のシンボリックリンクを作成しておく必要がある。 2000年6月25日、ボーランドから InterBase 6.0のソースコードが公開され、それから1週間のうちにSourceForgeにFirebirdプロジェクトが登録された。 2002年3月11日、Firebird 1.0が Linux、Windows、Mac OS X向けにリリースされた。それから2ヵ月後には、Solaris、FreeBSD 4、HP-UXへも移植された。 Mozilla Foundationの新ブラウザが登場した際、一時期 "Mozilla Firebird" の名称を使用したため多少の混乱があったが、2004年2月10日にmozilla.orgがブラウザの名称をMozilla Firefoxに変更したことで決着した。[1] 2004年2月23日、Firebird 1.5がリリースされた。ポーティングのため2000年よりソースコードをC言語からC++へ変更する開発が行われてきたが、このリリースは初めてC++コードベースを使った安定版である。クエリ最適化の改良、SQL92準拠の式、SQL:1999準拠のSAVEPOINT、明示的なロックが追加された。 2006年11月12日、Firebird 2.0がリリースされた。64ビットアーキテクチャのサポート、FROM句での入れ子テーブル、ロック時のタイムアウトでの式の利用が追加された。さらに、バージョン 2.1にて、データベーストリガ、再帰クエリ、SQL:2003準拠のMERGE文が追加された。 2010年10月4日、Firebird 2.5がリリースされた。これまでスレッドモデルで実装されたSuper Serverと、プロセスモデルで実装されたClassic Serverの2つのサーバーモデルを並行して開発してきたが、バージョン2.5では新たにSuper Classicと称するサーバーモデルが追加される。Super Classic版では、Super Server版のボトルネックとなっていた統合型キャッシュを見直し、スレッド毎にキャッシュバッファを実装することで、これまで弱点とされてきたSMPへの対応を強化し、スケーラビリティが向上する予定である。その他に、正規表現や外部データベースへの接続が追加された。 2016年04月19日、Firebird 3.0がリリースされた。これまでスレッドモデルで実装されたSuper Serverと、プロセスモデルで実装された Classic Serverの2つのサーバーモデルを並行して開発し、バージョン 2.5では新たにSuper Classicと称するサーバーモデルが追加されたがFirebird 3.0実行形式ファイルの単一化が施された（デフォルトはSuper Server）。さらにウィンドウ関数や統計関数がサポートされ、各種制限の緩和、データベースごとのコンフィグレーション、スクローラブルカーソル、パッケージなどが追加された。 2021年06月01日、Firebird 4.0がリリースされた。アーキテクチャや操作に根本的な変更を加えることなく、メタデータ識別子の長さの拡張(63文字まで)、10進浮動小数点（DECFLOAT）、NUMERICおよびDECIMALの最大精度を38桁に向上、INT128（128ビット整数）の導入、暗号化および暗号ハッシュのための組み込み関数など、新しいデータ型や多くの改良が導入された。 2024年01月11日、Firebird 5.0がリリースされた。このリリースでは、パフォーマンス、マルチスレッド処理 (バックアップ、リストア、スイープを含む)、SQL クエリ プロファイリングの領域が改善され、スケーラビリティが向上し、SQL 言語の多数の機能強化が行われた。 FlameRobin Database Master ibWebAdmin 2009. SourceForge Community Choice Award: Best Project for enterprise. Finalist on Best Project and Best Project for Government. 2007. SourceForge Community Choice Award: Best Project for enterprise, Best user support. ^ https://xtech.nikkei.com/it/article/NEWS/20070624/275673/ ^ “Inprise/Borland Introduces InterBase 6.0 Now Free and Open Source on Linux, Windows, and Solaris”. (2000年7月16日). オリジナルの2004年12月6日時点におけるアーカイブ。. https://web.archive.org/web/20041206174134/www.borland.com/news/press_releases/2000/07_16_00_ib6.html 29 January 2009閲覧。  ^ “Borland.com: Inprise/Borland Introduces Interbase 6.0 Now Free and Open Source on Linux”. Linux Today. 2009年1月29日閲覧。 ^ “Firebird History”. 2009年1月31日閲覧。 ^ Paul Reeves. “What's happening to InterBase”. Borland User Group. pp. 2. 2009年1月29日閲覧。 ^ “IBPhoenix Community News Archive” (2000年3月11日). 2009年1月29日閲覧。 ^ “IBPhoenix Community News Archive” (2000年4月11日). 2009年1月29日閲覧。 ^ “Firebird Relational Database 1.5 Final Out”. Slashdot. (23rd February 2004). http://developers.slashdot.org/article.pl?sid=04/02/23/201230 31 January 2009閲覧。  ^ Helen Borrie (2007年11月30日). “Firebird 1.5.5 Release Notes”. Firebird Project. 2009年1月31日閲覧。 ^ Dmitry Yemanov. “Firebird 2.0 Final Release Launches in Prague”. 2009年2月5日閲覧。 ^ Helen Borrie (2009年1月22日). “Firebird 2.0.5 Release Notes”. 2009年2月5日閲覧。 ^ Helen Borrie (2008年7月15日). “Firebird 2.1 Release Notes”. 2009年2月7日閲覧。 ^ Alexey Kovyazin. “Firebird 2.5 Introduces New Audit Features and Improved Scalability”. 2010年10月6日閲覧。 ^ Helen Borrie (2008年7月2日). “Firebird 2.5 Release Notes”. 2009年2月9日閲覧。 ^ Alexey Kovyazin. “Firebird 3.0 is released”. 2016年5月7日閲覧。 ^ Helen Borrie (2016年4月28日). “Firebird 3.0 Release Notes”. 2016年5月7日閲覧。 ^ Helen Borrie,Dmitry Yemanov (2021年6月1日). “Firebird 4.0 Release Notes”. 2021年12月16日閲覧。 ^ Helen Borrie,Mark Rotteveel(2024年01月10日). “Firebird 5.0 Release Notes”. 20240-01-16閲覧。 ポータル FLOSS Firebirdプロジェクトホーム Firebird日本ユーザー会 FirebirdSQL Foundation 有志によるFirebird SQLリファレンス [リンク切れ] FIREBIRD WIKI