書評:おうちで学べるデータベースのきほん

ミックさんと木村明治さんの新著「おうちで学べるデータベースのきほん」を著者から献本頂いたので、その書評を書きます。タイトルどおりの「きほん」が詰まった本なのですが、読み進めるとRDBをある程度使ったことがある人でも「ほお」っと関心する部分がたくさんある本です。


表紙にはこんな人にお勧めとして、IT業界の営業職の方や入門書を読んで挫折した人、そして現場のプログラマーやエンジニアと書かています。かなり広い層にアプローチする本なので薄味になるのではとおもいきや、そこは実力がある両著者ですので、うまく「きほん」となるエッセンスを抜き出して一冊にまとめられています。最初は本当に簡単なところ、例えば「なぜRDBは必要なのか」から入って、RDBのシステム構成、正規化とSQL、バックアップ&リカバリーの考え方までカバーされています。

特に「営業職や経営者の方が基礎教養としてRDBを学べる本」というのは他には見たことがなく、貴重な一冊です。基礎教養が目的であれば、本書を全て理解する必要はなく、第1章〜第4章まで理解できれば十分ではないでしょうか。特に3章はコストと得られる対価について、4章はシステムの可用性とその限界について分かりやすく解説しており、必読です。各章の終わりにはサマリーと確認のための簡単な問題もあり、ちょっとした試験対策本の雰囲気ですね。解説の方法や、たとえ話も非常に的確で分かりやすくかつ誤解が少ないように気をつけて組み立てられています。

本書が素晴らしいのは「初心者が不思議に思いそうな疑問」を広くカバーし、かつ明確に答えている事です。すでにRDBに慣れてしまった身からすると、良くここまで初心者の疑問を色々な角度で思いつけるなあと関心させられました。

例えばクラスターって何?といった技術的な疑問だけでなく、商用ソフトウェア製品のライセンスやエディションの考え方、RDBによる内部階層の考え方(OracleやMySQLは3階層だけどDB2,SQL Server, PostgreSQLは4階層ってご存知でした?)、そもそもなぜシステムにお金を払うのか?など、ITシステムに慣れていない人には分かりづらい情報の解説が多数含まれています。

では現役エンジニアの方には簡単すぎる内容かというとそうでは無いです。エンジニアといっても立場はさまざまで、RDBへの関わり方も人それぞれで大きく違ってるでしょう。いつも触っていて得意な部分とそうでない部分があるでしょうから、不慣れな部分の学習資料として有用な本です。いつもアプリケーションプログラムからSQLを実行する側にいる人にとっては、バックアップの話は新しく知る情報も多いでしょうし、逆にRDB管理をしているDBAの人にとってはSQL側の話が興味深く読めると思います。

また時々、ほんのちょっと毒っけのある文章が入るのも楽しいところです。長く業界に居るベテランの人にとっては「そうそう、そうだよなあ」と著者に共感を感じながら楽しめる本になっています。

本書は特定のRDBに依存した内容はありませんし、ある程度RDB種類によって違う部分はMySQL, Oracle, PosgtgreSQL, Firebird, SQL Server, DB2と広くカバーされていますので、どのRDBを使うエンジニアでも大丈夫です。

本書は「学ぼう!」と「やってみよう!」のコーナーに分かれており、分量的に大きくは無いですが「やってみよう!」ではRDB(MySQL)に接続して、学んだことを実践できるようになっています。RDBの世界も他のエンジニアリングの世界と同様、手を動かして初めて深く理解できる事が多い分野ですので、ぜひトライしてみていただきたいです。

これからRDBにチャレンジする事になった方にぜひ手にとっていただきたい入門書です。

(目次)
第1章 データベースって何だろう-その用途と役割-
第2章 リレーショナルデータベースって何だろう-最も代表的なデータベース-
第3章 データベースにまつわるお金の話-イニシャルコストとランニングコスト-
第4章 データベースとアーキテクチャ構成-堅牢かつ高速なシステムを構築するために-
第5章 DBMSを操作する際の基本知識-操作する前に知っておくこと
第6章 SQL文の基本を学ぼう-SELECT文を理解する-
第7章 トランザクションと同時実行制御-複数のクエリをまとめる-
第8章 テーブル設計の基礎-テーブルの概念と正規形-
第9章 バックアップとリカバリ-障害に備える仕組み-
Appendix パフォーマンスを考えよう-性能を向上させるために-

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">