hiro_env

モダンな技術スタックを扱う会社のエンジニアになるまでの学習記録

達人に学ぶDB設計徹底指南書の感想(短め)

良かったところ

  • 論理設計と物理設計のトレードオフについて、その関係性が豊富に解説されておりその設計をすると何が良くて何が悪いのかが理解しやすい。
  • DBの設計に必要な多くの知識が、例題を介してグレーゾーンなパターン、またはバッドなパターンも含めて色々と学べるようになっている。
  • また、設計には完全な正解はなく思想が異なる人もいると前置きした上でご自身の見解について述べられており、どんな設計がベストかはケースバイケースであることを学ぶことができる。

学んだこと

  • 正規化の方法やなぜそれを行うべきかといった設計に関する重要なことや実務運用上の注意点、インデックスや統計情報に関して、またリレーショナルデータベースでは比較的難しいとされていたツリー構造の表現方法(入れ子集合モデル・入れ子区間モデル・隣接リストモデルや経路列挙モデル)など。
  • 特に正規化については基本かつ大切だと思うので、忘れないよう簡単に言語化しておく。
  • 正規化
    • メリット:データを挿入、更新する際の人為的ミスを防ぎ整合性を担保すること(同じ情報を複数の場所に重複して保持することを避ける)、また冗長なデータを減らすこと。
    • デメリット:データの取得や使用に際して結合が必要なとき、パフォーマンスが悪化すること。

難しかったこと

  • ツリー構造の表現をRDBで実現する方法を初めて学んだため、実際にテーブルに入れた際のクエリの作成方法が難しかった。