ArcGIS Server Banner

Feature classes in a geodatabase in Oracle

Feature classes in a geodatabase in Oracle

Release 9.3 E-mail This TopicPrintable VersionGive Us feedback
A feature class is a collection of geographic features, all of the same geometric type (point, line, polygon, multipoint, annotation, dimension, or multipatch). For example, you could store points for all the train depots along a railroad line in one feature class. In another feature class, you could store lines that represent all the railroad tracks.

Below is a description of the way a feature class appears in ArcCatalog and in an XML document. Following that is a description of how feature classes appear in an Oracle DBMS for each of the supported geometry storage types. After that is a description of subtypes, which are used to create subgroups of feature types in a feature class.

Feature classes in ArcCatalog

In the Catalog tree, a feature class stored in an Oracle database looks like this:

Feature class in ArcCatalog

This is a polygon feature class named USACOUNTIES, which is owned by user VTEST.

The icon to the left of the feature class name indicates the type of feature class it is. The icon above represents a polygon feature class. The icons for the other types of feature classes you can create in ArcGIS are as follows:

Point feature class icon A point or multipoint feature class

Line feature class icon A line feature class

Annotation feature class icon An annotation feature class

Dimension feature class icon A dimension feature class

Multipatch feature class icon A multipatch feature class

For a description of the different types of feature classes, see Feature class basics.

Feature class tables in an Oracle database stored with ST_Geometry storage

Feature classes stored using the ST_Geometry user-defined type consist of a business table and a spatial index. A business table is a DBMS table that stores attributes and is spatially enabled by adding a spatial column. For ST_Geometry feature classes, the spatial column is an ST_Geometry column that stores the geometry of the feature class in subclasses such as ST_LineString, ST_MultiPoint, or ST_Polygon. The geometry values are stored directly in this spatial column.

ST_Geometry feature classes also have an affiliated spatial index (S) table. The spatial index table naming convention is related to the identifier generated in the ST_GEOMETRY_INDEX table when the spatial index for the feature class is created. For example, a spatial index with an INDEX_ID value of 16 in the ST_GEOMETRY_INDEX table would be named S16_IDX$.

Creating a spatial index on a table creates an entry for the table in the ST_GEOMETRY_COLUMNS and ST_GEOMETRY_INDEX system tables. The information schema table ST_GEOMETRY_COLUMNS is used to perform selections and DML metadata operations. Stored procedures are used to insert and delete entries from the ST_GEOMETRY_COLUMNS table.

