定義域 (データベース)

定義域(ドメイン)とは



データ管理データベース設計において、定義域(ドメイン)とは、特定のデータ要素が取りうるすべての値を集めた、名前付きの有限集合のことです。これは、データ型とほぼ同じ意味で使われ、単に「型(タイプ)」と略されることも多くなっています。

定義域は、データの取りうる範囲を明確に定義するもので、データの整合性を保つ上で非常に重要です。例えば、性別を表す属性であれば、「男性」と「女性」という限られた選択肢しか許されないように、定義域はそのデータの性質に応じて適切な範囲を定めます。

定義域の例



定義域の境界を決めるルールは、単純な列挙リストで定義される場合もあれば、より複雑なルールに基づいて定義される場合もあります。

具体的な例を見てみましょう。

性別属性:
`{"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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。