ほんとの出会い系ブログ

今まで出会った本をご紹介します。人気の作品や良書と呼ばれる本が多いと思いますので、出会いのきっかけになれば幸いです。

プログラマのためのSQL 第4版

プログラマのためのSQL 第4版

プログラマのためのSQL 第4版

本書は特定のベンダに依存しない、標準のSQLに関する書籍です。そのため、特定のDBMSではサポートしていない構文も説明されていることがありますが、それほどSQLについて網羅的に説明されている書籍ともいえます。本書の副題「すべてを知り尽くしたいあなたに」もそれを表しているといえるでしょう。本書は全39章ですが、大きく分けて12章までの前半と13章以降の後半に分けられます。

前半はデータベースの基礎的な概念やテーブル、型、制約などのSQLで扱う基本的な要素を説明します。主な章は次の通りです。

  • 第2章 トランザクションと同時実行制御
  • 第5章 基底テーブルとそれに関連する要素
  • 第7章 手続き型の遺産
  • 第9章 正規化
  • 第10~12章 数値型、時間型、文字列型

第7章はタイトルからはわかりにくいですがストアドプロシージャやトリガを説明する章です。ただし、著者はトリガはパフォーマンス上の欠点があるので限られた場合を除いて「極力使うべきではない」と論じています。

後半はテーブルの操作や各種演算子、述語、集約関数、それらの応用テクニックを説明します。主な章は次の通りです。

  • 第13章 NULL:SQLにおける失われたデータ
  • 第15章 テーブルの操作
  • 第18章 CASE式
  • 第24章 単純なSELECT文
  • 第25章 高度なSELECT
  • 第29章 単純な集約関数
  • 第30章 高度な集約、ウィンドウ関数、OLAP
  • 第39章 SQLの最適化

第13章はSQLにおけるNULLの扱いについて説明します。データベースやSQL関連の書籍は多くありますが、これほどNULLについて詳細に説明する書籍は多くないのではと思います。著者はNULLの使用を可能な限り避けるように警告しています。

本書の序文では「本書は初心者向けではない」と断言されています。たしかに800ページ近くのボリュームで内容が濃く、経験者向けに書かれてはいますが、基礎的な内容を扱う章や単純なSQLの構文を扱う章は経験が浅くとも理解できる内容です。また、本書を手元に置いて読み返すことで、初めは理解しにくかった内容も経験と共に理解が進むでしょう。SQLは長年利用され、今後も利用され続けるであろう寿命の長い言語です。SQLの知識はアプリケーションの種類によっては必須と言えます。本書はそのようなSQLを学ぶ上で多少時間をかけてでも読む価値があります。

honto.hatenablog.jp