Feature-Classes in einer Geodatabase in Oracle
Eine Feature-Class ist eine Sammlung von geographischen Features, die denselben geometrischen Typ aufweisen (Point, Line, Polygon, Multipoint, Annotation, Dimension 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 for Desktop
Es gibt sieben Typen von Feature-Classes, die Sie in ArcGIS for 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 |
---|---|
Point oder Multipoint |
|
Line |
|
Polygon |
|
Annotation |
|
Dimension |
|
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.
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. Daneben werden den Tabellen LAYERS, TABLE_REGISTRY, GEOMETRY_COLUMNS, COLUMN_REGISTRY, sde_spatial_references (wenn ein Raumbezug definiert wurde) und GDB_ITEMS Datensätze im Schema des SDE-Benutzers hinzugefügt, um Informationen zur Feature-Class zu verfolgen. In der Tabelle GDB_ITEMTYPES im Schema des SDE-Benutzers wird der Datentyp definiert (in diesem Fall "Feature-Class").
Durch das 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.
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-TabelleFeldname
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, NULL-Werte 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 aufrechterhalten. 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-, Annotations- 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
Räumliche IndextabelleFeldname
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
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
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 Tabelle "ST_GEOMETRY_INDEX" verbunden.
View a diagram of a feature class using binary storage in Oracle.
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..
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>