データベース基本概念

データディクショナリ でーたでぃくしょなり

メタデータスキーマデータベース管理カタログデータ定義DBMS
データディクショナリについて教えて

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

データベースの「索引+説明書」みたいなものだよ!「どんなデータが、どんな名前で、どんな形式で入っているか」を記録した台帳なんだ。図書館で言えば蔵書目録みたいなもので、DBを使う人やシステムが「このデータって何?」と調べるときに参照する場所ってこと!


データディクショナリとは

データディクショナリ(Data Dictionary)とは、データベース内に存在するデータそのものではなく、データに関する情報(メタデータを体系的に管理するための仕組みです。「テーブル名」「カラム名」「データ型」「制約条件」「テーブル間の関係」など、データベースの構造を記述した情報が集約されています。いわばデータベースの「設計書兼台帳」です。

ビジネスの現場では、複数のシステムにまたがって大量のデータが管理されます。そのとき「このcustomer_idというカラムは何を意味するのか」「どのテーブルと紐づいているのか」がわからなくなることがよくあります。データディクショナリを整備しておくことで、開発者・運用担当者・ビジネス側の誰もが同じ認識でデータを扱えるようになります。

データディクショナリは大きく2種類あります。DBMSが自動で管理するシステムカタログ(内部データディクショナリ)と、人が手動で整備するドキュメント(外部データディクショナリ)です。システム発注の現場では、後者の「業務上の意味を記載したドキュメント」が特に重要になります。


データディクショナリの構造と記録内容

データディクショナリには、主に以下のような情報が記録されます。

記録する情報具体例
テーブル名・エンティティorders(受注テーブル)
カラム名・属性名order_date(受注日)
データ型DATEVARCHAR(100)INTEGER
制約条件NOT NULL、主キー外部キー、ユニーク
業務上の意味・説明「顧客が注文を確定した日付」
参照先・関連テーブルcustomersテーブルのcustomer_idと紐づく
更新ルール・オーナー「受注システムが自動登録」「営業部管理」

記載例(外部データディクショナリの一部)

テーブル名  : orders(受注テーブル)
説明        : 顧客から受け付けた注文を管理するテーブル
主キー      : order_id

カラム一覧:
┌──────────────┬───────────────┬──────────┬──────────────────────────┐
│ カラム名     │ データ型      │ NULL許可 │ 説明                     │
├──────────────┼───────────────┼──────────┼──────────────────────────┤
│ order_id     │ INTEGER       │ 不可     │ 受注ID(自動採番)       │
│ customer_id  │ INTEGER       │ 不可     │ 顧客ID(customersと紐づく)│
│ order_date   │ DATE          │ 不可     │ 受注確定日               │
│ total_amount │ DECIMAL(10,2) │ 不可     │ 受注合計金額(税込・円) │
│ status       │ VARCHAR(20)   │ 不可     │ 状態(pending/confirmed)│
└──────────────┴───────────────┴──────────┴──────────────────────────┘

覚え方

データの履歴書」と覚えよう!人の履歴書に名前・生年月日・所属が書いてあるように、データディクショナリにはデータの「名前・型・所属テーブル・役割」が書いてあるんです。

内部と外部の2種類

種類管理者内容用途
内部データディクショナリ(システムカタログ)DBMS自動管理テーブル定義・インデックス・権限などDBMSが処理最適化に使う
外部データディクショナリ人が整備業務的意味・更新ルール・担当部署など開発・運用・ビジネス側が共通理解するために使う

歴史と背景

  • 1960年代:メインフレーム時代にファイルベースのデータ管理が普及。データの定義がプログラムごとにバラバラになる問題が顕在化
  • 1970年代:E.F.コッドが関係データモデルを提唱し、RDBMSが登場。データの構造を一元管理する「システムカタログ」の概念が生まれる
  • 1974年:IBMのSystem Rでシステムカタログの実装が進む。SQL標準でもINFORMATION_SCHEMAとしてカタログの仕様が整備される
  • 1980〜90年代:CASE(Computer-Aided Software Engineering)ツールが普及し、設計ドキュメントとしての外部データディクショナリが重要視される
  • 2000年代〜データウェアハウス・BIの普及に伴い、ビジネスグロサリ(業務用語集)と組み合わせた「エンタープライズデータディクショナリ」が注目される
  • 2010年代〜現在データガバナンスデータカタログツール(Alation、Collibra等)が登場し、自動でメタデータを収集・管理する仕組みが進化

データディクショナリ・スキーマ・データカタログの関係

似た言葉が多いので整理しておきましょう。

用語管理対象主な利用者
データディクショナリデータの定義・意味・制約開発者・DB管理者・業務担当
スキーマテーブル構造・型・制約(技術的定義)開発者・DBMS
データカタログ組織全体のデータ資産の所在・意味・品質データアナリスト・経営層
ER図テーブル間の関係を図示開発者・設計者
INFORMATION_SCHEMASQL標準のシステムカタログビュー開発者・ツール
データディクショナリと関連概念の位置づけ データカタログ(組織全体のデータ資産管理) データディクショナリ(定義・意味・制約の管理) スキーマ テーブル構造・型 制約(技術的定義) INFORMATION_SCHEMA 業務的定義・ER図 業務上の意味・説明 テーブル間の関係 更新ルール・担当 ビジネスグロサリ・データ品質・データ系譜・オーナーシップ (例: Alation / Collibra / Apache Atlas)

関連する規格・RFC

規格番号内容
ISO/IEC 11179メタデータレジストリの国際標準。データ要素の定義・命名・分類に関する規格
SQL標準(ISO/IEC 9075)INFORMATION_SCHEMAとしてシステムカタログのビュー仕様を規定

関連用語

  • スキーマ — データベースの構造(テーブル・型・制約)を定義したもの
  • メタデータ — データについての情報(名称・形式・作成日など)
  • ER図 — テーブル(エンティティ)間の関係を図で表したもの
  • DBMS — データベースを管理・操作するソフトウェア
  • データカタログ — 組織全体のデータ資産の所在・意味・品質を管理する仕組み
  • データガバナンス — 組織全体でデータを適切に管理・活用するための方針・ルール
  • 正規化 — データの重複や矛盾をなくすためのテーブル設計の手法
  • 主キー — テーブル内の各行を一意に識別するためのカラム