『指南書』前書き
昨日のエントリーに引き続き、今度は『指南書』の前書きから。
本書は、二つの意味で「橋を架ける」ことを目的とした本です。一つは、DB エンジニアとして初級から中級へ架橋し、初級者の方々のステップアップを支援すること。もう一つは、原理(理論)と実践の間を架橋することです。「初級」ということで、具体的には、SQL を使い始めて少なくとも半年から一年ほどの経験があり、基礎的なことは習得しおわった、というあたりを念頭においています。
試しに、ちょっと皆さんのレベルをはかるテストをしてみましょう。次の10 問にYes/No で答えてみてください。
- CASE 式を集約関数の中で使ったことがない。
- 自己結合がどういう動作をしているのか、イメージがつかめない。
- HAVING 句を影の薄い脇役だと思っている。
- EXISTS と IN では IN の方がわかりやすいから好きだ。
- 真理値型(ブール型)と聞いたとき、true と false しか値が思い浮かばない。
- テーブル設計のときにめったに NOT NULL 制約を付けない。
- SQL を全て大文字、または全て小文字で書く。
- GROUP BY とPARTITION BY の違いを一言で説明できない。
- SQL が持っている高階関数の名前を知らない。
- セルコの『プログラマのためのSQL』と『SQL パズル 第2 版』を読んではみたけれど、難しくて挫折した(または、そもそも読んだことがない)。
どうだったでしょう。全てに「No」だった方は、大丈夫、何の心配もいりません。本書を閉じてまっすぐ上級者への道を歩んでください(最後の「参考文献」だけは、立ち読みしてもいいかも)。一方、半分以上に「Yes」となった方、本書はまさにあなたの行く先を照らす灯台となるべく書かれました。必ずや読んで得るものがあるでしょう。
・・・・・・と、このように言う一方で、もしかしたら矛盾しているように聞こえるかもしれませんが、本書で取り上げる技術は、決して目新しいものではありません。どれも標準SQL に準拠した、ごく普通の道具ばかりです。目次を一瞥しただけでも、それは見当がつきます。CASE 式、自己結合、HAVING 句、外部結合、相関サブクエリ、EXISTS……いずれもDB エンジニアが日々の業務でよく利用する技術と言っていいでしょう。
本書は、そうした「特に目新しくはない、誰でもよく知っているもの」に新しい角度から光を当て、今まで見えていなかった一面を明らかにすることを、一つの狙いとしています。本書を読み終わったときには、今まで何の変哲もないと思っていたリレーショナル・データベースの世界が、少し違った輝きをもって見えてくると思います。
それでは早速、この奥深いリレーショナル・データベースの世界へ、探検にでかけるとしましょう!
この本も、今でも内容は古びていないという自信があります。読まれるときは以下のサポートページも併せてどうぞ。