定義域(ドメイン)とは
データ管理や
データベース設計において、
定義域(ドメイン)とは、特定のデータ要素が取りうるすべての値を集めた、名前付きの
有限集合のことです。これは、
データ型とほぼ同じ意味で使われ、単に「型(タイプ)」と略されることも多くなっています。
定義域は、データの取りうる範囲を明確に定義するもので、データの整合性を保つ上で非常に重要です。例えば、性別を表す属性であれば、「男性」と「女性」という限られた選択肢しか許されないように、定義域はそのデータの性質に応じて適切な範囲を定めます。
定義域の例
定義域の境界を決めるルールは、単純な列挙リストで定義される場合もあれば、より複雑なルールに基づいて定義される場合もあります。
具体的な例を見てみましょう。
性別属性:
`{"F", "M"}`(女性を表す"F"と男性を表す"M"の2つの値)
`{"F", "M", "U"}`(不明を表す"U"を追加)
色の属性:
`{"赤", "緑", "青", ...}`(色の名前の集合)
数値属性:
整数型(例:`{... -2, -1, 0, 1, 2, ...}`)
浮動小数点数型(例:`{1.2, 3.14, 0.5, ...}`)
文字列属性:
文字列型(例:`{"apple", "banana", "cherry", ...}`)
これらの例からわかるように、定義域は、その属性が表現するデータの性質によって、様々な形を取ることができます。
関係
データベースでは、各属性(列)は特定の定義域を持ちます。例えば、人物情報を格納するテーブルにおいて、「性別」という属性は、男性(M)か女性(F)のいずれか、または不明(U)の値を持つことができます。NULL値は、性別が不明であるか、適用できない場合に用いられます。
このように、定義域は属性が取りうる値を制限し、データの整合性を保つ役割を果たします。
数学における定義域
ここで説明している定義域の概念は、
数学における関数の定義における独立変数の値の
集合という概念と関連があります。
数学における定義域は、関数が有効な入力を受け付ける範囲を定義するもので、
データベースにおける定義域と類似した考え方です。
SQLにおける定義域の定義
SQL(Structured Query Language)では、`CREATE DOMAIN`構文を用いて、カスタム定義域を作成することができます。これにより、複数のテーブルで同じ定義域を共有したり、定義域に制約を追加したりすることが可能になります。例えば、年齢を扱う属性に対して、`INT`型で`0以上150以下`という制約を持たせた定義域を定義することができます。これにより、不適切な値が
データベースに挿入されることを防ぐことができます。
まとめ
定義域は、データの取りうる値を明確に定義し、データの整合性を保つ上で重要な役割を果たします。関係
データベースだけでなく、
データモデリングや
データ管理全般において、定義域の概念を理解することは、効果的なデータ設計を行う上で不可欠です。
関連用語
関係 (データベース)
属性 (
データベース)
組 (データベース)
データ管理
データモデル
データモデリング
データベース
データベース設計
関係の正規化
関係モデル
関係データベース
関係
データベース管理システム
データベース言語/問い合わせ言語
データ定義言語
SQL
Tutorial D
ISO/IEC 11179 メタデータ標準
参考文献
『
データベースシステム概論 原著第6版』丸善、東京、1997年。
ISBN 4-621-04276-9。
『データベース実践講義—エンジニアのためのリレーショナル理論』オライリー・ジャパン、東京、2006年。ISBN 4-87311-275-3。
Database in Depth : Relational Theory for Practitioners. 北京: O'Reilly Media. (2005).
ISBN 0596100124