株式会社インプレス 様のご厚意により,
書籍 "PostgreSQLオフィシャルマニュアル" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
株式会社インプレス 様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
フリーのデータベースシステムといえば, 真っ先に思い浮かぶものの 1 つが Postgres です. 評者が初めて Postgres に触れたのは Postgres95 が登場して間もない頃でしたが, 元祖の Postgres はかなり独自色が強く, 一方の Postgres95 はまだ不安定という感じで, ソースを読んで勉強するのには適しても, 業務システムへの採用はためらわれる状況でした (もちろんこれは評者にとっての話であって, 当時から業務に活用されていた方も多かったに違いありません). しかし, その後の進歩はめざましいものがあり, 現在ではコードもドキュメントもトップクラスのものになっています. ことに, 日本人の積極的な参加によって日本語環境の利用が極めて容易になった点は特筆に値します. その成果である日本語ドキュメントを書籍化したのが, 本書『PostgreSQL オフィシャルマニュアル』です. 先人たちの努力に感謝と敬意を表しつつ, ありがたく拝読させていただきました.
本書は基本的に, SRA のサイトで公開されている 「PostgreSQL 7.1.3 ドキュメント (日本語版 1.6)」を書籍化したものです. 書籍化に当たって, 誤訳の訂正を含めた推敲作業が行われたこともあって, オンライン版よりもいくぶん読みやすくなっています. インプレスによるレイアウト作業の質が高いことも, 読みやすさに大きく貢献しています. リファレンス的な用途にはオンライン版の方が便利な場合が多いでしょうが, オリジナルのドキュメントも付録の CD-ROM に HTML と PDF で収録されていますので, 常時接続環境でない人はそちらを検索等に利用することができます.
このドキュメントは, 実際には「チュートリアルガイド」, 「ユーザーガイド」, 「管理者ガイド」, 「プログラマガイド」, 「リファレンスガイド」, 「開発者ガイド」の 6 つのドキュメントで構成されています. これらは, オンライン版ではそれぞれ, チュートリアル, ユーザーズガイド, 管理者用ガイド, プログラマーズガイド, レファレンスマニュアル, 開発者用ガイドと呼ばれていたものです. オンライン版が原文に即した名称であるのに対し, 書籍版は「〜ガイド」に統一されていますが, なぜこんな変更を加えたのか理解に苦しみます. タイトルくらい大した問題ではないかも知れませんが, わざわざ意味不明なものにする必要もなかったのではないでしょうか.
本書で初めて PostgreSQL に触れる場合は, まず「管理者ガイド」を読んでデータベースサーバーのインストールと起動を行わなければなりません. その後, 「チュートリアルガイド」と「ユーザーガイド」を見ながら対話型ツールを使ってみるか, あるいは「プログラマガイド」と「リファレンスガイド」を参考にアプリケーションを書くことになります. いずれの場合も, 本書だけで必要最低限の情報は手に入ります.
もともとがユーザー主導のボランティア作業として始まった日本語化なので, 翻訳の質に文句を付けるなど思い違いも甚だしかった (というより, 第三者的な態度で批評なんかしていないで, 気付いた点はどんどん報告して品質向上に貢献すべきだった) わけですが, 今回書籍の形で出版されるにあたって, 前述の通り一部の誤訳が訂正されたのはありがたいことです. とはいえ, 全面的な見直しをするほどの余裕はなかったと思われ, まだまだ誤訳・拙訳も多く, こなれた文体と直訳調の部分が混在していることもあって, 本書の成立経緯に関心のない一般人が普通の本だと思って購入した場合は恐らく不満を感じるでしょう. 翻訳書の場合, 原文と照らし合わせて初めて意味が分かるということが珍しくありませんが, 本書の場合オリジナルの英文ドキュメントが付属 CD-ROM に含まれているので, 疑問を感じたらすぐ原文に当たることができてとても便利です.
本書には, 日本 PostgreSQL ユーザー会の CD-ROM が添付されています. ADSL の普及で常時接続環境が一般化しているとはいえ, やはり一通り必要なものがパッケージ化されているというのは, 特に初めてそのシステムに触れる者にとってはありがたいことです. Oracle からの移行に関するプレゼンテーション資料なども含まれているので, 1 度目を通しておくと良いと思います.
オンラインで公開されているドキュメントでも, こうして書籍化されるとずいぶん印象が変化します. 特に, チュートリアルのように読み物的な要素が多いものは, やはり紙で読むのが一番です. 充実した CD-ROM も付属し, リファレンスとしても便利なので, ぜひ 1 冊手許に置いておきたい書籍だと思います. ちなみに, 本書の印税収入は全額日本 PostgreSQL ユーザー会の運営資金に回るそうです.
本書は PostgreSQL のオフィシャルマニュアルであり, 記述されている内容はオンラインで一般に公開されています (http://osb.sra.co.jp/PostgreSQL/Manual/). また, 対象とされている PostgreSQL のバージョンは 7.1.3 です.
PostgreSQL マニュアル情報を入手するだけの目的であれば, オンラインで (無料で) 参照することができるわけですが, 個人的には紙になったマニュアルを手元に置いて参照したい (寝転がってゆっくり読みたい) というわけで, 以前から入手を考えていました.
本書は総ページ数 928 ページ (索引含む), 定価 4,980 円 (税抜き), 重量約 1 キロと, 堂々たる分厚い書籍です. CD-ROM も付属しています.
装丁は発行元 (インプレス) の翻訳もの『WROX シリーズ』とかなり似ていて, 中身の文字サイズ, 紙質も同シリーズとほぼ同じです. ページをめくると文字がぎっしりですが, 元々の内容がソースコードと解説テキストがバランスよく配置されていることに加えて, 大小の見出しには極太ゴシック系フォント, 解説テキストに明朝系フォントを使用し, 注釈はアイコンで表示され, コード部分の背景にはアミ (グレー) が敷かれていて, 大変読みやすいデザインと感じました.
本書に付属している CD-ROM の内容はもりだくさんです. ちょっと列挙すると,
この CD-ROM の内容には大変満足しています. 特にウインドウズ版管理ツールや, PHP ベースの管理ツールなどの存在は知らなかったので, インストールして使ってみようかと思いました.
前述したように, 本書の内容は公開されているので, 購入予定の方はあらかじめそれに目を通したほうがいいでしょう. オンラインで公開されているせいか, かなり推敲されている印象があり, 読みやすい翻訳だと思います. しかしあくまでも他の DBMS での開発経験があるヒトを読者対象としている内容と感じました.
書籍の構成としては, 「チュートリアルガイド」「ユーザーガイド」「管理者ガイド」 「プログラマガイド」「リファレンスガイド」「開発者ガイド」となっていて, それぞれが独立した内容です. ハウツー本のように章の順番ごとに読み進める必要はなく, 知りたい部分だけ拾い読みすればよい構成になっています.
私の場合, ウェブアプリケーション開発に関わる情報だけが読みたかったので, 「ユーザーガイド」「リファレンスガイド」の部分だけ繰り返し参照しています. そんなわけで, 全てのガイドをひとまとめにするより, 各ガイドを分冊にして (販売単価を下げて) シリーズとして販売してくれれば, ページ数が少なくなりポータビリティが良くなるのに加えて, ユーザーが経済的にも助かるのではないでしょうか.
また, CD-ROM に収録されていたクライアントアプリケーションに関しては, リファレンスガイドに機能の紹介のみ記述されているだけなので, かなり物足りないと感じます. やはり分冊化して, 『クライアントアプリケーションガイド』として追加してほしいと思います.
本書はすでに PostgreSQL を使用している人にとって, 辞書的な役割を果たすものとして, 本棚に入れておきたい書籍のひとつだと思います. これから PostgreSQL を (最初の DBMS 学習のために) 習得したいという人には, 他の PostgreSQL 学習本に続く, 2 冊目のアイテムとするのがよいでしょう.
最後に, この機会を与えていただいた株式会社インプレス様, および www.linux.or.jp Webmasters ブックレビュー担当の方々に感謝いたします.
PostgreSQL に関する初心者向けの書籍が増える中, 使い慣れた人が手に取りたくなるような一歩踏み込んだ本が出版されるのを待っていた. 本書がそうであることを期待して読ませていただいた. 参考までに, 私自身は, 以下のようなレベルである.
本書は, チュートリアル, ユーザー, 管理者, プログラマ, リファレンス, 開発者の 6 つのガイドに分かれている. 各ガイド毎にレビューをしてもよいのだが, 必ずしもこの分類が分かりやすいとは思わなかったので, 読者の目的を想定して, それぞれに応じて内容を見ていきたいと思う.
本書の「管理者ガイド」にはインストール手順という章があり, 簡単にインストールから起動までの操作の流れが分かる. ただし, いざ簡単なデータベースを作る段階になると, 詳細さが災いして最初は苦労するのではないかと思う. PostgreSQL の基本操作をつかむまで, 他の本で勉強されることをお勧めする.
本書における SQL の解説は, 問い合わせ (select 文) の詳細と関数が「ユーザーガイド」, その他は「リファレンスガイド」にまとめられている.
これらの解説は網羅的であり, 配列や継承といったわかりにくい概念もでてくるので, SQL 初心者が前から読み進めて SQL の概要を修得するといった目的には使いづらいと思う. 「チュートリアルガイド」にも簡単な SQL についての記述があるが, この部分は簡単すぎてあまり参考にならない. まず, 類書で SQL を学びながら, 適宜詳細について参照するといった使い方をお勧めしたい.
一方, 辞書として使うには非常に効果的である. 「ユーザーガイド」には, データ型や関数が分かりやすく整理されているし, 「リファレンスガイド」の SQL 構文も調べやすく, 解説も詳しい. PostgreSQL にも方言や独自コマンドが少なくないので, 手元にあると重宝するだろう. また, 構文毎に SQL92 との互換性について書かれており, 他の DB も使われている方には参考になるだろう.
本書の「管理者ガイド」では, configure オプション, postgresql.conf の設定項目, pg_hba.conf の設定など, 基本的な事項に関して十分な説明があるため, 管理者にとって非常に便利である.
また, 「リファレンスガイド」には, サーバーアプリケーション (initlocation, pg_ctl 等), クライアントアプリケーション (psql, pg_dump 等) が, オプションも含め詳細に説明されている. これらのいくつかは, 類書では全く触れられていないものもあり, 意外な発見もあった.
さらに, 「開発者ガイド」には類書では軽く触れられただけで終わっていることが多いシステムカタログの詳細な説明があり, なかなか貴重である.
「プログラマガイド」は本書でももっとも長い章である. クライアントインターフェースでは, pqlib, pqlib++, pgtcl, ecpg, ODBC, JDBC. PyGreSQL に関して, まとまった量の説明がなされている. 私自身は Java や Python などは分からないので, それらの解説はとばしたが, pqlib, pqlib++, ecpg の解説はうまくまとまっていた. ただ, もう少し例があると理解しやすいのではないかと思う. また, Perl インターフェースに関する記述が皆無なのは非常に残念だった.
サーバープログラミングも非常に読み応えがある. ユーザ定義のデータ型や関数, 特に C 言語によるユーザ定義関数は使われる方も多いだろうし, PL/pgSQL の記述も分かりやすい. また, Oracle の PL/SQL からの移植についての記述が厚く, PL/SQL に慣れている方にとってはなかなか有用なのではないかと思う. (私自身は PL/SQL を知らないため実際に有用かどうは分からないが......)
さらに, 「ユーザーガイド」の MVCC (多版型同時実行制御) やパフォーマンスに関するヒントは, 短いながらもなかなか参考になる内容だった.
前述したように, 本書は 6 つのガイドに分かれているが, この構成が直感的でない気がした. 特に, ユーザーガイドと管理者ガイドは, 関連項目がリファレンスガイドや開発者ガイドに分散し, 参照しづらい気がした.
また, 索引についても, リファレンスガイド中の語句を中心に若干不足を感じた. SQL 構文中の細かい指定に関しても, 索引からすぐに見つけられるともっと使いやすかったように感じる.
本書 1 冊だけで, PostgreSQL のあらゆる分野に関して詳細な記述が得られる. PostgreSQL を使いこなしたいと思われる方が, 2 冊目以降に購入する本として, 迷わず推薦したい本である.
逆に, PostgreSQL やその他の RDBMS にほとんど触れられたことのない方が, 勉強用として最初に購入することはお勧めできない.
なお, 本書の内容は, Web 上でも読むことができる. この点で購入を迷われる方も多いだろう. 実際, Web の方も大変読みやすくまとめられており, たまに参照する程度であれば十分とも思われる. しかし, 本書の読み応え・内容は, 手元に置いておく価値がある. 適宜参照することで, PostgreSQL に関する理解は非常に深くなるだろう. 繰り返しになるが, 2 冊目以降に買う本として, これ以上の本はないと思う.
本書は株式会社 SRA 殿が Web 上で公開されておられる PostgreSQL 7.1 日本語マニュアル (http://osb.sra.co.jp/PostgreSQL/Manual/) を *そのまま* 紙ベースに落としたものである. オンラインのみで充分であると感じておられる御仁には必要のない書籍であろう.
以下「本書」と記すが, 「本書」とは「マニュアルそのもの」の事を指す. マニュアルに対して敢えて私情を挟む苦悩を理解して頂きたい.
ここ一年程の間に RDBMS に PostgreSQL, 接続インターフェイスに PHP[3|4] という組み合わせを用いた 「あなたでも作れる *** サイト」といった触れ込みの 入門書が「今がチャンス」とばかりに多く出版された.
何冊か目を通したが, どれも Web 上で先人達が残してきたノウハウを適当に引用してきただけの, ありがちな「内容の薄い初めて本」に過ぎないように思う.
そんな状態に辟易していたところに, 待ち望まれて降臨したこの *オフィシャル* マニュアルである. 「公式本」と赤字で印刷された大きな白い帯. 中身を読まずともこれを見ただけで幸せな気分になれるという PostgreSQL 信者にお勧めしたい.
本書の構成を以下に示す.
これらは順番に読み進めるというものではなく, それぞれが「独立した書籍」であると思って頂きたい. 実際にそれぞれのセクション毎に章立てされ, ご丁寧に目次もついている.
「管理者ならば管理者ガイドだけ読めばよい」とまではさすがにいかないが, これだけの大規模なシステムのマニュアルを 万人受けするように編集しろという事自体無理な注文であろう.
オープンソースコミュニティの成果物としては比較的読み易く 構成されているように思う. 少なくとも MySQL のマニュアルよりは読み易く感じた.
総じてサンプルコードも多く提示されており, より実践的である事にも好感を覚える.
各セクション毎に担当する開発メンバーが執筆, コミュニティメンバーからの寄稿なども入り乱れ, 非常に賑やかなマニュアルとなっている.
多くの執筆者による文書の寄せ集めによって構成されている為, 各セクションでの章立ては全くといって良いほど異なるが, 本書の性質上, セクションを跨って参照するといった使い方は想定されない為 これは問題にはならないだろう.
逆に, 各チャプター (見開き程度の小さな単位) は 完全に閉じた世界になっている為つまみ食いするには これほど美味しい材料はないのではないかと思われる.
リファレンスマニュアルとして活用する事はもちろんであるが, 小さなコラムの集合体としてつまみ食いすると別の楽しみ方ができそうである.
実際に使う側の立場になってページを前後移動していると, やはり構成上の不満は出てくる.
データ型/関数/演算子の部分は SQL リファレンスと並んで, 頻繁に参照する部分であろうと思われるので, ユーザーガイドではなくリファレンスマニュアルの方に配置して欲しい.
SQL/92 に則した基本的な問い合わせなどに関しては完全に説明を省く, 若しくはこの部分をチュートリアルガイドとして独立させ, ユーザーガイドとリファレンスガイドの守備範囲の違いを より明確にした方が良いのではなかろうか.
個人的な趣向もあるので一概に断言する事は出来ないが, 詰めていくべき箇所はまだ多く存在するだろう. 未稿 (未完成) と思われる部分も何箇所かあったが, これは今後の活動に期待といったところか.
本書には「JPUG CD-ROM Vol.3.1」が付属している.
PostgreSQL のソース/バイナリパッケージはもちろん, 各プログラミング言語インターフェイスから PostgreSQL を用いたアプリケーションまで 雑多に放り込まれている.
「この一冊さえあれば大丈夫」という安心感を与えてくれる という意味で非常に評価したい.
4,980 円という価格は *オフィシャル* 肩書きへの対価か, 分厚さ (約 900 ページ) への対価か. 少なくとも私の価値観では, 個人レベルで PostgreSQL を利用する際の 投資限度を超えている.
皮肉な事に PostgreSQL はオンラインドキュメントに恵まれている為, 机の上に置いておくだけの安心感との釣り合いはとれないように思えた. 複雑な心境である.
そんな事よりも, オープンソースコミュニティの小さなボランティア精神の一つ一つが, こうやって成果物として世に出る事に対して大きな喜びを覚える.
今回のレビューの機会を与えて下さった株式会社インプレス様, Webmasters ブックレビュー担当者の方々, 石井達夫氏をはじめとする PostgreSQL 開発コアメンバーの方々, pgsql-doc プロジェクトにて翻訳に関わられた同志への感謝の言葉と共に 本レビューを締めくくりたい.
関西/関東文化の違いに葛藤しつつも, 明日の日本を支える意欲に燃えるサラリーマンに本稿を捧ぐ.