Oracle に格納されたジオデータベースのデータセット間のリレーションシップ

リレーションシップは、あるテーブルのオブジェクトと別のテーブルのオブジェクトとの関連付けを管理します。ジオデータベース内のテーブル間のリレーションシップ クラスを作成すると、参照整合性が維持され、関連テーブルの編集が効率的になり、関連テーブルへのクエリも実行できるようになります。次のような種類のジオデータベース内のテーブル間のリレーションシップがサポートされています。

フィーチャがフィーチャクラスに格納され、非空間行がテーブルに格納されるのと同様に、リレーションシップはリレーションシップ クラスに格納され、管理されます。

リレーションシップとリレーションシップ クラスの基数の詳細については、「リレーションシップ クラスのプロパティ」をご参照ください。

ArcGIS Desktop のリレーションシップ

カタログ ツリーでは、リレーションシップ クラスはフィーチャ データセットの一部として表示されます。リレーションシップ クラスは次のアイコンで表示されます。

リレーションシップ クラスに関する情報を表示するには、リレーションシップ クラスを右クリックして [プロパティ] を選択し、[リレーションシップ クラス プロパティ] ダイアログ ボックスを表示します。

[リレーションシップ クラス プロパティ] ダイアログ ボックス

フィーチャリンク アノテーションはリレーションシップ クラスの一種です。[リレーションシップ クラス プロパティ] ダイアログ ボックスでは、Distribmains フィーチャクラスが 1 対多のリレーションシップで DistDiam アノテーション フィーチャクラスに属していることを確認できます。テーブル内のレコードは、Distribmains フィーチャクラスの OBJECTIDDistDiam フィーチャクラスの FeatureID に基づいて結合されます。これはコンポジット リレーションシップ クラスなので、あるテーブルの変更が、関連テーブルを変更するなどの影響を与えます。このケースでは、関連元クラス(Distribmains)に対する変更が関連先フィーチャクラス(ud_reldestfc)の変更につながります。これは正方向通知と呼ばれます。

Oracle データベースのリレーションシップ クラス

リレーションシップ クラスは GDB_ITEMS および GDB_ITEMRELATIONSHIPS テーブルに格納されます。

XML ドキュメントのリレーションシップ クラス

