「PostgreSQL徹底入門〜8対応〜」BOOK REVIEW
書評者:森 圭司 様

はじめまして。森と申します。

今回、「PostgreSQL徹底入門〜8対応〜(以下、本書)」の書評をさせて頂くこととなりました。私はWindows環境でVB+Oracleのクライアントサーバーシステムの設計、構築、保守に従事しているSEで、PostgreSQLについての使用経験はありません。今回はその目線にてご紹介いたします。

本書はPostgreSQL8.0について作成された歴史背景からアプリケーション作成、概要、バックアップまで網羅されている書籍です。付録CD−ROMにはPostgreSQLや管理ツールなどを収録していますので、実際に試しながら進めることが可能です。

本書の目次は以下の通りです。
 1.PostgreSQLについて知ろう
 2.インストール(Windows/Linux編)
 3.WindowsでPostgreSQLを使おう〜かんたんpgAdminマニュアル
 4.SQL入門
 5.アプリケーションの作成〜PHP編
 6.アプリケーションの作成〜Java編
 7.PostgreSQLのしくみ
 8.PostgreSQLのセキュリティ
 9.バックアップとメンテナンス
 10.PITR(ポイント・イン・タイム・リカバリ)

簡単ですが、各章毎の内容をご紹介いたします。

1.PostgreSQLについて知ろう
 PostgreSQLの生い立ちやその後の発展について説明されています。PostgreSQLがBSDで作成されたことや、学生がSQL化(PostgreSQL用クエリ言語から標準SQL言語のサポート)したことなど、 興味の引く内容が説明されています。

2.インストール(Windows/Linux編)
 インストールの方法が画面を交えて説明されています。PostgreSQL8.0よりWindows環境についてもサポートされましたが、Linux環境でのインストールについても説明されていますので、インストール環境に合わせて使い分けることが可能です。

3.WindowsでPostgreSQLを使おう〜かんたんpgAdminマニュアル
 pgAdmin掘複錬鬘瓧磽譯紊裡釘遑遙紕鬘陦鬘蕋鵤 Managerに相当)について説明されています。操作方法についても説明がありますので、使い始めの参考となります。

4.SQL入門
 SQLの文法、サポートされているデータ型について説明されています。SQLのわからない方でも理解できると思われます。

5.アプリケーションの作成〜PHP編
 PHPとIISを使用した簡単なアプリケーションや簡易掲示板システムの作成方法が紹介されています。簡易掲示板システムでは複数の画面や処理を使用しており、PostgreSQLを使用したシステムを感じることができます。

6.アプリケーションの作成〜Java編
 サンプルプログラムにてPostgreSQLへのアクセスやJDBCドライバを使用したプログラミングが説明されております。

7.PostgreSQLのしくみ
 PostgreSQLのプロセス(Oracleのバックグランドプロセスに相当)やネットワークプロトコルライブラリのlibpg、ロケール、使用可能な文字コード、postgresql.Conf(Oracleの初期化パラメータファイルに類似)が紹介されています。

8.PostgreSQLのセキュリティ
 ネットワークからのアクセス権限、GRANTやREVOKE文、オブジェクトのアクセス権限、Viewについて説明されており、基本的なDBのアクセス権限と同等の内容が把握できる内容となっています。

9.バックアップとメンテナンス
 pg_dump、pg_dumpall(OracleのExportコマンドに相当)やpg_restore(OracleのImportコマンドに相当)、記憶領域のメンテナンス用コマンドが紹介されております。

10.PITR(ポイント・イン・タイム・リカバリ)
 トランザクションログを使用したリカバリ(Oracleの完全・不完全リカバリに相当)や、WAL(Oracleの書き込み遅延)が紹介されております。

本書は入門書としては十二分な内容であり、これからPostgreSQLを始める方にお勧めな本であると思われます。(実は、今回のお話が無ければ、本書を購入する予定でした。)特に良いと思われることは、SQL文法、管理ツールの説明、2種類のOS(WindowsとLinux)、2種類の言語(PHPとJAVA)など、紹介されている内容が豊富であることです。DBの書籍というと、DBの内容オンリーということがある中、PostgreSQLとそれを取り巻く事柄も把握できる良い書籍であると思います。

今回は書評の機会を頂き有難うございました。


書評者:鶴巻 浩史 様

1.わたしの視点
こうした入門系の本を目にすると、わたしは独り心の中でツッコミをいれてしまいます。「いろんな人が入門してくる可能性があるけど、結局どんな人達におすすめなの? 入門とうたっておいて実は敷居が高かったりするんじゃないの? で、何も知らない人にはふさわしくないようなサンプルが書いてあるんじゃないの?…」などなど。今回のブックレビューでも、以上のような視点から読ませていただきました。

