| 原作者 | ボーランド |
|---|---|
| 開発者 | ファイアバード財団 |
| 初回リリース | 2000 |
| 安定リリース | 5.0.1 [1]
/ 2024年8月2日 |
| プレビューリリース | Firebird 5.0 リリース候補 1 / 2023 年 9 月 26 日 |
| リポジトリ |
|
| 書かれた | C++、C |
| オペレーティング·システム | クロスプラットフォーム |
| プラットフォーム | IA-32、x86-64 |
| タイプ | RDBMS |
| ライセンス | IPL、IDPL |
| Webサイト | このサイトについて |
Firebirdは、 Linux、Microsoft Windows、macOS、その他のUnixプラットフォームをサポートするオープンソースの SQL リレーショナルデータベース管理システムです。[2]このデータベースは、2000年にBorlandのオープンソース版InterBaseから分岐しましたが、Firebird 1.5以降、コードが大幅に書き直されています。[3]
歴史
2000年7月25日にボーランドがInterBase 6.0のソースを公開してから1週間以内に、[4] [5] SourceForgeにFirebirdプロジェクトが立ち上げられました。[6] [7] Firebird 1.0は2002年3月11日にLinux、Microsoft Windows、 Mac OS X向けにリリースされ、 [8]その後2か月かけてSolaris、FreeBSD 4、HP-UX向けに移植されました。 [9]
コードベースをCからC++に移植する作業は2000年に始まりました。2004年2月23日、Firebird 1.5がリリースされました。[10]これは新しいコードベースの最初の安定リリースでした。バージョン1.5では、クエリオプティマイザの改善、SQL-92条件式、SQL:1999 セーブポイント、明示的なロックのサポートが特徴でした。[11] Firebird 2.0は2006年11月12日にリリースされ、[12] 64ビットアーキテクチャのサポート、 FROM句にネストされたテーブル、ブロッキングトランザクションでのプログラム可能なロックタイムアウトが追加されました。[13]
以前の安定版リリースはバージョン2.1.6で、手続き型トリガー、再帰クエリ、SQL:2003 MERGEステートメントのサポートなどの新機能が追加されました。 [14]
Firebird 2.5では、マルチスレッドの改善、正規表現構文、リモートデータベースのクエリ機能などの新機能が導入されました。[15]
最新の安定バージョンは、2016年4月19日にリリースされたFirebird 3.0で、パフォーマンスとセキュリティに重点を置いています。コードの大幅な再設計により、 SuperServerバージョンを使用する場合にSMPマシンを完全にサポートできるようになりました。[16]
Google Summer of Code 2013を通じて、LibreOffice BaseにHSQLDBの代替としてFirebirdを統合する作業が開始されました。[17] [18]
Mozilla Firefox の名前の競合
2003年4月、MozillaはPhoenix Technologiesとの商標紛争の後、ウェブブラウザの名前をPhoenixからFirebirdに変更すると発表した。[19]
この決定は、データベースとウェブブラウザの両方がFirebirdという名前を使用しているため、ユーザーとインターネット検索エンジンが混乱するだろうという想定により、Firebirdデータベースプロジェクト内で懸念を引き起こしました。[20] [21] Mozillaの開発者は声明を発表し、[22]彼らのソフトウェアパッケージは「Firebird」ではなく「Mozilla Firebird」と呼ばれていることを明確にしました。[23] [24]声明では、Mozilla Firebirdという名前はプロジェクトのコード名であるとも述べました。
この論争は2004年2月9日にMozillaがブラウザの名前をMozilla Firefoxに変更したことで解決し、紛争は終結した。[25] [26] [27]
主な特徴
- ストアドプロシージャとトリガーの完全サポート[28]
- 完全なACID準拠のトランザクション
- 参照整合性
- マルチジェネレーションアーキテクチャ(MVCCとも呼ばれる)[29]
- 外部関数 ( UDF )のサポート
- SQLアクティビティはクライアントに非同期通知イベントを送信できます
- GUI管理ツールやレプリケーションツールなどのサードパーティツール
- 慎重な書き込み - 高速リカバリ、トランザクション ログは不要
- 多くのアクセス方法:ネイティブ/API、dbExpress/FireDAC [30]ドライバ、ODBC、OLE DB、.NETプロバイダ、JDBCネイティブタイプ4ドライバ、Pythonモジュール、[31] PHP、Perl
- 増分バックアップ
- PSQLでの完全なカーソル実装
ストレージとインデックス技術
多世代アーキテクチャ(MGA)
Firebird は Interbase のストレージ アーキテクチャを継承しました。トランザクションのACIDプロパティを保証するために、データベース エンジンは、データベース内のアクティブ ユーザーによって変更された各レコードの異なるバージョンを保持します。トランザクションがコミットされると、変更されたすべてのレコードの最後のバージョンが最終バージョンとしてマークされます。トランザクションがロールバックされると、データベース エンジンは元のレコード バージョンにマークを保持し、変更しません。[32]その結果、Firebird のディスク書き込みは、従来のトランザクション ログ アーキテクチャを使用するデータベースに比べて大幅に削減されます。[33]トランザクションの書き込みによって読み取りが妨げられることはなく、その逆も同様です。これは、各トランザクションが独自のデータベース バージョンを参照するためです。[34]トレードオフとして、古いレコード バージョンをクリーンアップしてディスク領域を解放するために、時々メンテナンス (「スイープ」) が必要になります。[35]
多世代アーキテクチャにより、他の製品に見られるロック機構による遅延なしに、OLTPとDSS/OLAP操作を同時に実行することができます。[36]
インデックス
Firebird は、データベースのすべてのインデックスを、他のアーキテクチャで使用される適切に調整された「クラスター化インデックス」のように動作させます。Firebird のインデックス バケットは 2 フェーズ ロックの対象ではなく、ブール演算の「and」と「or」は中間ビットマップ上で無視できるコストで実行できるため、オプティマイザが代替インデックスを選択する必要がなくなります。[37]
バリエーション
- Firebird SuperServerは、すべてのクライアント接続に対して単一のデーモン/サーバーを持ち、共有キャッシュを備えたマルチスレッドです。
- Firebird SuperClassicには、すべてのクライアント接続用の単一のデーモン/サーバーがあり、個別のキャッシュを備えたマルチスレッドです。
- Firebird Classic はinetd を使用してクライアント接続ごとに 1 つのサーバーのコピーを実行します。SMP システムに推奨されますが、ファイアウォール経由でアクセスする場合はイベント通知の問題が発生する可能性があります。
- CD-ROMカタログ、シングルユーザー版、または評価版のアプリケーションを作成するためのFirebird Embedded
ライセンス
Firebird データベース エンジンとそのモジュールは、オープンソース ライセンスである初期開発者向けパブリック ライセンス (IDPL) に基づいてリリースされています。これは、Mozilla パブリック ライセンス(MPL) バージョン 1.1 の派生版です。開発者は、Firebird を使用した製品や、そのソース コードから作成されたカスタム派生製品を公開する必要はありませんが、開発者がそうすることを選択した場合は、いくつかの条件に従う必要があります。IDPL により、開発者は Firebird を使用するか、Firebird をベースにした独自のクローズド ソース アプリケーションを作成できます。[38]
接続API
低レベルの Firebird ネイティブ API、サービス API、埋め込み SQL
FirebirdネイティブAPIは、Firebirdデータベースに接続するアプリケーションやミドルウェアによって直接的または間接的に使用されます。これは、Windowsシステムではクライアントライブラリfbclient.dllに、Unixシステムではlibfbclient.soに実装されています。[39]
サービス API は、ユーザー管理、バックアップ/復元、統計収集などのサービス管理タスクにアクセスして制御するための特別な機能セットです。
埋め込みSQLは、gpreと呼ばれるプリプロセッサを使用してC/C++およびCOBOL Firebirdアプリケーションの開発を簡素化する技術であり、SQL文をホスト言語のソースコードに直接埋め込むことができます。[40]
受賞歴
- 2007年 SourceForgeコミュニティチョイスアワード: エンタープライズ向け最優秀プロジェクト、最優秀ユーザーサポート。[41]
- 2009年 SourceForge Community Choice Award: エンタープライズ向け最優秀プロジェクト。最優秀プロジェクトおよび政府向け最優秀プロジェクト部門ファイナリスト。[42]
参照
参考文献
- ^ “Firebird 5.0.1”. 2024年8月2日. 2024年8月4日閲覧。
- ^ 「Firebird: 強力なクロスプラットフォーム SQL データベース システム」。SourceForge。SourceForge Media、LLC。2018 年 4 月 25 日。2018年5 月 2 日閲覧。
- ^ 「Firebird 1.5.5 リリースノート」。2009 年9 月 29 日閲覧。Firebird 1.5.5 C言語からC++言語への書き直しに関する一般的な注意事項
- ^ 「Inprise/Borland、Linux、Windows、Solaris で無料かつオープン ソースとなった InterBase 6.0 を発表」 2000 年 7 月 16 日。2004 年 12 月 6 日時点のオリジナルよりアーカイブ。2009年1 月 29 日閲覧。
- ^ 「Borland.com: Inprise/Borland、Linux で Interbase 6.0 を無料かつオープン ソースとして導入」。Linux Today。2009 年 6 月 30 日時点のオリジナルよりアーカイブ。2009年1 月 29 日閲覧。
- ^ 「Firebird History」 。 2014年3月14日閲覧。
- ^ Paul Reeves. 「InterBase の現状」 Borland ユーザー グループ p. 2 。2014 年3 月 14 日閲覧。
- ^ 「IBPhoenix コミュニティニュースアーカイブ」 2000 年 3 月 11 日。 2009 年1 月 29 日閲覧。[永久リンク切れ ]
- ^ 「IBPhoenix コミュニティニュースアーカイブ」 2000 年 4 月 11 日。 2009 年1 月 29 日閲覧。[永久リンク切れ ]
- ^ 「Firebird Relational Database 1.5 Final Out」Slashdot、2004年2月23日。 2009年1月31日閲覧。
- ^ Helen Borrie (2009 年 10 月 5 日). 「Firebird 1.5.6 リリースノート」. Firebird プロジェクト. 2012 年6 月 10 日閲覧。
- ^ Dmitry Yemanov. 「Firebird 2.0 最終リリースがプラハで開始」 。2009年2 月 5 日閲覧。
- ^ Helen Borrie (2012 年 4 月 5 日). 「Firebird 2.0.7 リリース ノート」 . 2012 年6 月 10 日閲覧。
- ^ Helen Borrie (2014 年 7 月 20 日). 「Firebird 2.1 リリース ノート」 . 2014 年7 月 20 日閲覧。
- ^ Helen Borrie (2015 年 11 月 19 日). 「Firebird 2.5.5 リリース ノート」 . 2015 年11 月 19 日閲覧。
- ^ Gray, James (2016年7月29日). 「FirebirdプロジェクトのFirebirdリレーショナルデータベース | Linux Journal」www.linuxjournal.com . Linux Journal . 2020年3月1日時点のオリジナルよりアーカイブ。 2020年3月1日閲覧。
- ^ mariuz (2012 年 2 月 14 日). 「Firebird Embedded と LibreOffice は、単一ファイル アプリケーションからクライアント/サーバー アプローチに拡張できる強力な組み合わせです」. Firebirdnews.org . 2013 年7 月 8 日閲覧。
- ^ ahunt (2013年5月28日). 「GSOC 2013: LibreOffice Firebird SQL Connector」 . 2013年7月8日閲覧。
- ^ Dotzler, Asa (2003年4月14日). 「PhoenixとMinotaurがFirebirdとThunderbirdに改名」MozillaZine . 2016年1月29日閲覧。
- ^ MozillaブラウザがFirebirdに、IBPhoenix、2003年4月23日時点のオリジナルよりアーカイブ、 2016年1月29日閲覧。
- ^ ビショップ、アレックス (2003 年 4 月 21 日)。「Firebird データベース プロジェクト管理者のアン・ハリソンがインタビューを受ける」。MozillaZine。2016年1月 29 日閲覧。
- ^ 「mozilla branding」。Mozilla Organization。2003年4月25日。2003年4月26日時点のオリジナルよりアーカイブ。2016年1月31日閲覧。
- ^ Festa, Paul (2003 年 5 月 7 日). 「Mozilla の Firebird の翼が切り取られる」. CNET . CBS Interactive . 2016 年1 月 29 日閲覧。
- ^ ビショップ、アレックス (2003 年 5 月 14 日)。「mozilla.org のクリストファー・ブリザードが Firebird の命名紛争について語る」MozillaZine。2016年1 月 29 日閲覧。
- ^ Paul Festa (2004年2月9日). 「Mozilla、命名争いで「火」を放つ」. CNET . CBS Interactive . 2016年1月29日閲覧。
- ^ 「Mozilla Firebird が Firefox に改名、バージョン 0.8 をリリース」MozillaZine 2004 年 2 月 9 日。2016年1 月 29 日閲覧。
- ^ 「Mozilla Firefox - ブランド名に関するよくある質問」mozilla.org . Mozilla Foundation . 2016 年1 月 29 日閲覧。
- ^ 「2分でFirebirdを知る」
- ^ Roman Rokytskyy. 「マルチバージョン同時実行制御に関するそれほど技術的ではない議論」 。2011年11 月 21 日閲覧。
- ^ 「Firebird (FireDAC) に接続する」。ファイアDAC
- ^ 「FDB: Firebird 用の Python ドライバー」。
- ^ 「マルチ世代アーキテクチャ (MGA) とレコードのバージョン管理」HK-Software。 2011 年 10 月 1 日時点のオリジナルよりアーカイブ。2011 年7 月 14 日閲覧。
- ^ 「InterBase World の Jim Starkey 氏へのインタビュー」。Marina Novikova、InterBase World。2011年7 月 14 日閲覧。
- ^ 「Multi Generational Architecture (MGA) とは何ですか?」Firebird FAQ 。2011年7 月 14 日閲覧。
- ^ 「データベース ハウスキーピングとガベージ コレクション」。Firebirdプロジェクト。2011 年7 月 14 日閲覧。
- ^ 「Multi Generational Architecture (MGA) とは何ですか?」Firebird FAQ 。2011年7 月 14 日閲覧。
- ^ 「InterBase World の Jim Starkey 氏へのインタビュー」。Marina Novikova、InterBase World。2011年7 月 14 日閲覧。
- ^ 「Firebird: 初期開発者パブリックライセンス バージョン 1.0」。Firebirdプロジェクト。2011 年7 月 13 日閲覧。
- ^ 「Firebird クライアント ライブラリ」。Firebirdプロジェクト。2011年7 月 14 日閲覧。
- ^ 「アプリケーション開発」。Firebirdプロジェクト。2011年7 月 14 日閲覧。
- ^ 「 SourceForge.net 2007 Community Choice Awards 受賞者」。SourceForge.net。2007年 6 月 15 日。2011年7 月 13 日閲覧。
- ^ 「SourceForge.net: 2009 CCA: Winners」。SourceForge.net 。 2009年7月28日。 2011年7月13日閲覧。
外部リンク
- 公式サイト
- Firebird - 開発者ポータル
- Firebird の照合、チャート。
- IBProvider による Firebird ドキュメント
- FirebirdFAQ
- FirebirdNews - Firebird および関連プロジェクトに関するニュース
- Firebird 3 への移行ガイド - 電子書籍
- Firebird Ole Db ドライバー (ODBC の代替)
- Jaybird – Firebird 用 JDBC ドライバー (github.com 上)
- Jaybird – Firebird 用の JDBC ドライバー (firebirdsql.org 上)
