!!!ドメイン [IDEF1X][ER図] http://www.idef.com/IDEF1x.html 「ドメインは」属性値となる値の集合を、命名し定義する。 IDEF1X でのドメインは、再利用および標準化を可能にするために、エンティティやビューとは分離して定義される。 !!ドメインの意味 ::ドメインは、数が固定されたり、無限に存在する可能性のあるインスタンスの集合に対する、クラスであると考えられる。 *例えば州コードは、ドメインと考えられる。ドメインとして許される値の集合は、2文字の州の略語からなる州コード(州ごとに割り振られた一意の識別子)である。 *もうひとつの例として、姓が挙げられる。姓は、アルファベットの組み合わせにより、ほぼ無限の値をとりうる。 ::ドメインは、時間が経過しても値が変化しないクラスと考えられる。 *これに対し、エンティティは、時間の経過に依存したクラスであり、 *インスタンスのデータは、変更されたり、整備されたりと、時間の経過によって異なる。 *変化しないクラスとして、ドメインのインスタンスは常に、原則的には存在している。 ::ドメインのインスタンスはそれぞれ、表現方法において、一意の値を持っている。 *例えば、州コードドメインは、いくつかの表現方法を持っている。 *州名として、[Alabama, Alaska, Arizona, ...]、略名として、[AL, AK, AZ, ...]、州番号として、[1, 2, 3, ...]。 *どの表現方法のインスタンスにおいても、ドメインにおいて一意性を持っている。 *州名の最初の1文字を表現方法に利用することは[A, A, A]なってしまい、不正である。 !!ドメインには2つの基本的な型、ベースドメインと、タイプドメインがある。 ::ベースドメイン *ベースドメインは、次のようなデータ型に割り当てられる。Character、 Numeric 、 Boolean。 *他のデータ型、日付、回数、バイナリ等も利用できる。しかし、IDEF1X の標準では、上記の3つを標準で含む。 *ベースドメインも同様にドメインルールが適用される。 *ドメインルールは、ドメインに受入可能な値を提供するのに用いられる。 *2つの最も一般的なドメインルールは、値リストと、範囲ルールである。 ::値リストドメインルール *値リストドメインルールは、ドメインに受入可能な値のインスタンス集合を定義する。 *値リストドメインルールが適用されたドメインの属性は、値のインスタンスが、値リストに含まれる場合においてのみ正当である。 *このルールの一般的な使用は、州コードのようにコードのリストを定義することである。 ::範囲ドメインルール *範囲ドメインルールは、ドメインが受入可能なインスタンスの値の集合を下限から上限の範囲で制約する。 *良い例は、方位角で、-360度から360度である必要がある。 *最終的には、ドメインにおいて、ドメインルールは明示されてない。 *この例では、ドメインは、データ型もしくはそのスーパータイプのルールにより制限されるだけである。 *姓は、ドメインルールを伴わないドメインの例である。姓は、どんな文字でも受入可能である。 *ベースドメインのインスタンスは、特定のデータ型、もしあれば、ドメインルールに存在を制約される。 {{ref_image domain01.jpg}}