書籍
SQLアンチパターン 第2版
データベースプログラミングで陥りがちな失敗とその対策
Bill Karwin
概要
ナイーブツリー・EAV(エンティティ・アトリビュート・バリュー)・ポリモーフィック関連など、 現場で頻出する不適切な設計と SQL の失敗例を 25 章で網羅し、回避策を提示する世界的名著。 第2版では現代の DB 事情を反映した加筆が施され、和田卓人氏の監訳が付く。
対象読者
- コードレビューで強力に指摘できる設計眼を養いたいエンジニア
- 現場の DB 設計で陥りがちな失敗を未然に回避したい開発者
目次 27章
- 第1章 アンチパターンとは何か?
- 第2章 ジェイウォーク(信号無視)
- 第3章 ナイーブツリー(素朴な木)
- 第4章 IDリクワイアド(とりあえずID)
- 第5章 キーレスエントリ(外部キー嫌い)
- 第6章 EAV(エンティティ・アトリビュート・バリュー)
- 第7章 ポリモーフィック関連
- 第8章 マルチカラムアトリビュート(複数列属性)
- 第9章 メタデータトリブル(メタデータ大増殖)
- 第10章 ラウンディングエラー(丸め誤差)
- 第11章 サーティワンフレーバー(31のフレーバー)
- 第12章 ファントムファイル(幻のファイル)
- 第13章 インデックスショットガン(闇雲インデックス)
- 第14章 フィア・オブ・ジ・アンノウン(恐怖のunknown)
- 第15章 アンビギュアスグループ(曖昧なグループ)
- 第16章 ランダムセレクション
- 第17章 プアマンズ・サーチエンジン(貧者のサーチエンジン)
- 第18章 スパゲッティクエリ
- 第19章 インプリシットカラム(暗黙の列)
- 第20章 リーダブルパスワード(読み取り可能パスワード)
- 第21章 SQLインジェクション
- 第22章 シュードキー・ニートフリーク(疑似キー潔癖症)
- 第23章 シー・ノー・エビル(臭いものに蓋)
- 第24章 ディプロマティック・イミュニティ(外交特権)
- 第25章 スタンダード・オペレーティング・プロシージャ(さびついた開発標準)
- 第26章 標準SQLにおける外部キーの誤った使い方
- 第27章 MySQLにおける外部キーの誤った使い方
タグ
奥付
- 出版社
- オライリー・ジャパン
- ISBN
- 978-4814400744
- 出版日
- 2025年7月
- 参考定価
- ¥4,290税込Amazonの実売価格と異なる場合があります
この本を手に入れる
※ 上記は Amazon アソシエイトによる広告リンクです。関連書籍
前提となる書籍
- 推奨前提
達人に学ぶDB設計徹底指南書 第2版
ミック
理由: 正攻法の設計手順を学んだら、次は「やってはいけない設計」を反面教師から学ぶ。Bill Karwin『SQLアンチパターン』は外部キー欠如(Keyless Entry)・EAV・カンマ区切りリストなど典型的な失敗を体系化しており、制約による整合性確保の重要性を裏側から補強する。
- 参考
理論から学ぶデータベース実践入門
リレーショナルモデルによる効率的なSQL
奥野幹也
理由: 関係モデルと正規化理論を理解していると、Karwin『SQLアンチパターン』の各失敗例が「どの理論的原則を破っているか」という観点で読める。理論を知っているからこそアンチパターンが「なぜダメか」を原理から判断でき、暗記でなく応用の効く知識になる。
次に読む書籍
- 推奨前提
失敗から学ぶRDBの正しい歩き方
曽根壮大
理由: Karwin『SQLアンチパターン』が論理設計・SQL レベルの失敗を扱うのに対し、『失敗から学ぶRDBの正しい歩き方』は本番運用で顕在化する RDB の落とし穴を扱う。設計時のアンチパターンを学んだ流れで、運用時のアンチパターンへ視野を広げると、設計から運用までの失敗パターンが一望できる。
- 参考
データベース・リファクタリング
データベースの体質改善テクニック
Scott W. Ambler, Pramod J. Sadalage
理由: Karwin『SQLアンチパターン』で「すでに作り込んでしまった悪い設計」を見抜けるようになったら、次はそれを安全に直す手段が要る。『データベースリファクタリング』は本番データを保持したままスキーマを段階的に改善するパターンカタログを提供し、アンチパターンの発見から修正までを一気通貫にする。