Firebird日本ユーザー会設立総会

 2004年4月3日(土)14時、Firebird日本ユーザー会設立総会を株式会社タイムインターメディア会議室において開催しました。スタートアップグループからの提案が設立総会において可決され、約1年にわたるスタートアップグループの活動を経て、正式にFirebird日本ユーザー会として設立することとなりました。
※このサイトは当初からの予定通り、スタートアップグループのウェブサイトという位置づけから、Firebird日本ユーザー会の公式ウェブサイトという位置づけとなります。会についての詳細な資料なども随時公開してゆく予定です。

What’s new in Firebird v1.5

 

Back to Firebird Project HOME
この文書はFirebirdの1.0リリースに対してバージョン1.5で行われた最も重要な変更について示したものです。Firebird 1.0について詳しい方が対象となります。変更点と強化点の全てを記すと膨大なため、ここでは強調すべき点にとどめます。全ての変更点については、 Firebird 1.5のリリースノートをご覧下さい。(6言語のPDF File があります)

新しいコードベース

今回のリリースでは、オリジナルのCからC++への移植されたコードによってビルドされています、その作業は2000年に始められていました。広範囲にわたるコードのクリーンアップとバグ・フィックスが続けられてきました、並行して新規のメモリ管理と言語(訳注:SQL、API等)の拡張が行われました。

オプティマイザの強化

v.1.5の開発プロセスの間に、SQLクエリー・オプティマイザは検査され、いくつかの強化と修正が行われました。その結果、クエリーのスピードは30%から60%も向上しました。
 

新アーキテクチャー
New Architectures

Windowsプラットフォームに新しく2つの特筆すべき機能として、クラシックサーバとエンベディットサーバが追加されました。ここ8年間にわたって、Windowsではクラシックサーバが存在しませんでした。クラシックサーバによってマルチプロセッサを有効に活用できるので、Windows版スーパーサーバの制限を逃れることが出来ます。使い勝手の面では、Windows版クラシックサーバは実験的でしかありません。エンベディッド・サーバはDLLとして提供され、シングルクライアントとしてFirebirdスーパーサーバに接続する機能を包含しているので、スタンドアロンアプリケーションやブリーフケースアプリケーションを効果的に短期間に開発することが可能となります。
 

新しい言語フィーチャー

 SQL92準拠の、CASE、COALESCEそしてNULLIFを含むいくつかの重要な新しい言語フィーチュアが加わりました。これらやその他の新しい言語実装の構文に関しては、リリース・ノートの中の言語拡張の部分を参考にしてください。  

包括的トリガー

 今では1つのトリガによって、Before又はAfterトリガで、そのトリガ内で必要とするすべてのDMLアクションをカバーさせるために、条件付きのインサート/更新/削除アクションを書くことができます。 (訳注:for insert or updateのようなマルチトリガのことです)
 これは、1フェーズで複数のトリガを行うアビリティを損なわずに、トリガの作成や保守をいっそう容易にします。

 

データベース・エリアス

 新しいaliases.confファイルでは、データベース用のサーバー・サイド・エイリアスを指定することができます。したがって、クライアント側でデータベースの完全なパスを用意する必要はありません。
 クライアント・アプリケーションから新しい Server[/Port]:Alias構文 で接続することができます。 

 

Varcharのトリミング

Varchar型のデータは、実データ長+2byteの長さでright trimされて返されます。注意:クライアントがサーバにリクエストをする際にTrimが行われます、Firebird 1.5のクライアント(fbclient.dll 又は libfbclient.so)はTrimを行います、この場合接続先のサーバが1.5以前のバージョンであってもTrimは行われます。以前のバージョンのクライアントを利用する場合には、たとえ接続先が1.5以降のサーバであったとしても、Trimは行われません。
 

インデックス数の拡張

リリース1.0と1.5の両方で、テーブル毎に定義可能なインデックス数の最大値は64から256に拡張されています。

 

Execute Statement

このPSQLの拡張によって、適切な dynamic SQLを記述した文字列を実行することによって、あたかも登録済のDSQLであるかのように実行されます。トリガーとストアドプロシージャの中で利用可能です。(訳注:テーブル名等を動的に変更するトリガーやストアドプロシージャが、この機能によって可能になりました)

 

新しいコンテクスト変数

CURRENT_CONNECTIONとCURRENT_TRANSACTIONが追加されました:これらはInterger型の値を持ちます。システムによって決定され、アクティブな接続と現在のトランザクションに関する値を一つずつ返します。DSQLとPSQLで使用可能です。
 

名前付制約の強化

名前付参照整合性制約のインデックスは、今ではユーザー定義識別子で指定されるかもしれません。

警告:

このフィーチュアを利用する場合、データベースは(Firebird)v.1.0.xまたはInterBaseにダウングレード出来ないでしょう。

トランザクション・セーブ・ポイント

 SQL99準拠の新しいユーザー・セーブ・ポイント(別名:ネストしたトランザクション)は、トランザクションをロールバックすることなく、ビジネスロジックエラーを扱う便利な方法を提供します。 DSQLにおいてだけ有効です。

 

新しい設定ファイル

 いくつかのファイル名がこのリリースで変更されました。
新しい名称は、殆どの場合「FireBird」または「fb」のバリエーションを含みます。例えば、以前のgds32.dllは今はfbclient.dllと呼ばれます。
 それらの1つが現在firebird.confという名称で提供される拡張設定ファイルです。
 ファイアバード1.5は高められたセキュリティ設定と、いくつかの有効なチューニングオプションを、このファイルでの設定によって提供します。 

当時の外部画像の一部は取得できないため、表示していません。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=73

設立総会のご案内と参加希望の確認

 公開メーリングリストへの通知と共に、設立総会のご案内をこのサイトに掲載致しました。また、設立総会に関しての参加希望の確認を、YahooMLの投票機能を使用して行っております。
