その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Webエンジニアのためのデータベース技術[実践]入門を読みました

Webエンジニアのためのデータベース技術[実践]入門を読みました。良い本でした。

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)


こんな人が読めば良いと思います

僕は「データベース」と名の付く講義を片っ端から受講しなかったので*1
データベースが何者であるのかがよく分かっていませんでした。

かつての僕の中では、
データベースは高速にデータを格納できて、高速にデータを取り出せる魔法の箱的ななにか
という漠然とした認識でしたし*2
レプリケーション? ああ、「代表」とかそういう意味のアレね
と勘違いしていましたし*3
トランザクションという言葉を聞いて真っ先に思い浮かぶのが「雨上がりの夜空に」
でしたし*4、まあ色々な思い違いを犯していました。

という具合に、DB の知識がほぼ無い僕でもレプリケーションがなんなのかが理解できましたし、
トランザクションが耐障害性を高めるための技術であることがわかりました。
加えて、その他のDB に関する知識も網羅的に仕入れることが出来たので大変良かったです。

なので、
「データベースってなんなのかわからないわ……いっちょここらでデータベースについて学んどくか!」
みたいな人が読むと良いと思いました。
データベースについて、ある程度知識を有している人についてはわかりませんが多分良い本です。

ただ、ここで言うデータベースというのは書籍名にあるとおり「実践」的な内容が主ですので、
「正規化がうんぬん」みたいないわゆる数学・論理的な内容はあまりカバーしていません。
そういう内容を学びたい場合は他の書籍を当たるのが良いと思います。

特に良かった点


あとは

実際にデータベースの運用をしたことがないので、モニタリングとかスケーラビリティとか、
「サービスを止めずにテーブルの構造を変更する」とかがいまいちイメージが沸かなかったので、
ここら辺はやっぱり経験がモノを言うのかな―と思いました。

あと、memcached とかRedis といったインメモリDB についてもうちょっと説明が欲しい所でしたが*5
まあそこらはテメーで別の書籍読んだりWeb で調べたりしろ、って事なんでしょう。

とにかく

DB について門外漢だった僕にとっては大変勉強になりました。
これをきっかけにして、他の書籍を読むなどしてデータベースに関する知識を増やしたいと思いました。

*1:往々にして単位の都合上

*2:ある意味で合ってて、ある意味で間違ってた

*3:それは"representation"

*4:それはRCサクセション

*5:ISUCON2 等で色々話題になっていたので