Firebird 最 新 動 向

firebird 04.10.12 7:35 PM ページ1 9 8
★
★ ★
★
軽量&保守性に優れたオープンソースRDBMS
Firebird
最★新★動★向
Firebird 日本ユーザー会 加藤 大受
KATO Daiju ●[email protected]
★
はじめに
●インデックスのアーキテクチャ改良
バージョン2.0 以前のFirebird のインデックスは,
2004 年9 月4 日,数多くのオープンソースコミュニ
FirebirdのベースとなっているBorland社のInterBase
ティが一同に集まって開催された『オープンソースカ
の初代アーキテクトだったJim Starkey 氏が1984 年に
ンファレンス 2004』で,Firebird プロジェクトの
開発した最初のバージョンで実現していたアーキテク
Project AdministratorであるNickolay Samafatov(ニ
チャを踏襲しており,インデックスが設定されている
コライ サモファトフ)氏が来日し,Firebirdのアーキ
データのコピーをインデックスのB ツリーにも保持し
テクチャに関するテクニカルセミナーが行われました.
ていました.インデックスを使った検索が行われると,
当初2 時間の予定を1 時間延長するほどの熱の入った
インデックスに格納されているデータで該当するもの
そのセミナーで,Firebird の今後のロードマップが示
にはマークを付け,そのマークの論理和などを利用し
されましたので,この場を借りて今後のロードマップ
て検索を実現していました.Firebird のインデックス
をご紹介したいと思います.
はプリフィックス圧縮という圧縮アルゴリズムを採用
★
C++ に書き直された
Firebird 2.0
していましたが,実際のデータをデータページとイン
デックスページの両方に持っているため,大量のデー
本誌が発売される頃にはすでにFirebird 2.0のβ版が
タ変更や削除などが行われるとインデックスの再構築
リリースされていると思います.2.0 はFirebird プロジ
が必要となり,パフォーマンスの低下が起きる可能性
ェクトで当初より進められてきたC 言語からC++ 言語
がありました.Firebird 2.0ではインデックスはレコー
への書き直しが終了し,すべてC++ 言語で書かれた製
ド番号だけを持つことになるため,従来のバージョン
品としてリリースされます.C++ 言語に書き直される
のようにデータページとインデックスページにデータ
ことにより,メモリ周りとパフォーマンスの改善が実
を二重に持つ必要がなくなり,I/O処理の軽減とパフ
現されています.また,ソースコードのクリーンアップ
ォーマンスのアップが実現されています.
も行われ,非常に読みやすいコードになっています.注
インデックスのアーキテクチャが変更されましたので
目すべき機能としてはインデックスのアーキテクチャの
単一のデータベースファイルでデータとインデックスの
改良と新しいオンディスク構造体(ODS)の採用,導
管理を行っているバーチャルI/O機能であるオンディス
出テーブル(derived table)が挙げられます.
ク構造体も新しくなっており,Firebird 1.5からの移行
にはバックアップ/リストア処理が必要となります.
198● WEB +DB PRESS Vol.23
firebird 04.10.12 7:35 PM ページ1 9 9
軽量&保守性に優れたオープンソースRDBMS
Firebird 最★新★動★向
●導出テーブルの採用
SQL 文関連の新機能としては導出テーブルの採用,
CANCEL 文,EXECUTE BLOCK 文の採用がありま
す.導出テーブルは仮想テーブルとは異なり,SELECT
文によって取得されたテーブルのことです.Firebird
は大きなアーキテクチャの変更を伴っていますので,
今後のFirebirdプロジェクトの方向性を大きく決定す
べき製品となると思います.
★
Oracle との互換性を実現する
Fyracle
2.0では導出テーブルに別名が付けられるようになりま
オープンソースではないですが,Firebird 関連のプ
す.CANCEL 文はその名の通り,問い合わせを中止
ロジェクトとして,Janus Software社が開発している,
するSQL文です.EXECUTE BLOCKはトリガやプロ
Oracle のPL/SQL をFirebird 上で実行するFyracle が
シージャの記述言語であるDSQLで使用できる名前の
あります.Fyracle はPL/SQL コンパイラとランタイ
ないプロシージャで,1 回しか実行しないプロシージ
ムの2 種類があり,PL/SQL コンパイラは有償で,ラ
ャなどを構築したいときに便利に利用できます.
ンタイムはフリーで提供されており,Fyracle を使う
この他に,オプティマイザ周りにもさまざまな機能改
ことにより,Oracle対応のさまざまなソフトウェアを
良が行われているだけでなく,オープンソースのメモリ
Firebirdに移植することが可能になっています.Fyracle
デバッガツールであるvalgrindツールを統合し,メモリ
によって,Oracle対応のアプリケーションをオープン
周りの不具合の発見をしやすくするなどの試みが行われ
ソースのRDBMS であるFirebird に移植できるように
ています.
なり,RDBMS のコストの削減を実現できるようにな
★
Firebird 3.0
筆者の今までの経験から考えますと,Firebird 2.0
ります.
Janus社では現在Oracle 8i対応のPL/SQLをコンパ
イルするFyracleコンパイラを有償で販売しています.
が正式にリリースされるまでにはβ版の登場から半年
Janus社では将来Oracle 9i対応がリリースされたタイ
程度の時間を必要とすると思いますが,すでに来年の
ミングでOracle 8iのものは無償で公開する予定だそう
春にはFirebird 3.0 のβ版のリリースが予定されてい
です.Oracle 8i 対応のFyracleコンパイラが無償公開
ます.Firebird 3.0はInterBaseの初代アーキテクトだ
されることでより多くのアプリケーションがFirebird
ったJim Starkey 氏が現在開発している,64 ビット版
対応になっていくものだと思われます.
のFirebird を開発しているVulcan プロジェクトと
Firebird 2.0,ロシアのFirebird Windows 版のオープ
ンソースプロジェクトであるYaffil(すでにYaffil のメ
●Janus Software 社Fyracle について(英文)
http://www.janus-software.com/fb_fyracle.html
ンバーはFirebird プロジェクトに参加し,Yaffil プロ
今回のニコライ氏の来日はユーザー会の個人正会員
ジェクトの成果のマージを行っています)の3 つのプ
や法人会員のみなさんの会費と協賛金によって実現す
ロジェクトがマージされて3.0になる予定です.Vulcan
ることができました.今後もFirebird 日本ユーザー会
プロジェクトではオープンソースの分散ロックマネー
ではみなさんに役に立つ情報の発信やセミナーの開催
ジャ(DLM)を利用し,クラスタリングの対応や
を行い,Firebirdの日本での利用促進を続けていきま
SMP 対応のさらなる拡張などの大規模対応を実現す
す.これからもみなさんのご支援をよろしくお願いし
る予定となっています.また,Java VM の搭載による
ます.
Java プロシージャの提供なども予定されています.こ
Firebird日本ユーザー会のWebサイトでもさまざま
のVulcanプロジェクトとFirebirdプロジェクト,そし
な情報を提供しています.ぜひ,Webサイトも参照し
てYaffilプロジェクトで実現された細かなオプティマイ
てみてください.#
ザの改良などが合わさってFirebird 3.0としてリリース
されます.また,国際化の強化についても検討されて
おり,UCS-4の対応が予定されています.Firebird 3.0
http://www.firebirdsql.gr.jp
★
WEB +DB PRESS Vol.23 ●199