Feature-Classes in einer Geodatabase in Oracle

Eine Feature-Class ist eine Sammlung von geographischen Features, die denselben geometrischen Typ aufweisen (Punkt, Linie, Polygon, Multipoint, Annotation, Bemaßung oder Multipatch). Sie können z. B. Punkte für alle Bahnhöfe entlang einer Eisenbahnstrecke in einer Feature-Class speichern. In einer anderen Feature-Class können Sie Linien speichern, die alle Eisenbahnschienen darstellen.

In diesem Thema wird beschrieben, wie eine Feature-Class im Fenster "Katalog", im Datenbankmanagementsystem (DBMS) und in einem XML-Dokument angezeigt wird.

Feature-Classes in ArcGIS Desktop

Es gibt sieben Typen von Feature-Classes, die Sie in ArcGIS Desktop erstellen können: Point, Multipoint, Line, Polygon, Annotation, Dimension und Multipatch.

Die unterschiedlichen Feature-Class-Typen sind im Kataloginhaltsverzeichnis durch verschiedene Symbole gekennzeichnet. Die folgende Tabelle enthält die Symbole für die einzelnen Feature-Class-Typen.

Feature-Class-Symbol

Feature-Class-Typ

Symbol für Point- oder Multipoint-Feature-Class

Point oder Multipoint

Symbol für Line-Feature-Class

Line

Symbol für Polygon-Feature-Class

Polygon

Symbol für Annotation-Feature-Class

Annotation

Symbol für Dimension-Feature-Class

Dimension

Symbol für Multipatch-Feature-Class

Multipatch

In Oracle umfasst der Name einer Feature-Class, wie er im Kataloginhaltsverzeichnis angezeigt wird, den Namen des Benutzers, der die Feature-Class besitzt, und den Namen der Feature-Class selbst.

Beispiel: Die Feature-Class "parcels" des Benutzers "Perrita" wird im Kataloginhaltsverzeichnis als PERRITA.Parcels angezeigt.

Eine Beschreibung der unterschiedlichen Feature-Class-Typen finden Sie unter Grundlagen zu Feature-Classes.

Feature-Classes in einer Oracle-Datenbank

Feature-Classes in Oracle-Datenbanken verwenden einen von drei Geometriespeichertypen: ST_Geometry (die Standardeinstellung), binary oder SDO_Geometry.

Alle Feature-Classes verfügen über eine Basistabelle (auch als Business-Tabelle bezeichnet), in der Attributinformationen, eine Objekt-ID und ein Shape-Feld gespeichert werden. Das Objekt-ID-Feld und das Shape-Feld können andere Namen aufweisen, müssen aber in der Basistabelle einer Feature-Class enthalten sein.

TippTipp:

Die Basistabellen von Annotation- und Dimension-Feature-Classes müssen noch weitere obligatorische Felder enthalten. Eine Liste dieser Felder finden Sie unter Verwalten von Eigenschaften einer Annotation-Feature-Class und Eigenschaften von Bemaßungs-Features.

Feature-Classes in einer Oracle-Datenbank mit dem Speichertyp ST_Geometry

Mit dem benutzerdefinierten Typ ST_Geometry gespeicherte Feature-Classes weisen eine Basistabelle und einen räumlichen Index auf. Bei diesen Feature-Classes wird die Geometrie der Feature-Class in der räumlichen Spalte ST_Geometry in Subclasses gespeichert, z. B. ST_LineString, ST_MultiPoint oder ST_Polygon. Die Geometriewerte werden direkt in dieser räumlichen Spalte gespeichert.

Feature-Classes mit dem Speichertyp ST_Geometry weisen außerdem eine verbundene Tabelle für den räumlichen Index auf (S). Der Name der räumlichen Indextabelle basiert auf der Kennung, die beim Erstellen des räumlichen Indexes für die Feature-Class in der Tabelle ST_GEOMETRY_INDEX generiert wird. Beispiel: Ein räumlicher Index mit der Kennung (INDEX_ID) 16 in der Tabelle ST_GEOMETRY_INDEX erhält den Namen S16_IDX$.

