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 ArcGIS zur Verfügung stehen. Wenn Sie Daten in einer ArcSDE- oder einer Personal-Geodatabase oder einer Datenbank speichern, entsprechen sich die Datentypen in ArcGIS und dem DBMS (Datenbankmanagementsystem) 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. Die Folge ist, dass der Datentyp, der in der Tabelle der Feature-Class-Eigenschaften in ArcGIS for Desktop angezeigt wird, sich von dem zu Beginn eingegebenen Datentyp unterscheidet. Weitere Informationen zur Datentypzuordnung für Datenbankmanagementsysteme finden Sie im Abschnitt Datentypen im DBMS.
Zusätzlich können weitere Datenspeicherungsformate, wie Shapefiles oder DBF-Tabellen, andere Datentyp-Einschränkungen aufweisen. Sie müssen die für das Zielspeicherformat geltenden Einschränkungen für Datentyp und Größe kennen, wenn Sie Daten zwischen Datenspeichertypen verschieben.
Ziffern
Zum Speichern von Zahlen stehen vier numerische Datentypen zur Verfügung:
- Short Integer
- Long Integer
- Float (Gleitkommazahl mit einfacher Genauigkeit)
- Double (Gleitkommazahl mit doppelter Genauigkeit)
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.4E38 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 und Datenbanken 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; codierte Werte |
Long Integer | -2.147.483.648 bis 2.147.483.647 | 4 | Numerische Werte ohne Bruchzahlen innerhalb eines spezifischen Bereichs |
Float (Gleitkommazahl mit einfacher Genauigkeit) | etwa -3.4E38 bis 1.2E38 | 4 | Numerische Werte mit Bruchzahlen innerhalb eines spezifischen Bereichs |
Double (Gleitkommazahl mit doppelter Genauigkeit) | 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 Datenbank oder 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 Datenbanken und ArcSDE-Geodatabases aus.
Datentyp | Genauigkeit (Feldlänge) | Dezimalstellen (Nachkommastellen) |
---|---|---|
Short Integer* | 1–5 (Oracle, SQL Server, PostgreSQL, Netezza); 5 (DB2, Informix) | 0 |
Long Integer | 6–10 (Oracle und PostgreSQL); 6–9 (DB2, Informix, Netezza und SQL Server) | 0 |
Float | 1–6 | 1–6 |
Double | 7+ | 0+ |
*In ArcGIS for 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 for Desktop für eine Oracle-Datenbank erstellt wurden. Für SQL Server- oder PostgreSQL-Datenbanken muss in ArcGIS for 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 oder Datenbank.
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 Datenbanken oder 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 codierten 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 und Datenbanken 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 in einer Geodatabase ist die Festlegung eines codierten Wertes. Dabei wird eine Textbeschreibung als numerischer Wert codiert. 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 codierten Werte verstehen. Wenn Sie die codierten Werte in einer Domäne mit codierten Werten in der Geodatabase definieren und die Domäne mit dem Ganzzahlfeld 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 codiert.
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 Tabelle über ArcGIS eingeben, werden sie in dieses Format konvertiert.
BLOBs
Bei einem BLOB handelt es sich um Daten, die als lange Abfolge von binären Zahlen gespeichert sind. In ArcGIS werden Annotation 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 for Desktop, wie z. B. für das Werkzeug "Identifizieren", eindeutig sein muss. Achten Sie beim direkten Arbeiten in der Datenbank außerhalb von ArcGIS 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 for Desktop zu inkonsistentem Verhalten führen.
Wenn Sie ArcMap eine Datenbanktabelle hinzufügen, ist eine Objekt-ID erforderlich. Findet ArcGIS kein Integer-Feld ungleich Null, das als Objekt-ID verwendet werden kann, werden Sie aufgefordert, ein Feld auszuwählen, das als Objekt-ID verwendet werden soll. Weitere Informationen finden Sie unter Auswählen eines eindeutigen Kennungsfeldes.
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 unidirektionalen und 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 Dataset in einer Geodatabase globale IDs hinzufügen, indem Sie im Kataloginhaltsverzeichnis mit der rechten Maustaste darauf klicken und im Kontextmenü die Option Globale IDs hinzufügen auswä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-Geodatabases und Microsoft SQL Server, werden Global ID- und GUID-Werte als 16 Byte gespeichert. In Datenbanken ohne nativen GUID-Datentyp werden sie in 38 Bytes gespeichert.
Einige Hinweise zu globalen IDs
- GUID-Felder können Geodatabase-Datasets ü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 in Geodatabases verfügbar. Er kann nicht für einzelne Datasets in einem Feature-Dataset, sondern nur für das gesamte Feature-Dataset ausgeführt werden. Eine Ausführung für Tabellen in einer Datenbank ist ebenfalls nicht möglich.
- Wenn bereits eine Spalte für die globale ID vorhanden ist, wird durch den 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 in einer Geodatabase eine Feature-Class hinzufügen und außerdem eine Spalte für die globale ID 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 "Geometrie" der in der Tabelle gespeicherte Geometrietyp angegeben: Punkt, Linie, Polygon, Multipoint oder Multipatch. Das Feld mit dem Datentyp "Geometrie" wird meist als SHAPE bezeichnet, wenn es mit ArcGIS erstellt wurde.
"Geometrie" ist der von ArcGIS verwendete Datentyp. Wenn Sie beispielsweise für eine neue Feature-Class Polygon-Features auswählen (siehe unten), weist das standardmäßig hinzugefügten SHAPE-Feld den ArcGIS-Datentyp "Geometrie" auf.
Im Abschnitt Feldeigenschaften des Dialogfeldes Neue Feature-Class wird 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".
Wenn Sie ein Geometriefeld in einer Feature-Class in einer Datenbank oder ArcSDE-Geodatabase erstellen, muss ein weiterer Datentyp berücksichtigt werden: der Datenbankdatentyp. Das Verfahren zum Speichern des Feldes SHAPE im DBMS hängt von dem Geometriespeichertyp ab, der im DBMS verwendet wird. Wenn Sie eine Feature-Class in einer Datenbank erstellen, definieren Sie den räumlichen Typ des Feldes im Abschnitt Feldeigenschaften des Dialogfeldes Neue Feature-Class. Wenn Sie eine Feature-Class in einer Geodatabase erstellen, wird der verwendete Geometriespeichertyp von der Einstellung des Parameters GEOMETRY_STORAGE im Konfigurationsschlüsselwort bestimmt, die Sie angeben.