ArcGIS wendet beim Herstellen einer Verbindung mit einer Datenquelle bestimmte Regeln an. Wenn ArcGIS eine Verbindung mit einer Datenbank herstellt und Daten in dieser liest, gilt Folgendes:
Objektnamen
Datenbankmanagementsysteme haben unterschiedliche Definitionen von zulässigen Zeichen für Objektnamen. Die meisten Namen müssen mit einem Buchstaben beginnen und dürfen keine Leerzeichen, umgekehrte Schrägstriche oder reservierte Schlüsselwörter für Datenbankmanagementsysteme enthalten. Einige Datenbanken lassen Sonderzeichen wie Schrägstriche (/), Unterstriche (_), Dollarzeichen ($), Bindestriche (-), Punkte (.) oder Groß- und Kleinschreibung zu. In manchen Fällen lässt die Datenbank die Verwendung von Sonderzeichen und reservierten Schlüsselwörtern zu oder erzwingt die Verwendung von kombinierter Groß- und Kleinschreibung bzw. Groß- oder Kleinbuchstaben in Namen, wenn Sie den Objektnamen in Trennzeichen wie doppelten Anführungszeichen angeben.
Objektnamen werden in ArcGIS jedoch nicht durch Trennzeichen getrennt. Erstellen Sie keine Tabellen, Feature-Classes, Indizes, Datenbanken, Benutzer*, Rollen oder andere Objektnamen, die Trennzeichen erfordern, wenn sie mit ArcGIS verwendet werden. Das Objekt wird in der Datenbank erstellt, Sie können jedoch nicht über ArcGIS darauf zugreifen.
* Microsoft SQL Server-Benutzernamen, die Sonderzeichen enthalten, sind durch Trennzeichen getrennt, um Active Directory-Gruppen und authentifizierte Windows-Anmeldungen vollständig zu unterstützen. ArcGIS unterstützt jedoch keine Benutzernamen mit einfachen Anführungszeichen oder Apostrophen.
Namenslänge
ArcGIS kann Datenbankobjekte wie Tabellen, Sichten und Benutzer lesen und (in manchen Fällen) erstellen. In der folgenden Tabelle sind die in ArcGIS für diese Objekte maximal zulässige Länge von Namen sowie ggf. Ausnahmen aufgeführt.
Objekttyp | Maximale Anzahl von Zeichen, die von ArcGIS erstellt werden | Maximale Anzahl von Zeichen, die von ArcGIS gelesen werden | Ausnahmen |
---|---|---|---|
Datenbankname | Nicht zutreffend 250 beim Erstellen in SQLite | 31 250 beim Lesen aus SQLite | ArcGIS kann die in Oracle maximal zulässige Länge von Datenbanknamen lesen. Datenbanknamenswerte sind für SAP HANA nicht anwendbar. Der Datenbankname für SQLite besteht aus dem Dateipfad, dem Dateinamen und der Dateierweiterung. Wenn die SQLite-Datenbank für die Verwendung des räumlichen Datentyps SpatiaLite oder "ST_Geometry" konfiguriert ist, hat die Datei die Dateierweiterung (.sqlite). Wenn die SQLite-Datenbank als OGC GeoPackage konfiguriert ist, hat die Datei die Dateierweiterung (.gpkg). |
Tabellen-, Feature-Class- oder Sichtname | 128 158 beim Erstellen in SQLite | 128 158 beim Lesen aus SQLite | |
Indexname | 16 in allen Datenbanken, mit Ausnahme von SQL Server und SQLite. Dort können Sie Indexnamen mit bis zu 128 Zeichen erstellen. | Bis zur Datenbankbeschränkung für außerhalb von ArcGIS erstellte Indizes. | Indexnamen sind in SAP HANA nicht anwendbar. |
Feldname (Spaltenname) | 31 bei Erstellung in SQL Server, PostgreSQL, SAP HANA, Teradata und SQLite 30 bei Erstellung in Db2, Informix und Oracle | 31 beim Lesen aus PostgreSQL und SQLite. 30 beim Lesen aus Db2, Informix und Oracle 12.1 sowie früheren Versionen. Für andere unterstützte Datenbanken bis zur Datenbankbeschränkung. | |
Benutzername | In ArcGIS werden Benutzer nur in den folgenden Datenbanken erstellt. Die maximale Länge der erstellten Benutzernamen wird angezeigt.
| Hängt von der Verbindungsmethode ab. Im Dialogfeld "Datenbankverbindung" sind nur 31 Zeichen zulässig. Das Geoverarbeitungswerkzeug Datenbankverbindung erstellen akzeptiert eine Anzahl bis zur Datenbankbeschränkung. | Benutzernamenswerte sind für SQLite nicht anwendbar. |
Kennwort | In ArcGIS werden Kennwörter für Benutzer nur in den folgenden Datenbanken erstellt. Die maximale Länge der erstellten Kennwörter wird angezeigt.
| 256 für alle unterstützten Datenbanken, mit Ausnahme von Teradata. In Teradata werden nur bis zu 31 Zeichen unterstützt. | Kennwortwerte sind für SQLite nicht anwendbar. |
Geometrieüberprüfung
Wenn Sie Daten in einer Datenbank mit einem ArcGIS-Client erstellen, überprüft ArcGIS die Geometrie basierend auf bestimmten Regeln. Wenn die Geometrie, die Sie in einem ArcGIS-Client konstruieren, ungültig ist, lässt ArcGIS nicht zu, dass Sie sie in die Geodatabase einfügen.
Die Konstruktorfunktionen "ST_Geometry" von Esri und IBM und die ArcGIS-API verwenden die Esri Shape-Bibliothek zur Überprüfung von Geometriedaten bei der Erstellung des Features. Daher werden auch dann, wenn Sie ein "ST_Geometry"-Shape von Esri oder IBM mit SQL erstellen, Validierungsregeln angewendet und ungültige Geometrien nicht in die Datenbank festgeschrieben.
Andere räumliche Datentypen wie "SDO_Geometry", PostGIS Geometry oder PostGIS Geography und Microsoft SQL Server-Geometrie oder -Geographie haben eigene Konstruktorfunktionen und verwenden eigene Geometrie-Überprüfungsregeln. Diese Regeln entsprechen möglicherweise nicht denen, die von ArcGIS angewendet wurden. ArcGIS-Clients überprüfen die Geometrie, wenn die Daten gelesen werden, und zeigen keine Geometrien an, die die Validierungsregeln der ArcGIS-Geometrie verletzen. Wenn Sie eine Verbindung mit einer Datenbank herstellen, die Daten enthält, die außerhalb von ArcGIS erstellt wurden, müssen Sie die von ArcGIS angewendeten Regeln beachten.
Validierungsregeln für Punkte
- Die Fläche und die Länge von Punkten entspricht 0,0.
- Der Envelope eines einzelnen Punktes ist gleich den XY-Werten des Punktes.
- Der Envelope eines Multipart-Punktes entspricht dem kleinsten umgebenden Rechteck.
Validierungsregeln für einfache Linien oder Linestrings
- Jedes Element muss mindestens zwei verschiedene Punkte haben.
- Kein Teil darf sich selbst schneiden. Die Ausgangs- und Endpunkte können gleich sein, aber der sich ergebende Ring wird nicht als Polygon behandelt.
- Teile dürfen sich an den Endpunkten berühren.
- Die Länge ist die Summe aller Teile.
Validierungsregeln für Linien oder Spaghetti-Zeichenfolgen
- Linien dürfen sich schneiden.
- Jedes Element muss mindestens zwei verschiedene Punkte haben.
- Die Länge ist die Summe aller Teile.
Validierungsregeln und -vorgänge für Polygone
- Dangles sind ungültig.
- Für Liniensegmente, die das Polygon bilden, wird überprüft, ob sie geschlossen sind (Z-Koordinaten an Start- und Endpunkten müssen gleich sein) und sich nicht schneiden.
- Bei Polygonen mit Löchern müssen sich die Löcher vollständig innerhalb der äußeren Grenze befinden. Alle Löcher, die außerhalb der äußeren Grenze liegen, sind ungültig.
- Ein Loch, das eine äußere Grenze an einem einzelnen gemeinsamen Punkt berührt, wird in eine Inversion des Polygons konvertiert.
- Mehrere Löcher, die sich an gemeinsamen Punkten berühren, werden zu einem einzelnen Loch kombiniert.
- Multipart-Polygone dürfen sich nicht schneiden. Zwei Teile dürfen sich jedoch an einem Punkt berühren.
- Multipart-Polygone dürfen keine gemeinsame Grenze haben.
- Falls zwei Ringe über eine gemeinsame Grenze verfügen, werden sie zu einem Ring zusammengeführt.
- Der gesamte Geometrieumfang, einschließlich der Grenzen aller Löcher in Kreisringpolygonen, wird berechnet und als Länge der Geometrie gespeichert.
- Die Fläche wird berechnet.
- Der Envelope wird berechnet.
- Die Punkte eines Polygons werden gegen den Uhrzeigersinn gespeichert, obwohl ArcGIS-Clients Punkte in beide Richtungen zurückgeben können. Wenn Sie ein Polygon erzeugen, das Koordinaten im Uhrzeigersinn enthält, ändert ArcGIS die Rotation, um sicherzustellen, dass die Koordinaten eine Richtung gegen den Uhrzeigersinn aufweisen.
In diesem Beispiel ist der Startpunkt "a", und die richtige Koordinatenbeschreibung lautet "a,b,c,d,a".
- Ein Polygon kann Inversionen aufweisen. Dabei handelt es sich um Leerräume im Polygon, die die äußere Grenze berühren.
- Umgekehrte Polygone weisen einen inneren Ring auf, der die äußere Grenze berührt. Diese werden nicht als Kreisringpolygone angesehen.
- Wenn ein Polygon ein Kreisringloch hat, wird die äußere Grenze zuerst gelesen. Die Punkte der Löcher werden in entgegengesetzter Richtung zur äußeren Grenze gespeichert.
In der folgenden Abbildung wird die äußere Grenze als "a,b,c,d,a" beschrieben, und das Loch wird als "e,f,g,h,e" beschrieben. Das Feature wird für das gesamte Polygon als a,b,c,d,a,e,f,g,h,e gespeichert.
- Wenn sich zwei Löcher an einem Punkt berühren, werden sie als ein Loch behandelt, nicht als zwei.
In diesem Beispiel sind die zwei inneren Flächen ein einzelnes Loch, weil sie den gemeinsamen Punkt "g" aufweisen.
- Die Kombination aus Polygonen und Polygonen mit Löchern kann relativ komplex werden. Dies ist in der nächsten Grafik dargestellt. Die äußere Grenze ist ein See mit einer Insel. Die Insel verfügt über einen kleinen See.
Es ist möglich, diese Polygone als ein, zwei oder drei Features darzustellen. Sie können jedes Polygon als getrenntes Feature speichern. Der größere See ist ein Kreisringpolygon. Die Grenze des großen Sees ist die äußere Grenze, während die Insel die Grenze des einzelnen Kreisringlochs ist. Die Insel ist ebenfalls ein Kreisringpolygon. Die Grenze der Insel ist die äußere Grenze, und der kleine See ist das Loch. Der kleine See ist ein einzelnes Polygon.
Werden die Seen als die entscheidenden Features angesehen, steht ein Feature mit einem Loch für den großen See und ein zweites Shape für den kleinen See. Sie können zum Darstellen des Features auch ein Multipart-Polygon verwenden. Der erste Polygon-Teil ist der große See mit einem Kreisringloch, das die Insel darstellt. Der zweite Teil ist der kleine See.
- Nil-Geometrien sind gültig und fungieren als Platzhalter. Sie ermöglichen eine Attributzeile, ohne entsprechende Geometrie. Ein Beispiel, bei dem sich eine leere Geometrie ergibt, ist eine Anforderung für den Schnittpunkt von zwei Polygonen, die sich nicht schneiden.
Da sich die Flächen A und B nicht berühren, ergibt sich für eine Schnittpunktabfrage eine leere Geometrie.
- Features haben räumliche Dimensionen. Ein Feature, das nur über XY-Koordinaten verfügt, ist zweidimensional. Ein Feature, das über Z-Koordinaten oder Messwerte verfügt, ist dreidimensional. Außerdem kann ein Feature über einen leeren Messwert verfügen.
Räumliche Metadaten
Geodatabases speichern Metadaten zu den räumlichen Daten, die sie enthalten. ArcGIS-Clients können Informationen zum Entitätstyp der Feature-Class (z. B. Punkte, Linien oder Polygone), zur Dimensionalität (X-, Y- Z- oder M-Koordinaten ), zum Raumbezug, zur eindeutigen Kennung und zur Feature-Class-Ausdehnung aus Geodatabase-Systemtabellen lesen. Dieselben Tabellen sind nicht verfügbar, wenn ArcGIS eine Verbindung mit einer Feature-Class in einer Datenbank herstellt. Aus diesem Grund muss ArcGIS diese Informationen aus anderen Quellen abrufen.
Wenn Sie eine Feature-Class (räumliche Tabelle) in ArcMap ziehen, wird ein Abfrage-Layer erstellt. Zum Definieren des Abfrage-Layers führt ArcMap die folgenden Schritte aus:
- Aus der Datenbank werden Informationen über die räumliche Tabelle abgerufen, z. B. Dimensionalität, Raumbezug und Geometrietyp.
- Wenn diese Informationen für die Tabelle als Ganzes nicht definiert sind, liest ArcMap die erste Zeile der Tabelle und nutzt die Informationen aus diesem Feature.
- Können Raumbezug, Geometrietyp oder Dimensionalität anhand der ersten Zeile nicht bestimmt werden, z. B. wenn die Tabelle keine Daten enthält oder die Zeile einen benutzerdefinierten Raumbezug verwendet, werden Sie zur Eingabe dieser Informationen für die Layer-Definition aufgefordert.
- ArcMap fragt die Datenbank nach einer Spalte ungleich NULL ab, die als eindeutige Kennung (ObjectID) für die Zeilen in dieser Tabelle verwendet werden kann. Kann keine geeignete Zeile gefunden werden, werden Sie aufgefordert, eine ObjectID für die Tabelle zu definieren.
- Als letztes berechnet ArcMap die Ausdehnung des Layers, wenn Sie diesen der Karte hinzufügen.
Da die Anzeige in der Karte auf einer Abfrage basiert, können Sie die Definition des Abfrage-Layers öffnen und ändern. Wenn beispielsweise die Feature-Class Punkte und Polygone enthält, können Sie die Definition des Abfrage-Layers öffnen und den anzuzeigenden Geometrietyp auswählen. Das Gleiche gilt, wenn die Feature-Class mehrere räumliche Spalten enthält. Auch hier können Sie die Definition des Abfrage-Layers öffnen und die Abfrage so ändern, dass sie eine andere räumliche Spalte enthält. Beachten Sie jedoch, dass die Abfrage nicht so geändert werden kann, dass nicht unterstützte Datentypen angezeigt werden.