Wenn Sie einen räumlichen Index für eine Tabelle erstellen, wird ein entsprechender Eintrag in die Systemtabellen ST_GEOMETRY_COLUMNS und ST_GEOMETRY_INDEX eingefügt. Die Informationsschematabelle ST_GEOMETRY_COLUMNS wird zum Auswählen und für DML-Metadatenvorgänge verwendet. Gespeicherte Prozeduren dienen zum Einfügen und Löschen von Einträgen in der Tabelle ST_GEOMETRY_COLUMNS.

In ArcGIS mit dem ST_Geometry-Speichertyp erstellte Feature-Classes erstellen im Schema des Besitzers eine Business-Tabelle mit einer ST_Geometry-Spalte. Außerdem werden den Tabellen LAYERS, TABLE_REGISTRY, GEOMETRY_COLUMNS, COLUMN_REGISTRY, sde_spatial_references (falls ein Raumbezug definiert wurde) und GDB_ITEMS im Schema des SDE-Benutzers Datensätze mit Informationen zu der Feature-Class hinzugefügt. In der Tabelle GDB_ITEMTYPES im Schema des SDE-Benutzers wird der Datentyp definiert (in diesem Fall "Feature-Class").

HinweisHinweis:

Beim Erstellen einer Tabelle mit einer Spalte "ST_Geometry" werden keine "ST_Geometry"-Metadaten eingefügt. Diese Metadateninformationen müssen von Ihnen (oder der Anwendung) registriert werden.

Esri unterstützt die manuelle Änderung der Systemtabellen nicht. Für Tabellen mit einer räumlichen Spalte "ST_Geometry", die mit ArcSDE erstellt bzw. registriert wurden, dürfen die Metadaten unter keinen Umständen manuell geändert werden.

View a diagram of a feature class using ST_Geometry storage in Oracle.

HinweisHinweis:

Sie benötigen Adobe Acrobat Reader, um die Datei zu öffnen.

Gestrichelte Linien geben implizite Beziehungen zwischen Spalten an, und durchgezogene Linien geben explizite Beziehungen zwischen Spalten an.

Feature-Classes in einer Oracle-Datenbank mit dem Geometrietyp "binary"

