データ辞書

データ辞書（データじしょ、）は、IBM Dictionary of Computing の定義によれば、「意味、他のデータとの関係、起源、用途、フォーマットなどのデータに関する情報を集中的に保管したもの」である。データベースやデータベース管理システム (DBMS) に密接に関連しており、以下のような意味で使われる。

 データベースやデータベース群を解説した文書
 DBMSの構造を決定するのに必要な必須コンポーネント
 DBMS固有のデータ辞書を拡張または代替するミドルウェア

文書としてのデータ辞書 
データベースのユーザーとアプリケーション開発者には、データベースの構造・内容・規約をカタログ化したデータ辞書文書が役に立つ。一般に各データベースのテーブルとフィールドの名前と説明を含み、データ型や各データ要素の長さといった詳細が記述されている。そのような文書をどういう詳細さで記述すべきかという一般的標準は存在しないが、基本的にデータ自体ではなくデータベースの構造についてのメタデータについて記述すべきものである。データ辞書文書はデータ要素がどのように符号化されるかという情報も含む。うまく設計されたデータ辞書文書があると、複雑なデータベースや大規模な連合データベースで一貫性を保ちやすくなる。

ミドルウェア 
データベースアプリケーションを構築する際、データ辞書ソフトウェアの層を追加することもある。これは一種のミドルウェアであり、基盤となるDBMSデータ辞書とやり取りする。このような上位のデータ辞書は、DBMS固有の下位のデータ辞書では不可能な機能や柔軟性を提供できる。DBMS固有のデータ辞書はそのDBMSの基本機能をサポートするためにあるもので、アプリケーションの要求に応えるものではない。例えば上位のデータ辞書を使えば、同じデータベースを共有する複数のアプリケーションに対して、それぞれ最適化された実体関連モデルを提供できる。データ辞書の拡張は、分散データベースに対するクエリ最適化を支援することもできる。

RAD向けのソフトウェアフレームワークは、高度なデータ辞書機能を含むことがあり、データベース自体やメニュー、フォーム、レポートといったデータベースアプリケーションのコンポーネントの構築に要するコード量を大幅に削減できる。例えばPHPLensは、複数のデータベースでの移植性を考慮してテーブル、インデックス、外部キーに制約を加えつつ自動生成するPHPクラスライブラリを備えている。RADICOREツールキットの一部であるPHPベースのデータ辞書機能は、データの妥当性チェックや複雑なJOINを備えたメニューやフォームのオブジェクトプログラム、スクリプト、SQLコードを自動生成する。ASP.NET環境向けの  Base One のデータ辞書は、データベースの自動生成、データ妥当性チェック、性能強化（キャッシュとインデックス活用）、セキュリティ、データ型拡張といった機能を提供する。

関連項目 
データモデリング
ISO/IEC 11179
:en:IEC Common Data Dictionary (IEC 61360-2/ISO 13584-42)

脚注

外部リンク 
Yourdon, Structured Analysis Wiki, Data Dictionaries

コンピュータのデータ
データモデリング
知識表現
メタデータ
データ構造