エキスパートから学ぶ PostgreSQL活用テクニック」BOOK REVIEW
書評者:小田 眞澄 様

「エキスパートから学ぶ」と銘打っていうだけあって、実践的で充実した内容である。 教科書的な固さがなく、章立ても適切で楽しく読み進めることができる。 先輩プログラマからの秘伝、という感じであろうか。内容が偏重とならないよう に配慮されたことが分かる。つまり、多くの層の興味を満遍なく捉えてそれぞれ の問題点を導き出し、同時に解決への糸口を得させようとするものであると思われる。 さらに詳細な問題点については、あらかじめ、公式ドキュメント 「PostgreSQLオフィシャルマニュアル」を参照するようにとの助言がある (第一章 1.1.4 情報源)。有益なコンセプトであり、評価できる。

システム導入については実際の手順を細かく説明し、 各シーンで必要なコマンドがダイナミックに説明されている。 導入、起動、管理、問い合わせ、副問い合わせ、アクセス方法 についての説明がプラクティカルな局面を重視して丁寧に説明されている。 特に、クライアントアプリケーションの作成方法についての説明が充実している。 libpql による C 言語からのインターフェース、埋め込み SQL による C 言語から のアクセス、PHP からのアクセス、Perl からのアクセス、 Java からのアクセスについてそれぞれ説明がある。要点を逃さず、もらさず、 かつ図表などにより分かりやすく記述されている。

本書では埋め込み SQL による C 言語からのアクセスについても紹介されている点に注目した。 ORACLE の Pro*C や Microsoft Embedded SQL for C (ESQL/C) などからの移植、 ということを考えるに当たっては避けて通ることができないのであるから、 本書が埋め込み SQL による C 言語からのアクセスについて紹介していることは重要なことである。 埋め込み SQL というと、どうしても敬遠されがちであるが、 優れた実行速度パフォーマンスを引き出せること、移植性が高いことなど、 まだまだ見逃すことができない多くの利点がある。

付属 CD-ROM には cygipc-1.11-1、Java 2 SDK Standard Edition バージョン 1.3.1 の Linux 版および Windows 版、PostgreSQL ODBC Driver の バイナリおよびソース(!)、PHPバージョン4.1.2、postgresql-7.2 および postgresql-7.1.3、および本書の各章にあらわれたサンプルデータが収められている。 監訳者の配慮であろうかと思われるが、本文中、つみきソフトウェアによる 管理ソフト「CSE」が紹介されている。「CSE」はデータベースを管理する グラフィカルなツールで、フリーソフトとして配布されている。

計算機による翻訳であろうか。翻訳に少々荒っぽいところがあると感じたが、 本書全体の評価を下げてしまうほどのことではなかった。


書評者: 永安 悟史 様

本書の構成としては、入門からテーブルの作成、簡単なINSERT、SELECTなどま でが130ページ、副問い合わせやストアドプロシージャ、トリガ、データベー スの管理などが150ページ、各言語(C、埋め込みSQL、PHP、Perl、Java)の APIの使い方が160ページ弱となっている。

本書の特徴は、プログラムの実例が多く出ていることであろう。基本的なクエ リのみならず、JDBCの章では、小さなアプリケーションを50ページ弱に渡って まるごと解説しているし、「動作するプログラムとしてのイメージ」を重視し ていることが随所からうかがえる。

テーブルの設計でも、単にテーブルを作るだけではなく、既存のスプレッドシー トの情報をどのように複数のテーブルに分割するのか、つまりどのように正規 化するのか、ということを比較的詳細に解説してあるし、その例も非常に具体 的なので、実際に自分が設計する場合にも大いに参考になると思われる(個人 的にはもうちょっと突っ込んで解説されていると良かったと思うが、現状の内 容でも十分であろう)。

他にも、グラフィカルツールの仕様として、pgAccessというツールや、ODBCを 用いてExcelやAccessから操作する方法についても解説されている(個人的に はpgAdminの解説が入っていたら非常に嬉しかったのだが)。