Im Binärformat gespeicherte Feature-Classes – entweder im komprimierten Binärformat von ArcSDE oder im OGCWKB-Format (OGC Well known Binary) – in einer Geodatabase im Oracle bestehen aus einer Basistabelle sowie der zugehörigen Feature-Tabelle und Tabelle für den räumlichen Index, wie hier beschrieben.

  • Die Basistabelle

    Bei der binären Schemaimplementierung enthält die räumliche Spalte in der Basistabelle eine Feature-ID, die eindeutig auf die räumlichen Daten verweist. Durch die Feature-ID wird die Basistabelle mit zwei anderen Tabellen verknüpft: mit der Feature-Tabelle und mit der Tabelle für den räumlichen Index. In der räumlich aktivierten, nicht versionierten Basistabelle wird ein Datenbank-Trigger definiert, um die Beziehung zwischen den Datensätzen in der Basistabelle und der Feature-Tabelle zu verwalten. Alle nicht versionierten Basistabellen von Feature-Classes verfügen über einen Trigger für kaskadierende Löschvorgänge, d. h. wenn Sie die räumliche Spalte in der Basistabelle löschen, wird sie auch aus der Feature-Tabelle gelöscht. Sie können diese Trigger in Oracle Enterprise Manager anzeigen. Diese Trigger werden automatisch entfernt, wenn eine eigenständige Feature-Class oder eine Feature-Class in einem Feature-Dataset als versioniert registriert wird. Wenn die Registrierung einer Feature-Class als versioniert aufgehoben wird, werden sie neu erstellt. Wenn Sie einen dieser Trigger bearbeiten und die Feature-Class anschließend als versioniert registrieren, wird der Trigger entfernt.

  • Die Feature-Tabelle (F<layer_id>)

    In der Feature-Tabelle ist die Geometrie für jedes Feature gespeichert. Diese Tabelle wird durch die Zahl in der Spalte LAYER_ID der Tabelle LAYERS identifiziert. Die Beziehung zwischen der Basistabelle und der Feature-Tabelle wird durch die Feature-ID (oder FID) verwaltet. Dieser Schlüssel, der von ArcSDE verwaltet wird, ist für die räumliche Spalte eindeutig.

    Definition der Feature-Tabelle

    Feldname

    Feldtyp

    Beschreibung

    Null?

    FID

    NUMBER(38)

    Primärschlüssel; eindeutige ID, über die die Feature-Tabelle mit der Basistabelle verbunden ist

    NOT NULL

    NUMOFPTS

    NUMBER(38)

    Die Anzahl von Punkten, durch die das Feature definiert wird

    NOT NULL

    ENTITY

    NUMBER(38)

    Der in der räumlichen Spalte gespeicherte Geometrietyp (z. B. Punkt, Linie oder Zeichenfolge)

    NOT NULL

    EMINX

    FLOAT(64)

    Der minimale X-Wert in einem Feature; definiert zusammen mit EMINY, EMAXX und EMAXY den Envelope eines Features

    NOT NULL

    EMINY

    FLOAT(64)

    Der minimale Y-Wert in einem Feature; definiert zusammen mit EMINX, EMAXX und EMAXY den Envelope eines Features

    NOT NULL

    EMAXX

    FLOAT(64)

    Der maximale X-Wert in einem Feature; definiert zusammen mit EMINX, EMINY und EMAXY den Envelope eines Features

    NOT NULL

    EMAXY

    FLOAT(64)

    Der maximale Y-Wert in einem Feature; definiert zusammen mit EMINX, EMINY und EMAXX den Envelope eines Features

    NOT NULL

    EMINZ

    FLOAT(64)

    Der minimale Z-Wert in einem dreidimensionalen Feature

    EMAXZ

    FLOAT(64)

    Der maximale Z-Wert in einem dreidimensionalen Feature

    MIN_MEASURE

    FLOAT(64)

    Der minimale Messwert in einem Feature

    MAX_MEASURE

    FLOAT(64)

    Der maximale Messwert in einem Feature, Nullwerte zulässig

    AREA

    FLOAT(64)

    Die Fläche der Geometrie

    LEN

    FLOAT(64)

    Die Länge oder der Umfang der Geometrie

    POINTS

    LONG RAW

    Enthält den Datenstrom der Punktkoordinaten, die die Geometrie definieren

    Wenn Features eingefügt oder aktualisiert werden, werden Werte für Spalten wie "extents" und "numofpts" automatisch neu berechnet.

    Die Beziehung zwischen der Basistabelle und der Feature-Tabelle wird durch die räumliche Spalte und die FID-Spalte (Feature-ID) gesteuert. Dieser Schlüssel, der von ArcSDE verwaltet wird, ist eindeutig. Es ist wichtig, dass Sie die referenzielle Integrität zwischen der Basistabelle und der Feature-Tabelle aufrecht erhalten. Sie sollten die Datensätze der Feature-Tabelle oder der räumlichen Indextabelle daher nicht bearbeiten. Der Basis-, Feature- und räumlichen Indextabelle wurden mehrere Indizes und Einschränkungen hinzugefügt, um die referenzielle Integrität sicherzustellen. Diese Indizes und die Einschränkungen werden jedoch entfernt, wenn Sie die Feature-Class in den Nur-Lade-E/A-Modus konvertieren, in dem das schnelle Einfügen von Daten in die Feature-Class möglich ist.

    Wenn die Feature-Class wieder in den normalen E/A-Modus zurückgesetzt wird, d. h. in den Status, in dem Benutzer die Feature-Class über einen ArcSDE-Client abfragen können, werden die Indizes erstellt und die Einschränkungen aktiviert. Die Konvertierung in den normalen E/A-Modus schlägt jedoch fehl, wenn keine eindeutigen Indizes für die räumliche Spalte der Basistabelle oder die FID-Spalte der Feature-Tabelle erstellt werden können. Sie schlägt außerdem auch dann fehl, wenn die räumliche Spalte der Basistabelle einen Wert enthält, der in der FID-Spalte der Feature-Tabelle nicht vorhanden ist. In diesem Fall wird ein Verweis auf den fehlerhaften Datensatz in der Basistabelle in die Tabelle SDE_EXCEPTIONS geladen.

    In der Feature-Tabelle werden die Geometrie-, Annotation- und CAD-Elemente in der Spalte POINTS gespeichert. Die Spalte POINTS kann als BLOB oder als LONG RAW definiert werden. Dies hängt von der Einstellung des Speicherparameters GEOMETRY_STORAGE DBTUNE ab. Legen Sie den Speicherparameter GEOMETRY_STORAGE DBTUNE auf SDEBINARY fest, wenn Sie die komprimierten binären räumlichen Daten in einer Spalte mit dem Datentyp LONG RAW speichern möchten. Für den Datentyp BLOB legen Sie den Speicherparameter auf SDELOB fest.

  • Die räumliche Indextabelle (S<layer_id>)

    Die räumliche Indextabelle ist der räumliche Index der binären Implementierung. In dieser Tabelle werden Verweise auf Shapes auf Grundlage eines einfachen Gitters gespeichert. Diese Tabelle wird durch die Zahl in der Spalte LAYER_ID der Tabelle LAYERS identifiziert.

    Der räumliche Index enthält einen Eintrag für jede Shape- und Gitterzellenkombination, um räumliche Abfragen zu unterstützen. Ein Feature, das drei Gitterzellen schneidet, weist drei Einträge in der Tabelle auf. Wenn eine räumliche Abfrage ausgeführt wird, werden die Gitterzellen innerhalb des Suchbereichs identifiziert und verwendet, um eine Liste von Kandidaten-Geometrien zurückzugeben.

    Definition der räumlichen Indextabelle

    Feldname

    Feldtyp

    Beschreibung

    Null?

    SP_FID

    NUMBER(38)

    Primärschlüssel; eindeutige ID, über die die räumliche Indextabelle mit der Basistabelle verbunden ist

    NOT NULL

    GX

    NUMBER(38)

    Der X-Wert des räumlichen Indexgitters

    NOT NULL

    GY

    NUMBER(38)

    Der Y-Wert des räumlichen Indexgitters

    NOT NULL

    EMINX

    NUMBER(38)

    Der minimale X-Wert in einem Feature; definiert zusammen mit EMINY, EMAXX und EMAXY den Envelope eines Features

    NOT NULL

    EMINY

    NUMBER(38)

    Der minimale Y-Wert in einem Feature; definiert zusammen mit EMINX, EMAXX und EMAXY den Envelope eines Features

    NOT NULL

    EMAXX

    NUMBER(38)

    Der maximale X-Wert in einem Feature; definiert zusammen mit EMINX, EMINY und EMAXY den Envelope eines Features

    NOT NULL

    EMAXY

    NUMBER(38)

    Der maximale Y-Wert in einem Feature; definiert zusammen mit EMINX, EMINY und EMAXX den Envelope eines Features

    NOT NULL

    Räumliche Indextabelle

    Die räumliche Indextabelle definiert den Gitterbereich und die Ausdehnung aller Geometrien in einer ArcSDE-Feature-Class.

    • sp_fid – Enthält die eindeutige ID, über die die Feature-Tabelle mit der Basistabelle verbunden ist
    • gx/gy – Definiert die Feature-Ausdehnung in Gitterzellen
    • eminx/eminy/emaxx/emaxy – Definiert die Feature-Ausdehnung in Systemeinheiten

    In diesem Beispiel verweist die Spalte FEATURE-ID der Basistabelle WELLS auf Features in der Feature-Tabelle und in der räumlichen Indextabelle:

    WELL_ID	DEPTH	ACTIVE	FEATURE-ID
    1	30029	Yes	101
    2	13939	No	102
    3	92891	No	103
    …	…		…
    
    FID
    AREA	LEN	EMINX,EMINY,…	POINTS
    101				<compressed feature>
    102				<compressed feature>
    103				<compressed feature>
    …				…
    
    SP_FID	GX	GY	{EMINX,EMINY,EMAXX,EMAXY}
    101	70	100	
    102	70	100	
    103	71	100	
    …			
            A business/feature/spatial index key reference