設立総会に参加ご希望の方、或いは入会希望の方は是非投票機能でご連絡下さい。投票機能は下記URLからご利用になれます。http://groups.yahoo.co.jp/group/Firebird-jp-general/polls

Interview with Jim Starkey on InterBase World

Interview with Jim Starkey
2003 / 2 / 9
2004 / 3 / 1 翻訳版 DelphiマガジンVol.33 掲載
Written by Marina Novikova
on InterBase World (URL http://www.interbase-world.com/)
翻訳:林 務(株式会社アペックス)

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とJim氏の許可によって翻訳したものです。
 Jim Starkey氏は言わずとしれたInterBaseの産みの親として、Firebird / Yaffilのプロジェクトメンバーに大きな影響を与えています。このインタビューの中ではオープンソースに興味がないとか、Firebirdには余り関わるつもりがないと言われていますが、2003年12月からはFirebirdの64bitCPU対応のためのVulcanプロジェクトに参加してます。DmitryやNickolay等の若手エンジニアとのコラボレーションに期待が高まります。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲストの人となりがよく現れていて、私はいつも楽しみにしています。


Marina Novikova:  学歴をお聞きしてもよろしいですか? また、これまで働いた中でどこが一番気に入っていましたか?

Jim Starkey: 私がコンピュータに関わり合うようになったのはちょうど高校生になった頃のことでした。地方の大学は政府から補助金をもらって、高校の生徒達にFORTRANを教えていたのです。一番最初にパンチカード(ググッてみてね)を打ったときは、曲がってしまったことを覚えています。最初に触れたコンピュータはIBMの7040だったのですが、とても大きな部屋を専有するくらいばかでかくて、そのくせメモリは全部で32Kバイトしかなかったのです。翌年私は15歳になったのですが、その時に最初のコンピュータ言語をデザインしました。その言語は機械語とアセンブラをまねしたものでした。それ以来ずっとコンピュータと関わり続けています。 私の学位は、実は純粋数学に関するものなんです。私の公式のコンピュータ・サイエンスに関するバックグラウンドは、たった一つの特別プロジェクトコース に関するものだけです。 私の最初の「本当」のコンピュータに関する仕事は、 インターネットの先駆けであるARPAnet のためのデータベースマシンを作り上げるためのプロジェクトに関する調査でした。それは、アメリカ・コンピュータ社( 7人の有名人による会社 ) で行われました。そこにいた間、Codd博士のリレーショナル・データベースに関する初期の論文に出会ったのです。リレーショナル・データベース理論は、ばかげたほどアカデミックな言葉によって論じられていましたが、いったんその姿を現すと、じつに純粋で、単純で、エレガントだということがよくわかりました。そんなわけで、コンピュータが最初に私にとりついて、2番目はリレーショナルデータベースだったというわけなんです。  私の第 二 の「本当」の仕事はDECでのものでした。DECはとても働きやすいところでした。それは、もうほとんど無政府状態といったほうがいいでしょうね。私は、 Datatrieve と呼ばれる非常に成功した製品を作り上げました。実はこれ、マネージャがばかげた政治的な策略のためにキャンセルしたんですが、それは何の意味も無かったんです。そこで私は次のような月次報告書を書き始めました「Problems:プロジェクトはキャンセルされた。これが元に戻せないのであれば、開発スケジュールに影響を及ぼすであろう」。やはり、それも何の役にも立ちませんでした。第 2 のバージョンは、予定どおりに出荷されました ( まだキャンセルされたままでしたが ) 。こんなにマネジメントが最善の努力をしているにもかかわらず成功する会社は賞賛に値しますよね。しかし、ゴードン・ベルが DEC を離れたので、私も辞める時がきたのを悟りました。

Marina Novikova: あなたは、非常に興味深いプロジェクト Netfrastructure にかかわってますね。こういえば当たっているのかわからないのですが、Netfrastructureは、 SMP に最適化された SQL ‐サーバで、Java サポートをビルド・インしたものなのでしょうか?

Jim Starkey: Netfrastructure の背景にある本質的アイデアは、コンテンツ、プレゼンテーション、それからロジックを分離することです。コンテンツは「コンテンツ・ストア」に存在しているのですが、それはJDBC に準拠したマルチユーザでSQL‐ベース、トランザクション‐ベースの「コンテンツ・ストア」なのです。我々はそれをデータベースとは呼んではいません、というのも私はデータベース・マーケットが大嫌いだからなのです。そういうわけで、それは「コンテンツ・ストア」なのです。コンテンツ・ストア、OK?プレゼンテーションは本当に気の利いたページ生成エンジンとJava仮想マシンに統合されたロジックによってハンドリングされています。全てのコンポーネントは共通のロール・ベースのセキュリティ・スキーマを共有しています。 データベース(えーと、コンテンツ・ストアね)のアーキテクチャーはInterbase/Firebirdとは根本的に異なるものです、それはコンピューティング・プラットフォームの根本的な変化を反映しているからです。私が最初のバージョンのInterbaseを設計してアポロ DN320に実装したとき、それは十分に速かったし、随分お金もかかったし、2メガバイトを使い切ったものでした。今では、地方の商店街で売っているような最も安価なマシンでさえ128MBのメモリを積んで、何百ドルかでギガバイトまで拡張することもできます。賢明な人でしたら、ギガバイトのメモリを2MBで利用するのと同じ使い方はしないでしょう。エンジンはシングルプロセスで、マルチ・スレッドに対応して、SMPに連動します。 Netfrastructureの別の側面で興味深いのは、アプリケーションのトポロジーが逆転するということです。アプリケーションはデータベース・エンジンの内部で実行されます。そう、あたかも巨大なストアド・プロシージャのようにね。JDBCメソッドの実行は半ダースの機械語なんだけど、実際にはスレッドスイッチ、コンテクスト・スイッチ、プロトコル・スタックを下っていって、プロトコル・スタックを上っていって、データベース・エンジンに対してサーバ・レイヤーから呼ばれ、検証されて、それから恐らく各ステップで引数が変換されて、そしてまた元に戻されているわけです。そんなわけで、我々は、 2、 3 ダースのナノセコンドと大体 10 ミリセカンドの間の差異について論じているんです。それは10の何乗にもになってしまう。どんなデータの移動に対してもこれは起きてしまう。それから、もちろんだけど、この仕事は徹底したセキュリティ環境の元で行われています。つまり、アプリケーション言語はサンドボックス の中で見事に動いて見せなくてはならないわけです、Javaである以上ね。そういうことで、自分でJava仮想マシンを書き上げてしまったのです。

Marina Novikova: みんなが言っていることですが、Netfrastructureを一から作り上げることで、あなたが元々 Interbase/Firebird で使われていて、もっとも理解しているマルチ・ジェネレーション・アーキテクチャのアイデアを実装するのを助けたのでしょうか。言い換えれば、あなたは、次世代の Firebird 開発者に対して、どうやって小さくて速いサーバーを作り上げればいいのかについて、わかりやすくデモンストレーションを行ったのでしょうか。私の言っていることは当たっているかしら?

Jim Starkey: 私は、マルチ・ジェネレーション・アーキテクチャのアイデアを実装するのを助けたわけではありません、確かに私はそれを発明しました。しかし、それは私が DECにいた時のことです。そうまだ私がInterbase を始める前のことです。DEC は、私と一緒にやろうとはしなかったので、結局自分自身でそれを作り上げました。 NetfrastructureとInterbase/Firebird の間の大きな違いは、 Netfrastructure がディスク上ではなくメモリ上でのマルチ・ジェネレーション であることなのですが、Interbase/Firebird はディスク上でジェネレーションを保持しています。この変更には 2 つの主な理由があります。一番目は、メモリが安くなって豊富に使えるようになったということ。二番目は、 Interbase は共有メモリを使わないクラスタ向けに設計されていたので、ディスクを使うしかなかったのです。そんなわけで、素晴らしいことに Netfrastructure は Firebird より最低でも 10 倍速くなったのですが、実は本当に重要なものは私がスイープについて説明する必要がなくなったことなのです。

Marina Novikova: そうすると、あなたの意見によれば、Interbase/Firebird のマルチ・ジェネレーション・アーキテクチャはサーバの開発上の妨げとなるのでしょうか?非常に多くの更新があった場合、ガーベッジ・コレクションは更に遅く予測できない状態になるということでしょうか。

Jim Starkey: とんでもない。あなたが InterBase/Firebird のディスク書込みの簡潔さをを伝統的なトランザクションログと比較するなら、マルチ・ジェネレーション は、簡単に勝つでしょう、それはディスクのオーバーヘッドがより少ないという統計で現れるでしょう。ブロックヘッドだけがボトル・ネックを作り出すでしょうが、 Interbase/Firebird は競合しているシステムと比べてより少ないブロックヘッドしか発生させません。

Marina Novikova: あなたは、 Java がデータベース・ウェブ・アプリケーション開発者にとって最も良い選択であると思いますか?

Jim Starkey: 絶対的で正統的なアーキテクチャがあるので、Java はすばらしい言語です、小さくてシンプル、そして堅固です。しかし、それが何にでも向いているかと言えばそうではありません。Javaは、アプリケーションの意味を表すためには非常に良いプログラミング言語です – 小さくて、シンプルで、優雅で、堅固。サンドボックス実行モデルは、アプリケーションコードが通常ふさわしくないとされる場所での実行を許します、データベース ( えーと、コンテンツ・ストアね ) システムの内部でのようなところでね。一方、 Java における文字列の扱いに関するパフォーマンスは悲惨なほどです、それからスレッド同期化のプリミティブな部分、2つ の状態を持つMUTEX も、哀れなほど遅いのです。Netfrastructure では、アプリケーション・ロジックのために Java を使用していますが、コンテンツ・マネジメントとページ生成に関してはC++を残しています、そのことは実装が物語っているんですが。

Marina Novikova: どうして、Interbase/Firebird のインデックスはユニ・ディレクショナルなのでしょう?またどうして、Interbase/Firebird のインデックスはバランスド・ツリーではなくて、シンプル・ツリーなのでしょうか ( 我々が利用可能なソースがある、現在のバージョンでも確認することができるのですが )? それは、 Interbase/Firebird アーキテクチャの制限によるものなのですか ?

Jim Starkey: それは全て1 つの個人的な見解に還元されます : 私は、チューニングが嫌いなんです。コンピュータやソフトウェアは、スマートであるべきだと思っています ( 最適化なんてことについて考えなくてもすむようにね ) 。 この問題は、クラスタ化インデックスと非クラスタ化インデックスの対立なのです。伝統的なデータベース・インプリメントは、インデックスページとデータベースページの間でインデックスが飛び跳ねて歩き回らなくてはなりません。開発者はそのことを非常に迅速に学んだのですが、このことはディスク・アクセスにとって大変悲観的な結果をもたらします。そのため、彼らはレコードの物理的オーダがインデックスオーダと一致するように、クラスタリングを発明したのです。しかしこのことはスペース管理の問題と、ページ・オーバーフロー、 書き戻しのストラテジー、最適化の問題、それから全般的な混乱状態へ陥らせました。データベースのユーザは、物理構造、論理構造、アクセスパス・ストラテジー、それからインデックス設計を計画しなければならなくなってしまいました。そして、それらが必然的に引き起こす悪い結果に対して、データベース開発者はユーザの設計が悪いと非難したわけです。 そんなわけで私は、代替インデックス技術を開発したんですが、 それはbtree を Datacomputerの 反転と結合したものです。全般的なアイデアは、非常にシンプルなものです。インデックスとデータページの間を渡り歩くよりむしろ、インデックスは最初にスキャンされて、スパース・ビット・ベクターにおいて選択されたレコードを示すビットをセットし、ビット・オーダーに従ってレコードを処理し、それはまたディスク上の物理的配置にしたがっているわけです。このことは、いくつかの大きな勝利の鍵を持っています。一番目は、全てのインデックスは、うまく取りまわされたクラスタ化インデックスのように動作します。二番目には、インデックスバケットは、 二相ロッキングに支配されません。三番目に、ブーリアン、つまり「AND」と「OR」に関する操作について、ビットマップを媒介として実質的にコストなしに実行可能となります、つまりオプティマイザーが代替インデックス間で選択をする必要性そのものを消去してしまうのです。 そんなわけで、それは全く問題とならないのです、つまり最低でもインデックスが昇順か降順かということについてはね。インデックスが最初にスキャンされ、それからレコードがその次にフェッチされます。あなたがレコードを並び替えたいと思うなら、物理的順番でレコードをフェッチしてそれを並び替えるこの方法は、ランダムアクセスと共にディスクアームを鳴らしてフェッチするよりも「いつでも」速いのです。そして更に多くのレコードが関連し、さらに多くのソートがあれば尚更です。 インデックスの中を渡り歩くことが意味をなす唯一の時間というのは、あなたが 何百万ものレコードの中で、最初のいくつかを問い合わせた時だけです。実際のところ、これはdBase エミュレーションをしていた間は、デフォルトで起こりうるケースでした。そんなわけで、我々は賢明にも、バイナリ・アクセス言語を付加し、こうしたケースを理解するオプティマイザを準備し、インデックスを渡り歩いているのです。 Interbase/Firebird は普通の btree ( 元々バランスがとれている ) です。私は、バケットを空にして再結合するためのコードを書きませんでした。なぜなら、データの統計が通常安定していて、従って、スペースは再使用されるであろうし、もっと他に私が行うべき多くの重要なことがあると思ったからなのです。いつかは、重要なことをやり尽くして、バケットの再結合に手をつけることになるだろうと、信じていますが。

Marina Novikova: Interbase/Firebird は、完全なリレーショナルDBMS ですよね? 結局のところ、Forced Writesオプションが有効でない時、各トランザクションはそれぞれのコミット後に必ずしもセーブされるとは限らないわけですが。ACID におけるD は、 Durability を意味しているので、トランザクションがコミットされるなら、それは小さなハードウェア・エラーの場合には失われないことが確実でなくてはなりません。Interbase/Firebird においてはForced Writes をしなければならないわけですが、しかし、これは、オペレーションのスピードを減少してしまいます。このことについて何かお話し頂けますか?

Jim Starkey: そうですね。Interbaseは、信頼性の高いディスクを持つ堅牢なオペレーティングシステム上で動くように設計されましたが、Unix では、これは、パフォーマンスと絶対的信頼性の間でのトレード・オフを意味しました。私は、トレード・オフが好きではないのですが、そこにはそれがあったわけです。シリアル・ライト・ログ は、トレード・オフをほとんど消去するでしょうが、クラシック・モデルにおいてはそれを実行することは不可能です。Netfrastructure は、シリアル・ライト・ログのためのアーキテクチャーになっています。しかし、バッテリバックアップを持つ Linux はこれまで決してクラッシュしたことがありませんので、私は自分のトロくさいインプリメントのおかげで、睡眠時間を削られずにすんでいます。

Marina Novikova: Interbase 6 のソースコードが公開された後で、多くの興味深いものがあることが分かりました、不幸にも実現することがなかったものですが、例えば、式に対するインデックス、 双方向のカーソル、 XNETや、その他のものです。どうして、それらの開発者がそのアイデアを完成しなかった、と思いますか? これは、アーキテクチャの制限によるものですか、あるいは時間が足りなかったとか、または他の何かの不足のためだったのでしょうか? それから、あなたは、 オープンソースのDBMS についてどうお考えですか? Linux は今上昇傾向にありますが、オープンなデータベースは今後、DBMS マーケットのかなりの部分を占めると思いますか ?

Jim Starkey: オープンソースプロジェクトのアキレス腱は、意思決定の方法にあると思います。コンセンサスに最も依存しているのですが、革新に関するコンセンサスは、とてもとても難しい。そんなわけで、オープンソースプロジェクトは、標準化へ向かう傾向があると思っています。Linux は、良くも悪くも、Posix と Unix に基礎を置いている。OK 、それらは20 年間の間に陳腐化してきたものだが、ふーむ、たしかにうまく動いています。一方、 SQL はテーマではあっても標準化されていません。現実の標準は、あらゆる目的に対してほとんど役に立たないもので、インタオペラビリティに沿って作成されたものにすぎないのです。確かなことは、プロジェクトを組織化するために必要なものは何もないということなのです。 データベース ( とコンテンツ・ストアね ) システムが扱うべき重要で、興味深い問題は山積みです。例えば、ウェブの基礎は検索です。どのようなデータベースシステムが、オープン・コンテクスト検索をサポートしているでしょうか? 私が知る限り、一つだけです。どのようなデータベースが、ユーザープロファイルに基づくデータを自動的にフィルタリングするでしょうか? 私が知る限り、一つだけです、それはコンテンツ・ストアと呼ばれています。 Firebirdの連中は、セキュリティ・ホールをふさぎ、システムを安定させ、バグを修正し、問題点を取り除く良い仕事をしてきました。そのシステムは、うまくマイナーチェンジすることを必要としていて、いまではそれは一つの答えを持っています。しかし、私はそういったことによって、データベース・テクノロジーにおける世界的リーダーとしての Interbase の伝統的な役割が取り戻せるとは思いません。Interbase/Firebirdは異種接続性、 二相コミット、カスケーディング・トリガ、ユーザー定義関数、イベント・アラータ、BLOBフィルタ、配列サポート、 双方向のマルチベンダーゲートウェイ等を持つ最初のデータベースでした。しかしその後、私はオープンソースプロジェクトが革新を促しているのを全く見ていないのです。 私はこれが少し難しいことだということを知っていますが、私はオープンソースプロジェクトとしての Interbase を決して開発することはないでしょう 。私は政治家ではなく技術者です。私は、自分が急進的な新しいデータベースアーキテクチャに関してコンセンサスを作らなかったということを強く確信しています。私は革新を信じ、そして革新は、一貫したビジョンを必要としています。私はオープンソースの中でそうしたビジョンを見たことがありません。しかし、私はこれだけは知っています。Firebird がクラシックとスーパー‐サーバのコードベースを分離しない限り、どちらも、どこへ行くことも出来ないでしょう。それぞれが、他方の開発を抑制してしまっているからです。

Marina Novikova: あなたは、そうした多くの発明に満足していますか? Netfrastructure ではあなたの夢やアイデアを実現したわけですが、Interbaseと Firebird の開発をどのように評価していますか? あなたがFirebirdの発展を見ることは興味深いことで、喜ばしいと思っていらっしゃるのでしょうか?例えば、アーキテクチャの変更のような重要な改善、メインバグの修正、 DSQL の拡張、パフォーマンスの改善等々ですが。

Jim Starkey: 私は、一群の発明をしてきましたが、それら全てを愛しています。VAX Datatrieve は、 VAX を離れて存続し、オラクルの爪から逃れ、 DECを離れて存続し、コンパックを離れて存続し、そしてHPの製品としてまだ生き続けています。私はVAX Datatrieveを気に入っています。それから、私にはとんとわかりませんが、どういうわけか PDP-11 のDatatrieve は、同じくまだ利用可能です。私はそのこと自体にとても驚いています。開発者が Firebird の様々な部分の周辺に腕を伸ばすのを見ることは、興味深いことですが、私は、誰かがFirebirdと共に走り出すのを待ち続けています。おそらく、誰かがそうするでしょうね。私が Firebird に活発にかかわっていたなら、自分がしただろうと考えているのは以下のような事です :1. シャム双生児となっているクラシックとスーパーサーバを分割すること、それによってそれぞれが生きながらえることが出来る。2. SQL をふさわしいエンジンに移動する間、レガシー・インタフェースとして BLR を維持すること。DSQL を捨てること。3. 2 レベルのネーム・スペースを導入すること4. スーパーサーバに対する知的に防御できる、有効なセキュリティを実装すること5. トリガ、ストアド・プロシージャ及びUDF のために Java バーチャル Machine を埋め込むこと6. スーパー‐サーバのためにシリアル・ライト・ログを実装すること ;書込みに注意を払わなくてもいいように

Marina Novikova: あなたは、オリジナルの Interbase アーキテクチャにおけるいくつかのあなたのアイデアが次の開発者によって不正確に理解され、もしくは誤って実現されていると思いますか?

Jim Starkey: どちらもないですね。アイデアもアーキテクチャも、最初から十年間にわたって利用可能なプラットフォームに完璧に適合していました。私が別のデータベースシステムを作らなければならなかったのでしたら、アポロ DN320 のために、マルチ・レベルなネーム・スペースを持つネイティブなSQLを作ったでしょうね、でも、他のものほとんど同じになったでしょう。 私が現代のマシン上ですべてをやり直さなければならないのであれば、再びすべての点で Netfrastructure を書くことになるでしょうね。しかしその時は、システムテーブルをケース・インセンシティブにするでしょう。それから、インデックスキーに関するアンの言うことを聞かないといけないですね。

Marina Novikova: Interbase/Firebird/Yaffilのコミュニティ全体に対して、望んでいることがあればお聞かせ下さい。

Jim Starkey: 過去から学びなさい。将来のために設計しなさい。もはや1984 年ではないのです。それにふさわしい扱いをしましょう。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/site_rsrc/images/92/interview_jim_starkey.html

設立総会のご案内

Firebird日本ユーザー会

~ 設立総会のご案内 ~

 

  昨年5月にユーザー会設立のために準備会を立ち上げて、ようやく1年が経過しようとしております。この間、議論を重ねてまいりましたが、この度以下の通りFirebird日本ユーザー会の設立総会を行うことを決定いたしましたのでご報告致します。

日時:2004年4月3日(土) 午後2時~
場所:タイムインターメディア社会議室
地図:http://www.timedia.co.jp/company/map

※当日、総会後に懇親会を予定しております。(詳細未定)

 Firebird日本ユーザー会を設立する目的は、国内における情報技術産業に関わる人々のみならず広く一般市民に対して、オープンソースのリレーショナルデータベース・Firebirdの普及と発展に関する事業を行い、低コストで高機能なリレーショナルデータベースを提供することを以て情報化社会の発展に寄与することにあります。

 また、この目的を達成するために、以下の活動を行います。

  1. Firebird及びミドルウェア、関連ツールなどの研究開発及び普及促進
  2. Firebirdに関する情報の公開、海外情報の紹介
  3. 会員相互および外部との技術的・人間的交流

 さらに、上記の目的を達成するために、以下の事業を行います。

  1. Firebird関連技術に関する調査研究、情報収集、配布
  2. Firebirdの研究会、講習会、インターネットホームページの開設
  3. その他本会の目的を達成するために必要な事業を行います。

 ユーザー会への参加は、会費を頂く個人・法人の正会員と無料の準会員の二種類となります。会費は個人正会員が年間三千円、法人正会員が年間三万円とさせていただく予定です。

 上記の目的等につきましては、以下に規約案を掲載いたしますが、設立総会にて最終的に決定されるものですので、現時点での決定事項ではございません。

  Firebird日本ユーザー会スタートアップグループは、日本においてFirebirdのさらなる普及を目指すため、Firebirdに関心を持つ、個人・非営利組織・企業の皆様方のご参加とご協力を頂きたいと思います。

 ・Firebird日本ユーザー会 規約案 ( PDF版 )

 

2004年3月1日
Firebird日本ユーザー会
スタートアップグループ 代表 林 務

 


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=71

Firebirdの特徴 (Factsheet)

Firebirdプロジェクトのホームページはこちらです

 Firebird 1.5は、フル機能を備えたSQLデータベースエンジンです。軽量で、設定や管理に最小限の労力しか必要としないにもかかわらず、大変強力です。シングルユーザーによる単一のデータベース利用から全社規模のエンタープライズ向けシステムまで、容易に拡張可能です。1つのFirebirdサーバは、それぞれが複数のクライアント接続を持っているような、複数の独立したデータベースを扱うことができます。なによりもFirebirdは真のオープンソース製品であり、商業使用も含め一切のライセンス使用料は必要ありません。

Firebirdの特徴

  • A.C.I.D. :  FirebirdはRDBMSに必須とされるAtomicity(原子性)、Consistency(一貫性)、 Isolation(分離性) 、Durability(耐久性) を提供します。

  • MGA: Firebirdの独特の特徴である「マルチ・ジェネレーション・アーキテクチャー」によって、どのような場合でもデーターベース・エンジンは同じレコードの複数のバージョンを扱うことが出来るので、全てのトランザクションは他の並行するトランザクションの影響を受けずに自身のバージョンを持つことが出来ます。(読込は書き込みをブロックしませんし、書き込みは読込をブロックしません) FirebirdはMGAによって、OLAP(訳注:オンライン分析処理)と同程度にOLTP(訳注:オンライン・トランザクション処理)にも向いています。 

  • ストアドプロシージャ: FirebirdのPSQL(手続き型SQL)を使用すると、容易に強力なストアド・プロシジャーを作成することができます。ストアドプロシージャは完全にサーバーサイドでデータの処理を行います。特別なフレーバーとして、サーバー上で一行毎にデータ計算可能な、クライアントサイドから「仮想テーブル」のように見え、取り扱い可能な「セレクタブル・ストアド・プロシジャー」があります。(帳票作成時に特に役立ちます)
  • イベント: ストアド・プロシジャーとトリガは、「稼動中のデータベース」をTCP/IPポート上のクライアントからモニタ可能なイベントを生成できます。

  • ジェネレータ: ジェネレータ(別名:シーケンス)のコンセプトは、オート・インクリメントを簡単に実装できるようにすることで、それ以上のものではありません。ジェネレータは各トランザクションから独立した、持続性の値を持つのInt64型のカウンタです。もちろん、他の目的にも使用することが出来ます。

  • 読込専用データベース: 例えばデータベースエンジンのエンベッド版と共にCD-ROMでデータベースを配布するような場合には、このフィーチャーは配布を容易にする手助けとなります。
  • フル・トランザクション制御: 単一のクライアントアプリケーションは、複数の並行するトランザクションを利用することが出来ます。クライアントは各種の分離レベルをトランザクション毎に完全に制御することが出来ます。2相コミット・プロトコルによって、複数のデータベース間での一貫性を保証することが出来ます。また、複数のトランザクション・セーブ・ポイントや、楽観的ロックもサポートしています。

  • オンラインバックアップ: バックアップ時にデータベースをシャットダウンする必要はありません。バックアップのプロセスは、バックアップを開始した瞬間のデータベースの状態をスナップショットとするので、ユーザーはバックアップ中も作業を続行することが出来ます。そのため、24時間連続稼働が可能となっています。

  • トリガー: それぞれのテーブルは多くの行レベルのトリガーを持っています、それはINSERT・UPDATE・DELETEの前後に起動されます。トリガーの中では、PSQLの力を余すところなく使うことが出来るだけでなく、デフォルト値、データの一貫性、例外処理等々を利用することが出来ます。また、Firebird 1.5では新機能として「ユニバーサル・トリガー」が実装されました。この機能によって、一つのトリガーで、あるテーブルに対するInsert・Update・Delete一度に設定することが可能となりました。

  • 外部関数: ユーザー定義関数ライブラリ(UDF)はC、C++、Delphi等の言語によって書かれ、DLLやSO形式でエンジンに簡単にプラグインすることができます。UDFによって、Firebirdサーバーの「内部」関数を拡張することが可能です。

  • カスケード可能な参照整合性宣言: テーブル間の親子関係をn-level の深さで一貫性を保ち検証することができます。

  • 文字セット: FirebirdはUNICODEを含む多くの文字セットと多様なコレーションを実装します。

標準SQL規約への適合

FirebirdはSQL92のEntry Level 1 に完全に準拠しています。また、SQL-99規格のほとんどを実装しています。さらに、より実用的な機能を追加しています。
Firebirdは、DML/DDL文、FULL/LEFT/RIGHT[OUTER] JOIN 文法、UNION、DISTINCT句、サブクエリ(IN、EXSITS)、内部関数(AVG、SUM、MIN、MAX、COALESCE、CASE)、整合性制約(PRIMARY KEY、UNIQUE、FOREIGN KEY)、当然ですがSQLデータ型一般、等を利用出来ます

Firebird はドメイン、フィールドレベルのチェック制約、View、例外、SQLロール、きめ細かな権限管理についても実装しています。詳細については、リリースノートとFirebird Refrence Guide をご覧下さい。

ハードウェア要求

Fireibrd は殆どどのようなハードウェア上でも動作します。とても非力なハードウェアでも役に立ちます、特に、Linux上で力を発揮するでしょう。どのようなRDBMSも、パフォーマンスに影響を及ぼすお約束の問題があります。物理メモリ(スタートには16MB程度で間に合うでしょう)、ストレージ・サブシステムの速度(RAIDシステムのような)等々。もちろん、お勧めのハードウェア構成は読者がデータベースに望んでいることによって異なります。例えばどのくらいの大きさになりますか?どの程度の同時接続ユーザーが見込まれますか?あなたは最小限の設定でスタート出来ます。そして、必要があれば後でサーバーを強化すれば良いのです。

 

利用可能なOSプラットフォーム

 Firebirdにもっとも多く使用されるOSはLinuxとWindows(ターミナルサーバーとCitrixメインフレームを含みます)です。Firebirdは、他にMacOS XやSolaris、それにHP-UXのプラットフォームをサポートしています。
 苦痛を伴うことなく、あるプラットフォームから他のプラットフォームにデータベースを移転することが可能です。単にトランスポート可能な形式でバックアップをとり、移転先のプラットフォームで復元するだけです。

接続性

Firebirdは、以下を含む多くの接続方法をサポートします:
C/C++およびDelphiのためのネイティブなコンポーネントパッケージ、ODBC、JDBC(JayBird)、PHPドライバ、OLEDBドライバ、dbExpress、.NETデータプロバイダ。そして最終的にはfbclient.dll(.so)を使用することによってAPIの直接呼び出しを行うことが出来ます。

サイズ限界 

Firebirdは実際に巨大なデータベースを扱えます。データベースは複数のファイルによって構築することが出来、それぞれのファイルサイズはOSが提供するファイルサイズの限界まで拡張可能です。単一のデータベースファイルのサイズに関する理論的な限界は64テラバイトですが、殆どの場合はOSやファイルシステム、そしてHDDの残り容量により制限されます。

Server engine versions

データベース・エンジンには3種類のバージョンがあります。それぞれに互換性があり、それぞれに異なった特徴をもっています。

  • クラシック・サーバー(1クライアント接続毎に1プロセス型。SMP及びハイパー・スレッディング対応)
  • スーパー・サーバー(全接続は1モジュールでハンドリングされる。現状ではSMP及びハイパースレッディング非対応)
  • エンベデッド・サーバー(単一のDLL又はSOファイルにエンジンの全機能を内蔵。シングル・ユーザー、シングル・データベース使用向け)

    上記の全てのバージョンは同一のデータベース・ファイル形式を使用するので、いつでも好きな時に相互に切り替える事が可能です。

ライセンス 

Firebirdは、Mozilla Public License1.1と同じ条件の、IPL(InterBase Public License)でライセンスされます。Firebirdの使用は完全にフリーであり、顧客に対しても完全にフリーで配布することができます。
 あなたが自分のプロダクトをどのようにライセンスするかに関わらず、あなたのプロダクトのためのソース・コードを公開する必要はありません。けれども、データベースエンジンそのものを修正する場合には、修正したソース・コードに対して誰でもアクセス出来るようにしなければなりません。

ツール

多くのツールが Firebird で役に立ちます。いくつかはフリーで、いくつかは商用のものです。管理ツール、開発者向けのツール、UDFライブラリ、接続ツール、その他にもたくさんあります(下記のリンク・セクションを参照)。

サポートと資料

Firebirdプロジェクトのホーム(www.firebirdsql.org)では、プロジェクトに関するたくさんの有用なリンクが掲載されています。 

 IBPhoenix社では長年の経験を積んだ専門家による多様なサポート契約を提示し、かれらのウェブサイトにはハウトゥや高度に技術的なドキュメンテーションなどの、より多くの技術情報があります。

コミュニティ

常に成長を続けるFirebirdユーザーのコミュニティと、いくつものニュースグループが素早いオンラインサポートを行います。それらのファイアバードに関するメーリングリストはプロジェクトのウェブサイトに全てリストされています(このページの下部にリンクがあります)。

歴史

Firebirdは、2000年8月にボーランドがオープン・ソースとしてリリースしたInterBase 6.0のソース・コードに基づいており、InterBaseは今を遡ること20年前(1984年)からリレーショナル・データベース製品としての利用されてきた実績を持ちます。


Firebirdリンク

ダウンロード: Firebirdパッケージはこちらをクリックして見つけることが出来ます

ドキュメント: 詳細はこちらのリンクをご覧下さい

ライセンス: The complete IPL

ツールと管理プログラム: こちらのリンクをご覧下さい

コミュニティ: ニュースグループとメーリングリストはこちらに一覧があります


ファイアバード・プロジェクトの原動力のひとつがFirebirdSQL財団です。
プロジェクトを発展させ、継続することを支援するために、資金を集め、開発者に対して補助金を交付することによって、ファイアバードの開発を支援する個人やスポンサー企業の組織です。財団はプロジェクトの資金調達のためにスポンサー企業を歓迎するのと同じように、企業や個人の新メンバーを歓迎します。FirebirdSQL財団については以下のURLをご覧下さい。
http://www.firebirdsql.org/index.php?op=ffoundation⊂=jp&id=main_jp

(c) 2003 by The Firebird Project. All names of products and companies mentioned herein are trademarks of their respective owners.
Firebird プロジェクト・ホームへ戻る

当時の外部画像の一部は取得できないため、表示していません。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=70

動作検証資料

 Firebird動作検証資料

Win系

1.5.1

1.5.0

1.0.3

ミドルウェア

Win 2k Pro

 ○

○

○ 

・Delphi5Pro UP2 + IBX(Delphi5・6付属品)
・Jsva/jsp+JDBC

Win 2k SV

 

○

○

・Jsva/jsp+JDBC

Win XP Pro

 ○

○

 ○ 

・Delphi6Pro UP2 + IBX(Delphi6付属品)
・Jsva/jsp+JDBC
・Firebird .NET Provider1.5.2 for .NET Framework1.1 + VB.NET2003
・PHP4/ODBC

Win XP HOME

     ?   ?  

Win 98

    ○   ? ・Firebird .NET Provider1.5.2 for .NET  Framework1.1
・VB.NET2003

Win Me

     ?   ?  
RedHat系

1.5.1

1.5.0

1.0.3

ミドルウェア

Redhat7.x以前  

△
*1

○

Redhat8.0  

○

○ 

・D6/IBX
・PHP4
Redhat9.0  

○

○ 

・D6/IBX
・PHP4
FedoraCore1  

○

 ○

・D6/IBX
・PHP4
・PHP5
Redhat9.1

○

     
 
RedHat
Enterprise系

1.5.1

1.5.0

1.0.3

ミドルウェア

AS2.1  

△
*1

○

 
AS3.0  

○

   
ES2.1  

△
*1

○

 
ES3.0  

○

   
WS2.1  

△
*1

○

 
WS3.0  

○

   
SUSE

○

     
 

○

     
 
Knoppix系

1.5.1

1.5.0

1.0.3

ミドルウェア

中神仕様  

○

   
 
Debian 系

1.5.1

1.5.0

1.0.3

ミドルウェア

Debian GNU/Linux 3.0  ○

?

  ・PHP4/ODBC
Free-BSD系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
HPUX系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
Mac-OS
Darwin系

1.5.1

1.5.0

1.0.3

ミドルウェア

MacOS X 10.3.5 Panther  ○
(※2)
– – ・IBConsole
・IBOConsole
・PHP5 – ibase関数群
・ODBC
・C API
net-provider系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
sinixz系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
 
solaris-sparc系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
solaris-x86系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
   募 集
 当ページでは、動作実績情報を募集しております。「動作確認及び動作しませんでした」の情報があればFirebird日本ユーザー会のメーリングリストか当ページの管理者までメールしてください。
*1 GCCをgilbc 2.3.2-4以降の構成に入れ替えると、動作する所までは確認できています。
※RedHat7.3での構築方法についてはこちらのドキュメントが参考になります。
※2 但し、ClassicServer版のみ。ソースからビルドしてもSuperServerでは動作しない。動作しない状況はNPTL関連のものに酷似しているので、まさにそうだろう。PHPと一緒に使う方法などはこちらを参考に。
注)本資料はFirebirdユーザー会メーリングリストでの情報を基に作成した資料であり、動作保証するものではありません。
  また、各ミドルウェア固有の問題に関する検証資料ではありません。

旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=68

ダウンロード

Firebirdのインストールなどに必要なリソースのダウンロードのためのリンク集です。
最新の情報は出来る限りソースフォージのFirebirdプロジェクトで確認して下さい。

管理ツール & ドライバ

FlameRobin 0.8.3









FlameRobin 0.8.3日本語インストーラ(Windows32ビット版)
FlameRobin 公式ページ

Firebird .NET Data Provider

Version 2.1.0 for .NET 2.0

Version 2.5.0 Alpha 2 for .NET 3.5/2.0

JayBird
JDBC ドライバ

Jaybird 2.1.6 (Critical)

Patch release, 19 July 2008. Details HERE.


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=67

PHP4 RPM for Redhat Linux9

 

■Redhat Linux9 用 PHP4.2.2 RPM — InterBase / Firebird Support

 Redhat Linux9 付属のRPM(php-4.2.2-17.i386.rpm)では、interbase関数のサポートがされていないため、SPECファイルを編集してRPMを作成してみました。

 php-4.2.2-17.1.i386.rpm
 php-interbase-4.2.2-17.1.i386.rpm
 php-manual-4.2.2-17.1.i386.rpm

 インストール後に、/etc/php.iniを編集して、以下の行を追加して下さい。

; Dynamic Extensions ;
extension=interbase.so

 Apaceh2.0対応なので、–with-DEAPIオプションがいるのかいらないのか不明ですが、合わせて追加してあります。

 php.17.1-mod_interbase.spec

 ※RPM4は今回初めてさわったのですが、rpm -ba とかではなく、rpmbuild -ba とコマンドが分離されていたので、少々とまどいました。

