書評:プロになるための データベース技術入門 ~MySQL for Windows 困ったときに役立つ開発・運用ガイド

キムラデービーこと、木村明治さんの著書「プロになるためのデータベース技術入門」を技術評論社から献本頂いたので、その書評を書こうと思います。本書はMySQLの本なのですが、私は普段DB2を使っていてMySQLは全然知識がありません。そのため、DB2ユーザーから見た感想になっています。

なお本は2012年3月末に献本いただいていたのですが、読むのと感想をまとめるのがすっかり遅くなってしまいました…

プロになるための データベース技術入門 ~MySQL for Windows困ったときに役立つ開発・運用ガイド

本書について

本書は「プロになるためのデータベース技術入門 MySQL for Windows 困った時に役立つ開発・運用ガイド なぜあなたはDBを使いこなせないのか」という名前で、「MySQL for Windows」の解説としての部分と「プロになるための」部分の二つから構成されています。つまり二つの特徴を持つ本です。

MySQL for Windowsの本

書名にもあるように、本書の1つ目の特徴は、Windows環境に特化していることにあります。MySQLの情報はインターネット上、もしくは書籍・雑誌として多数存在しますが(DB2ユーザーとしては羨ましいところです)、その多くがLinux環境用で、Windows環境の情報はあまり多くないように思います。

本書は概要説明から始まり、内部の仕組み、操作方法、開発、テスト、運用までカバーしており、しかも一貫してWindows環境についての実践的な解説がなされています。AppendixにはMySQL本体とActivePerlのインストール方法の解説も掲載されています。

MySQLは色々なOSで動くRDBMSですが、実際に開発・運用をする場合はOS環境を含めた知識やTipsがとても重要になります。例えばあるコマンドはLinuxでは動作するがWindowsでは動かないので別のコマンドで代替する方法だとか、設定ファイルが作られる位置の違い、Windows環境ならではのPower Shellを使ったシェルスクリプティング環境のTipsなどです。

もし、私がこの本無しでMySQL環境をWindowsに構築して開発しようとした場合、おそらく何度も躓きながらになると思います。

この本はそういった躓きポイントを避けることができるようにしてくれるガイドブックになっています。

プロになるための本:RDBMSの基礎原理から解説

本書のもう一つの特徴が、「RDBMSを理解する上で重要な基礎知識を丁寧に解説している」ところです。

例えば文字コードに関連した問題は日本語環境でRDBMSを使う上で避けて通る事ができない話題ですが、本書はMySQLでの文字コードの扱いのポイントを解説する前に「文字コード自体の解説」が行われています。
MySQLの本で「符号化文字集合と符号化方法の違い」や「Shift JISの特徴」が解説されている本はあまり無いのでは無いでしょうか。これは筆者がしっかりした基礎知識を持っているからこそ書けるのでしょう。

RDBMSの基礎原理としてACIDや分離レベルについても解説されており、分離レベルについては各RDBMSでの違いを含めて解説されています。

当然OSについても解説されており、メモリ確保の概念(ヒープとスタック)といったRDBMSを理解する上では欠かせない基礎的な知識はもちろん、Windowsの歴史の解説まで入っています。

こういった基礎原理解説の部分が書名の「プロになるための」やサブタイトルである「なぜあなたはDBを使いこなせないのか」という部分にあたるのでしょう。単にMySQLを操作できるようになるだけでなく、基礎からRDBMSを理解してもらいたいという著者の想いが感じられます。

もちろん、基礎原理だけでなくMySQLの基本も解説されています。例えば新しくデータベースを作成すると、どのディレクトリにどういった目的のファイルが作成されるのかといった事が丁寧に解説されています。

DB2ユーザーから見たMySQL

本書を読むとMySQLの特徴的な部分が良く理解できます。これは私が普段DB2を使っているからではなく、この本がMySQLと他のRDBMSとの違いをしっかり把握した上で書かれているためです。色々なRDBMSに関わってきた著者の知識が発揮されている部分で、Oracle、SQL Server、DB2といった他RDBMSとの比較表も多く用意されています。

DB2ユーザーからみると、以下のようなMySQLとの違いが興味深かったです。

  • デフォルトでは文字の大文字小文字を区別せずに検索する(変更する方法も書かれています)
  • インスタンスとデータベースという概念の(DB2との)違い
  • 表ごとにストレージエンジンや文字コードが切り替えられる
  • innodbのインデックス周り:全部クラスターインデックス

逆にDB2とMySQLで多くの共通点があることも分かったのは楽しい発見でした。特に文字コードの注意点などはほぼそのままDB2にも当てはまります。(厳密に言えばUNICODEのプライベート文字コードの扱いなど異なる部分も多々ありますが、文字コードにおける設定の注意点や、文字化けが発生するパターンなどは共通しています。)

MySQLの基礎だけでなくRDBMSの基礎も含めて解説した良書

著者プロフィールに『(著者は)Club DB2にも顔を出すしまつ』と色々なRDBMSコミュニティに参加されている様子が書かれているのですが(笑)、これこそ木村さんの凄いところであり、他の人にない強みでしょう(CLUB DB2は、DB2のユーザーコミュニティで定期的に勉強会を開催しています)。こういった活動で得た色々なRDBMSの知識や経験によって、RDBMS固有の技術と普遍的な技術が正確に区別された本書が作成されたのだと思います。

MySQL for Windowsのことだけでなく、RDBMSの基礎知識が得られる良い本だと思います。

(参考)本書の目次

第1章 MySQLとWindowsの概要
第2章 データベースの基本とMySQLの仕組み
第3章 MySQLの操作
第4章 MySQLを使ったシステム開発時の観点
第5章 テスト・QA時の観点
第6章 安定した開発~初期運用のために

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です