データベース設計

データモデリング でーたもでりんぐ

概念モデル論理モデル物理モデルER図テーブル設計業務分析
データモデリングについて教えて

簡単に言うとこんな感じ!

データモデリングは「システムで扱うデータの設計図を段階的に描く作業」だよ!「どんなものを管理するか(概念)」→「どう関係するか(論理)」→「DBにどう落とすか(物理)」という3ステップで進める。建築の設計みたいに、いきなり施工せず図面を描いてから作るイメージなんだ!


データモデリングとは

データモデリング(Data Modeling)とは、業務やシステムで扱うデータの構造・関係・制約を抽象的に表現する設計プロセスです。データベースを正確・効率的に設計するための「設計図作り」であり、業務担当者・設計者・開発者が共通理解を持つためのコミュニケーションツールでもあります。

データモデリングは通常3つのレベルで段階的に進めます。業務の言葉でデータを整理する「概念モデル」、テーブルと関係を定義する「論理モデル」、特定のDBMSに合わせて実装詳細を決める「物理モデル」です。この段階を踏むことで、業務要件を正確にDBに落とし込めます。

データモデリングの品質はシステム全体の品質に直結します。設計段階でのミスは後になるほど修正コストが増大します(デシボル法則)。発注者側の視点では、「ベンダーに任せきりにせず、業務担当者がER図レビューに参加する」ことが、要件漏れや設計ミスを防ぐ重要なポイントです。


データモデリングの3層

レベル名称目的成果物対象者
第1層概念モデル業務のデータを整理概念ER図業務担当者・PM
第2層論理モデルテーブル・関係を定義論理ER図設計者・DBA
第3層物理モデルDB製品への実装詳細テーブル定義書開発者・DBA
データモデリングの3層と段階的精緻化 概念モデル 業務のエンティティと関係 顧客 注文 商品 「顧客が注文する」 「注文に商品が入る」 DB製品を意識しない 業務担当者も読める 論理モデル テーブル・属性・制約を定義 customers PK customer_id name orders PK order_id FK customer_id date 正規化・外部キー カーディナリティ定義 DB製品に依存しない 物理モデル 実装詳細を決定 CREATE TABLE customers ( customer_id BIGINT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE ); 型・インデックス・制約 DB製品固有の実装

歴史と背景

  • 1976年:チェンのER モデル提唱。データモデリングの理論的基盤が確立
  • 1980年代:CASE(Computer-Aided Software Engineering)ツールで体系化が進む
  • 1990年代:Ralph KimballのDWH設計手法(ディメンショナルモデリング)が登場
  • 2000年代アジャイル開発の台頭で「事前に完全なデータモデルを作る」アプローチが問い直される
  • 2010年代NoSQLの普及でドキュメント指向・グラフ指向などのモデリング手法も重要に
  • 現在:dbt(data build tool)・Fivetranなどのデータエンジニアリングツールとモデリングが統合

主なモデリング手法の比較

手法主な用途特徴
ERモデリングトランザクション系DB正規化・整合性重視
ディメンショナルモデリングデータウェアハウススタースキーマ・分析重視
オブジェクト指向モデリングORM・OOP連携クラス図とDB設計を統合
ドキュメントモデリングNoSQL(MongoDB等)入れ子・非正規化を前提

関連する規格・RFC

規格・RFC番号内容
ISO/IEC 11179メタデータレジストリの標準。データ要素の命名・定義規則
UML 2.x クラス図論理データモデルの表現に使えるUML標準

関連用語

  • ER図 — データモデリングの成果物として最もよく使われる図
  • 正規化 — 論理モデルを設計する際の基本手法
  • エンティティ — データモデリングの基本単位
  • スキーマ — 物理モデルの実装結果がスキーマとして表れる
  • データウェアハウス — ディメンショナルモデリングが使われる分析基盤
  • OLTP・OLAP — モデリング手法の選択に影響する処理モデルの違い