
新著が出ます:『センスの良いSQLを書く技術』
「最近書きすぎなんじゃないの」と言われそうな気もするが、またまた新著が出る。著者もそろそろキャリアの終わりを意識するようになって、体と頭が動くうちに宿題を終わらせておかないとな、という心境である。
本書は純粋な技術書ではない。コードもあまり出てこないので寝転がっても読める。エッセイと言ってしまえばそれまでだが、技術の背景にある思想や理論(あとちょっとした仕事術)にフォーカスした本だ。NewSQLやHTAP、生成AIによるクエリジェネレータなど時事的なテーマも扱っているが、その根底にもデータベース独自の思想や考え方が含まれている。その意味で本書は、筆者がどんな考え方や知識をバックグラウンドとしてDB/SQLに向かい合ってきたかという、今まで明示的に語ってこなかった頭の中を直接ダンプしたような内容になっている。それを伝えることで、長い目で見て読者の血肉になるような物事の考え方や視野の広さを養える本にしたいと思った。難しく言うと非認知的能力の涵養というやつである。
昔はITの世界にも、こういう敢えて遠回りな道を行く本がけっこうあった。ワインバーグ『スーパーエンジニアへの道』や高野豊『rootから/へのメッセージ』などは著者もファンで、若いころに何度も読み返した。ITが商売の道具一辺倒ではなく、ある種の文化や思想を体現していた時代の産物だと思う。著者はそういう時代の終わりの方を少しだけ体験した最後の世代だ。何事にも即効性を求める現代にこういうアプローチが受け入れられるかどうかは、正直よく分からないが、著者がDB/SQLの世界に分け入ったときに感じた感動や驚き、不思議の感覚を伝えられればと思って書いた。
そういう本がデータベースの分野にもあるといいなと思っていたし、他にそんな本を書く人もいないから自分が書くしかない、とも思っていた。そこへKADOKAWAという文芸書やエンタメに強い出版社から「生涯学習をテーマに書いてほしい」というお誘いをいただいたので、なおさら即効性のあるオーソドクスな技術書にはしない、「読んで面白い」本にしようと思った。この場合の面白いは、もちろん笑えるという意味ではなく、知的好奇心を刺激するという意味だ(本当に笑えるという意味だと、たぶんChapter 4が一番面白いと思う。もうあまりデータベース関係ないけど)。
基本的にはデータベースを触る機会のあるエンジニアを読者に想定はしているが、普段データベースに縁のないフロントエンドのエンジニアや業務系・コンサル系の人たちが読んでも、「データベースやSQLというのはそういう思想でそういう問題意識を持って動いている世界なのか」という発見が得られるかもしれない。曖昧な言い方で申し訳ないが、本人にも自信がない理由は、いつもは読者層のペルソナを意識して書くのだが、今回は類書のない本なので、どういう層にどう響くのか予測が立っていないからである。以下に目次を示すので、もしこれを見て面白そうだと思ったら読んでいただきたい。きっと幸せな出会いが待っている。「なんだこれは」と思ったらスルーしてもらってかまわない。それでお互い、特段の不都合はない。
Chapter 01 RDB・SQL の基礎
01 データベースは何のためにあるのか
02 SQL誕生秘話
03 SQLの謎 ― なぜSQLでなければならなかったのか
04 SQLの中の命題論理
05 多値論理の不思議な世界
06 SQLの中の述語論理
07 SQLにおける量化の謎 ―「すべての」と「存在する」の不思議な関係
08 位置による呼び出しと名前による呼び出し
09 SQL における再帰の内側
10 ナチュラルキー vs サロゲートキー
11 データベースの2つのバッファ
12 UNDOと読み取り一貫性の保証
Chapter 02 RDB・SQLの論理
01 関数としてのテーブル ― 写像と命題関数の謎
02 最大の自然数は存在するか
03 SQLの論理形式 - SQLはFROM句から書け
04 「わからないこと」が多すぎて
05 結合アルゴリズムのカラシニコフ
06 RDBは滅びるべきなのか
07 ビッグデータが変えたもの
Chapter 03 RDB・SQL進化論
01 ネクストRDB ー NewSQLの実力
02 今このデータベースがアツい!
03 HTAP ー スーパーデータベースという夢
04 SQLと生成AI
05 入れ子集合モデル ― SQLのパラダイムシフト
06 入れ子区間モデル ― もしも無限の資源があったなら
07 マルチクラウド時代のデータベース
Chapter 04 職業としてのエンジニア
01 実現すべき自己などない時
02 歴史的アプローチの効用 ー 演繹 vs 帰納
03 テレカンとデスマーチ
04 見えないコストに関する考察 ー あるいはメールのCC について
05 異常系をなくせ
06 タスクを細切れにしろ
07 早飯早グソは三文の得
08 戦略的思考
09 怒りという武器