Banco de dados espacial - Spatial database

Um banco de dados espacial é um banco de dados otimizado para armazenar e consultar dados que representam objetos definidos em um espaço geométrico. A maioria dos bancos de dados espaciais permite a representação de objetos geométricos simples, como pontos, linhas e polígonos. Alguns bancos de dados espaciais lidam com estruturas mais complexas, como objetos 3D, coberturas topológicas, redes lineares e TINs (rede irregular triangulada). Embora bancos de dados típicos tenham sido desenvolvidos para gerenciar vários tipos de dados numéricos e de caracteres , esses bancos de dados requerem funcionalidade adicional para processar tipos de dados espaciais com eficiência, e os desenvolvedores frequentemente adicionam geometria ou tipos de dados de recursos . O Open Geospatial Consortium (OGC) desenvolveu a especificação Simple Features (lançada pela primeira vez em 1997) e define padrões para adicionar funcionalidade espacial aos sistemas de banco de dados. O padrão SQL / MM Spatial ISO / IEC é uma parte do padrão de multimídia SQL / MM e estende o padrão Simple Features com tipos de dados que suportam interpolações circulares.

Geodatabase

Um geodatabase (também banco de dados geográfico e banco de dados geoespacial ) é um banco de dados de dados geográficos , como países , divisões administrativas , cidades e informações relacionadas. Esses bancos de dados podem ser úteis para sites que desejam identificar a localização de seus visitantes para fins de personalização.

Características

Os sistemas de banco de dados usam índices para pesquisar valores rapidamente; no entanto, essa forma de indexar dados não é ideal para consultas espaciais . Em vez disso, os bancos de dados espaciais usam um índice espacial para acelerar as operações do banco de dados.

Além das consultas SQL típicas, como instruções SELECT, os bancos de dados espaciais podem executar uma ampla variedade de operações espaciais. As seguintes operações e muitas outras são especificadas pelo padrão Open Geospatial Consortium :

  • Medições espaciais: calcula o comprimento da linha, a área do polígono, a distância entre as geometrias, etc.
  • Funções espaciais: modifique recursos existentes para criar novos, por exemplo, fornecendo um buffer ao redor deles, recursos de interseção, etc.
  • Predicados espaciais: permite consultas verdadeiras / falsas sobre relacionamentos espaciais entre geometrias. Os exemplos incluem "os dois polígonos se sobrepõem" ou 'há uma residência localizada a menos de um quilômetro da área em que estamos planejando construir o aterro?' (ver DE-9IM )
  • Construtores de geometria: Cria novas geometrias, geralmente especificando os vértices (pontos ou nós) que definem a forma.
  • Funções do observador: consultas que retornam informações específicas sobre um elemento, como a localização do centro de um círculo

Alguns bancos de dados suportam apenas conjuntos simplificados ou modificados dessas operações, especialmente em casos de sistemas NoSQL como MongoDB e CouchDB .

Índice espacial

Os índices espaciais são usados ​​por bancos de dados espaciais (bancos de dados que armazenam informações relacionadas a objetos no espaço) para otimizar consultas espaciais . Os tipos de índice convencionais não tratam com eficiência as consultas espaciais, como até que ponto dois pontos diferem ou se os pontos estão dentro de uma área espacial de interesse. Os métodos comuns de índice espacial incluem:

Consulta espacial

Uma consulta espacial é um tipo especial de consulta de banco de dados suportado por bancos de dados espaciais, incluindo bancos de dados geográficos. As consultas diferem das consultas SQL não espaciais de várias maneiras importantes. Dois dos mais importantes são que eles permitem o uso de tipos de dados de geometria, como pontos, linhas e polígonos, e que essas consultas consideram a relação espacial entre essas geometrias.

Os nomes das funções para consultas diferem entre os bancos de dados geográficos. A lista a seguir contém funções comumente usadas incorporadas ao PostGIS , um geodatabase gratuito que é uma extensão do PostgreSQL (o termo 'geometria' se refere a um ponto, linha, caixa ou outra forma bidimensional ou tridimensional):

Protótipo de função : functionName (parâmetro (s)): tipo de retorno

  • Distância (geometria, geometria): número
  • Igual a (geometria, geometria): booleano
  • Disjoint (geometria, geometria): booleano
  • Interseções (geometria, geometria): booleano
  • Toques (geometria, geometria): booleano
  • Cruzes (geometria, geometria): booleano
  • Sobreposições (geometria, geometria): booleano
  • Contém (geometria, geometria): booleano
  • Comprimento (geometria): número
  • Área (geometria): número
  • Centroid (geometria): geometria

Sistemas de gerenciamento de banco de dados espacial

