空間データベース
空間データベースは、幾何学的空間で定義されたオブジェクトを表すデータを格納およびクエリするために最適化されたデータベースです。ほとんどの空間データベースでは、ポイント、ライン、ポリゴンなどの単純な幾何学的オブジェクトを表現できます。一部の空間データベースは、3Dオブジェクト、トポロジカバレッジ、線形ネットワーク、TINなどのより複雑な構造を処理します。典型的なデータベースはさまざまな数値および文字タイプのデータを管理するために開発されましたが、そのようなデータベースは空間データタイプを効率的に処理するための追加機能を必要とし、開発者はしばしばジオメトリまたはフィーチャデータタイプを追加しました。 Open Geospatial Consortiumは、Simple Features仕様(1997年に最初にリリースされた)を開発し、データベースシステムに空間機能を追加するための標準を設定しました。 SQL / MM Spatial ISO / IEC標準はSQL / MMマルチメディア標準の一部であり、循環補間をサポートするデータ型でSimple Features標準を拡張します。
ジオデータベース
ジオデータベース ( 地理データベースと地理空間データベース )は、国、行政区画、都市、関連情報などの地理データのデータベースです。このようなデータベースは、カスタマイズの目的で訪問者の場所を特定したいWebサイトに役立ちます。
空間データベースの機能
データベースシステムはインデックスを使用して値をすばやく検索し、ほとんどのデータベースのインデックスデータが空間クエリに最適ではない方法を使用します。代わりに、空間データベースは空間インデックスを使用してデータベース操作を高速化します。
SELECTステートメントなどの一般的なSQLクエリに加えて、空間データベースはさまざまな空間操作を実行できます。 Open Geospatial Consortium標準では、次の操作などが指定されています。
- 空間測定:線の長さ、ポリゴン領域、ジオメトリ間の距離などを計算します
- 空間関数:既存のフィーチャを変更して、新しいフィーチャを作成します。たとえば、それらの周りにバッファを提供したり、フィーチャを交差させたりします。
- 空間述語:ジオメトリ間の空間リレーションシップに関するtrue / falseクエリを許可します。例には、「2つのポリゴンが重なっている」、「埋め立て地を建設する予定のエリアから1マイル以内に居住地がありますか」などがあります。 (DE-9IMを参照)
- ジオメトリコンストラクタ:通常、形状を定義する頂点(ポイントまたはノード)を指定することにより、新しいジオメトリを作成します。
- オブザーバー関数:円の中心の位置などの機能に関する特定の情報を返すクエリ
特にMongoDBやCouchDBなどのNoSQLシステムの場合、一部のデータベースは、これらの操作の単純化または変更されたセットのみをサポートします。
空間インデックス
空間インデックスは、空間クエリ(空間内のオブジェクトに関連する情報を格納するデータベース)によって使用され、空間クエリを最適化します。従来のインデックスタイプは、2つのポイントがどの程度異なるか、ポイントが対象の空間領域内にあるかどうかなどの空間クエリを効率的に処理しません。一般的な空間インデックスメソッドは次のとおりです。
- ジオハッシュ
- HHCode
- グリッド(空間インデックス)
- Zオーダー(曲線)
- クワッドツリー
- オクトリー
- UBツリー
- Rツリー:通常、空間データのインデックス付けに推奨される方法。オブジェクト(形状、線、点)は、最小境界矩形(MBR)を使用してグループ化されます。オブジェクトはインデックス内のMBRに追加され、サイズの最小増加につながります。
- R +ツリー
- R *ツリー
- ヒルベルトRツリー
- Xツリー
- kdツリー
- m-tree – m-treeインデックスは、任意のメトリックを使用して比較した場合に、複雑なオブジェクトの類似クエリの効率的な解決に使用できます。
- バイナリ空間分割(BSPツリー):超平面による空間の分割。
空間データベースシステム
リスト
- AllegroGraph – Resource Description Frameworkデータの2次元地理空間座標を効率的に保存および取得するためのメカニズムを提供するグラフデータベース。 SPARQLクエリの拡張構文が含まれています。
- Caliperは、空間データ型、関数、およびユーティリティを使用してRaima Data Managerを拡張します。
- CouchDB Geocouchと呼ばれるプラグインによって空間的に有効にできるドキュメントベースのデータベースシステム
- Esriには、シングルユーザージオデータベースとマルチユーザージオデータベースの両方があります。
- GeoMesaは、Apache AccumuloとApache Hadoopの上に構築されたクラウドベースの時空間データベースです(Apache HBase、Google Bigtable、Apache Cassandra、Apache Kafkaもサポートしています)。 GeoMesaは、完全なOGCシンプル機能とGeoServerプラグインをサポートしています。
- H2は、バージョン1.3.173(2013-07-28)でジオメトリタイプと空間インデックスをサポートしています。 Maven Centralで利用可能なH2GISと呼ばれる拡張機能は、OGC Simple Featuresを完全にサポートします。
- IBM DB2 Spatial Extenderは、無料のDB2 Express-Cを含むDB2のすべてのエディションを空間的に有効にし、空間タイプをサポートできます。
- IBM Informix GeodeticおよびSpatialデータブレード拡張機能は、使用時に自動インストールされ、Informixのデータ型を拡張して、複数の標準座標系とRTreeインデックスのサポートを組み込みます。測地データと空間データをInformixのTimeseriesデータサポートに組み込んで、時間の経過とともに動いているオブジェクトを追跡することもできます。
- Linter SQL Serverは、OpenGIS仕様に従って空間タイプと空間関数をサポートしています。
- Microsoft SQL Serverはバージョン2008以降の空間タイプをサポートしています
- MonetDB用のMonetDB / GIS拡張機能は、OGS Simple Featuresをリレーショナル列ストアデータベースに追加します。
- MySQL DBMSは、データ型geometryに加えて、OpenGIS仕様に従って実装されたいくつかの空間関数を実装します。ただし、MySQLバージョン5.5以前では、空間リレーションシップをテストする関数は、実際のジオメトリではなく最小の境界矩形での動作に制限されています。 MySQLバージョン5.0.16より前では、MyISAMテーブルの空間データのみがサポートされていました。 MySQL 5.0.16では、InnoDB、NDB、BDB、およびARCHIVEも空間機能をサポートしています。
- Neo4j – 1Dおよび2Dインデックスをグラフ内で直接Bツリー、クアッドツリー、ヒルベルト曲線として構築できるグラフデータベース
- OpenLink Virtuosoは、バージョン6.01.3126以降、SQL / MMをサポートしており、Open Source Edition 7.2.6およびEnterprise Edition 8.2.0のGeoSPARQLなどの大幅な機能強化が行われています。
- Oracle Spatial
- PostgreSQL DBMS(データベース管理システム)は、空間拡張PostGISを使用して、標準化されたデータ型ジオメトリと対応する機能を実装します。
- Geo APIを使用したRedis。
- RethinkDBは2Dの地理空間インデックスをサポートしています。
- SAP HANAは、SPS08で地理空間をサポートしています。
- Smallworld VMDS、ネイティブGE Smallworld GISデータベース
- BoeingのSpatial Query Serverは、Sybase ASEを空間的に有効にします。
- SpatiaLiteは、空間データ型、関数、およびユーティリティを使用してSqliteを拡張します。
- Tarantoolは、RTREEインデックスを使用した地理空間クエリをサポートしています。
- Teradata Geospatialのデータウェアハウスシステムには、2D空間機能(OGC準拠)が含まれています。
- HP Verticaの地理空間拡張であるVertica Placeは、OGC準拠の空間機能をリレーショナル列ストアデータベースに追加します。
特に空間データ処理用の無料システムの表
DBS | ライセンス | 分散型 | 空間オブジェクト | 空間関数 | PostgreSQLインターフェース | UMN MapServerインターフェイス | ドキュメンテーション | 変更可能 | HDFS |
---|---|---|---|---|---|---|---|---|---|
Hadoop用のESRI GISツール | Apacheライセンス2.0 | はい | はい(独自の特定のAPI) | はい(結合、差、交差、クリップ、切り取り、バッファ、等しい、内、含む、交差、およびタッチ) | 番号 | 番号 | ちょっとだけ | フォーク | はい |
ジオメサ | Apacheライセンス2.0 | はい | はい(シンプルな機能) | はい(JTS) | no(GeoToolsで製造可能) | 番号 | 関数の一部、いくつかの例 | Java Virtual MachineのSimple Feature AccessとApache Sparkはすべての種類のタスクを解決可能 | はい |
H2(H2GIS) | LGPL 3(v1.3以降)、GPL 3以前 | 番号 | はい(カスタム、ラスターなし) | H2Networkのシンプルな機能アクセスとカスタム機能 | はい | 番号 | はい(ホームページ) | SQL | 番号 |
アングル | GPLまたは独自仕様 | はい(拡張機能がインストールされている場合) | はい(カスタム、ラスターなし) | ジオメトリエンジン、オープンソース | 番号 | MapScriptで | ちょっとだけ | CおよびOMEを使用 | 番号 |
Neo4J空間 | GNU affero一般公衆ライセンス | 番号 | はい(シンプルな機能) | はい(含む、カバー、カバー、クロス、ディスジョイント、インターセクト、ウィンドウのインターセクト、オーバーラップ、タッチ、距離内および距離内) | 番号 | 番号 | ちょっとだけ | JTSのフォーク | 番号 |
PostGISを使用したPostgreSQL | GNU General Public License | 番号 | はい(シンプルフィーチャとラスター) | はい(シンプルフィーチャアクセスおよびラスター関数) | はい | はい | 詳細な | SQL、Rに関連して | 番号 |
PostGISを使用したPostgres-XL | MozillaパブリックライセンスとGNU一般パブリックライセンス | はい | はい(シンプルフィーチャとラスター) | はい(シンプルフィーチャアクセスおよびラスター関数) | はい | はい | PostGIS:はい、Postgres-XL:簡単に | R、Tcl、またはPythonに関連したSQL | 番号 |
ラスダマン | サーバーGPL、クライアントLGPL、エンタープライズ専用 | はい | ちょうどラスター | rasqlによるラスター操作 | はい | WebカバレッジサービスまたはWeb処理サービス | 詳細なウィキ | エンタープライズ版で定義された独自の機能 | 番号 |
RethinkDB | AGPL | はい | はい |
| 番号 | 番号 | 公式文書 | フォーク | 番号 |