Open2

データモデリング

ひでひで

データモデリングとは

データモデリングとは、「アプリケーションで扱う情報(データ)の種類と構造を決める」ことです。

例えると:
料理のレシピで「どんな材料が必要か」リストアップするようなもの

なぜデータモデリングが必要なのか

  1. 整理整頓のため:情報を整理して、どこに何があるか分かりやすくする
  2. 無駄をなくすため:必要な情報だけを保存して効率よくする
  3. 将来の拡張のため:後から機能を追加しやすくする

単位変換アプリのデータモデル:何を定義する?

まず考えるべきは「このアプリで扱う主要な情報は何か」です。

単位変換アプリでは
(個人開発で単位変換アプリを作成中のため例にあげました。)

  1. カテゴリ(データサイズ、長さ、温度など)
  2. 単位(メートル、キロバイトなど)

具体的な設計手順

ステップ1: 主要な「モノ」を洗い出す

単位変換アプリの場合:

  • カテゴリ
  • 単位

ステップ2: それぞれの「モノ」がどんな情報を持つか決める

カテゴリの情報:

  • ID(一意の識別子。例: "data_size")
  • 名前(表示用。例: "データサイズ")
  • 説明(オプション)

単位の情報:

  • ID(一意の識別子。例: "bit")
  • 名前(表示用。例: "ビット")
  • 記号(表示用。例: "b")
  • 所属カテゴリ(どのカテゴリに属するか 例 カテゴリ: "data_size")
  • 変換係数(基準単位に対する倍率 例 変換係数: 8 (1バイト = 8ビット))

ステップ3: モデル間の関係を定義

  • 一つのカテゴリには複数の単位が含まれる
  • 一つの単位は一つのカテゴリに属する

簡単な例:データサイズカテゴリ

カテゴリ:
  ID: "data_size"
  名前: "データサイズ"
  
単位:
  - ID: "bit"
    名前: "ビット"
    記号: "b"
    カテゴリ: "data_size"
    変換係数: 1  (基準単位)
    
  - ID: "byte"
    名前: "バイト"
    記号: "B"
    カテゴリ: "data_size"
    変換係数: 8  (1バイト = 8ビット)
    
  - ID: "kilobyte"
    名前: "キロバイト"
    記号: "KB"
    カテゴリ: "data_size"
    変換係数: 8192  (1KB = 8 * 1024ビット)
ひでひで

データモデリングは、概念モデル論理モデル物理モデルという3つの段階を含む全体のプロセスを指すことが多いそうです。

わかりやすい比較

家を建てることに例えると:

  • データモデル設計 = 家を設計する全体のプロセス
  • 概念モデル = 「リビング、キッチン、寝室が必要」と決める段階
  • 論理モデル = 「リビングは20畳、南向き、窓が2つ」と詳細を決める段階
  • 物理モデル = 「このブランドの木材、このタイプのガラス」など実際の材料を決める段階

詳細説明

  1. データモデリング(全体プロセス)

    • データの表現方法を決める全体的な活動
    • 以下の3つの段階を包含する
  2. 概念モデル(第1段階)

    • ビジネス視点での設計
    • エンティティ(データの種類)と関係性を定義
    • 専門知識がなくても理解できるレベル
  3. 論理モデル(第2段階)

    • システム視点での設計
    • 属性(フィールド)や主キーなどの詳細を定義
    • 特定のDBに依存しない技術的な設計
  4. 物理モデル(第3段階)

    • 実装視点での設計
    • 特定のデータベース技術での実装方法
    • インデックス、データ型などの技術的詳細