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