惜しむらくは、本書の索引が貧弱なことだ。

例えば、私は本書を受け取って一番最初にインデックスについての記述を調べ ようとした。それは、イデックスが、扱い方によってはデータベースのパフォー マンスを多きく変える重要な要素であるからだ(にも関わらず、既存の書籍に はインデッックスについて詳細に解説したものが非常に少ない)。しかし、本 書の索引には、「索引」も「インデッックス」も「INDEX」も「CREATE INDEX」 も載っていない。CREATE TABLEやCREATE USERは載っているというのに!(もっ とも、目次には小さく「索引」とあるので、私の注意不足でもあるのだが…)

実際には、p.298から非常に具体的なインデックスの作り方・使い方が解説さ れている。何もしない状態、ANALYZEした状態、インデックスを作った状態に ついて、それぞれEXPLAINコマンドを使って問い合わせコストの比較を行って いる。

このように、本書は随所に「エキスパートへの一歩」のためのヒントが詰め込 まれているにも関わらず、索引の貧弱さから、目的の情報に直接アクセスする のが困難な印象を受けた。

また、本書ではバイナリオブジェクトをPostgreSQLに格納するための「ラージ オブジェクト」の仕組みについての解説がまったく無い。索引にも無ければ、 libpq(C言語のAPI)の解説でもラージオブジェクト関連の関数が紹介されて いない。この点も非常に気になった。

しかし、本書は解説に具体例が多いことからも、最初に学ぶには適した書であ ると言える。監訳者まえがきでも触れられている「PostgreSQLオフィシャルマ ニュアル」と併せて利用することによって、最初に必要な情報(基礎知識と実 例とリファレンスマニュアル)を十分に得ることができるであろう。 PostgreSQL入門者にはぜひとも利用してもらいたい一冊である。


書評者: 荒谷 浩二様

1.はじめに

 今回、本書に関する書評をする機会を与えて頂いた、PostgreSQLユーザー会に感謝をす ると共に、御提供頂いたインプレス社に感謝を述べたい。有難う御座いました。

 PostgreSQLは、その機能の豊富さから、適用範囲として、今や多くのケースで商用デー タベースに置き換わり利用されるようになって来た事と思う。また、オープンソースのデ ータベースと言う事もあり、導入のしやすさから、導入を検討されている方々も沢山居る ことだろう。そのような、これからPostgreSQLを学ぼうとされる方々にとって参考となる 書籍が、また1冊増えたことは望ましいことである。

 しかしながら、多くの書籍が書店に並ぶ事は反面何が良書なのか迷わせてしまう。

 私のような拙い文書でも、購入の参考にして頂ければ幸いである。

 今後も、このような機会が増えることを、1ユーザとして希望したい。


2.全体の感想

 まず最初に本を手にしたときの感想は、書籍のボリュームとタイトルから「難しそうな 本なのだろう」との印象を受けた。しかしながら、読み進むと実にやさしくPostgreSQLの みならず、SQL全般の説明がなされており、PostgreSQLを学ぶだけでなく、データベー スを学ぶ上での非常に良い参考書であると感じた。

 また、開発技術者にとっても各言語からのPostgreSQLの利用法がサンプルプログラムを 例に解説されており、データベース入門者から始めてPostgreSQLを利用する開発者の導入 書としても幅広く参考になる書籍であると思う。

 最初に感じた「難しそうな本」のイメージはなく、あくまでも入門書の部類であり私が タイトルから受けた「開発者のためのテクニカルな書籍」との印象からは正直期待と異な った。

 しかしながら、読み終えて裏表紙の英文で記されたタイトルをみると「BEGINNING Databases with PostgreSQL」と書かれており、この本はやはり入門書として書かれた本で あると改めて認識すると共に、日本語タイトル名に少し仰々しさを感じた。PostgreSQLを 学ぼうと思われている方は、タイトルに惑わされず是非読んで頂きたい1冊である。


