Datentypen von Geodatabase-Feldern
Beim Erstellen von Feature-Classes und Tabellen wählen Sie für jedes Feld einen Datentyp aus. Zu den verfügbaren Datentypen gehören eine Reihe numerischer Typen, Texttypen, Datumstypen, BLOBs (Binary Large Objects) oder GUIDs (Globally Unique Identifiers). Um die Daten korrekt zu speichern, müssen Sie den richtigen Datentyp auswählen. Dadurch erleichtern Sie die Analyse und Verwaltung der Daten.
In diesem Abschnitt werden alle Datentypen erläutert, die beim Erstellen einer Feature-Class oder Tabelle in ArcMap oder ArcCatalog zur Verfügung stehen. Wenn Sie Daten in einer ArcSDE- oder einer Personal-Geodatabase speichern, entsprechen sich die Datentypen in ArcGIS und dem Datenbankmanagementsystem (DBMS) möglicherweise nicht vollständig. Die Zuordnung erfolgt jeweils zu dem am ehesten geeigneten Datentyp des DBMS. Dieser Vorgang wird als Datentypzuordnung bezeichnet. Bei dieser Zuordnung können Werte im DBMS als ein anderer Datentyp gespeichert werden. Das geschieht unter Anwendung unterschiedlicher Kriterien in Bezug auf das Datenattribut. Weitere Informationen zur Datentypzuordnung für Datenbankmanagementsysteme finden Sie im Abschnitt Datentypen im DBMS.
Ziffern
Zum Speichern von Zahlen stehen vier numerische Datentypen zur Verfügung:
- Short Integer
- Long Integer
- Gleitkommazahlen mit einfacher Genauigkeit, die auch als Float bezeichnet werden
- Gleitkommazahlen mit doppelter Genauigkeit, die auch als Double bezeichnet werden
Berücksichtigen Sie beim Auswählen des Datentyps zuerst, ob ganze Zahlen oder Bruchzahlen benötigt werden. Wenn Sie nur ganze Zahlen speichern müssen, beispielsweise 12 oder 12.345.678, verwenden Sie die Datentypen "Short Integer" oder "Long Integer". Wenn Sie Bruchzahlen mit Dezimalstellen benötigen, beispielsweise 0,23 oder 1234,5678, verwenden Sie die Datentypen "Float" oder "Double".
Entscheiden Sie sich bei der Auswahl zwischen "Short Integer" und "Long Integer" bzw. "Float" oder "Double" dann für den Datentyp, für den weniger Speicherplatz erforderlich ist. Dadurch verringert sich nicht nur der Speicherplatzbedarf, es verbessert sich auch die Performance. Wenn Sie nur ganze Zahlen zwischen -32.768 und 32.767 speichern müssen, legen Sie als Datentyp "Short Integer" fest, weil bei diesem Datentyp nur 2 Bytes belegt werden. Für den Datentyp "Long Integer" sind hingegen 4 Bytes erforderlich. Wenn Sie lediglich Bruchzahlen zwischen -3,4E-38 und 1,2E38 speichern müssen, legen Sie als Datentyp "Float" fest, weil dieser nur 4 Bytes belegt. Für den Datentyp "Double" wären 8 Bytes notwendig. In der folgenden Tabelle sind die Datentypen sowie deren Wertebereiche und Speicherplatzbedarf angegeben. Die aufgeführten Wertebereiche gelten für File- und Personal-Geodatabases. In ArcSDE-Geodatabases gelten geringfügig abweichende Wertebereiche.
Datentyp |
Wertebereich |
Größe (Byte) |
Anwendungen |
Short Integer |
-32.768 bis 32.767 |
2 |
Numerische Werte ohne Bruchzahlen innerhalb eines spezifischen Bereichs; kodierte Werte |
Long Integer |
-2.147.483.648 bis 2.147.483.647 |
4 |
Numerische Werte ohne Bruchzahlen innerhalb eines spezifischen Bereichs |
Gleitkommazahl mit einfacher Genauigkeit (Float) |
etwa -3,4E38 bis 1,2E38 |
4 |
Numerische Werte mit Bruchzahlen innerhalb eines spezifischen Bereichs |
Gleitkommazahl mit doppelter Genauigkeit (Double) |
etwa –2,2E308 bis 1,8E308 |
8 |
Numerische Werte mit Bruchzahlen innerhalb eines spezifischen Bereichs |
Wenn Sie Zahlenfelder für eine Tabelle in einer File- oder Personal-Geodatabase angeben, müssen Sie lediglich den Datentyp angeben. Wenn Sie Zahlenfelder für eine ArcSDE-Geodatabase angeben, müssen Sie darüber hinaus die Genauigkeit (die maximale Feldlänge) und die Dezimalstellen (die maximale Anzahl der Nachkommastellen) angeben.
Durch Angabe der Genauigkeit und der Dezimalstellen können Sie den Wertebereich und die Zahlenformate für ein Feld beschränken und somit besser steuern. Wenn Sie beispielsweise den Datentyp "Float" mit der Genauigkeit 4 und 2 Dezimalstellen angeben, ist 12,34 als Eingabe im Feld zulässig. Falls Sie 12,345 eingeben, wird eine Fehlermeldung angezeigt, da hiermit die zulässige Höchstzahl der Ziffern und Dezimalstellen überschritten wird. Wenn Sie jedoch den Datentyp Float mit der Genauigkeit 5 und 3 Dezimalstellen angegeben hätten, wäre 12,345 als Eingabe zulässig.
Die Datentypen und die entsprechenden möglichen Werte für Genauigkeit und Dezimalstellen sind in der folgenden Tabelle aufgeführt. Wählen Sie anhand dieser Tabelle den Datentyp, die Genauigkeit und die Anzahl der Dezimalstellen für ArcSDE-Geodatabases aus.
Datentyp |
Genauigkeit (Feldlänge) |
Dezimalstellen (Nachkommastellen) |
---|---|---|
Short Integer* |
1‑5 (Oracle, SQL Server, PostgreSQL); 5 (DB2, Informix) |
0 |
Long Integer |
6‑10 (Oracle und PostgreSQL); 6‑9 (DB2, Informix und SQL Server) |
0 |
Float |
1–6 |
1–6 |
Double |
7+ |
0+ |
*In ArcGIS Desktop werden standardmäßig Short-Integer-Werte mit einer Genauigkeit von 5 erstellt. In Short-Integer-Spalten können jedoch nur Werte in einem Bereich von -32.768 bis 32.767 gespeichert werden. Aus diesem Grund können Sie in einem Short-Integer-Feld keine Werte über 32.767 oder unter -32.768 speichern, selbst wenn Sie die Genauigkeit auf 5 festgelegt haben. Die Angabe einer Genauigkeit ist nur für Short-Integer-Spalten erforderlich, die in ArcGIS Desktop für eine Oracle-Datenbank erstellt wurden. Für SQL Server- oder PostgreSQL-Datenbanken muss in ArcGIS Desktop keine Genauigkeit für Long-Integer-Spalten angegeben werden.
In der folgenden Tabelle finden Sie Beispiele für Zahlenbereiche und Möglichkeiten zu deren Speicherung in einer ArcSDE-Geodatabase.
Bereich |
Datentyp |
Genauigkeit (Feldlänge) |
Dezimalstellen (Nachkommastellen) |
---|---|---|---|
0 bis 99 |
Short Integer |
2 |
0 |
-99 bis 99* |
Short Integer |
3 |
0 |
0 bis 32.767* | Short Integer | 5 | 0 |
32,768 bis 99,999 | Long Integer | 5 | 0 |
0,001 bis 0,999 |
Float |
4 |
3 |
1.000,00 bis 9.999,99 |
Float |
6 |
2 |
-123.456,78 bis 0* |
Double |
9 |
2 |
0 bis 1.234,56789 |
Double |
9 |
5 |
*Für negative Zahlen ist eine größere Genauigkeit erforderlich, weil das Minuszeichen ebenfalls gespeichert werden muss.
Computer können je nach Größe des zugewiesenen Speicherplatzes nur eine begrenzte Anzahl von Ziffern speichern. In Feldern mit dem Datentyp "Double" können in File-, Personal- und ArcSDE-Geodatabases nur Zahlen mit bis zu maximal 15 Ziffern exakt gespeichert werden, weil der Speicherplatz auf 8 Bytes begrenzt ist. Zahlen mit mehr Ziffern werden gerundet und in einem Format gespeichert, das der wissenschaftlichen Notation ähnelt. Sie stellen somit lediglich Näherungswerte dar. Wenn Sie beispielsweise die 20-stellige Zahl 12.345.678.901.234.567.890 eingeben, wird diese gerundet und als 15-stellige Zahl 1,23456789012346E+19 gespeichert. Mit dem kodierten Wert am Ende (E+19) wird die Position des Dezimaltrennzeichens festgelegt.
In Feldern mit dem Datentyp "Float" können in File- und Personal-Geodatabases nur Zahlen aus maximal 6 Ziffern exakt gespeichert werden. Die Zahl 123.456,7 beispielsweise kann in einem Feld mit dem Datentyp "Float" nicht gespeichert werden, da diese Zahl mehr als sechs Ziffern aufweist. Zwar kann die Zahl in einer File- oder Personal-Geodatabase in einem Feld mit dem Datentyp "Float" eingegeben werden, sie wird jedoch auf 123.457 gerundet, eine Zahl mit den zulässigen 6 Ziffern. Wenn Sie diese Zahl exakt speichern müssen, sollten Sie sie in einem Feld mit dem Datentyp "Double" speichern. In ArcSDE-Geodatabases können Sie in Feldern mit dem Datentyp "Float" keine Zahlen mit mehr Ziffern als die Genauigkeit für das jeweilige Feld eingeben. Daher erfolgt auch keine Rundung.
Text
Ein Textfeld enthält eine Reihe alphanumerischer Symbole. Dies können Straßennamen, Attributeigenschaften oder andere Textbeschreibungen sein. Eine Alternative zur Verwendung wiederholter Textattribute ist die Festlegung eines kodierten Wertes. Dabei wird eine Textbeschreibung als numerischer Wert kodiert. Sie könnten z. B. Straßenarten mit numerischen Werten kodieren: 1 für asphaltierte Straßen, 2 für Schotterstraßen usw. Das hat den Vorteil, dass in der Geodatabase weniger Speicherplatz belegt wird, allerdings muss der Anwender die kodierten Werte verstehen. Wenn Sie die kodierten Werte in einer Domäne mit kodierten Werten in der Geodatabase definieren und die Domäne mit dem Integer-Feld verknüpfen, das die Codes speichert, zeigt die Geodatabase die Textbeschreibung an, wenn Sie die Tabelle in ArcMap oder ArcCatalog einsehen.
Weitere Informationen über Subtypes und Attributdomänen.
Je nach Sprache werden unterschiedliche Zeichen für Text verwendet. Damit Text einfacher zwischen verschiedenen Sprachen konvertiert werden kann, werden Zeichen in ArcGIS in Unicode kodiert.
Datumsangaben
Der Datentyp "Datum" kann Datumsangaben, Zeitangaben oder beides gleichzeitig speichern. Das Standardformat für die Darstellung der Informationen ist mm/tt/jj hh:mm:ss und die Angabe von AM oder PM. Wenn Sie Datumsangaben in die Tabellen eingeben, werden sie in dieses Format konvertiert.
BLOBs
Ein BLOB (Binary Large Object) sind Daten, die in der Geodatabase als eine lange Abfolge von Binärzahlen gespeichert werden. In ArcGIS werden Annotations und Bemaßungen als BLOBs gespeichert. In Feldern dieses Typs können auch Objekte wie Bilder, Multimedia-Komponenten oder Programmcode gespeichert werden. Sie müssen ein benutzerdefiniertes Ladeprogramm bzw. einen benutzerdefinierten Viewer oder eine Anwendung eines Drittanbieters verwenden, um Objekte in ein BLOB-Feld zu laden bzw. den Inhalt in einem BLOB-Feld anzuzeigen.
Objekt-IDs
Das ObjectID-Feld wird von ArcGIS verwaltet und garantiert eine eindeutige Kennung für jede Zeile in der Tabelle. In einer Tabelle oder der Attributtabelle eines Layers ist das ObjectID-Feld in der Regel mit den Aliasnamen "OID" oder "ObjectID" für Tabellen und "FID" für Layer aufgeführt. Schlüsselfunktionen, z. B. das Scrollen und das Anzeigen von Auswahlsätzen, sind von der Existenz dieses Feldes abhängig.
Beachten Sie, dass die ObjectID für die meisten Funktionen in ArcGIS Desktop, wie z. B. für das Werkzeug "Identifizieren", eindeutig sein muss. Achten Sie beim direkten Arbeiten in der Datenbank darauf, dass keine doppelten ObjectIDs erstellt werden. Wenn Sie z. B. Sichten mit einer Eins-zu-vielen-Beziehung erstellen, besteht die Möglichkeit, dass ObjectIDs dupliziert werden. Dies kann bei Funktionen in ArcGIS Desktop zu inkonsistentem Verhalten führen.
GUIDs
Mit den Datentypen "Global ID" und "GUID" werden registrierungsartige Zeichenfolgen aus 36 Zeichen gespeichert, die in geschweifte Klammern eingeschlossen sind. Mit diesen Zeichenfolgen werden Features oder Tabellenzeilen innerhalb einer Geodatabase oder Geodatabase-übergreifend eindeutig gekennzeichnet. Dies dient der Nachverfolgung von Features bei der unidirektionalen und der bidirektionalen Geodatabase-Replikationen. Entwickler können diese in Beziehungen oder in Anwendungen verwenden, die GUIDs erfordern. Wenn bei einer Beziehung ein Feld "Globale ID" der Ursprungsschlüssel ist, muss der Zielschlüssel ein GUID-Feld sein. Sie können einem Feature im Kataloginhaltsverzeichnis globale IDs hinzufügen, indem Sie mit der rechten Maustaste darauf klicken und im Kontextmenü die Option "Globale IDs hinzufügen" wählen. In der Geodatabase werden die Werte anschließend automatisch verwaltet. Sie können auch das GUID-Feld erstellen, müssen jedoch seine Werte beibehalten.
In Datenbanken mit einem nativen GUID-Datentyp, beispielsweise Personal- und ArcSDE-Geodatabases in Microsoft SQL Server, werden Global ID- und GUID-Werte in 16 Bytes gespeichert. In Datenbanken ohne nativen GUID-Datentyp werden sie in 38 Bytes gespeichert.
Einige Hinweise zu globalen IDs
- GUID-Felder können über die Registerkarte "Felder" im Dialogfeld "Eigenschaften" eines Features oder mit dem Befehl "Feld hinzufügen" im Tabellenfenster hinzugefügt werden.
- Der Befehl "Globale IDs hinzufügen" ist für Standalone-Feature-Classes, -Tabellen und attributierte Beziehungsklassen verfügbar. Er kann nicht für einzelne Datasets in einem Feature-Dataset ausgeführt werden, sondern nur für das gesamte Feature-Dataset.
- Wenn bereits eine globale ID vorhanden ist, wird mit dem Befehl die vorhandene Spalte beibehalten. Diese wird nicht gelöscht, und es wird keine neue Spalte für die globale ID hinzugefügt.
- Wenn Sie einem Feature-Dataset eine Feature-Class hinzufügen und außerdem eine Global-ID-Spalte hinzufügen möchten, müssen Sie den Befehl "Globale IDs hinzufügen" für das Feature-Dataset ausführen. Dadurch wird der neuen Feature-Class und allen anderen Feature-Classes, in denen noch keine Spalte für globale IDs vorhanden ist, eine Global-ID-Spalte hinzugefügt. Feature-Classes, die bereits eine Global-ID-Spalte enthalten, werden nicht geändert.
- Bei Kopieren und Einfügen, Datenextraktion und XML-Workspace-Export und -Import bleiben die Werte der globalen IDs in der Ausgabe-Geodatabase erhalten. Bei anderen Methoden zum Datenexport und -import bleiben diese Werte nicht erhalten.
Felder vom Typ "Raster"
Im Gegensatz zu einem Hyperlink, mit dem das Feld eines Features einfach mit einem Bild verbunden wird, können in einem Feld des Typs "Raster" die eigentlichen Raster-Daten innerhalb oder zusammen mit der Geodatabase gespeichert werden. Weitere Informationen finden Sie im Abschnitt Hinzufügen von Raster-Datasets als Attribute in einer Feature-Class.
Geometrie
In ArcGIS wird mit dem Datentyp "Geometry" der in der Tabelle gespeicherte Geometrietyp angegeben: Punkt, Linie, Polygon, Multipoint oder Multipatch. Das Feld mit dem Datentyp "Geometry" wird meist mit SHAPE bezeichnet.
"Geometry" ist der von ArcGIS verwendete Datentyp. Während Sie Daten in einer ArcSDE-Geodatabase speichern, hängt das Verfahren zum Speichern geometrischer Daten im DBMS vom DBMS-Typ ab. Der Grund dafür besteht darin, dass ArcSDE für jedes unterstützte DBMS einen eigenen Geometriespeichertyp verwendet.
Angenommen, Sie wählen als neue Feature-Class die Option "Polygon-Features" aus.
Hierbei weist das standardmäßig hinzugefügte Feld SHAPE den Datentyp "Geometry" auf. Im Dialogfeld Neue Feature-Class wird im Bereich "Feldeigenschaften" der Geometrietyp als "Polygon" aufgeführt.
Wenn Sie eine Feature-Class mit einem anderen Feature-Typ (Linie, Punkt, Multipoint, Multipatch, Bemaßung oder Annotation) erstellen, ändert sich für das Feld SHAPE die Angabe in der Zeile "Geometrietyp" entsprechend in "Linie", "Punkt", "Multipoint" oder "Multipatch" bzw. bei den Feature-Typen "Bemaßung" und "Annotation" in "Polygon".
Bei Datenbankmanagementsystemen, die mit ArcSDE verwendet werden, hängt das Verfahren zum Speichern des Feldes SHAPE im DBMS von dem Geometriespeichertyp ab, der im DBMS verwendet wird. Wenn Sie also eine neue Feature-Class in einer ArcSDE Personal-Geodatabase erstellen, werden die Werte für das Feld SHAPE im Geometriespeichertyp "ArcSDE Compressed Binary" gespeichert.