firebird 04.10.12 7:35 PM ページ1 9 8

★

★ ★
★
軽量&保守性に優れたオープンソースRDBMSFirebird
最★新★動★向Firebird 日本ユーザー会 加藤 大受

KATO Daiju ●dkato@firebird.gr.jp

★

はじめに

●インデックスのアーキテクチャ改良バージョン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

軽量&保守性に優れたオープンソースRDBMSFirebird 最★新★動★向●導出テーブルの採用
SQL 文関連の新機能としては導出テーブルの採用，は大きなアーキテクチャの変更を伴っていますので，今後のFirebirdプロジェクトの方向性を大きく決定すCANCEL 文，EXECUTE BLOCK 文の採用がありまべき製品となると思います．

す．導出テーブルは仮想テーブルとは異なり，SELECT★

文によって取得されたテーブルのことです．Firebird

Oracle との互換性を実現する
Fyracle2.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

ります．
Janus社では現在Oracle 8i対応のPL/SQLをコンパ筆者の今までの経験から考えますと，Firebird 2.0

イルする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