SQLの苦手を克服する本 の商品レビュー
タイトルからして初心者向けのSQL本かと思ったが、DBの内部の話まで書かれており勉強になった。また、題材が実際の業務にありそうなものが多く好印象。 APIファースト開発については個人的にはストアドに頼りすぎるとデバッグが困難というイメージが強く採用したいかと言われるとあんまりとい...
タイトルからして初心者向けのSQL本かと思ったが、DBの内部の話まで書かれており勉強になった。また、題材が実際の業務にありそうなものが多く好印象。 APIファースト開発については個人的にはストアドに頼りすぎるとデバッグが困難というイメージが強く採用したいかと言われるとあんまりという印象。
Posted by
開発現場の実情に寄り添った形で、会話形式をベースに解説しており、頭に入ってきやすかった。 ■個人的に参考になった点 ・INとEXISTSの使い分け…選択性の高低を意識する ・DB性能への影響要素 ・DBアクセスのAPI化…DBもインターフェース仕様書を書こう
Posted by
SQLをどうすれば真価を発揮できるかについて書いた本。 そもそも、一般的なプログラミングは手続き型に則っているのにたいし、SQL(というより、リレーショナルデータベース)は集合思考なもんだから、ベテランのエンジニアでも理解していない人がいるらしく、ぐるぐる系SQLだとか効率の悪い...
SQLをどうすれば真価を発揮できるかについて書いた本。 そもそも、一般的なプログラミングは手続き型に則っているのにたいし、SQL(というより、リレーショナルデータベース)は集合思考なもんだから、ベテランのエンジニアでも理解していない人がいるらしく、ぐるぐる系SQLだとか効率の悪いSQLを書いてしまう人もいるらしい。 そういえば前にいたなぁ。JAVAについてはかなり詳しいのだけど、SQLについて苦手意識がある人。ある程度、勉強したことはあるので、文法は分かっている(例えば、LEFT JOINした項目をWHERE文で使うのがおかしいというのは分かる)のだけど、ぐるぐる系のほうがいいとか言っちゃう。JOINもやりたがらないし、UNIONもやりたがらない(UNIONした後にORDER BYしたら楽なのに、なぜJAVAでソートしなきゃいけないのかと……)。正直、そういう人にこの本を読んでほしいと思った。 ただ、もちろん中には自分も知らないことが書いてあって、「ON a.B_ID = B.ID AND 0 = B.DelFlag」という結合条件でJOINをかけると、1対1関係にある(同じIDがどちらにもある)テーブルだと、INNER JOINでもLEFT JOINでも結果が同じになると書いてあって驚いた。てっきり、LEFT JOINでも、B.DelFlagが1のデータはNULLになるだけかと。ちょっとどこかで試してみたい。 それと、IN(サブクエリ)とEXISTSの違いとか。処理される順序がINとEXISTSで違うのだとか。サブクエリで返ってくる結果が少ないのであれば、INを使ったほうがいいらしい。覚えておきたい。 後、時々、複数の種類の名前と値を一つのマスタにしているテーブルを見るけど、あれはEAV(Entity-Attribute-Value)というらしく、SQLアンチパターンらしい。やっぱりあれって、SQLのアンチパターンなのか。確かに便利だなと思ったのだけど、ちょっとした違和感は確かにあった。 著者はAPIファースト開発という手法を提案しているそうなのだけど、ようはストアドプロシージャを使った開発と考えていいのかな? うちの会社でも基本、自社開発だとそうしてるし、そのほうがストアド変更するだけでアプリの変更はいらないという修正依頼も多いので、確かにいいと思う。
Posted by
- 1