『おうちで学べるデータベースのきほん』

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

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

データベース界隈では有名人であろうミックさんの本。ブログに載っていたので読んでみました。

この本は、データベースとは何ぞやという話から、基本的な設計の仕組み、データベースのコストの話などをきちんと学んだ上で、データベースの構造、SQL、テーブル設計、運用設計(バックアップ・リカバリ)、チューニングを扱う構成で、データベースに関する事柄がコンパクトにまとまっていました。


特に面白かったのは「正規化」に関する部分でした。

これまでは正規化は、情報処理試験対策で知ってはいるものの、いまいち理解しきれておらず、感覚的にとらえていました。しかし、この本は「関数従属性」について簡略化してわかりやすく記載されており、頭の中を整理することができました*1

  • 大前提:テーブルは関数(関数従属性が成立する)「入力に対して一意に出力が定まる」

  • 第1正規形:すべの値がスカラ値である。「セルに複合的な値(配列など)を含まない」

  • 第2正規形:部分関数従属(関数従属の一種)が存在しない。「主キーを構成する列の一部にだけ関数従属する列が存在すること」

  • 第3正規形:推移関数従属が存在しない。「主キー以外のキー同士に関数従属が発生すること」


それ以外の項目も、初心者でもわかるように丁寧に解説されているので、エンジニアに限らず、これからデータベースを学ぼうとする人にはとても良い本だと思います。

参考

新著が出ます:『おうちで学べるデータベースのきほん』 - ミックのブログ

*1:とはいえ、注意すべきこともあるとは思っていて、二次元の表と言い切ってしまうと、本来のモデルとは違うのだろうなと思います。tableとrelationの違いはミックさんのWebサイトに記載があります。なぜ"関係"モデルという名前なの?