3.特に印象的な部分

 本書は、Windowsユーザにとっても参考になる書籍である思う。

 Cygwin環境でのPostgreSQLの導入方法が示されているだけでなく、Windows用のアプリケ ーションからのPostgreSQLの利用法が記されており、PostgreSQLの導入を更に進めてくれ るのではないだろうか。

 PostgreSQLはUNIX系OSでないと利用できないとの印象を持たれている方も実のところ非 常に多いと思われる、特に本書で書かれているようなMicrosoft AccessやMicrosoft ExcelでのPostgreSQLの利用は参考になるのではないだろうか。


4.残念な部分

 本書の冒頭では、タイトルのような、この本は「難しい本なのではないか」と思わせる データベースの正規化やER図について書かれている。

 しかしながら、説明があまり詳しく書かれておらず、全体内容から感じられる入門者向 けとしては、かなり説明不足であり、理解が出来ないのではないだろうか。特にER図は 出ているが、そのER図で使用されている記号の説明が一切無い。入門書としての位置づ けであるならば、悪戯に難しさを感じさせるだけであり、むしろ無い方が良いと感じた。


5.本書を読むにあたって

 書籍に添付されているCD-ROMに収録の問題がある。

 この書籍に合わせて添付CD-ROMを活用される場合は下記のページを参照して読み進めて 頂きたい。

 http://home.impress.co.jp/books/wrox/errata/errata_beg_postgres.htm


書評者: 小松 誠 様

 「エキスパートから学ぶ・・・」というタイトルが敷居を感じさせるが、実は本書は上 級者向けということではない。

 むしろ、入門編は読んだ、あるいは「PostgreSQLをインストールはしたが使い方はよく 知らない」という初級エンジニア向けの格好のテキストになっている。

 特に短時間でハイセンスな教育を必要とするような企業現場には最高の教本となりうる ものと感じられた。

 これが最高の教本だと絶賛したい理由はいくつかあって、まずPostgreSQLの技術的背景 に固執せず、広く実用的観点からリレーショナルデータベースの使い方を捉えて解説して いる点、実例に沿ってSQLやプログラムを例示し、平易な解説を加えている点、そして見 落とされがちな特徴や陥りやすい罠にはミニコラム のような形式でさりげなく助言されている点である。

 また、よくあるウェブアプリケーション構築の一部としてのPostgreSQL解説本にはない 、データベース をどう使うのかというエンジニアとしてのこだわりが現れている部分も心地よく感じられ た。

 本書の全体を通じて、PostgreSQLのクライアントサイドのプログラミングは十分に理解 できると思われ る。例えばlibpqを用いたCによるプログラム開発にも30ページがさかれていて、サンプル プログラムを含め、十分な解説がされている。

 さらに、組み込みプロシージャであるPL/pgSQLについても20ページ程度をかけて言語リ ファレンスとサ ンプルを交えた解説がある。これまでこういった情報が少なくて困っていたエンジニアに は十分なものになっているといえよう。

 一方で、PostgreSQLの大きな特徴である機能の拡張について、たとえばC関数や型、イン デックスの拡張等についてはほとんど触れられず、上級エンジニアにとっては多少物足りなく思われるか もしれない。サーバサイドプログラミングについてはもう少し情報が欲しかったようにも思われる。

 また、サーバのチューニングや保守についてももう少し踏み込んだ解説が欲しいところ である。

 本書はPostgreSQL7.1.3ベースで書かれているようなので、今後さらに最新のリビジョン に合わせた改訂版を期待したい。

 すでに業務などでじゅうぶんにPostgreSQLを使いこなしているエンジニアの方にもぜひ 読んでもらいたい。見過ごしていたTIPSを発見することがきっとあるだろう。


All Rights Reserved, Copyright (C) 1999-2002 Japan PostgreSQL Users Group
staff@postgresql.jp
$Id: expert.html,v 1.7 2002/11/17 06:18:22 kawaml Exp $