見出し画像

新著が出ます - 『達人に学ぶDB設計徹底指南書 第2版』

さて、だいぶ久しぶりとなりますが、新著が出ます。序文を掲載しますので、購入にあたっての参考にしていただければと思います。初版は14刷りを数えたロングセラーで、第2版では主にクラウド対応や古くなった部分の最新化を行いまいした。


本書の初版が刊行されて10年以上が経過しました。その間にシステムとビジネスの世界にも予想だにしていなかった大きな地殻変動が起きました。ビッグデータという言葉はバズワードの域を脱して、企業の意思決定に使われるようになり、データ分析を専門に行うデータサイエンティストという職種も登場しました。クラウドの利用はもはや当たり前になり、むしろその応用方法を考えるハイブリッドクラウドやマルチクラウドの時代へと入りつつあります。そして何より、生成AIを中心とするAIの波があらゆる業界に押し寄せています。しかし、その中でも変わらなかったことがあります。それがデータベースの重要性です。変わらないどころか、「データドリブン経営」という言葉に表されるように、データとそれを管理するデータベースの存在感は、あらゆる分野でますます増してきていると言えます。

本書は、数あるデータベースの中でも中心的な位置を占めるリレーショナルデータベースにおける設計についての書籍です。「データベース設計」と一口に言っても、その内容は多岐にわたります。このジャンルの書籍は、大きく以下の3種類に分類できます。

  1. 論理設計

  2. 物理設計

  3. 実装設計

  1. は、いわゆる正規化やER図といった道具を使ったデータのモデル設計です。一般的に「データベース設計」と聞いて、多くの人が思い浮かべる分野がこれかもしれません。

  2. は、サーバーやストレージといった物理的なハードウェアレベルの設計で
    す。データベースも究極的にはこうしたハードウェアの上で動作するため、物理設計も重要です。

  3. は、特定のデータベース製品を前提に、具体的な構築の手順や方法を解説したものです。データベース製品によってアーキテクチャに違いがあるため、実際にシステムを構築する段には、製品に寄りそって考える必要があります。「○○で作るデータベースサーバー」とか「○○実践パフォーマンスチューニング」といったタイトルの本(○○はデータベース製品)は、このカテゴリに属します。

上記の分類に従えば、本書がカバーするのは、原則として❶ 論理設計と❷ 物理設計です。書籍によっては、❶と❷ を分離して、どちらか一方にフォーカスするものも珍しくありません。ですが、本書ではこの両者を同時に考えていくスタイルを取っています。章立ての便宜として、論理設計と物理設計に分ける構成にはなっていますが、片方が主題の章にも必ずもう一方が顔を出してきます。

その理由は、論理と物理、二つのレベルの設計を同時に考えたほうが理解しやすいから——ではありません。むしろ、片方を学ぶ間はもう一方のことは忘れたほうがわかりやすいぐらいです。本書が両者を同時に考える理由は、この二つのレベルの間に、強いトレードオフの関係が成立しているからです。

トレードオフ。日本語に訳すと「あちらを立てればこちらが立たず」。すなわち、論理設計をきれいに行なおうとすると物理設計が犠牲になり、物理設計を優先すると論理設計が犠牲になる。

実のところ、トレードオフは別にデータベース設計だけに使われる言葉ではなく、システム開発全般、ひいては仕事からプライベートから、私たちの生活すべてにおいて当てはまる原理です。米国の経済学者マンキューは次のように言っています。

意思決定に関する最初の原理は、「無料の昼食(フリーランチ)といったものはどこにもない」ということわざに言い尽くされている。自分の好きな何かを得るためには、たいてい別の何かを手放さなければならない。意思決定は、一つの目標と別の目標のトレードオフを必要とするのである 。

みなさんは本書を通じて、望ましい論理設計とは何か、望ましい物理設計とは何かを学んでいくことになります。しかし本書の目的は、単にそれを理解してもらうだけにはとどまりません。さらに、望ましい論理設計を達成しようとするとき、犠牲になるものは何か、望ましい物理設計を諦めなければならないのは、どのような理由によるのか、といったトレードオフを学びます。

なお、先ほど本書では「原則として」実装設計を取り上げないと留保付きで述べましたが、このような留保が必要なのは、物理設計においてパブリッククラウドの利用を考えた場合に、どうしても特定の実装に依存する内容とせざるをえなかったからです。

先述の通り、本書の初版出版から10年が経過する間にクラウドの利用はデータベースの世界でも一般的になってきました。そのため、本書の物理設計においてもクラウドについて取り上げています。ただ、クラウドはまだ歴史が浅いことから標準仕様もなく、実装ごとに仕様が異なる部分が多くあります。

そのため本書では、パブリッククラウドのファーストランナーでありシェアトップであるAWSを前提に物理設計を考えていきます。しかし、使われる用語や概念はAWS独自のものであっても、AzureやGCPにおいても考え方は通用すると考えています。その意味で、AWSを前提とはしていても、本書の一般性は失われてはいません。

それでは、データベースの奥深い世界を一緒に探求しにいきましょう!


この記事が気に入ったらサポートをしてみませんか?