Migrieren in die File-Geodatabase
Unter den verschiedenen Typen von Geodatabases ähneln die File-Geodatabases am meisten den Personal-Geodatabases, da sie für Einzelbenutzer konzipiert sind und keine Unterstützung für die Versionierung bieten. Auch die Arbeitsweise ist bei beiden Typen dieselbe, ganz gleich, ob Sie Daten anzeigen, abfragen oder verarbeiten oder ob Sie Anwendungen entwickeln. Allerdings gibt es auch einige bedeutende Unterschiede. Eine Personal-Geodatabases ist beispielsweise auf 2 GB Speicher begrenzt, wogegen es für File-Geodatabases keine Grenzen gibt, und die SQL-Syntax (Structured Query Language) unterscheidet sich leicht. Wenn Sie mit Personal-Geodatabases vertraut sind und in eine File-Geodatabase migrieren möchten, lernen Sie in diesem Thema die Unterschiede kennen und erhalten eine Einführung.
Eine Einführung dazu, inwiefern sich File-Geodatabases von Personal- und ArcSDE-Geodatabases unterscheiden, finden Sie unter Geodatabase-Typen und Speichern von Raster-Daten in Geodatabases.
Erstellen einer neuen File-Geodatabase
Um eine neue, leere File-Geodatabase zu erstellen, klicken Sie im Inhaltsverzeichnis mit der rechten Maustaste auf einen Dateisystemordner, zeigen Sie auf "Neu", und klicken Sie auf "File-Geodatabase". Weitere Informationen finden Sie unter Erstellen einer File-Geodatabase.
Migrieren vorhandener Daten
- Die einfachste Methode, Daten aus einer Personal-Geodatabase in eine File-Geodatabase zu kopieren, sind die Befehle Kopieren und Einfügen im Kataloginhaltsverzeichnis. Dies ist ein flexibles Verfahren, da Sie die zu kopierenden Daten exakt auswählen können. Sie können den gesamten Inhalt der Personal-Geodatabase oder nur bestimmte Elemente auswählen, z. B. eine Gruppe von Feature-Datasets, die Sie migrieren möchten. Zum Kopieren eines Feature-Datasets aus einer Personal-Geodatabase in eine File-Geodatabase erstellen Sie zum Beispiel im Kataloginhaltsverzeichnis eine neue leere File-Geodatabase. Wählen Sie die Felder in der gewünschten Personal-Geodatabase aus, klicken Sie mit der rechten Maustaste auf die Auswahl, klicken Sie auf "Kopieren", klicken Sie dann mit der rechten Maustaste auf die File-Geodatabase, und klicken Sie auf "Einfügen". Weitere Informationen finden Sie unter Kopieren von Feature-Datasets, Feature-Classes und Tabellen in eine andere Geodatabase.
Mit Kopieren und Einfügen können alle Datentypen in der Geodatabase migriert werden, mit Ausnahme von Attributdomänen, auf die keine Feature-Class oder Tabelle verweist. Wenn Sie solche Domänen besitzen und migrieren möchten, verwenden Sie die im Folgenden erläuterte Methode zum Exportieren in ein XML-Workspace-Dokument.
- Um eine ganze Geodatabase zu kopieren, verwenden Sie den Befehl "Exportieren > XML-Workspace-Dokument", um die gesamte Datenbank in eine XML-Datei zu exportieren. Anschließend können Sie eine neue, leere File-Geodatabase erstellen und die Daten aus der XML-Datei mit dem Befehl "Importieren > XML-Workspace-Dokument" in die File-Geodatabase importieren. Diese Methode ist ebenfalls flexibel, da Sie im Export-Assistenten auswählen können, welche Datasets exportiert werden sollen. Weitere Informationen finden Sie in folgenden Themen: Exportieren von Feature-Datasets, Feature-Classes und Tabellen in eine Exportdatei und Importieren von Feature-Datasets, Feature-Classes und Tabellen aus einem XML-Workspace-Dokument.
- Wenn Sie Geodatabase-Daten mit niedriger Genauigkeit migrieren, konvertieren Sie die Daten mit den Methoden zum Kopieren/Einfügen oder Exportieren in ein XML-Workspace-Dokument automatisch in hohe Genauigkeit, wobei die Auflösung auf etwa 0,1 Millimeter festgelegt wird. Dies ist ein guter Standardwert und in den meisten Situationen angemessen. Wenn die Daten jedoch mit einer anderen Auflösung gespeichert werden sollen, verwenden Sie vor dem Migrieren der Daten mit Kopieren/Einfügen oder durch Export in ein XML-Workspace-Dokument das Werkzeug "Raumbezug aktualisieren". Mit "Raumbezug aktualisieren" werden die Daten in hohe Genauigkeit konvertiert, wobei Sie die Auflösung selbst auswählen können. Sie können die Auflösung auch festlegen, indem Sie die Migration mit den Geoverarbeitungswerkzeugen zum Importieren und Exportieren verwenden. Weitere Informationen finden Sie unter Migrieren zu hoher Genauigkeit.
- Zum Verschieben von Shapefiles, Coverages oder Daten in einem anderen Format in eine File-Geodatabase verwenden Sie dieselbe Methode wie beim Verschieben der Daten in eine Personal-Geodatabase. Wählen Sie das Dataset im Kataloginhaltsverzeichnis aus, klicken Sie mit der rechten Maustaste, und wählen Sie "Exportieren > In Geodatabase"; wählen Sie den Befehl "In Geodatabase (multiple)", um mehrere Datasets gleichzeitig zu exportieren. Sie finden diese Werkzeuge auch in ArcToolbox unter "Konvertierung > In Geodatabase". Weitere Informationen finden Sie in den folgenden Themen: Importieren von Features, Importieren von Tabellen und Importieren von Raster-Datasets.
Bei File-Geodatabases kann die Speicherung einzelner Datasets mit Konfigurationsschlüsselwörtern angepasst werden. Sie können beim Kopieren und Einfügen oder beim Importieren der Daten ein Schlüsselwort angeben, meist ist jedoch die Standardeinstellung ausreichend. Weitere Informationen finden Sie unter Konfigurationsschlüsselwörter für File-Geodatabases.
Erstellen neuer Datasets
In einer File-Geodatabase erstellen Sie leere Feature-Datasets, Feature-Classes, Raster-Kataloge, Raster-Datasets und Tabellen genauso wie in einer Personal-Geodatabase: Klicken Sie mit der rechten Maustaste auf die Geodatabase oder das Feature-Dataset, zeigen Sie auf "Neu", und wählen Sie das gewünschte Element. Weitere Informationen finden Sie unter folgenden Themen:
Erstellen neuer Datasets mit ArcCatalog
Erstellen von Raster-Datasets in einer Geodatabase
Erstellen von Raster-Katalogen in einer Geodatabase
Wenn Sie eine leere Feature-Class oder Tabelle erstellt haben, laden Sie die Daten aus dem Kataloginhaltsverzeichnis. Weitere Informationen finden Sie unter Laden von Daten in vorhandene Feature-Classes und Tabellen und Importieren von Raster-Datasets.
Anders als bei Personal-Geodatabases können Sie bei einer File-Geodatabase optional ein Konfigurationsschlüsselwort festlegen, wenn Sie über das Kataloginhaltsverzeichnis oder über ein Geoverarbeitungswerkzeug neue Feature-Classes, Raster-Kataloge, Raster-Datasets oder Tabellen erstellen. Mit dem Konfigurationsschlüsselwort legen Sie fest, wie Daten gespeichert und aufgerufen werden. Eine Beschreibung der verfügbaren Schlüsselwörter finden Sie unter Konfigurationsschlüsselwörter für File-Geodatabases.
Bearbeiten, Anzeigen und Abfragen von Daten
Datasets in File-Geodatabases werden in ArcCatalog und ArcMap genauso dargestellt wie in Personal-Geodatabases. Auch die Arbeit mit den Datasets ist dieselbe, mit Ausnahme von räumlichen Indizes und SQL-Abfragen, die als Nächstes behandelt werden. Alle Befehle und Werkzeuge, die Datasets aus Personal-Geodatabases als Eingabe annehmen, nehmen auch Datasets aus File-Geodatabases an.
Für den räumlichen Index einer Feature-Class aus einer Personal-Geodatabase wird nur eine Gittergröße verwendet, die nicht geändert werden kann. Für den räumlichen Index einer Feature-Class in einer File-Geodatabase werden bis zu drei Gittergrößen verwendet, die Sie jederzeit ändern können. ArcGIS erstellt den räumlichen Index nach dem Abschluss bestimmter Aktualisierungsoperationen automatisch neu, um den Index und die Gittergrößen stets auf dem optimalen Stand zu halten. In einigen seltenen Fällen müssen Sie jedoch den Index manuell neu berechnen. Weitere Informationen finden Sie unter Festlegen von räumlichen Indizes.
Die Syntax der zum Abfragen von File-Geodatabases verwendeten SQL-WHERE-Klausel entspricht der Syntax für Coverages, Shapefiles und andere dateibasierte Datenquellen, es stehen jedoch einige Zusatzfunktionen zur Verfügung, etwa die Unterstützung für Unterabfragen. Daher unterscheidet sich die Syntax der WHERE-Klausel von Personal-Geodatabases. Die Dialogfelder zum Erstellen von SQL-Ausdrücken in ArcGIS unterstützen Sie dabei, die richtige Syntax für WHERE-Klauseln für die abzufragenden Daten zu finden, indem die Feldnamen und Werte durch die richtigen Trennzeichen getrennt werden. Außerdem werden die richtigen Schlüsselwörter und Operatoren für Sie ausgewählt. Wenn Sie jedoch eine WHERE-Klausel für einen Layer in einer Personal-Geodatabase definiert haben, können Sie die Abfrage für diesen Layer möglicherweise nicht mehr ausführen, wenn Sie die Quelldaten in eine File-Geodatabase verschoben haben. Die folgenden Ursachen können dazu führen, dass eine WHERE-Klausel nicht funktioniert:
- In Personal-Geodatabases sind Feldnamen in eckige Klammern gesetzt, in File-Geodatabases hingegen in doppelte Anführungszeichen.
- Zum Abfragen von Personal-Geodatabases verwenden Sie als Platzhalter das Sternchen (*) für eine beliebige Anzahl von Zeichen sowie das Fragezeichen (?) für genau ein Zeichen. In File-Geodatabases wird hingegen "%" bzw. "_" verwendet.
- Bei der Suche nach Zeichenfolgen wird in Personal-Geodatabases nicht zwischen Groß- und Kleinschreibung unterschieden, in File-Geodatabases hingegen wird unterschieden.
- In Personal-Geodatabases wird die Groß- und Kleinschreibung mit UCASE und LCASE konvertiert, in File-Geodatabases mit UPPER und LOWER.
- Datums- und Uhrzeitangaben werden in Personal-Geodatabases mit "#" getrennt, in File-Geodatabases wird hingegen das Wort date vorangestellt.
Syntax der WHERE-Klausel für eine Personal-Geodatabase |
Entsprechende Syntax für eine File-Geodatabase |
---|---|
[STATE_NAME] = 'California' |
"STATE_NAME" = 'California' |
[OWNER_NAME] LIKE '?atherine smith' |
"OWNER_NAME" LIKE '_atherine smith' |
[STATE_NAME] = 'california' (wenn nicht zwischen Groß- und Kleinschreibung unterschieden werden soll) |
LOWER("STATE_NAME") = 'california' |
UCASE([LAST_NAME]) = 'JONES' |
UPPER("LAST_NAME") = 'JONES' |
[DATE_OF_BIRTH] = #06-13-2001 19:30:00# |
"DATE_OF_BIRTH" = date '2001-06-13 19:30:00' |
Ein weiterer Grund, warum eine WHERE-Klausel möglicherweise nicht funktioniert, ist die Tatsache, dass File-Geodatabases nicht so viele Operatoren und Funktionen unterstützen wie Personal-Geodatabases. File-Geodatabases bieten zudem lediglich eingeschränkte Unterstützung für Unterabfragen. Als Ursache für Probleme mit der WHERE-Klausel ist dies allerdings unwahrscheinlich. File-Geodatabases unterstützen einen Großteil der Funktionen für WHERE-Klauseln, die Sie wahrscheinlich benötigen.
Geoverarbeitung
Die Verwendung der Geoverarbeitungswerkzeuge mit File-Geodatabases unterscheidet sich verglichen mit Personal-Geodatabases nur geringfügig:
- File-Geodatabases werden in allen Geoverarbeitungswerkzeugen unterstützt.
- Zum Erstellen einer File-Geodatabase verwenden Sie das Werkzeug "File-Geodatabase erstellen".
- Wenn Sie in einer File-Geodatabase ein Werkzeug verwenden, mit dem neue Feature-Classes, Raster-Kataloge, Raster-Datasets oder Tabellen erstellt werden, können Sie optional ein Konfigurationsschlüsselwort angeben, um festzulegen, wie die Daten gespeichert werden sollen. Diese Option steht nur bei einigen Werkzeugen zur Verfügung. Falls die Option nicht verfügbar ist, können Sie diese Einstellung im Dialogfeld "Umgebungen" angeben.
Komprimieren von Vektordaten
Anders als bei Personal- und ArcSDE-Geodatabases können Sie Vektordaten in File-Geodatabases in einem komprimierten, schreibgeschützten Format speichern, um den Bedarf an Speicherplatz zu reduzieren. Sie können auf die komprimierten Daten direkt zugreifen. Sie müssen die Daten vor dem Aufrufen nicht dekomprimieren: Die Daten können in ArcGIS und ArcReader direkt gelesen werden. Die Daten sehen genauso aus wie im nicht komprimierten Zustand, und Sie können sämtliche Leseoperationen wie gewohnt durchführen, sei es über einen Befehl im Kataloginhaltsverzeichnis, über die Geoverarbeitung oder über ArcObjects. Weitere Informationen finden Sie unter Komprimieren von Daten aus File-Geodatabases.
Migrieren von Anwendungen
Wenn Sie eine ArcObjects-Anwendung erstellt haben und die Daten, auf die diese zugreift, aus einer Personal- in eine File-Geodatabase migrieren möchten, beachten Sie die folgenden Punkte:
- Aktualisieren Sie die Workspace-Factory, um die Anwendung für die neue Datenquelle zu aktivieren. Ändern Sie die Workspace-Factory von "AccessWorkspaceFactory" in "FileGDBWorkspaceFactory", und ändern Sie die Dateinamenerweiterung der Geodatabase von ".mdb" in ".gdb".
- Wenn in der Anwendung SQL verwendet wird, müssen Sie wahrscheinlich die Syntax entsprechend den Konventionen für File-Geodatabases anpassen.
- Wie in diesem Thema bereits besprochen, unterscheidet sich die Syntax von SQL-WHERE-Klauseln bei File- und Personal-Geodatabases. Wenn Ihre Anwendung QueryFilter oder QueryDef verwendet, finden Sie im Abschnitt zu den WHERE-Klauseln Hinweise zu Änderungen, die Sie wahrscheinlich vornehmen müssen.
- File-Geodatabases unterstützen nicht alle Features und Funktionen, die in Personal-Geodatabases zur Verfügung stehen. In File-Geodatabases von ArcGIS 9.2 werden u. a. die folgenden häufig verwendeten Funktionen nicht unterstützt: DISTINCT, GROUP BY und ORDER BY. Zudem werden die Funktionen AVG, COUNT, MIN, MAX und SUM außerhalb von Unterabfragen nicht unterstützt. Die Unterstützung für einige dieser Funktionen wird wahrscheinlich in zukünftigen Versionen hinzugefügt.
- Die Unterstützung bei einer QueryDef für Verbindungen in File-Geodatabases ist insofern eingeschränkt, als dass die Unterfelder nur einfache Spaltennamen enthalten können. Aliasnamen, Ausdrücke und Funktionen werden nicht unterstützt. Die FROM-Klausel darf nur einfache Tabellennamen enthalten.
- Die Unterstützung von ExecuteSQL für INSERT und UPDATE in File-Geodatabases ist auf einfache Anweisungen beschränkt, die ausschließlich aus Literalwerten bestehen. Verbundene Ausdrücke wie
SET RENTAL_PRICE = (RENTAL_PRICE - 1.00)
- Wenn die Anwendung Unterabfragen enthält, funktionieren diese für File-Geodatabases möglicherweise nicht, da deren Unterstützung eingeschränkt ist. Weitere Informationen finden Sie unter SQL-Referenz.
- Um die Datentransfer-Performance zu optimieren, sollten Sie beim Laden einer großen Anzahl von Datensätzen den Nur-Lade-Modus verwenden. Weitere Informationen finden Sie unten unter "Tipps zur Leistungsoptimierung".
Abgesehen von diesen Unterschieden funktioniert ArcObjects bei File-Geodatabases genau wie bei Personal-Geodatabases.
Tipps zur Leistungsoptimierung
Beachten Sie folgende Hinweise, um die Leistung der File-Geodatabase zu erhöhen und möglichst hoch zu halten:
- Die Standardauflösung beim Erstellen einer neuen Feature-Class beträgt 0,1 Millimeter bzw. das Äquivalent in den Maßeinheit des Koordinatensystems des Datasets. Der Standardwert für die XY-Auflösung ist in den meisten Fällen angemessen. Wenn Ihre Daten nicht so genau sind, können Sie beim Erstellen der Feature-Class optional eine größere XY-Auflösung festlegen. Wenn Sie Koordinaten mit einer größeren XY-Auflösung speichern, wird weniger Speicherplatz benötigt und die Leistung gesteigert. Dies gilt nicht nur für File-Geodatabases, sondern auch für ArcSDE-Geodatabases. Weitere Informationen zur XY-Auflösung finden Sie unter Grundlagen zu Feature-Classes.
- Wie bei jeder anderen Datenquelle sollten Sie nur die Attributindizes erstellen, die Sie wirklich benötigen, weil durch jeden hinzugefügten Index Änderungen an der Feature-Class oder Tabelle ein wenig verlangsamt werden: Bei jeder Änderung eines indizierten Attributs muss ArcGIS auch den Index aktualisieren. Wenn Sie häufig Felder bearbeiten, erstellen Sie nach Möglichkeit keinen Index.
- Wenn Sie in einer Editiersitzung, in einem Geoverarbeitungswerkzeug oder im Kataloginhaltsverzeichnis viele Features oder Datensätze in einem umfangreichen Dataset hinzufügen, bearbeiten oder löschen möchten, sparen Sie möglicherweise Zeit, wenn Sie den räumlichen Index und alle zugehörigen Attributindizes vor Beginn löschen und nach den Änderungen die Indizes erneut hinzufügen.
Wenn Sie ein Feature oder einen Datensatz hinzufügen, bearbeiten oder löschen, muss ArcGIS die Indizes stets aktualisieren. Wenn Sie Änderungen an einem kleinen Dataset vornehmen oder die Änderungen nur wenige Datensätze betreffen, z. B. 10 Datensätze von 1 Million, stellt die Zeit, die ArcGIS zum Aktualisieren der Indizes nach jeder einzelnen Änderung benötigt, kein Problem dar. Wenn Sie Änderungen an einer großen Zahl von Datensätzen vornehmen, etwa bei 300.000 von 1 Million, dauert die Aktualisierung der Indizes durch die vielen einzelnen Änderungen möglicherweise wesentlich länger, als wenn Sie die Indizes vor Beginn löschen und nach den Änderungen erneut hinzufügen. Bei der Entscheidung über das Löschen der Indizes in anderen Fällen müssen Sie stets Kompromisse eingehen, sodass die Entscheidung nicht auf der Hand liegt. Entsprechend sollten Entwickler, die Lade- oder Konvertierungsprogramme mit ArcObjects schreiben, erwägen, beim Laden einer großen Anzahl von Datensätzen den Nur-Laden-Modus zu verwenden. Im Nur-Laden-Modus wird die Aktualisierung aller Attribut- und räumlichen Indizes ausgesetzt, bis alle Features importiert wurden. Nach dem Import aller Features werden die Indizes für alle Datensätze, sowohl vorhandene als auch neue, automatisch aktualisiert. Diesen Modus stellen Sie über die IFeatureClassLoad-Schnittstelle ein.
- Wie bei Personal-Geodatabases sollten Sie auch File-Geodatabases regelmäßig komprimieren, wenn Sie häufig Daten hinzufügen und löschen. Auch nach jeder umfangreichen Änderung sollten Sie eine File-Geodatabase komprimieren. Dadurch wird die Leistung erhöht, da die gespeicherten Daten neu organisiert werden. Weitere Informationen finden Sie unter Reorganisieren von File- und Personal-Geodatabases.
- Wie bei allen anderen Dateitypen sollten Sie dafür sorgen, dass sich das Dateisystem auf dem Computer stets im optimalen Betriebszustand befindet. Wenn Sie Windows verwenden, sollten Sie gelegentlich eine Defragmentierung der Festplatte vornehmen, um eine gute Gesamtleistung des Dateisystems zu gewährleisten. Beim Defragmentierungsprogramm handelt es sich um ein Werkzeug, das im Lieferumfang von Windows enthalten ist. Weitere Informationen finden Sie in der Online-Hilfe des Betriebssystems.
- Zu kleine oder zu große Gittergrößen für den räumlichen Index können zu längeren Ladezeiten und verminderter Leistung bei räumlichen Suchen führen. ArcGIS erstellt den räumlichen Index nach Abschluss der meisten Operationen automatisch neu, um Index und Gittergrößen stets auf dem optimalen Stand zu halten. Nur in seltenen Fällen müssen Sie den Index manuell neu berechnen. Wenn Sie in einer Editiersitzung sehr viele Features hinzufügen, können jedoch Situationen auftreten, in denen eine manuelle Neuberechnung erforderlich ist. Weitere Informationen finden Sie unter Festlegen von räumlichen Indizes.