Beziehungen zwischen Datasets in einer Geodatabase in PostgreSQL
Mit Beziehungen werden die Zuordnungen zwischen Objekten in einer Tabelle und den Objekten in einer anderen Tabelle verwaltet. Das Erstellen von Beziehungsklassen zwischen Tabellen in der Geodatabase trägt dazu bei, die referenzielle Integrität aufrechtzuerhalten, und ermöglicht Ihnen, in Beziehung stehende Tabellen effizienter zu bearbeiten und abzufragen. Zwischen Tabellen in einer Geodatabase werden die folgenden Beziehungstypen unterstützt:
- Räumliche Beziehung: Beziehungen zwischen zwei Features
- Nicht räumliche Beziehung: Beziehungen zwischen zwei Zeilen
- Räumliche / Nicht räumliche Beziehung: Beziehungen zwischen einem Feature und einer Zeile
Beziehungen werden in Beziehungsklassen gespeichert und verwaltet, ebenso wie Features in einer Feature-Class und nicht räumliche Zeilen in Tabellen gespeichert werden.
Weitere Informationen zu Beziehungen und zu den Beziehungsarten von Beziehungsklassen finden Sie unter Eigenschaften von Beziehungsklassen.
Beziehungen in ArcGIS Desktop
Beziehungsklassen werden im Kataloginhaltsverzeichnis las Teil des Feature-Datasets angezeigt. Beziehungsklassen werden mit dem folgenden Symbol dargestellt:
Sie können Informationen zu Beziehungsklassen anzeigen, indem Sie mit der rechten Maustaste auf die Beziehungsklasse klicken und Eigenschaften auswählen, um das Dialogfeld Eigenschaften: Beziehungsklasse zu öffnen.
Eine Feature-bezogene Annotation ist eine Art von Beziehungsklasse. Im Dialogfeld Eigenschaften: Beziehungsklasse können Sie sehen, dass die Feature-Class Distribmains Teil einer Eins-zu-Viele-Beziehung mit der Annotation-Feature-Class DistDiam ist. Die Datensätze in den Tabellen werden auf Grundlage der objectid in der Feature-Class Distribmains und der featureid in der Feature-Class DistDiam verbunden. Dies ist eine abhängige Beziehungsklasse, d. h. Änderungen in einer Tabelle beeinflussen bzw. ändern die Features in der in Beziehung stehenden Tabelle. In diesem Fall lösen Änderungen an der Ursprungsklasse (Distribmains) eine Änderung in der Ziel-Feature-Class (ud_reldestfc) aus. Dies wird als Vorwärtsbenachrichtigung bezeichnet.
Beziehungsklassen in einer PostgreSQL-Datenbank
Beziehungsklassen werden in den Tabellen gdb_items und gdb_itemrelationships gespeichert.
Beziehungsklassen in einem XML-Workspace-Dokument
Beziehungsklassen werden in XML-Dokumenten als ein Datenelementtyp angezeigt. Im Folgenden ist ein Teil eines XML-Dokuments für ein Dataset zu sehen, das eine Beziehungsklasse enthält.
<DataElement xsi:type="esri:DERelationshipClass"> <CatalogPath>/V=sde.DEFAULT/FD=m8db.hbear.Water/RC=m8db.hbear.Anno_19_72</CatalogPath> <Name>m8db.hbear.Anno_19_72</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>Diameter</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>r206_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_Diam</Name> <IsUnique>false</IsUnique> <IsAscending>true</IsAscending> <Fields xsi:type="esri:Fields"> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>Diameter</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_feature_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>m8db.hbear.Anno_19_72</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>m8db.hbear.Distribmains</Name> </OriginClassNames> <DestinationClassNames xsi:type="esri:Names"> <Name>m8db.hbear.DistDiam</Name> </DestinationClassNames> <KeyType>esriRelKeyTypeSingle</KeyType> <ClassKey>esriRelClassKeyUndefined</ClassKey> <ForwardPathLabel>m8db.hbear.DistDiam</ForwardPathLabel> <BackwardPathLabel>m8db.hbear.Distribmains</BackwardPathLabel> <IsReflexive>false</IsReflexive> <OriginClassKeys xsi:type="esri:ArrayOfRelationshipClassKey"> <RelationshipClassKey xsi:type="esri:RelationshipClassKey"> <ObjectKeyName>OBJECTID</ObjectKeyName> <ClassKeyName /> <KeyRole>esriRelKeyRoleOriginPrimary</KeyRole> </RelationshipClassKey> <RelationshipClassKey xsi:type="esri:RelationshipClassKey"> <ObjectKeyName>FeatureID</ObjectKeyName> <ClassKeyName /> <KeyRole>esriRelKeyRoleOriginForeign</KeyRole> </RelationshipClassKey> </OriginClassKeys> <DestinationClassKeys xsi:type="esri:ArrayOfRelationshipClassKey"> <RelationshipClassKey xsi:type="esri:RelationshipClassKey"> <ObjectKeyName>OBJECT_ID</ObjectKeyName> <ClassKeyName /> <KeyRole>esriRelKeyRoleDestinationPrimary</KeyRole> </RelationshipClassKey> <RelationshipClassKey xsi:type="esri:RelationshipClassKey"> <ObjectKeyName>Feature_ID</ObjectKeyName> <ClassKeyName /> <KeyRole>esriRelKeyRoleDestinationForeign</KeyRole> </RelationshipClassKey> </DestinationClassKeys> <RelationshipRules xsi:type="esri:ArrayOfRelationshipRule" /> </DataElement>