HinweisHinweis:

Die räumliche Indextabelle für Feature-Classes mit dem Geometrietyp "binary" ist mit dem LAYER_ID-Wert in der LAYERS-Tabelle verbunden, die räumliche Indextabelle für Feature-Classes mit dem Geometrietyp "ST_Geometry" ist mit dem INDEX_ID-Wert in der ST_GEOMETRY_INDEX-Tabelle verbunden.

View a diagram of a feature class using binary storage in Oracle.

HinweisHinweis:

Sie benötigen Adobe Acrobat Reader, um die Datei zu öffnen.

Gestrichelte Linien geben implizite Beziehungen zwischen Spalten an, und durchgezogene Linien geben explizite Beziehungen zwischen Spalten an.

Feature-Classes in einer Oracle-Datenbank mit Oracle Spatial-Geometrietyp

Oracle Spatial verwendet den räumlichen Geometrietyp MDSYS.SDO_GEOMETRY. Diese Feature-Classes haben ebenfalls eine Basistabelle, diese enthält jedoch die räumliche Spalte "SDO_Geometry" zur Speicherung der Feature-Class-Geometrie. Die Geometriewerte werden direkt in dieser räumlichen Spalte gespeichert.

View a diagram of a feature class using SDO_Geometry storage in Oracle..