Lista

  • AllegroGraph - um banco de dados gráfico que fornece um mecanismo para armazenamento e recuperação eficientes de coordenadas geoespaciais bidimensionais para dados do Resource Description Framework . Inclui uma sintaxe de extensão para consultas SPARQL .
  • ArangoDB - um banco de dados multi-modelo que fornece capacidade de geoindexação.
  • O Caliper estende o Raima Data Manager com tipos de dados espaciais, funções e utilitários.
  • CouchDB um sistema de banco de dados baseado em documento que pode ser ativado espacialmente por um plugin chamado Geocouch
  • Elasticsearch é um sistema de banco de dados baseado em documento que suporta dois tipos de dados geográficos: campos geo_point que suportam pares lat / lon e campos geo_shape, que suportam pontos, linhas, círculos, polígonos, multipolígonos, etc.
  • GeoMesa é um banco de dados espaço-temporal baseado em nuvem construído em cima do Apache Accumulo e Apache Hadoop (também suporta Apache HBase , Google Bigtable , Apache Cassandra e Apache Kafka ). GeoMesa suporta recursos simples OGC completos e um plugin GeoServer.
  • H2 oferece suporte a tipos de geometria e índices espaciais a partir da versão 1.3.173 (2013-07-28). Uma extensão chamada H2GIS disponível no Maven Central oferece suporte completo para OGC Simple Features .
  • Qualquer edição do IBM DB2 pode ser habilitada espacialmente para implementar a funcionalidade espacial OpenGIS com tipos e funções espaciais SQL.
  • As extensões de dados geodésicos e espaciais do IBM Informix são instaladas automaticamente no uso e expandem os tipos de dados do Informix para incluir vários sistemas de coordenadas padrão e suporte para índices RTree. Dados geodésicos e espaciais também podem ser incorporados ao suporte de dados Timeseries do Informix para rastrear objetos em movimento ao longo do tempo.
  • Linter SQL Server suporta tipos espaciais e funções espaciais de acordo com as especificações OpenGIS.
  • O Microsoft SQL Server oferece suporte para tipos espaciais desde a versão 2008
  • A extensão MonetDB / GIS para MonetDB adiciona OGS Simple Features ao banco de dados de armazenamento de coluna relacional .
  • MySQL DBMS implementa a geometria do tipo de dados , além de algumas funções espaciais implementadas de acordo com as especificações OpenGIS. No entanto, no MySQL versão 5.5 e anterior, as funções que testam relacionamentos espaciais são limitadas a trabalhar com retângulos de limite mínimo em vez das geometrias reais. As versões do MySQL anteriores a 5.0.16 suportavam apenas dados espaciais em tabelas MyISAM. A partir do MySQL 5.0.16, InnoDB, NDB, BDB e ARCHIVE também suportam recursos espaciais.
  • Neo4j - um banco de dados gráfico que pode construir índices 1D e 2D como B-tree , Quadtree e curva de Hilbert diretamente no gráfico
  • O OpenLink Virtuoso oferece suporte a SQL / MM desde a versão 6.01.3126, com melhorias significativas, incluindo GeoSPARQL na edição de código-fonte aberto 7.2.6 e na edição Enterprise 8.2.0
  • Oracle Spatial
  • PostgreSQL DBMS (sistema de gerenciamento de banco de dados) usa a extensão espacial PostGIS para implementar a geometria de tipo de dados padronizada e funções correspondentes.
  • Redis com a API Geo.
  • RethinkDB oferece suporte a índices geoespaciais em 2D.
  • SAP HANA oferece suporte geoespacial com SPS08.
  • Smallworld VMDS , o banco de dados GE Smallworld GIS nativo
  • O Spatial Query Server da Boeing habilita espacialmente o Sybase ASE.
  • SpatiaLite estende Sqlite com tipos de dados espaciais, funções e utilidades.
  • Tarantool oferece suporte a consultas geoespaciais com índice RTREE.
  • O Teradata Geospatial inclui funcionalidade espacial 2D (compatível com OGC) em seu sistema de data warehouse.
  • Vertica Place , a extensão geoespacial para HP Vertica , adiciona recursos espaciais compatíveis com OGC ao banco de dados de armazenamento de coluna relacional .

Tabela de sistemas livres especialmente para processamento de dados espaciais

DBS Licença Distribuído Objetos espaciais Funções espaciais Interface PostgreSQL Interface UMN MapServer Documentação Modificável HDFS
ArangoDB Licença Apache 2.0 sim sim sim - visão geral dos recursos , funções de linguagem de consulta não não documentação oficial AQL não
GeoMesa Licença Apache 2.0 sim sim ( recursos simples ) sim ( JTS ) não ( fabricável com GeoTools ) não partes das funções, alguns exemplos com Simple Feature Access em Java Virtual Machine e Apache Spark são todos os tipos de tarefas solucionáveis sim
H2 (H2GIS) LGPL 3 (desde v1.3), GPL 3 antes não sim (personalizado, sem raster) Acesso a recursos simples e funções personalizadas para H2Network sim não sim (homepage) SQL não
Ingres GPL ou proprietário sim (se a extensão estiver instalada) sim (personalizado, sem raster) Mecanismo de geometria, código aberto não com MapScript apenas brevemente com C e OME não
Neo4J -spatial Licença pública geral GNU affero não sim ( recursos simples ) sim (conter, cobrir, coberto por, cruzar, separar, cruzar, cruzar janela, sobrepor, tocar, dentro e dentro da distância) não não apenas brevemente garfo de JTS não
PostgreSQL com PostGIS GNU General Public License não sim ( recursos simples e raster) sim ( acesso a recursos simples e funções raster) sim sim detalhado SQL, em conexão com R não
Postgres-XL com PostGIS Licença pública Mozilla e licença pública geral GNU sim sim ( recursos simples e raster) sim ( acesso a recursos simples e funções raster) sim sim PostGIS: sim, Postgres-XL: brevemente SQL, em conexão com R ou Tcl ou Python não
Rasdaman servidor GPL , cliente LGPL , empresa proprietária sim apenas raster manipulação de raster com rasql sim com serviço de cobertura da web ou serviço de processamento da web wiki detalhado função própria definida na edição empresarial não
RethinkDB AGPL sim sim
  • distância
  • getIntersecting
  • getNearest
  • inclui
  • cruza
não não documentação oficial bifurcação não

Veja também

Referências

Leitura adicional

links externos