属性ドメインとは、フィールド タイプの使用可能な値を規定するルールです。 テーブルまたはフィーチャクラスの特定の属性に対する許容値を表します。 フィールドに配置するものを、有効なリストまたは選択肢の範囲に制限することで、データ整合性を維持します。 フィーチャクラスのフィーチャまたはテーブルの非空間オブジェクトがサブタイプにグループ化されている場合、別の属性ドメインを各サブタイプに割り当てることができます。 ドメインが属性フィールドに関連付けられているときは常に、そのフィールドではそのドメイン内の値だけが有効になります。 つまり、そのドメインに含まれていない値をフィールドに設定することはできません。
属性ドメインは、ジオデータベース内の複数のフィーチャクラス、テーブル、サブタイプにわたって共有することができます。 たとえば、配水管のフィーチャクラスと給水管のフィーチャクラスで、地表タイプ フィールドに同じドメインを使用することができます。
[ドメイン] ビュー
ドメインは、[ドメイン] ビューと呼ばれる独自の表形式のビュー内で作成および編集します。 [ドメイン] ビューでは、既存ドメインの表示、ドメインのプロパティおよび値の編集、およびドメインの作成が可能です。
以下の図には、[ドメイン] ビューに Campus Editing データ モデルに関連するドメインの一部が表示されています。
ビューの各行には既存のドメインが表示され、これらは名前、説明、フィールド タイプ、ドメイン タイプ、スプリット ポリシー、マージ ポリシーなどの共通のプロパティを共有しています。
[ドメイン] ビューの [ドメイン] タブにある [フィルター テキスト] テキスト ボックスを使用して、ビューに表示されているドメインをフィルタリングできます。 テキストを入力するとビューが更新され、[ドメイン] ビュー フィールドに一致するテキストが存在するドメインのみが表示されます。
ドメインのプロパティ
ドメインの作成または変更時に記録された次のドメイン プロパティを確認します。
所有者
ドメインをエンタープライズ ジオデータベース内に作成すると、現在接続されているユーザーがそのドメインの所有者になります。 その所有者またはジオデータベース管理者だけがドメイン プロパティを変更できます。
名前と説明
ドメインを作成する際には、そのドメインによって制御されるパラメーターを表す名前を指定します。 ドメインの名前を指定する際、単一引用符とアポストロフィ (文字 ' と `) を使用することはできません。 ドメインが作成されると、フィールド ビューまたはサブタイプ ビューで特定のフィールドに関連付けるドメインを選択する際、ドメイン ドロップダウン メニューにそのドメイン名が表示されます。
ドメインの説明は、ドメインの目的を説明する短い文章です。
フィールド タイプ
フィールド タイプは、ドメインを関連付けることができる属性フィールドの種類です。
フィールド タイプは、次のいずれかに設定できます。
- Short: 短整数
- Long: 長整数
- Float: 単精度浮動小数点数
- Double: 倍精度浮動小数点数
- Text (コード値ドメインのみ) : 英数字
- Date: 日付と時刻のデータ
フィールド タイプを設定すると、フィールド ビューおよびサブタイプ ビューにあるそのタイプのフィールドに対するドメイン ドロップダウン リストに、ドメインの名前が表示されます。
ドメイン タイプ
ドメインを作成する際には、ドメインの種類を指定する必要があります。
属性ドメインには次の 2 種類があります。
- 範囲ドメイン: 範囲ドメインは、数値属性の有効な値の範囲を指定します。 範囲ドメインを作成する場合は、有効な最小値と最大値を指定します。 範囲ドメインは、Short、Long、Float、Double、Date の属性タイプに適用することができます。 たとえば、水道管のフィーチャクラスの場合は、サブタイプとして送水管、配水管、給水管を指定することができます。 配水管の水圧が 50 ~ 75 psi である場合、 配水管オブジェクトを有効にするには、水圧の値が 50 ~ 75 psi の範囲内の値でなければなりません。
- コード値ドメイン: コード値ドメインは、テキスト、数値、日付など、あらゆる種類の属性に適用することができます。 コード値ドメインは、属性に対して一連の有効な値を指定します。 たとえば、水道管は、pavement (舗装道路)、gravel (砂利)、sand (砂)、none (地上に露出) など、GroundSurfaceType 属性フィールドで指定されたさまざまなサーフェスの下に埋設されます。 コード値ドメインには、データベースに格納されている実際の値 (たとえば、舗装道路は 1) と、その値が実際に何を意味するかについてのわかりやすい説明が含まれています。 コード値ドメインの整合チェックは、フィールド値をドロップダウン リストから選択することによって行われます。
注意:
ドメインのコード値を並べ替えて、コード値の列ヘッダーをクリックし、[並べ替えられた順序を保存する] ボックスをオンにすると、並べ替えを維持できます。 [並べ替えられた順序を保存する] ボックスをオンにすると、現在のドメイン値の並べ替えが無効になります。この操作は元に戻せません。スプリット ポリシーとマージ ポリシー
データを編集するときは、1 つのフィーチャが 2 つのフィーチャに分割されたり、2 つのフィーチャが 1 つのフィーチャに結合、つまりマージされることが少なくありません。 たとえば、土地ベースのデータベースでは、区画整理によって、1 つのパーセルが 2 つの別個のパーセルに分割されることがあります。 同様の区画整理によって、隣接する 2 つのパーセルが 1 つのパーセルにマージされることもあります。
フィーチャのジオメトリに対するこの種の編集操作の結果は予測可能ですが、こうした編集操作が属性値に及ぼす影響は予測できません。 フィーチャを分割するときの属性値の振舞いは、その属性にドメインが適用されている場合は、属性のスプリット ポリシーによって制御されます。 2 つのフィーチャをマージする場合は、ドメインが適用された属性の値は、ドメインのマージ ポリシーによって制御されます。
注意:
フィールドにドメインが割り当てられていない場合は、属性値が元のフィーチャから新しいフィーチャにコピーされます。 元のフィールドの値が NULL である場合、新しいフィーチャの値も NULL になります。属性ドメインごとに、スプリット ポリシーとマージ ポリシーの両方が適用されます。 フィーチャが分割またはマージされた場合、ジオデータベースはこれらのポリシーに基づいて、最終的なフィーチャの特定の属性値を決定します。
スプリット ポリシー
ドメインが適用されたテーブル、フィーチャクラス、またはサブタイプの属性については、ドメインのプロパティで設定された 3 つのスプリット ポリシーのいずれかを指定することができます。これによって出力オブジェクトの属性値が制御されます。
- デフォルト値 - 分割後の 2 つのフィーチャの属性には、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値が適用されます。
- 複製 - 分割後の 2 つのフィーチャの属性には、元のオブジェクトの属性値のコピーが適用されます。
- ジオメトリ比 - 分割後の 2 つのフィーチャの属性には、元のフィーチャの値の比率が適用されます。 この比率は、元のジオメトリの分割時に使用した比率に基づいています。 ジオメトリを均等に分割した場合、それぞれの新規フィーチャの属性には、元のオブジェクトの属性の 2 分の 1 の値が割り当てられます。 ジオメトリ比ポリシーは、数値フィールド タイプに対応するドメインにのみ適用されます。
マージ ポリシー
2 つのフィーチャを 1 つのフィーチャにマージする際には、マージ ポリシーが新規フィーチャの属性値を制御します。
ドメインが適用されたテーブル、フィーチャクラス、またはサブタイプの属性については、ドメインのプロパティで設定された 3 つのマージ ポリシーのいずれかを指定することができます。これによって出力オブジェクトの属性値が制御されます。
- デフォルト値 - 分割後のフィーチャの属性には、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値が適用されます。 非数値フィールドおよびコード値ドメインには、このマージ ポリシー以外は適用できません。
- 合計値 : マージ後のフィーチャの属性には、元のフィーチャの属性の合計値が適用されます。
- ジオメトリ加重値 - マージ後のフィーチャの属性には、元のフィーチャの属性の加重平均値が適用されます。 この平均値は、元のフィーチャのジオメトリに基づいています。