XML ドキュメントのリレーションシップ クラスは、データ エレメントのタイプとして定義されます。次に、リレーションシップ クラスが含まれたデータセットからエクスポートした XML ドキュメントの一部を示します。

 <DataElement xsi:type="esri:DERelationshipClass">
    <CatalogPath>/V=sde.DEFAULT/FD=MAP.Landbase_rel/RC=MAP.prcl2bld</CatalogPath> 
    <Name>MAP.prcl2bld</Name> 
    <DatasetType>esriDTRelationshipClass</DatasetType> 
    <DSID>-1</DSID> 
    <Versioned>true</Versioned> 
    <CanVersion>true</CanVersion> 
    <HasOID>true</HasOID> 
    <OIDFieldName>RID</OIDFieldName> 
    <Fields xsi:type="esri:Fields">
      <FieldArray xsi:type="esri:ArrayOfField">
        <Field xsi:type="esri:Field">
          <Name>RID</Name> 
          <Type>esriFieldTypeOID</Type> 
          <IsNullable>false</IsNullable> 
          <Length>4</Length> 
          <Precision>10</Precision> 
          <Scale>0</Scale> 
          <Required>true</Required> 
          <Editable>false</Editable> 
        </Field>
        <Field xsi:type="esri:Field">
          <Name>APN</Name> 
          <Type>esriFieldTypeInteger</Type> 
          <IsNullable>true</IsNullable> 
          <Length>4</Length> 
          <Precision>10</Precision> 
          <Scale>0</Scale> 
        </Field>
        <Field xsi:type="esri:Field">
          <Name>bldg_id</Name> 
          <Type>esriFieldTypeInteger</Type> 
          <IsNullable>true</IsNullable> 
          <Length>4</Length> 
          <Precision>10</Precision> 
          <Scale>0</Scale> 
        </Field>
      </FieldArray>
    </Fields>
  <Indexes xsi:type="esri:Indexes">
    <IndexArray xsi:type="esri:ArrayOfIndex">
      <Index xsi:type="esri:Index">
        <Name>R249_SDE_ROWID_UK</Name> 
        <IsUnique>true</IsUnique> 
        <IsAscending>true</IsAscending> 
        <Fields xsi:type="esri:Fields">
          <FieldArray xsi:type="esri:ArrayOfField">
            <Field xsi:type="esri:Field">
              <Name>RID</Name> 
              <Type>esriFieldTypeOID</Type> 
              <IsNullable>false</IsNullable> 
              <Length>4</Length> 
              <Precision>10</Precision> 
              <Scale>0</Scale> 
              <Required>true</Required> 
              <Editable>false</Editable> 
            </Field>
          </FieldArray>
        </Fields>
      </Index>
    <Index xsi:type="esri:Index">
      <Name>GDB_9_APN</Name> 
      <IsUnique>false</IsUnique> 
      <IsAscending>true</IsAscending> 
      <Fields xsi:type="esri:Fields">
        <FieldArray xsi:type="esri:ArrayOfField">
          <Field xsi:type="esri:Field">
            <Name>APN</Name> 
            <Type>esriFieldTypeInteger</Type> 
            <IsNullable>true</IsNullable> 
            <Length>4</Length> 
            <Precision>10</Precision> 
            <Scale>0</Scale> 
          </Field>
        </FieldArray>
      </Fields>
    </Index>
    <Index xsi:type="esri:Index">
      <Name>GDB_9_bldg_id</Name> 
      <IsUnique>false</IsUnique> 
      <IsAscending>true</IsAscending> 
      <Fields xsi:type="esri:Fields">
        <FieldArray xsi:type="esri:ArrayOfField">
          <Field xsi:type="esri:Field">
            <Name>bldg_id</Name> 
            <Type>esriFieldTypeInteger</Type> 
            <IsNullable>true</IsNullable> 
            <Length>4</Length> 
            <Precision>10</Precision> 
            <Scale>0</Scale> 
          </Field>
        </FieldArray>
      </Fields>
    </Index>
  </IndexArray>
  </Indexes>
  <CLSID>{A07E9CB1-9A95-11D2-891A-0000F877762D}</CLSID> 
  <EXTCLSID /> 
  <RelationshipClassNames xsi:type="esri:Names" /> 
  <AliasName>GDB.prcl2bld</AliasName> 
  <ModelName /> 
  <HasGlobalID>false</HasGlobalID> 
  <GlobalIDFieldName /> 
  <RasterFieldName /> 
  <ExtensionProperties xsi:type="esri:PropertySet">
    <PropertyArray xsi:type="esri:ArrayOfPropertySetProperty" /> 
  </ExtensionProperties>
  <ControllerMemberships xsi:type="esri:ArrayOfControllerMembership" /> 
  <Cardinality>esriRelCardinalityManyToMany</Cardinality> 
  <Notification>esriRelNotificationBoth</Notification> 
  <IsAttributed>true</IsAttributed> 
  <IsComposite>true</IsComposite> 
  <OriginClassNames xsi:type="esri:Names">
    <Name>GDB.Parcels_1</Name> 
  </OriginClassNames>
  <DestinationClassNames xsi:type="esri:Names">
    <Name>GDB.bldgs</Name> 
  </DestinationClassNames>
  <KeyType>esriRelKeyTypeSingle</KeyType> 
  <ClassKey>esriRelClassKeyUndefined</ClassKey> 
  <ForwardPathLabel>GDB.bldgs</ForwardPathLabel> 
  <BackwardPathLabel>GDB.Parcels_1</BackwardPathLabel> 
  <IsReflexive>false</IsReflexive> 
  <OriginClassKeys xsi:type="esri:ArrayOfRelationshipClassKey">
    <RelationshipClassKey xsi:type="esri:RelationshipClassKey">
      <ObjectKeyName>APN</ObjectKeyName> 
      <ClassKeyName /> 
      <KeyRole>esriRelKeyRoleOriginPrimary</KeyRole> 
    </RelationshipClassKey>
    <RelationshipClassKey xsi:type="esri:RelationshipClassKey">
      <ObjectKeyName>APN</ObjectKeyName> 
      <ClassKeyName /> 
      <KeyRole>esriRelKeyRoleOriginForeign</KeyRole> 
    </RelationshipClassKey>
  </OriginClassKeys> 
  <DestinationClassKeys xsi:type="esri:ArrayOfRelationshipClassKey">
    <RelationshipClassKey xsi:type="esri:RelationshipClassKey">
      <ObjectKeyName>BLDG_ID</ObjectKeyName> 
      <ClassKeyName /> 
      <KeyRole>esriRelKeyRoleDestinationPrimary</KeyRole> 
    </RelationshipClassKey>
    <RelationshipClassKey xsi:type="esri:RelationshipClassKey">
      <ObjectKeyName>bldg_id</ObjectKeyName> 
      <ClassKeyName /> 
      <KeyRole>esriRelKeyRoleDestinationForeign</KeyRole> 
    </RelationshipClassKey>
  </DestinationClassKeys>
  <RelationshipRules xsi:type="esri:ArrayOfRelationshipRule" /> 
</DataElement>

7/10/2012