ほとんどの場合、GeoDatabaseは、空間クエリを実行できる単なる地理空間形式であると誤解されます。これは非常に簡単なことです。
ヘック、私は自分でこの間違いを犯していました-ある日まで、Scott MorehouseがGeoDatabaseの背後にある理論的根拠を説明しているのを聞きました。彼は非常に抽象的な方法で考え、高みに向かって考え、それから非常に速く落ち着いて非常に実用的であるため、建築の宇宙飛行士が抱える問題を回避できる人々の一人です。
GeoDatabaseとは何かを理解するには、情報モデルの定義を調べる必要があります。
ソフトウェアエンジニアリングの情報モデルは、選択した談話領域のデータセマンティクスを指定するための概念、関係、制約、ルール、および操作の表現です。ドメインコンテキストの情報要件の共有可能な、安定した、組織化された構造を提供できます。
GeoDatabaseは、地理的概念をサポートする情報モデルのESRI定義です。たとえば、この情報モデルはTopologyなどの概念をサポートしています。すべてのルール、操作、データセマンティクスに関連付けられています(たとえば、何の上に重なることが許可されているか、分割後に何が起こるか、同じエッジを共有する他の機能に編集がどのように影響するかなど)。
ESRI GeoDatabase情報モデルにはさまざまな実装があり、それらは2つに分類できます。
シングルユーザーGeoDatabases:
- Personal GeoDatabase:「.mdb」MS Access形式の上に構築されています。
- FileGDB:ESRI(「.gdb」フォルダー)によって作成された独自の形式の上に構築
マルチユーザージオデータベース(別名エンタープライズジオデータベース):
これらは、ArcSDEミドルウェアでサポートされているデータソースです。
- PostgreSQL
- SQLサーバー
- オラクル
- DB2
- Informix
- 等
ArcSDEの目的も誤解されています。「SDE」は、多くの場合GeoDatabaseと混同されます。最悪の場合、用語は相互交換可能に使用されます。恐ろしい間違い。かつて、ArcSDE(当時は単にSDEと呼ばれていました)は、データ抽象化レイヤーとして機能するために作成されました。ArcSDEの簡単な説明は、Scott Morehouse(1999)の非常に古いUSENETニュースポストから入手できます。その投稿の抜粋は次のとおりです。
SDEは、空間処理をDBMSに委ねます。基礎となるデータベースシステムに空間サポートがまったくない場合、SDEはすべての空間機能を実装します。基礎となるデータベースに何らかの機能がある場合、SDEはいくつかの機能を実装し、残りをデータベースエンジンに委ねます。最高のパフォーマンスを実現し、コアデータベーステクノロジーを活用するために、できるだけ多くの機能をデータベースに委ねます。
つまり、ArcSDEは、基になるデータソースとやり取りするときにGeoDatabaseによって使用されますが、関係、ドメイン、地形、Cadastral Fabric、Schematic DatasetsなどのGeoDatabase抽象化については何も知りません。基礎となるさまざまなデータストアでプログラミングを簡単にするために使用されます。
そのため、GeoDatabaseレベルの抽象化を処理しているときに、ArcSDEから(APIまたはarcsdeコマンドライン実行可能ファイルを介して)処理しようとすると、問題が発生する可能性があります。(この文を大きくできますか?)
GeoDatabaseのそれぞれの異なる実装の制限に関する限り、それは通常、基礎となるストレージに依存しています。
個人用GDBは2GBのmdb(アクセス)制限にバインドされています。FileGDBは、この制限を取り除きUNIXとの互換性を保つために作成されたため、この問題はありません。
Personal GDBとFileGDBはどちらもシングルユーザーです。したがって、バージョン管理は行われません。GDBレプリケーションはバージョニングの上に実装されているため、すべてのマルチユーザーGeoDatabases(ArcSDEデータソース)のみの機能です。
トポロジ、注釈、表現クラス、ドメイン、地形などはすべて、GeoDatabaseの概念であり、マルチユーザーサポートを必要としないため、GeoDatabase情報モデルのすべての実装で使用できます。
各GDB実装の用途に関しては、ニーズに依存します。そのため、ほとんどの(すべてではない)ユースケースにはGeoDatabaseのタイプがあります。
これが明確になることを願っています。