ファイル ジオデータベースへの移行
さまざまな種類のジオデータベースのうち、ファイル ジオデータベースは、シングル ユーザによって編集されることを前提とし、ジオデータベースのバージョニングをサポートしていない点で、パーソナル ジオデータベースに最もよく似ています。また、データの表示、検索、編集または処理、あるいはアプリケーション開発なども同じ方法を使用することができます。ただし、重要な違いがいくつかあります。たとえば、パーソナル ジオデータベースのサイズは 2GB に制限されていますが、ファイル ジオデータベースには制限がなく、SQLの 構文が若干異なっています。このトピックでは、パーソナル ジオデータベースを使用していて、ファイル ジオデータベースへの移行を検討しているユーザを対象に、これらの相違点を明らかにし、作業を始める方法を示します。
ファイル ジオデータベースとパーソナル ジオデータベースおよび ArcSDE ジオデータベースとの違いについては、「ジオデータベースの種類」および「ジオデータベースへのラスタ データセットの格納方法」をご参照ください。
新しいファイル ジオデータベースを作成する
新しい空のファイル ジオデータベースを作成するには、カタログ ツリーでフォルダを右クリックし、[新規作成] → [ファイル ジオデータベース] をクリックします。詳細については、「ファイル ジオデータベースの作成」をご参照ください。
既存のデータの移行
- パーソナル ジオデータベースのデータをファイル ジオデータベースにコピーする最も簡単な方法は、カタログ ツリーの [コピー] コマンドと [貼り付け] コマンドを使用することです。[コピー] / [貼り付け] コマンドは、コピーの対象を正確に選択できる点で、柔軟性があります。移行対象としてパーソナル ジオデータベースのすべてのアイテムを選択するか、フィーチャ データセットなど、特定のアイテムを選択することができます。たとえば、パーソナル ジオデータベースのフィーチャ データセットをファイル ジオデータベースにコピーするには、まずカタログ ツリーで新しい空のファイル ジオデータベースを作成します。次に、パーソナル ジオデータベースでコピーするアイテムを選択し、選択範囲を右クリックして [コピー] をクリックした後、ファイル ジオデータベースを右クリックして [貼り付け] をクリックします。詳細については、「ジオデータベースへのフィーチャ データセット、フィーチャクラス、テーブルのコピー」をご参照ください。
[コピー] / [貼り付け] コマンドを使用する場合は、フィーチャクラスまたはテーブルによって参照されていない属性ドメインを除き、ジオデータベースのあらゆる種類のデータを移行することができます。そのようなドメインを移行したい場合は、この後で説明する [XML ワークスペース ドキュメントのエクスポート] を使用します。
- ジオデータベース全体をコピーするには、[エクスポート] → [XML ワークスペース ドキュメント] コマンドを使用して、データベース全体を XML ファイルにエクスポートします。次に、新しい空のファイル ジオデータベースを作成し、[インポート] → [XML ワークスペース ドキュメント] コマンドを使用して、XML ファイルのデータをファイル ジオデータベースにインポートします。この方法も、エクスポートするデータセットをエクスポート ウィザードで選択できる点で、柔軟性があります。詳細については、「エクスポート ファイルへのフィーチャ データセット、フィーチャクラス、テーブルのエクスポート」および「XML ワークスペース ドキュメントからのフィーチャ データセット、フィーチャクラス、テーブルのインポート」の各トピックを参照してください。
- 低精度のジオデータベースのデータを移行する場合は、[コピー] / [貼り付け] コマンドおよび [XML ワークスペース ドキュメントのエクスポート] を使用すると、自動的にデータが高精度に変換され、解像度が約 0.1 ミリメートルに設定されます。これはほぼすべての場合に適したデフォルト値です。ただし、データを別の解像度で格納したい場合は、[空間参照のアップグレード(Upgrade Spatial Reference)] ツールを使用してから、[コピー] / [貼り付け] コマンドまたは [XML ワークスペース ドキュメントのエクスポート] を使用します。[空間参照のアップグレード(Upgrade Spatial Reference)] ツールを使用すると、データが高精度に変換され、解像度を選択できるようになります。解像度を制御するもう 1 つの方法は、[インポート] / [エクスポート] ジオプロセシング ツールでインポートすることです。詳細については、「高精度への移行」をご参照ください。
- シェープファイル、カバレッジ、または別の形式のデータをファイル ジオデータベースへ移行するには、データをパーソナル ジオデータベースへ移行するときと同じ方法を使用します。カタログ ツリーでデータセットを選択し、右クリックして [エクスポート] → [ジオデータベース] コマンドを選択します(複数のデータセットを一度にエクスポートする場合は、[ジオデータベース(マルチプル)] コマンドを使用します)。また、ArcToolbox の [変換ツール] > [ジオデータベースへ変換] にも、これらのツールがあります。詳細については、「フィーチャのインポート」、「テーブルのインポート」および「ラスタ データセットのインポート」の各トピックを参照してください。
ファイル ジオデータベースには、個々のデータセットの格納をカスタマイズするコンフィグレーション キーワードがあります。コンフィグレーション キーワードはデータのコピーと貼り付けまたはインポートの際に指定できますが、通常はデフォルトのままで十分です。詳細については、「ファイル ジオデータベースのコンフィグレーション キーワード」をご参照ください。
データセットの新規作成
ファイル ジオデータベースに空のフィーチャ データセット、フィーチャクラス、ラスタ カタログ、ラスタ データセット、テーブルを作成する方法は、それらをパーソナル ジオデータベースで作成する方法と同じです。ジオデータベースまたはフィーチャ データセットを右クリックし、[新規作成] をポイントして、作成するアイテムをクリックします。詳細については、以下のトピックを参照してください。
空のフィーチャクラスまたはテーブルを作成したら、カタログ ツリーでデータをそのフィーチャクラスまたはテーブルに読み込みます。詳細については、「既存のフィーチャクラスとテーブルへのデータの読み込みについて」および「ラスタ データセットのインポート」をご参照ください。
ただし、パーソナル ジオデータベースとは異なり、カタログ ツリーまたはジオプロセシング ツールを使用して、ファイル ジオデータベースでフィーチャクラス、ラスタ カタログ、ラスタ データセット、またはテーブルを新規作成する際には、必要に応じてコンフィグレーション キーワードを指定することができます。コンフィグレーション キーワードは、データの格納方法とアクセス方法をカスタマイズします。使用可能なキーワードについては、「ファイル ジオデータベースのコンフィグレーション キーワード」をご参照ください。
データの編集、表示、検索
ファイル ジオデータベースのデータセットは、ArcCatalog と ArcMap にパーソナル ジオデータベースのデータセットと同じように表示されます。また、この後で説明する空間インデックスと SQL クエリを除き、データセットを操作する方法も同じです。入力としてパーソナル ジオデータベースのデータセットを指定できるコマンドやツールには、ファイル ジオデータベースのデータセットも指定することができます。
パーソナル ジオデータベースのフィーチャクラスの空間インデックスは、変更不可能な単一のグリッド サイズを使用します。ファイル ジオデータベースのフィーチャクラスの空間インデックスは、最大で 3 種類のグリッド サイズを使用し、ユーザはそれらをいつでも変更することができます。ArcGIS は、特定の更新処理の最後に空間インデックスを自動的に再構築して、インデックスとそのグリッド サイズを最適な状態に保ちます。ただし、まれなケースとして、インデックスを手動で再計算しなければならない場合もあります。詳細については、「空間インデックスの設定」をご参照ください。
ファイル ジオデータベースの検索に使用する SQL 文の WHERE 句の構文は、カバレッジ、シェープファイル、その他ファイルベースのデータ ソースで使用する構文と同じですが、サブクエリのサポートなどの機能が追加されています。このため、パーソナル ジオデータベースの WHERE 句とは構文が異なります。ArcGIS で SQL 式を作成するためのダイアログ ボックスには、フィールド名と値が適切な区切り文字で表示されるため、データの検索に正しい WHERE 句の構文を使用するのに役立ちます。このダイアログ ボックスでは、関連するキーワードと演算子も自動的に選択されます。ただし、パーソナル ジオデータベースのレイヤに WHERE 句が定義されている場合、そのレイヤのソース データをファイル ジオデータベースに移行すると、そのレイヤの WHERE 句が機能しなくなる場合があります。WHERE 句が機能しなくなる理由としては、次が考えられます。
- パーソナル ジオデータベースでは、フィールド名は角括弧([])で囲まれますが、ファイル ジオデータベースでは、二重引用符(")で囲まれます。
- パーソナル ジオデータベースで使用するワイルドカードは、任意数の文字に対してはアスタリスク(*)、1 文字に対しては疑問符(?)ですが、ファイル ジオデータベースではそれぞれパーセント(%)とアンダースコア(_)を使用します。
- パーソナル ジオデータベースでは、文字列の検索で大文字と小文字は区別されませんが、ファイル ジオデータベースでは区別されます。
- パーソナル ジオデータベースでは、文字列の大文字と小文字の変換に UCASE と LCASE を使用しますが、ファイル ジオデータベースでは、UPPER と LOWER を使用します。
- パーソナル ジオデータベースの日付と時刻はシャープ記号(#)で区切られますが、ファイル ジオデータベースでは先頭に「date」という単語が付きます。
パーソナル ジオデータベースの WHERE 句の構文 |
ファイル ジオデータベースで相当する構文 |
---|---|
[STATE_NAME] = 'California' |
"TODOFUKEN_NAME" = '北海道' |
[OWNER_NAME] LIKE '?atherine smith' |
"OWNER_NAME" LIKE '_atherine smith' |
[STATE_NAME] = 'california'(大文字と小文字を区別しない検索が必要な場合) |
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' |
WHERE 句が機能しないもう 1 つの理由は、ファイル ジオデータベースでサポートされている演算子と関数の数がパーソナル ジオデータベースよりも少なく、ファイル ジオデータベースでのサブクエリのサポートが制限されていることです。ただし、これは WHERE 句がうまくいかない原因ではない可能性があります。ファイル ジオデータベースは、必要になると思われる WHERE 句の機能の大半がサポートされています。
ジオプロセシング
ジオプロセシング ツールの使用に関しては、ファイル ジオデータベースとパーソナル ジオデータベース間での違いはほとんどありません。
- ファイル ジオデータベースは、すべてのジオプロセシング ツールでサポートされています。
- ファイル ジオデータベースを作成するには、[ファイル ジオデータベースの作成(Create File GDB)] ツールを使用します。
- ファイル ジオデータベースでフィーチャクラス、ラスタ カタログ、ラスタ データセット、またはテーブルを新規作成するツールを使用するたびに、必要に応じて、データの格納方法をカスタマイズするコンフィグレーション キーワードを指定することができます。このオプションは、一部のツールで利用することができます。このオプションが利用できない場合は、[環境] ダイアログ ボックスで指定することができます。
ベクタ データの圧縮
パーソナル ジオデータベースや ArcSDE ジオデータベースとは異なり、ファイル ジオデータベースでは、必要に応じてベクタ データを読み取り専用の圧縮形式に格納し、必要な格納領域を抑えることができます。圧縮されたデータはダイレクト アクセス形式なので、データにアクセスする際に解凍する必要はありません。ArcGIS と ArcReader は、このデータを直接読み取ります。データは解凍されているときと同じように表示され、カタログ ツリー、ジオプロセシングのコマンド、または ArcObjects を使用して、すべての読み取り専用操作を同じように実行することができます。詳細については、「ファイル ジオデータベースの圧縮について」をご参照ください。
アプリケーションの移行
ArcObjects で書かれたアプリケーションがあり、アクセスするデータをパーソナル ジオデータベースからファイル ジオデータベースのものに切り替えたい場合は、次の項目について検討してください。
- WorkspaceFactory をアップデートして、アプリケーションを新しいデータ ソースに対応させます。WorkspaceFactory を AccessWorkspaceFactory から FileGDBWorkspaceFactory に変更し、ジオデータベースの拡張子を .mdb から .gdb に変更します。
- アプリケーションで SQL を使用している場合には、ファイル ジオデータベースに対応するように更新しなければならない可能性があります。
- 上記で説明したように、SQL 文の WHERE 句の構文はファイル ジオデータベースとパーソナル ジオデータベースで異なります。アプリケーションで QueryFilter または QueryDef を使用している場合は、変更が必要かどうかについて上記の WHERE 句の説明を参照してください。
- ファイル ジオデータベースは、パーソナル ジオデータベースの特徴や機能をすべてサポートするわけではありません。よく使用される機能のうち、ArcGIS 9.2 のファイル ジオデータベースでサポートされない機能としては、DISTINCT、GROUP BY、ORDER BY があります。また、サブクエリの外では、集合関数 AVG、COUNT、MIN、MAX、SUM はサポートされません。これらの一部は将来のリリースでサポートされる予定です。
- ファイル ジオデータベースの QueryDef での結合のサポートは、サブフィールドにシンプルな列名のみを使用できる場合に制限されています。エイリアス、式、関数はサポートされません。FROM 句に使用できるのは、シンプルなテーブル名だけです。
- ファイル ジオデータベースでの ExecuteSQL の INSERT と UPDATE のサポートは、リテラルのみを含んだシンプルな SQL ステートメントに制限されています。次に示すような複合式やサブクエリは、INSERT/UPDATE ステートメントではサポートされません。
SET RENTAL_PRICE = (RENTAL_PRICE - 1.00)
- アプリケーションにサブクエリが含まれている場合、それらのサポートは制限されているため、ファイル ジオデータベースではうまくいかない可能性があります。詳細については、「SQL リファレンス」をご参照ください。
- データ転送パフォーマンスを最適化するために、大量のレコードを読み込む場合は常に load-only モードを使用することを検討してください。詳細については、この後の「パフォーマンスのヒント」をご参照ください。
これらの相違点はありますが、ArcObjects はファイル ジオデータベースでもパーソナル ジオデータベースと同じように機能します。
パフォーマンスのヒント
次のヒントは、ファイル ジオデータベースのパフォーマンスを向上させ、維持するのに役立つ可能性があります。
- フィーチャクラスを新規作成する際のデフォルトの解像度は、0.1 ミリメートルか、またはデータセットの座標系の単位でそれに相当する値です。XY 解像度のデフォルト値は、ほぼすべての場合に適しています。データの精度がそれほど高くない場合は、フィーチャクラスの作成時に、必要に応じて XY 解像度を変更することができます。座標値を大きな解像度で格納すると、必要な格納領域が抑えられ、パフォーマンスがよくなります。これはパーソナル ジオデータベースだけでなく、ArcSDE ジオデータベースにも当てはまります。XY 解像度の詳細については、「フィーチャクラスの基礎」をご参照ください。
- 他のデータ ソースの場合と同様に、属性インデックスはどうしても必要な場合にのみ作成してください。これは、インデックスを追加するたびに、フィーチャクラスまたはテーブルの編集が少し低速になるためです。また、インデックス付きの属性を編集するたびに、ArcGIS はインデックスを更新する必要があります。フィールドを頻繁に編集する必要がある場合は、できればインデックスを作成しないでください。
- 編集セッション、ジオプロセシング ツール、またはカタログ ツリーを使用して、大きなデータセットで多くのフィーチャまたはレコードを追加、編集、削除する予定がある場合は、空間インデックスと影響を受ける属性インデックスを削除し、変更が完了してからインデックスを再度追加すると、時間を節約できる場合があります。
フィーチャまたはレコードを追加、編集、削除するたびに、ArcGIS はインデックスを更新する必要があります。小さなデータセットを変更する場合、または 100 万件のレコードのうち 10 件など、ほんの一部のレコードだけを変更する場合に ArcGIS がインデックスを更新するために必要な所要時間は問題にならない程度です。これに対し、100 万件のレコードのうち 30 万件など、大量のデータを変更する場合に伴うインデックスの更新には、最初にインデックスを削除し、変更が完了した後にインデックスを追加するよりも時間がかかります。他のケースでインデックスを削除するかどうかの決定はトレードオフを伴い、明白ではない可能性があります。同様に、ArcObjects でローダやコンバータを記述している開発者は、大量のレコードを読み込む際に load-only モードを使用することを検討する必要があります。load-only モードでは、フィーチャのインポートが完了するまで、すべての属性インデックスと空間インデックスの更新が停止されます。すべてのフィーチャがインポートされた時点で、既存のレコードと新しいレコードのすべてのインデックスが自動的に更新されます。このモードの設定には、IFeatureClassLoad インタフェースを使用します。
- パーソナル ジオデータベースの場合と同様に、データの追加や削除を頻繁に行う場合は、ファイル ジオデータベースを定期的に最適化してください。また、大規模な変更が加えられた場合も、その後にファイル ジオデータベースを最適化してください。最適化により、ディスク上のデータが整理され、パフォーマンスが向上します。詳細については、「ファイル ジオデータベースとパーソナル ジオデータベースの最適化」をご参照ください。
- ファイル システムに格納された他の種類のファイルを操作する場合と同様に、コンピュータを管理およびチューニングされた状態に保ってください。Windows を実行している場合は、ディスク デフラグを適宜に実行して、ファイル システム全体のパフォーマンスを維持してください。ディスク デフラグは Windows オペレーティング システムに搭載されているツールです。詳細については、オペレーティング システムのオンライン ヘルプを参照してください。
- 空間インデックスのグリッド サイズが小さすぎる、または大きすぎると、読み込みに時間がかかるようになり、空間検索のパフォーマンスが低下するおそれがあります。ArcGIS は、ほとんどの操作の最後に空間インデックスを自動的に再構築して、グリッド サイズを最適な状態に保ちます。インデックスの手動による再構築が必要になることはめったにありませんが、編集セッションで多くのフィーチャを追加した場合、手動による再計算が必要になることがあります。詳細については、「空間インデックスの設定」をご参照ください。