NOTE: Creating a table with an ST_Geometry column does not insert ST_Geometry metadata. It is your (or the application's) responsibility to register this metadata information.

ESRI does not support manual manipulation of the system tables. For tables with an ST_Geometry spatial column that were registered with or created by ArcSDE, it is imperative that the metadata for those tables not be altered manually.

Click the link below to see a diagram of a feature class using the ST_Geometry storage type.

Oracle ST_Geometry feature class diagram

Feature class tables in an Oracle database stored with binary geometry storage

Feature classes stored in a binary format—either ArcSDE compressed binary or the OGC well-known binary representation of geometry—in a geodatabase in Oracle consist of a business table and associated feature and spatial index tables as described below.

You can acccess a diagram of a sample feature class stored in a binary data type by clicking the link below. Implicit relationships between tables are shown with dashed lines; explicitly defined relationships are represented with solid lines. You will need Adobe Acrobat Reader to open the diagram.

Oracle binary feature class diagram

The owner fields in the GDB_OBJECTCLASSES, TABLE_REGISTRY, COLUMN_REGISTRY, and LAYERS table all contain the same value, but to keep the diagram from being too cluttered, the implicit relationship between these fields is not shown.

Feature class tables in an Oracle database stored in Oracle Spatial geometry storage

Oracle Spatial uses a spatial geometry type—MDSYS.SDO_GEOMETRY. These feature classes also have a business table as described above. The business table contains a column of type SDO_GEOMETRY, in which the feature class geometry is stored.

Oracle Spatial feature class diagram

Feature classes in an XML document

The following is a small portion of the content of an XML document for the USACOUNTIES feature class. The first section is the header; subsequent lines define fields in the feature class.

<esri:Workspace xmlns:esri="http://www.esri.com/schemas/ArcGIS/9.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <WorkspaceDefinition xsi:type="esri:WorkspaceDefinition">
     <WorkspaceType>esriRemoteDatabaseWorkspace</WorkspaceType> 
     <Version>SDE.DEFAULT</Version> 
     <Domains xsi:type="esri:ArrayOfDomain" /> 
     <DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
        <DataElement xsi:type="esri:DEFeatureClass">
           <CatalogPath>/V=SDE.DEFAULT/FC=VENUS.USACOUNTIES</CatalogPath> 
           <Name>VENUS.USACOUNTIES</Name> 
           <DatasetType>esriDTFeatureClass</DatasetType> 
           <DSID>-1</DSID> 
           <Versioned>false</Versioned> 
           <CanVersion>true</CanVersion> 
           <HasOID>true</HasOID> 
           <OIDFieldName>FEATURE.FID</OIDFieldName> 
           <Fields xsi:type="esri:Fields">
              <FieldArray xsi:type="esri:ArrayOfField">
                 <Field xsi:type="esri:Field">
                    <Name>NAME</Name> 
                    <Type>esriFieldTypeString</Type> 
                    <IsNullable>true</IsNullable> 
                    <Length>32</Length> 
                    <Precision>0</Precision> 
                    <Scale>0</Scale> 
              </Field>
              <Field xsi:type="esri:Field">
                 <Name>STATE_NAME</Name> 
                 <Type>esriFieldTypeString</Type> 
                 <IsNullable>true</IsNullable> 
                 <Length>25</Length> 
                 <Precision>0</Precision> 
                 <Scale>0</Scale> 
             </Field>
             <Field xsi:type="esri:Field">
                <Name>VENUS.USACOUNTIES.AREA</Name> 
                <Type>esriFieldTypeDouble</Type> 
                <IsNullable>true</IsNullable> 
                <Length>8</Length> 
                <Precision>22</Precision> 
                <Scale>4</Scale> 
             </Field>
             <Field xsi:type="esri:Field">
                <Name>POP1997</Name> 
                <Type>esriFieldTypeInteger</Type> 
                <IsNullable>true</IsNullable> 
                <Length>4</Length> 
                <Precision>10</Precision> 
                <Scale>0</Scale> 
             </Field>

Subtypes in feature classes

Subtypes are used to differentiate feature types within a feature class based on their default values, attribute domains, connectivity rules, and relationship rules. Subtypes are defined for a feature class, and only one field in the feature class can have subtypes defined for it.

Subtypes in ArcCatalog

Since subtypes are defined on the feature class, you define and view subtypes in ArcCatalog from the Feature Class Properties dialog box. Right-click the feature class, click Properties, and click the Subtypes tab to see the following dialog box:

Subtype tab of the Feature Class Properties dialog box in ArcCatalog

This example shows subtypes applied to the TYPECODE field for a feature class called Laterals. You see the codes used for the subtypes, the descriptions (names) of the subtypes, and the default subtype for the TYPECODE field in the Laterals feature class.

Subtypes in an Oracle DBMS

The following is a diagram of the tables used for subtypes applied to a feature class:

Subtype system tables in Oracle

The subtypes for feature classes are tracked in the GDB_SUBTYPE system table, the default values for the subtypes are tracked in the GDB_DEFAULTVALUES system table, and the fields to which these apply are tracked in the GDB_FIELDINFO system table. The subtypes are associated to the feature class by way of the GDB_OBJECTCLASSES table. The GDB_DEFAULTVALUES table is associated with the GDB_SUBTYPES table by the subtype code, which is stored in the SubtypeCode field in the GDB_SUBTYPES table and the Subtype field in the GDB_DEFAULTVALUES table.

The name of the field to which the subtype applies is stored in the SUBTYPEFIELD column of the GDB_OBJECTCLASSES table. This field is linked to the FIELDNAME column in the GDB_FIELDINFO table, which in turn is associated to the FIELDNAME column in the GDB_DEFAULTVALUES table.

Subtypes in an XML document

Subtypes appear in XML documents as part of the information for the feature class. They are grouped under a Subtypes tag. For the Laterals example, the subtype information in an XML document is as follows:

- <Subtypes xsi:type="esri:ArrayOfSubtype">
  <Subtype xsi:type="esri:Subtype">
      <SubtypeName>Unknown</SubtypeName> 
      <SubtypeCode>0</SubtypeCode> 
    <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WUNKNOWN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WUNKNOWN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
          <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>TYPECODE</FieldName> 
          <DefaultValue xsi:type="xs:int">3</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
  </Subtype>
<Subtype xsi:type="esri:Subtype">
    <SubtypeName>Hydrant laterals</SubtypeName> 
    <SubtypeCode>1</SubtypeCode> 
  <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WHYDLIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WHYDLIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
          <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
  </Subtype>
<Subtype xsi:type="esri:Subtype">
    <SubtypeName>Fire laterals</SubtypeName> 
    <SubtypeCode>2</SubtypeCode> 
  <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WFIRELIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WFIRELIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
         <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
  </Subtype>
<Subtype xsi:type="esri:Subtype">
    <SubtypeName>Service laterals</SubtypeName> 
    <SubtypeCode>3</SubtypeCode> 
  <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WSERVICE</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WSERVICE</DefaultValue> 
       </SubtypeFieldInfo>
     <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
          <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
   </Subtype>
 </Subtypes>

See Also

  • ArcSDE Compressed Binary storage
  • ST_Geometry storage in Oracle
  • The Oracle Spatial geometry and raster types
  • The OGC Well-Known Binary representation for geometry