(株)毎日コミュニケーションズ様のご厚意により,
書籍 "Firebird 〜 オープンソースデータベースの導入と運用の実際" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
毎日コミュニケーションズ様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
Firebird の初めての解説書です…という謳い文句と共に発売された本書. 確かにその言葉に偽りは無いのだが, Firebird と互換性のある InterBase についての解説書は, 実は初めてではない. アスキーより出版されている 「データベース Linux」シリーズの 2 冊は, 本書より数年前に出版された InterBase に関する優れた解説書で, 私もこれらの本で InterBase に目覚めたと言っても過言ではない. なぜこのことにあえて触れたかというと, 「データベース Linux」シリーズの著者の一人が, 本書の著者である加藤大受氏だからである. 氏は Linux Japan 誌にも InterBase についての記事を連載されていたこともあり, 著者を見て迷わず飛びついた! というのが, 正直なところである.
「導入と運用の実際」というサブタイトルにふさわしく, 導入 (インストール) に関しては非常に分かりやすく解説されている. インストールを解説している OS は, Windows, Linux, FreeBSD, MacOS X. また解説している開発・運用環境は, Perl, Python (Zope), Java, PHP, ODBC, Delphi/Kylix である. ここまで調べ上げるには, 大変な労苦が必要だろう. それだけでも本書は「保存版」と言える価値がある.
ところで, 製品版の InterBase を買えばおそらく誰もが感じるのが, 「なぜマニュアルがこんなに分かれているの?」ということだろう. 少なくとも Version5.5 の時は, マニュアルが 5 冊に分かれていた. しかもタイトル・ボリュームがどれも似たり寄ったりで, 調べたいことに対し, どのマニュアルを開けばよいか, わかりにくい. (最悪, 目次を 5 回見なければならない!) それが本書で 1 冊に編纂されているのだから, 非常にありがたい. Firebird/InterBase を利用する開発者は, リファレンスとして手元に置くと便利だ. 特に巻末の付録に収められている豊富なリファレンスは素晴らしい. 実際, 本書を会社へ持っていったところ, 同僚の新人君は飛びつくように本書を参照していた. もっと早く買ってあげれば良かったと, つくづく思う.
Linux コミュニティの場でこういう発言は申し訳ないのだが, 私の仕事は 8 割方, Delphi である. RDBMS も 8 割方, Firebird. もちろん Firebird を動かすサーバー OS に Linux を採用することは良くある. Delphi には, Firebird の性能をフルに引き出せる, InterBase Express というミドルウェアがあるのだが, 高機能な反面, ややこしい面もある. 特にトランザクション, ロック, 排他制御などを厳密に理解せねばならない. 前述のアスキーの本は, この分野に大変明るい (関連する Delphi のヘルプミスまで指摘してあったりする). しかし本書の場合, それらの点がそれほど多くは語られていないように感じた.
ストアドプロシージャやトリガーといった機能については, 構文はもちろん, それがどのような使われ方をするのか豊富なサンプルで説明されている. ただ, 膨大なサンプルを一通り読まないとその真価が分かりにくいのが少し残念な気もする. 代表的な利用例 (テーブルの変更履歴を記録するトリガー, 連番主キーをセットするトリガーなど) は Tips 集のような形でまとめられていると良かったかもしれない. また, 個人的には Firebird の選択プロシージャはかなり強力と感じているのだが, この点も多くは語られていないのが少し勿体ない感じがした. それと強力な UDF も…っと, 辛口になりすぎるのでやめておこう.
少々辛口のレビューになってしまって著者には申し訳ない気もするが, これだけの情報量を収めた本を母国語で読めるのは大変恵まれたことだと思う. Delphi からバリバリと使いこなすには少々物足りないが, 逆に Delphi 以外でもこんなに使えるんだということを知らしめてくれ, 「今度は Zope から使ってみようか」という気にさせてくれる. これを機に Firebird も PostgreSQL/MySQL と並び, レンタルサーバーのサービスメニューに当たり前にラインナップされる日が来ることを楽しみにしたい.
最後に, 次なる Firebird 本を出版される著者・出版社のために, 些細な要望を伝えさせて頂くと,
最後までお読み下さり, ありがとうございました.
エクセルで顧客管理をするのに限界を感じ, Linux+Apache+Perl+MySQL で簡単なシステムを作った. 本書を参考にしてデータベース部分を Firebird で置き換え, Perl からデータベースを利用する部分を少し書き換えて, MySQL と比較しようとしたが挫折した. 簡単に言うとどこに何が書いてあるのかわかりにくく, インターネットのホームページでなく, 付録 CD-ROM 付きの解説書を参考にしているメリットがあまりない. 以下理由などを述べる.
Windows で Borland 製品ばかりを使っていた人には Firebird でなにができるのかざくっと知るにはよいかもしれない. しかし, そんな人には, Linux や MacOS に関する記載の部分は邪魔なだけであろう. Firebird を使ってみたい Linux 使いには, 必要な部分をインターネットで検索する方が遙かに有用だと思う. ある部分は Linux で説明し, また別の部分は Windows で説明して, 付録の CD-ROM からソフトをインストールしようとすると Windows 版の実行ファイルしかなかったり, Linux 版のソースコードしかなかったり, 無いと思っていたものが有ったりする. 疲れる. 1 つのプラットフォームに絞って目的, 対象読者をはっきりさせて, Firebird 特有のポイントを丁寧に解説してくれた方がいいと思う. よくばりすぎて読みづらい. あえて Firebird にしなければならない理由は本書からは読みとれない. 参考になるプログラムの解説書でもない. 索引が貧弱で辞書的利用もしにくい. 高いし, おすすめしない.
データベースの実装は商用, 非商用問わず多数存在し, Firebird は商用データベースの 1 つであるボーランド社の InterBase から派生したオープンソースのデータベース実装です. 残念ながら Firebird に関する日本語での情報は少なく, 導入の障壁となっています. 本書は Firebird の数少ない日本語で読める書籍であります.
新規にデータベースを導入する際に知りたい情報は, インストール作業と運用時のメンテナンスです. 本書ではインストールについて Windows, Linux, FreeBSD そして MacOS X の環境について記述されていますが, 非常に簡素な記述であり少し不安になります.
また, データベースのバックアップなど運用時のメンテナンス作業について Windows GUI 環境を想定した簡素な記述があるだけで, Linux など UNIX 環境での記述はほとんどありません. Firebird を利用する上で UNIX を使いたい方にはこの点は非常に不満があると思います.
データベースは単体で使用するより, Perl, PHP, Python など他ツールから操作されるケースが多数です. 本書には Firebird の他ツールからの具体的な利用法が多数例示されています. 特に Web システムからの Firebird 利用を意識した例を多数掲載しているため, 開発初期の手助けとなります.
ただ, 例示に関する説明が読みにくい印象を受けました. 重要なコマンドや Firebird とのインターフェース部分についての説明が本文中に散っており, 後日参照する際に探すのが大変です.
付録には Firebird を扱う上で使用するコマンドラインツールと, 忘れがちな SQL コマンドについてまとめられております. 開発時にリファレンス的に使用でき非常に便利です. また, Firebird の重要な情報が多数記述されたリリースノートが和訳されており助かります.
Firebird に関する情報に飢えていた私にとって, 本書を読んでみて多少がっかりしました. 説明のない用語が突然でてきたり, 後半には数ページに渡ってソースコードが羅列されるなど読みにくい印象を受けました.
しかし Firebird を扱う上で基本的な部分についてはしっかり押えておりますので, 導入初歩について日本語で情報を得たい方にお薦めします.
私はネットワーク構築や Web アプリケーション構築などをやってきましたが, データベースを直接触ったことはありませんでした. そこでオープンソース RDBMS を触ってみたいと常日頃思っており, さて PostgreSQL か MySQL か…と思っていたところに本書を知り, 「FireBird」という新たな選択肢の存在が浮かびました.
そのコピーには「Python/Zope との接続が簡単」とあります. 普段 Zope を使っている私は, RDBMS の側から Zope のことについて触れられている書籍を欲していましたが, PostgreSQL や MySQL の書籍にはそういうものはありませんでした. これはぜひ FireBird, インストールするしか! と, レビューを申し込んだ次第です.
このような個人的背景がありますので, 本レビューは「本書を参考に実際に FireBird をインストールし, Zope と接続してみる」という操作を行い, その中で本書を参照していく上でのインプレッションとさせていただきたいと思います.
今回私が使用した環境は, 以下のようになっています.
ファイアウォールと Zope は既に動いており, そこに FireBird Server と IBConsole を加えるという手順になります.
さて, 本書では Linux 上でのインストールは rpm 形式と tar.gz 形式が紹介されていましたが, Debian ユーザである私はさっそく apt-cache search firebird. やはりあります. apt-get で簡単にインストールがすみました.
問題になったのは IBConsole でした. 本書付属の CD-ROM から IBConsole をインストールしましたが, 実行すると以下のようなエラーが表示されます.
"InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality."
つまり gds32.dll という dll ファイルが必要だということです. このファイルについては本書に記述がなく, Web 上で調べた末, IBClient をインストールする必要があることがわかりました.
また, ファイアウォールの存在も問題になりました. 上記のようにファイアウォールを挟んだリモート構成となっているので, IBConsole と FireBird Server との間でどんな通信が行われるかわからないと, ファイアウォールの設定ができないのです.
本書においては IBConsole と FireBird Server が同一機にあるスタンドアロン構成しか触れられておらず, 上記のようなよく見かけるであろう構成について必要な情報が一切ないというのは不満が残るところです. 結局これも Web 上で調べ, TCP 3050 を許可すればよいことがわかりました.
さて無事に IBConsole と接続できたところで, Zope との接続です. ところが, 付属の CD-ROM にはアダプタである kInterbasdbDA が Win 版しかありません. やむなくアダプタの作者のサイトから tar.gz をダウンロードして Zope プロダクト用ディレクトリに展開しましたが, Zope 再起動時にプロダクトのインストールに失敗しました.
冷静に考えれば, 当然 Python のアダプタである kinterbasdb を先にインストールする必要があるのですが, 本書にはそのように書いてありませんでした. 本書の手順を頭から順に試せば引っかからないのですが, 辞書的な使用法に耐えられる工夫もほしかったと感じます.
本書は, 私が行ったような「逸脱」には弱いですが, 敢えて一本道にすることで, 確実に使える実践書を目指したようにも受け取れます. ぜひ版を重ねてさらなる良書となり, FireBird の普及に貢献されることを期待したいと思います.