- Amazon.co.jp ・本 (352ページ)
- / ISBN・EAN: 9784873115894
作品紹介・あらすじ
データベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅。
感想・レビュー・書評
-
ある程度SQLに慣れ親しんだ人だったら「あー、あるある」と思いながら楽しめる本。ありがちなシチュエーションと目的、それに対するアンチパターンという構成で紹介されていて読みやすいし、楽しんで読めると思う。
メタデータトリブルを読んでパーティショニング機能が使えないMySQLはもう使うべきじゃないなーと思った(使ってるけど)。今ざっと読み返していいなと思ったアンチパターンはナイーブツリーかなあ。勉強になった。詳細をみるコメント0件をすべて表示 -
とても素晴らしい本でした。SQLを利用したシステムを作る人にはお勧めしたい本です。具体的にイメージが沸くような形式で書かれているので、このアンチパターンがどういう副作用を生むのかというのを体感することができると思います。
-
現場であるある的な内容(既知の内容とも言う)が思ったより多かったですが、系統的に分けられた本は他に見たことない。
基本的なSQL構文は理解したけどテーブル設計はあまりした事ない人とか、今までなんとなく現場のルールに従ってやってきた人には新しい発見が多いかも。
全体的に読みやすいです。 -
やっぱりパターンとして纏まっていることのすばらしさが改めてわかった一冊。今まで、過去の経験上、避けていた方法が、この本でパターンとして整理されていたおかげで、なぜダメな設計なのかを自分の中で再構築できた気がする。
内容としては、半分は知っている内容、半分は知らない内容なので、自分としての目新しさがちょっと無かったので、その点はちょっと評価が低くなるけど、それはまあしょうがないと思う。
目新しいさを除けば、自分のDB設計の再整理に最適なので、ぜひ他の人にも読んで欲しい一冊 -
【オススメ書籍紹介】『SQLアンチパターン』Bill Karwin
(エンジニア:金子)
「愚者は経験に学び、賢者は歴史に学ぶ」
冒頭にドイツの宰相ビスマルクの格言が引用されています。
本のタイトルに入っている言葉である「アンチパターン」は「べからず集」であり、それを学ぶことにより、自らが失敗をせずとも他者の失敗から学ぶことができると書いています。
第4章で書かれているキーレスエントリ(外部キー嫌い)は、まさに過去に失敗した事のあるパターンでした。
DB側で参照整合性などの制約を厳しく設定した場合、アプリ側の実装で制約に違反をすることは出来なくなるため、時には制約が邪魔に感じることがあります。
しかし制約を外すということは、アプリ側での完璧なコード実装を前提にしており、それなりの代償を支払うことになると意識する必要があります。
この本を読んでいたら、もう少し慎重に検討していたと思います。
その他にも過去の開発経験を思い起こすと頷ける内容がいくつもありました。
本書ではアンチパターンごとに解決すべき目的や解決策、そしてアンチパターンを用いても良い場合の例外についてまで言及しているので、非常に実態に即した内容になっています。
日々開発をして行く中で、どうする事が最善か、道に迷う事があると思いますが、考える際の指針になる本だと思います。
その他にも「インデックスショットガン」(闇雲インデックス)や、「IDリクワイアド」(とりあえずID)など、エンジニアにはピンとくるような秀逸なタイトルも読んでいて面白いです。
エンジニアの方にはぜひオススメしたい一冊です。 -
DBを扱うすべてのエンジニアに読んでおいて欲しい一冊。
基本的な内容も多く順序が関係ないのでわからない箇所は読み飛ばしてでも一通り目を通すことをおすすめします。
アンチパターンというアプローチも面白く、他の分野でも見つける努力をすると面白そうです。バッドノウハウにも似ている。特にアンチパターンの見つけ方は面白いです。誰もが通る失敗があったり、なかったり。
愚者は経験に学び、賢者は歴史に学ぶ、そうです。経験に学ぶほうがみに付きやすいですが、すでにわかってる罠を回避するためにも歴史に学びながら経験に学びたいですね。 -
RDBMS に関わるなら、読むべき必読書。
…まあ、率直に言って、 10 年以上 RDBMS に関わっていれば、「何を今さら…」な内容ではある。あるのだが、それに名前を付け、パターンとしてカタログ化されていることが、とても大切なのだ。
振り返れば、アンチパターンに記載されている失敗をいくつか経験し、眠れぬ夜を過ごしたこともあった。パターンにたどり着くまで、熱い議論を繰り広げたこともある。その時間を劇的に短縮できることの価値は、とても大きい。なにせ、私の 10 年が 10 時間ぐらいで習得できるのだから。…いや、まあ、知識が血となり肉となるには 1 年ぐらいはかかると思うけど…。 (^^; 個人差はあれど、知識を伝承するコストが大きく低減することは間違いなく、その価値は計り知れない。
OR マッパー全盛の現代ではあるが、永続化する手段として RDBMS はまだまだ君臨し続ける。サッカーの高度な戦術が、ボールを止める、パスを出すという基礎の上に成り立っているように、本書の技術はシステム構築のエッセンスとして、とても大切なことなのだ。
ソフトウェア技術に関わるなら、ぜひ、一読を。 -
データベースを「データの入れ物」程度に考えている人にこそ読んで欲しい。私たちが目の前の問題に対して導き出した答えのほとんどがアンチパターンとして紹介されている。
アンチパターンに対しての代替咲くだけでなく、あえてアンチパターンを使ってもよい場合にも触れており、かなり実戦的な内容になっている。 -
アプリケーション開発してるなら必須の知識
-
DB設計・クエリ・アプリ開発におけるSQLアンチパターン集。
アンチパターンの定義、解決策だけでなく、用いても良い場合についても触れている。
25もの例があるので、各フェーズごとに本書を読み返して当てはまるものがないかチェックするようにすると良い。
TDDの和田さん親子が共訳してるのでエモい。