by T.Hayashi (2004/2/1)

■マルチバイト関係Configure追加

 前回のビルドでは、mbstring関係が抜けていました。具体的には以下の3つのオプションが有効になっていませんでした。

‘–enable-mbstring’ ‘–enable-mbstr-enc-trans’ ‘–enable-mbregex’

 上記のオプションを有効にしたRPMは以下になります。

 php-4.2.2-17.2.i386.rpm
 php-interbase-4.2.2-17.2.i386.rpm

 specファイルはこちらです。

 php.17.2-mod_interbase.spec

by T.Hayashi (2004/2/7)

 


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=66

第4回準備会について

第4回準備会について、以下の日程で行います。

会場は、タイムインターメディア社の会議室をお貸しして頂きました。

日時:2004年2月14日(土) 14時~18時
場所:株式会社タイムインターメディア会議室
http://www.timedia.co.jp/company/map

参加を希望される方は、例によって投票を設定したので、お願いいたします。
http://www.egroups.co.jp/polls/Firebird-jp-general
また、[Firebird-jp-general]ML参加者でないと投票を行うことができませんので、
それ以外の方で参加を希望される方がいらっしゃいましたら、林までメールにてご連絡下さい。
なお、この会合にはFirebirdに興味を持っておられる方なら、どなたでもご参加頂けます。
皆様のご参加をお待ちしております。
#終了後に恒例の焼き鳥会を行う予定です。こちらだけの参加でもどうぞ。