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:
- Geohash
- HHCode
- Grade (índice espacial)
- Ordem Z (curva)
- Quadtree
- Octree
- Árvore UB
- Árvore R : Normalmente, o método preferido para indexar dados espaciais. Os objetos (formas, linhas e pontos) são agrupados usando o retângulo de limite mínimo (MBR). Os objetos são adicionados a um MBR dentro do índice que levará ao menor aumento em seu tamanho.
- Árvore R +
- Árvore R *
- Hilbert R-tree
- X-tree
- kd-tree
- m-tree - um índice m-tree pode ser usado para a resolução eficiente de consultas de similaridade em objetos complexos em comparação com uma métrica arbitrária.
- Particionamento do espaço binário (BSP-Tree): subdividindo o espaço por hiperplanos.
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 |
|
não | não | documentação oficial | bifurcação | não |
Veja também
- Sistema de informação geográfica (SIG)
- GeoSPARQL
- Banco de dados Glacio-geológico
- Inteligência de localização
- Banco de dados multimídia
- Pesquisa de vizinho mais próximo
- Banco de dados espacial baseado em objetos
- Recursos simples
- Análise espacial
- ETL espacial
- Banco de dados espaço-temporal
Referências
Leitura adicional
- Bancos de dados espaciais: A Tour , Shashi Shekhar e Sanjay Chawla, Prentice Hall, 2003 ( ISBN 0-13-017480-7 )
- Bancos de dados espaciais - com aplicação para GIS Philippe Rigaux, Michel Scholl e Agnes Voisard. Morgan Kaufmann Publishers . 2002 ( ISBN 1-55860-588-6 )
- Avaliação de Sistemas de Gerenciamento de Dados para Big Data Geoespacial Pouria Amirian, Anahid Basiri e Adam Winstanley. Springer. 2014 ( ISBN 9783319091563 )
links externos
- Uma introdução ao PostgreSQL PostGIS
- PostgreSQL PostGIS como componentes em uma Arquitetura Orientada a Serviços SOA
- Um esquema de alarme de segurança baseado em gatilho para mover objetos em redes rodoviárias Sajimon Abraham, P. Sojan Lal, publicado por Springer Berlin / Heidelberg-2008.
- geodatabase ArcGIS Resource Center descrição de uma geodatabase