HinweisHinweis:

Sie benötigen Adobe Acrobat Reader, um die Datei zu öffnen.

Gestrichelte Linien geben implizite Beziehungen zwischen Spalten an, und durchgezogene Linien geben explizite Beziehungen zwischen Spalten an.

Feature-Classes in einem XML-Dokument

Feature-Classes werden innerhalb der DataElement-Elemente definiert. Die DataElement-Tags für eine Feature-Class werden auf den Typ esri:DEFeatureClass festgelegt. Innerhalb der DataElement-Tags einer Feature-Class befinden sich weitere Elemente zur Definition der Feature-Class, z. B. "Field", "Domain", "ConfigurationKeyword" und "SpatialReference".

Im Folgenden ist ein Teil des XML-Dokuments für die Parcels-Feature-Class zu sehen.

        <DataElement xsi:type="esri:DEFeatureClass">
           <CatalogPath>/V=SDE.DEFAULT/FC=PERRITA.PARCELS</CatalogPath> 
           <Name>PERRITA.PARCELS</Name> 
           <DatasetType>esriDTFeatureClass</DatasetType> 
           <DSID>21</DSID> 
           <Versioned>false</Versioned> 
           <CanVersion>true</CanVersion> 
           <HasOID>true</HasOID> 
           <OIDFieldName>OID</OIDFieldName> 
           <Fields xsi:type="esri:Fields">
              <FieldArray xsi:type="esri:ArrayOfField">
                 <Field xsi:type="esri:Field">
                   <Name>OID</Name> 
                   <Type>esriFieldTypeInteger</Type> 
                   <IsNullable>false</IsNullable> 
                   <Length>4</Length> 
                   <Precision>10</Precision> 
                   <Scale>0</Scale>
                   <Required>true</Required>
                   <Editable>false</Editable>
                   <AliasName>OBJECTID</AliasName>
                   <ModelName>OBJECTID</ModelName> 
                 </Field>

Alle anderen Elemente zur Definition der Feature-Class

</DataElement>

Verwandte Themen


7/10/2012