英語でデータ辞書を書くよう求められたとき、何を書けばいいか迷った経験はないだろうか。
データ辞書はテーブル・カラム・データ型・制約を一元管理するドキュメントだ。グローバルチームでは英語が基本になるが、6つのセクション構成さえ押さえれば英語でも問題なく書ける。
この記事では、データ辞書に必要な6つの構成要素と、そのまま使える日英テンプレートを紹介する。コピペして使えばすぐに実務で活用できる。
データ辞書に必要な6つの構成要素
データ辞書はデータベース設計の仕様をチーム全体で共有するドキュメントだ。以下の6つが標準的な構成要素になる。
- 基本情報(Document Info)
- テーブル一覧(Table List)
- カラム定義(Column Definitions)
- データ型・制約の凡例(Data Types & Constraints Legend)
- 用語集(Glossary)
- 変更履歴(Change Log)
なぜ英語で書くのか
グローバルチームでは英語がデータベース設計の共通言語になる。英語で書くことで、海外チームや外部ベンダーとのスキーマレビューがスムーズになる。
「このカラムは何を意味するか」「NULLを許可するか」といった仕様の曖昧さを排除するためにも、データ辞書は欠かせない。
データ辞書とER図の使い分け
ER図はテーブル間のリレーションを視覚化するツールだ。一方、データ辞書はカラムの意味・制約・業務ルールなどの詳細を文書化する。両方があることで、設計の意図が正確に伝わる。
テンプレートをダウンロード(Word)
以下のWordファイルをダウンロードして、プロジェクトに合わせてカスタマイズして使ってほしい。表の列・行はそのまま追加・削除できる。
📥 日本語テンプレートをダウンロード(Word)
📥 Download English Template (Word)
日本語版テンプレート(コピペOK)
基本情報
| 項目 | 内容 |
|---|---|
| ドキュメント名 | (例:〇〇システム データ辞書) |
| バージョン | v1.0 |
| 作成日 | YYYY-MM-DD |
| 作成者 | (名前) |
| 最終更新日 | YYYY-MM-DD |
| 対象DB | (例:PostgreSQL 15 / MySQL 8.0) |
| ステータス | Draft / In Review / Approved |
テーブル一覧
| テーブル名 | 論理名 | 説明 | 主キー | レコード数(目安) |
|---|---|---|---|---|
| users | ユーザー | システムに登録したユーザーの情報を管理する | user_id | 〜10万件 |
| orders | 注文 | ユーザーが行った注文を管理する | order_id | 〜100万件 |
| products | 商品 | 販売する商品の情報を管理する | product_id | 〜1万件 |
| order_items | 注文明細 | 注文ごとの商品明細を管理する | order_item_id | 〜500万件 |
カラム定義(例:usersテーブル)
| カラム名 | 論理名 | データ型 | NOT NULL | デフォルト値 | 説明 |
|---|---|---|---|---|---|
| user_id | ユーザーID | UUID | ○ | gen_random_uuid() | 主キー。自動生成 |
| メールアドレス | VARCHAR(255) | ○ | なし | ユニーク制約あり | |
| name | 氏名 | VARCHAR(100) | ○ | なし | 表示名 |
| role | ロール | VARCHAR(20) | ○ | ‘user’ | admin / user のいずれか |
| is_active | 有効フラグ | BOOLEAN | ○ | true | falseで論理削除 |
| created_at | 作成日時 | TIMESTAMP | ○ | NOW() | レコード作成日時 |
| updated_at | 更新日時 | TIMESTAMP | ○ | NOW() | レコード最終更新日時 |
データ型・制約の凡例
| 記号・用語 | 意味 |
|---|---|
| ○(NOT NULL) | NULL値を禁止する |
| PK | 主キー(Primary Key) |
| FK | 外部キー(Foreign Key) |
| UQ | ユニーク制約(Unique Constraint) |
| IDX | インデックスあり |
| VARCHAR(n) | 最大n文字の可変長文字列 |
| TIMESTAMP | 日時(タイムゾーンなし) |
| TIMESTAMPTZ | 日時(タイムゾーンあり) |
用語集
| 用語 | 定義 |
|---|---|
| 論理削除 | レコードを物理的に削除せず、フラグ(is_active等)でアーカイブする方式 |
| ソフトデリート | 論理削除と同義。deleted_at カラムに削除日時を記録する方式 |
| テナント | マルチテナント構成における顧客単位の区分 |
| スラッグ | URLに使用する識別子。英小文字・数字・ハイフンで構成 |
変更履歴
| バージョン | 変更日 | 変更者 | 変更内容 |
|---|---|---|---|
| v1.0 | YYYY-MM-DD | (名前) | 初版作成 |
| v1.1 | YYYY-MM-DD | (名前) | usersテーブルにphone_numberカラムを追加 |
| v1.2 | YYYY-MM-DD | (名前) | ordersテーブルのstatus定義を更新 |
英語版テンプレート(コピペOK)
Document Info
| Field | Value |
|---|---|
| Document Title | (e.g., Data Dictionary for [System Name]) |
| Version | v1.0 |
| Created Date | YYYY-MM-DD |
| Author | (Name) |
| Last Updated | YYYY-MM-DD |
| Target Database | (e.g., PostgreSQL 15 / MySQL 8.0) |
| Status | Draft / In Review / Approved |
Table List
| Table Name | Logical Name | Description | Primary Key | Estimated Rows |
|---|---|---|---|---|
| users | User | Manages registered user information | user_id | ~100K |
| orders | Order | Manages orders placed by users | order_id | ~1M |
| products | Product | Manages product catalog information | product_id | ~10K |
| order_items | Order Item | Manages line items for each order | order_item_id | ~5M |
Column Definitions (Example: users table)
| Column Name | Logical Name | Data Type | NOT NULL | Default | Description |
|---|---|---|---|---|---|
| user_id | User ID | UUID | Yes | gen_random_uuid() | Primary key. Auto-generated. |
| Email Address | VARCHAR(255) | Yes | — | Unique constraint applied. | |
| name | Display Name | VARCHAR(100) | Yes | — | User’s display name. |
| role | Role | VARCHAR(20) | Yes | ‘user’ | Either “admin” or “user”. |
| is_active | Active Flag | BOOLEAN | Yes | true | Set to false for soft delete. |
| created_at | Created At | TIMESTAMP | Yes | NOW() | Record creation timestamp. |
| updated_at | Updated At | TIMESTAMP | Yes | NOW() | Record last updated timestamp. |
Data Types & Constraints Legend
| Symbol / Term | Meaning |
|---|---|
| Yes (NOT NULL) | NULL values are not allowed. |
| PK | Primary Key |
| FK | Foreign Key |
| UQ | Unique Constraint |
| IDX | Indexed column |
| VARCHAR(n) | Variable-length string up to n characters |
| TIMESTAMP | Date and time without time zone |
| TIMESTAMPTZ | Date and time with time zone |
Glossary
| Term | Definition |
|---|---|
| Soft delete | Archiving a record by setting a flag (e.g., is_active) instead of physically deleting it. |
| Soft delete (timestamp) | Variant of soft delete that records the deletion timestamp in a deleted_at column. |
| Tenant | A customer-level partition in a multi-tenant system. |
| Slug | A URL-friendly identifier composed of lowercase letters, numbers, and hyphens. |
Change Log
| Version | Date | Author | Changes |
|---|---|---|---|
| v1.0 | YYYY-MM-DD | (Name) | Initial version created. |
| v1.1 | YYYY-MM-DD | (Name) | Added phone_number column to users table. |
| v1.2 | YYYY-MM-DD | (Name) | Updated status definitions in orders table. |
各セクションの書き方と例文
テンプレートを埋めるときに悩みやすいセクションを解説する。
カラム定義(Description)の書き方
Descriptionは「何を格納するか」を1文で書く。業務ルールや制約の意味も添えると、後から読む人が助かる。
| 日本語 | 英語 |
|---|---|
| 主キー。UUIDv4で自動生成される | Primary key. Auto-generated as UUIDv4. |
| 論理削除フラグ。falseで削除済みを表す | Soft-delete flag. Set to false when the record is deleted. |
| 注文のステータス。pending / confirmed / shipped / cancelled のいずれか | Order status. One of: pending, confirmed, shipped, or cancelled. |
| 外部キー。usersテーブルのuser_idを参照 | Foreign key referencing users.user_id. |
| NULL許可。値がない場合は未設定を意味する | Nullable. A null value indicates the field has not been set. |
Glossary(用語集)の書き方
用語集はチームで使う業務用語の定義を統一するためのセクションだ。「この言葉がシステム上で何を意味するか」を明確に書く。
| 日本語 | 英語 |
|---|---|
| 〇〇とは、〇〇する仕組みのことです | [Term] refers to a mechanism that [description]. |
| このシステムでは〇〇を〇〇と定義します | In this system, [Term] is defined as [definition]. |
| 〇〇は〇〇と区別して使います | [Term A] is used separately from [Term B]. |
英語でのデータベース設計議論をさらに深めたい方は、エンジニアの英語データベース設計議論術も参考にしてほしい。
データ辞書でよく使う英語表現
実務でよく使う英語表現を場面別にまとめた。
カラム説明
| 日本語 | 英語 |
|---|---|
| 主キー | Primary key |
| 外部キー | Foreign key |
| ユニーク制約 | Unique constraint |
| NOT NULL制約 | NOT NULL constraint |
| デフォルト値 | Default value |
| 自動採番 | Auto-increment / Auto-generated |
| 論理削除 | Soft delete |
| 物理削除 | Hard delete |
| インデックスあり | Indexed |
| 複合主キー | Composite primary key |
データ型
| 日本語 | 英語 |
|---|---|
| 可変長文字列 | Variable-length string (VARCHAR) |
| 固定長文字列 | Fixed-length string (CHAR) |
| 整数 | Integer (INT) |
| 大きな整数 | Big integer (BIGINT) |
| 真偽値 | Boolean |
| 日時 | Timestamp / Datetime |
| JSON型 | JSON / JSONB |
| 列挙型 | Enum |
変更・レビューコメント
| 日本語 | 英語 |
|---|---|
| このカラムはNULLを許可しますか? | Should this column allow NULL values? |
| デフォルト値は何ですか? | What is the default value for this column? |
| このカラムにインデックスは必要ですか? | Does this column need an index? |
| 論理削除と物理削除、どちらを使いますか? | Should we use soft delete or hard delete? |
| このテーブルの命名規則は何ですか? | What is the naming convention for this table? |
オンボーディングチェックリストのテンプレートは、英語オンボーディングチェックリストの書き方でも紹介しているので参考にしてほしい。
まとめ:英語データ辞書は6つのセクションで完成する
英語データ辞書に必要な構成要素を整理した。
- 基本情報・テーブル一覧で「データ構造の全体像」を定義する
- カラム定義で「各テーブルの詳細仕様」を記録する
- 凡例・用語集で「チーム内の定義を統一」する
- 変更履歴で「いつ・誰が・何を変えたか」を追跡する
テンプレートをコピーして、プロジェクトのテーブル数に合わせてカラム定義のシートを追加してほしい。Descriptionを丁寧に書いておくことで、スキーマレビューや引き継ぎのコストが大幅に下がる。
アーキテクチャ設計書のテンプレートは英語アーキテクチャ設計書の書き方で、技術仕様書のテンプレートは英語技術仕様書の書き方でそれぞれ紹介しているので合わせて参考にしてほしい。


コメント