データディクショナリ でーたでぃくしょなり
メタデータスキーマデータベース管理カタログデータ定義DBMS
データディクショナリについて教えて
簡単に言うとこんな感じ!
データベースの「索引+説明書」みたいなものだよ!「どんなデータが、どんな名前で、どんな形式で入っているか」を記録した台帳なんだ。図書館で言えば蔵書目録みたいなもので、DBを使う人やシステムが「このデータって何?」と調べるときに参照する場所ってこと!
データディクショナリとは
データディクショナリ(Data Dictionary)とは、データベース内に存在するデータそのものではなく、データに関する情報(メタデータ)を体系的に管理するための仕組みです。「テーブル名」「カラム名」「データ型」「制約条件」「テーブル間の関係」など、データベースの構造を記述した情報が集約されています。いわばデータベースの「設計書兼台帳」です。
ビジネスの現場では、複数のシステムにまたがって大量のデータが管理されます。そのとき「このcustomer_idというカラムは何を意味するのか」「どのテーブルと紐づいているのか」がわからなくなることがよくあります。データディクショナリを整備しておくことで、開発者・運用担当者・ビジネス側の誰もが同じ認識でデータを扱えるようになります。
データディクショナリは大きく2種類あります。DBMSが自動で管理するシステムカタログ(内部データディクショナリ)と、人が手動で整備するドキュメント(外部データディクショナリ)です。システム発注の現場では、後者の「業務上の意味を記載したドキュメント」が特に重要になります。
データディクショナリの構造と記録内容
データディクショナリには、主に以下のような情報が記録されます。
| 記録する情報 | 具体例 |
|---|---|
| テーブル名・エンティティ名 | orders(受注テーブル) |
| カラム名・属性名 | order_date(受注日) |
| データ型 | DATE、VARCHAR(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_SCHEMA | SQL標準のシステムカタログビュー | 開発者・ツール |
関連する規格・RFC
| 規格番号 | 内容 |
|---|---|
| ISO/IEC 11179 | メタデータレジストリの国際標準。データ要素の定義・命名・分類に関する規格 |
| SQL標準(ISO/IEC 9075) | INFORMATION_SCHEMAとしてシステムカタログのビュー仕様を規定 |