2.どのような人におすすめするか?
最も重要な問題、つまりどのような人が本書を読むと高い効果が得られるのか考えてみました。わたしの結論は次のとおりです。
(1)アプリ開発の経験はあるが主に画面やビジネスロジックの開発を担当している人(以下「初級者」)
(2)開発で幅広い役割を経験しているが、PostgreSQLを使ったことはない人(以下「中級者」)
(3)PostgreSQLを実際に運用しているという人(以下「上級者」)
※曖昧でわかりにくい分類になっているかもしれませんが、悪しからず。

3.「初級者」の人におすすめする理由
「初級者」に本書をおすすめする理由は、PostgreSQLだけでなくその他のDBMS全般に通用する知識を効果的に学習できる点です。つぶしが効く/陳腐化しない知識です。具体的にはDBMSの基本的な機能であるトランザクション管理、同時実行制御、セキュリティなどが1章でキーワードとして挙げられ、後続の章で例とともに説明が行われています。このため、
・体系的な説明だけで実例が無い書籍、
・例だけで体系的な説明が無いWebサイト
などを闇雲に調査するよりも効果的にDBMSのエッセンスを学ぶことができます。とりあげられている話題もバックアップ、リカバリ、ディスク領域管理、文字コードと多岐に渡っていますので、多くの発見が得られるでしょう。

4.「中級者」におすすめする理由
続いて「中級者」に本書をおすすめする理由ですが、
(1)DBMSの機能を中心とした構成になっており知りたい情報を探しやすい
(2)詳細な情報を含む参考文献/参考URLが「さらに」の欄に提示してある
の2点です。 「中級者」はDBMSで実現可能なことは把握しているもののPostgreSQLでの実現方法は知らない、という人を想定していますが、上記の理由(1)によって実現方法の調査が効率的になります。コマンドの例も多く掲載されており実務に活用できるものもあるでしょう。また、(2)の参考文献の多くは「PostgreSQL 8.0.3文書」の中の章を指しているため、「PostgreSQL 8.0.3文書」を読む際のガイドラインとして活用できそうです。

5.「上級者」におすすめする理由
最後に「上級者」におすすめする理由は
(1)バージョン8での変更点が簡潔にまとめられている
(2)「Column」や「さらに」の欄が充実している
の2点です。 バージョン8の新機能を知りたいという人は新機能のところだけ拾い読みできますし、「さらに」や「Column」のところを斜め読みすれば新たな発見があるかもしれなません。いずれにしろ既知の情報は読み飛ばしてしまえるので、すぐに読み終えられるでしょう。

6.本書の見どころ
ここでは本書を読んでいて面白いと思ったところ、印象に残ったところをいくつか列挙します。

・SQLの説明(4章) … 4章「SQL入門」の構成はなかなか面白いです。読者が退屈しそうな複雑なSQLや関数は付録に譲り、基本的なSQL文と制約、トランザクションまで一息に説明しています。その代わり5章のPHP(掲示板システム)でやや複雑なSELECT文の例が解説されているので、ちょうどバランスがとれていると感じました。

・トランザクション隔離レベルの説明(4章) … トランザクション隔離レベルが表にまとめられていて、こだわりが感じられました。このようにわかりやすく整理している本は記憶に無いので評価できると思います。

・記憶領域の説明(9章) … VACUUM処理と記憶領域の関係が図示されておりわかりやすいです。PostgreSQL特有のVACUUMについて理解を広めることは重要になるでしょうから、この部分も評価できます。

・本として読み易い(全体的に) … 細かい説明を参考文献/参考URLに譲るというスタイルが一貫しているためか、全体的な説明の深さがそろっているなと感じました。共著にもかかわらず読み易くなっています。

7.まとめ
3タイプの読者を想定して本書をすすめする理由を述べ、その他の見どころを挙げました。繰り返しになってしまいますが「初級者」の人で表層のアプリケーションからDBMSやOSへと知識を深めて行きたい人には読み易くかつ勉強になる本です。 まったくの未経験者の人もサンプルを使ってとりあえずWebアプリケーションを作成できますが、他書でSQLやWebアプリケーションについて勉強する必要があるでしょう。 最後にひとつ本書に不足しているものとしてパフォーマンス関連の情報がありますが、他書やWeb上にまとまった情報があるので大きな問題にはならないと思います。


All Rights Reserved, Copyright (C) 1999-2005 Japan PostgreSQL Users Group
staff@postgresql.jp
$Id: 4-7981-0957-6.html,v 1.2 2006/02/04 09:01:42 odaka Exp $