POSTGRESQL X MONGODB: COMPARAÇÃO DOS

Propaganda
POSTGRESQL X MONGODB: COMPARAÇÃO DOS RECURSOS PARA
MANIPULAÇÃO DE DADOS GEOGRÁFICOS
Angelo Augusto Frozza1; Eduarda Montibeller Schuch2; Gabriela Ohana Borba Catarina3.
1 Introdução
Em boa parte da história dos Sistemas de Gerenciamento de Banco de Dados
(SGBDs), a linguagem de consulta SQL e seus descendentes sempre estiveram presentes.
Apesar de várias abordagens de arquitetura de SGBDs terem sido propostas (orientado a
objetos, objeto-relacionais, XML etc.), os SGBDs relacionais acabaram se tornando um
padrão de fato para uso na indústria, atendendo completamente as necessidades da maior parte
das aplicações.
Com o avanço das aplicações web no início do século XXI, em especial o advento
das redes sociais e grandes portais de informação, e a própria natureza dos novos sistemas
rodando na web, a arquitetura relacional começou a apresentar algumas limitações/problemas,
especialmente associadas à escalabilidade e performance.
A escalabilidade está ligada à capacidade de um sistema computacional poder
crescer de forma rápida, para atender a uma demanda cada vez maior de usuários. A
performance, por sua vez, está ligada à velocidade com que o usuário recebe uma resposta das
requisições efetuadas a um sistema.
Assim sendo, essas novas aplicações fizeram com que a indústria de software
apresentasse novas propostas para estes dois problemas existentes devido às limitações dos
sistemas de armazenamento relacional. As novas aplicações on-line exploram conteúdo em
massa na Web 2.0 e, diante dos problemas encontrados, foram desenvolvidas soluções
proprietárias (CUNHA, 2011) que diferem do paradigma relacional, as quais foram reunidas
sob o termo NoSQL (Not Only SQL).
O paradigma dos bancos de dados NoSQL têm vários objetivos. Alguns, por
exemplo, tem a proposta de oferecer uma nova linguagem de consulta, que seja capaz de
atender a determinadas consultas de forma mais eficiente que o SQL. Já outros, são propostas
de uma nova maneira de se trabalhar com os SGBDs, enfatizando as limitações do SQL e as
vantagens da sua linguagem.
No entanto, ainda existe uma carência de estudos que comprovem a real eficácia
do modelo NoSQL perante o paradigma relacional. Enquanto Rob, Coronel e Crockett (2008)
encaram o padrão relacional como o maior avanço para o usuário frente ao modelo
anteriormente tradicional de armazenamento, Tiwari (2011) cita o modelo NoSQL como uma
tendência que tende a superar o homólogo modelo relacional no que se refere a escalabilidade
horizontal e disponibilidade.
Outro fato é que, atualmente, bancos de dados NoSQL têm sido amplamente
usados em implementações de redes sociais e grandes portais, os quais se caracterizam pela
necessidade de grandes volumes de consulta a dados e, por consequência, escalabilidade e
performance. Porém, há outro segmento que pode tomar proveito das características de
bancos de dados NoSQL em relação ao tradicional padrão relacional, que é o segmento
envolvido com o tratamento de dados geográficos.
Aplicações que usam dados geográficos como, por exemplo, os Sistemas de
Informações Geográficas (SIG), caracterizam-se por terem baixo volume de inclusão de
novos dados, porém, alto volume de requisições de consulta.
1
Professor orientador do Instituto Federal Catarinense – Campus Camboriú
Aluno do curso Técnico em Informática do Instituto Federal Catarinense – Campus Camboriú
3
Aluno do curso Técnico em Informática do Instituto Federal Catarinense – Campus Camboriú
2
O crescimento da Sociedade da Informação impulsionou o uso de Sistemas de
Informações Geográficas nas organizações e, em especial, o uso de dados georeferenciados
em aplicações web. A produção de dados georeferenciados tem um custo muito alto, gerando
a necessidade das organizações compartilharem e trocarem seus dados geográficos, o que é
facilitado pelas redes de computadores e pela Internet (FROZZA, 2007).
Sistemas de Informações Geográficas (SIGs) são sistemas que realizam o
tratamento computacional de dados geográficos. Diferente dos sistemas de informações
convencionais, os SIGs têm como principal característica a capacidade de armazenar tanto os
atributos descritivos como as geometrias dos diversos tipos de dados geográficos (CÂMARA,
2005).
2 Objetivos
Este trabalho constitui em um estudo de caso que tem como objetivo realizar um
comparativo entre o novo paradigma de armazenagem de dados NoSQL e um banco de dados
relacional, visando o armazenamento e consulta de dados geográficos. Porém, diferente de
outros trabalhos que buscam avaliar a performance de bancos NoSQL, o foco deste trabalho
está no estudo sobre os recursos disponíveis para manipular dados geográficos e seu uso. Para
tanto, definiu-se que seria utilizado o banco de dados NoSQL MongoDB, devido à sua
característica de ser orientado a documentos e por ser um dos primeiros a disponibilizar
recursos para trabalhar com dados geográficos. Em contrapartida, os recursos do MongoDB
serão analisados em relação aos recursos disponibilizados pelo SGBD PostgreSQL/PostGIS
que, atualmente, pode ser considerado um padrão de fato em relação a SGBD livre para
manipulação de dados geográficos.
Para a realização desse estudo serão relacionados os recursos para manipulação de
dados geográficos presentes no PostgreSQL/PostGIS e verificado a existência de recursos
semelhantes no MongoDB. De forma complementar, serão realizados testes práticos nos dois
modelos para o levantamento de dados para análise do comportamento de armazenagem e
recuperação de dados.
Através dos dados levantados nesse trabalho será possível analisar as principais
características desse novo modelo e comparar com o modelo relacional que é amplamente
utilizado. Com essas informações será possível analisar diante dos requisitos de um SIG se é
viável utilizar um banco de dados NoSQL na camada de acesso e manipulação de dados
geográficos. Este estudo de caso também servirá de parâmetro para verificar se o MongoDB
pode ser empregado na construção da rede social prevista na Plataforma UrbanMob
(FROZZA, 2012).
3 Material e Métodos
Essa pesquisa é de caráter bibliográfico e exploratório. Baseada no conceito de
Malheiros (2010), uma pesquisa bibliográfica levanta o conhecimento disponível na área,
possibilitando que o pesquisador conheça as teorias produzidas, analisando-as e avaliando sua
contribuição para compreender ou explicar o seu problema objeto de investigação. E no
conceito de Gil (2008), uma pesquisa exploratória tem como objetivo familiarizar-se com um
assunto ainda pouco conhecido, pouco explorado. Ao final de uma pesquisa exploratória, você
conhecerá mais sobre aquele assunto e estará apto a construir hipóteses. Como qualquer
exploração, a pesquisa exploratória depende da intuição do pesquisador. Por ser um tipo de
pesquisa muito específica, quase sempre ela assume a forma de um estudo de caso.
Para o desenvolvimento deste projeto, faremos uma comparação dos recursos para
armazenamento e manipulação de dados geográficos existentes em um banco de dados
NoSQL (MongoDB) em relação a um banco de dados relacional (PostgreSQL/PostGIS). Para
tanto, será necessário inicialmente identificar e classificar os recursos (tipos de dados e
funções pré-definidas) presentes no PostgreSQL/PostGIS. Para complementar o levantamento
teórico dessa etapa, serão implementados alguns exemplos demonstrando o uso dos recursos.
Na sequência, será feita uma apresentação dos bancos de dados NoSQL e o
levantamento de quais propostas de banco NoSQL já permitem o uso de dados geográficos.
Nesta etapa, será estudado mais detalhadamente o banco de dados NoSQL MongoDB. Esta
etapa é importante para caracterizar os diferentes tipos de bancos de dados NoSQL e
descrever essa nova tecnologia.
Na sequência, será feito o estudo dos recursos para armazenamento e manipulação
de dados geográficos presentes no banco de dados NoSQL MongoDB. Como feito
anteriormente com o PostgreSQL/PostGIS, a explicação dos recursos serão complementadas
com exemplos práticos demonstrando o uso dos mesmos.
Ao final, uma tabela comparativa será gerada, a qual servirá como ferramenta para
análise da aplicação do banco de dados MongoDB no projeto UrbanMob.
4 Resultados e Discussão
Para darmos início a coleta de dados, começamos estudando e aprofundando o
conhecimento sobre o banco de dados relacional PostgreSQL e sua extensão PostGIS. O
PostGIS é, basicamente, uma extensão do PostgreSQL (Sistema de Gerenciamento de Banco
de Dados Objeto-Relacional – SGBDOR) que adiciona suporte à manipulação e ao
armazenamento de dados geográficos no PostgreSQL. Com o PostGIS é possível realizar
operações abrangendo pontos, linhas, áreas e volumes que se localizam no espaço geográfico.
Esta extensão inclui suporte para índices espaciais do tipo GiST (Generalized Search Tree) e
R-Tree (Tree Data Structures), funções, tipos de dados e também suporta a realização de
consultas espaciais.
Os Quadros de 1 a 5 apresentam os recursos para manipulação de dados
geográficos identificados no PostgreSQL/PostGIS. Esses quadros serão complementados com
a inclusão dos dados referentes ao MongoDB.
QUADRO 1 – Mapeamento dos tipos de dados
TIPOS DE DADOS POSTGRESQL
Geography
Geometry
TIPOS DE DADOS MONGODB
QUADRO 2 – Mapeamento dos tipos de objetos espaciais básicos
OBJETOS ESPACIAIS BÁSICOS
POSTGRESQL
Point
Polygon
Linestring
OBJETOS ESPACIAIS BÁSICOS
MONGODB
QUADRO 3 – Mapeamento dos tipos de objetos espaciais complexos
OBJETOS ESPACIAIS ARRAYS
POSTGRESQL
Multipoint
Multipolygon
Multilinestring
Geometrycolletion
OBJETOS ESPACIAIS ARRAYS
MONGODB
QUADRO 4 – Mapeamento das funções de processamento geométrico
FUNÇÕES DE PROCESSAMENTO
GEOMÉTRICO POSTGRESQL
ST_Centroid(geometry)
ST_Area(geometry)
ST_Length(geometry)
ST_Perimeter(geometry)
PointOnSurface(geometry)
ST_Boundary(geometry)
ST_Buffer(geometry, distance double,
[integer])
ST_Intersection(geometryA, geometryB)
ST_Difference(geometryA, geometryB)
ST_GeomUnion(geometryA, geometryB)
FUNÇÕES DE PROCESSAMENTO
GEOMÉTRICO MONGODB
QUADRO 5 – Mapeamento das funções de relacionamento espacial
FUNÇÕES DE RELACIONAMENTO
ESPACIAL POSTGRESQL
ST_Distance(geometryA, geometryB)
ST_Equals(geometryA, geometryB)
ST_Equals(geometryA, geometryB)
ST_Intersects(geometryA, geometryB)
ST_Touches(geometryA, geometryB)
ST_Crosses(geometryA, geometryB)
ST_Within(geometryA, geometryB)
ST_Overlaps(geometryA, geometryB)
ST_Contains(geometryA, geometryB)
FUNÇÕES DE RELACIONAMENTO
ESPACIAL MONGODB
Na sequência desse trabalho, o MongoDB será estudado de forma mais
aprofundada, a fim de verificar se oferece recursos semelhantes para trabalhar com dados
geográficos e, no caso de oferecer, como estes podem ser utilizados.
O MongoDB é um SGBD NoSQL criado pela empresa 10gen. É orientado a
documentos e se define como um SGBD escalável e de alta performance, que também oferece
suporte para manipulação de dados geográficos.
Os bancos de dados orientados a documentos são bastante diferentes dos
tradicionais bancos de dados relacionais. Em vez de armazenar dados em estruturas rígidas,
como tabelas, eles os armazenam em documentos vagamente definidos (CUNHA, 2011).
Com base nos recursos apresentados nos quadros acima, exemplos práticos de uso
serão desenvolvidos, como forma de demonstrar cada recurso e permitir realizar um
comparativo dos mesmos para manipulação de dados geográficos entre ambos os bancos de
dados citados a cima.
5 Conclusão
Com o objetivo de comparar e analisar os recursos para a manipulação de dados
geográficos no banco de dados relacional PostgreSQL/PostGIS e no banco de dados NoSQL
MongoDB, já obtivemos alguns resultados como a identificação dos tipos de dados, dos
objetos espaciais e as funções espaciais presentes no PostgreSQL.
Pode-se afirmar que ambos SGBDs dão suporte a manipulação e armazenamento
de dados geográficos e satisfazem as necessidades para estes fins.
6 Agradecimentos
Agradecemos ao Instituto Federal Catarinense - Câmpus Camboriú, que
incentivou os pesquisadores desta pesquisa, com o financiamento parcial do projeto por meio
de uma bolsa de Iniciação Científica do Edital 037/GDG/IFC-CAM/2012.
7 Referências bibliográficas
CÂMARA, G. Representação computacional de dados geográficos. In:
CASANOVA,
M. A. et al. (org.) Bancos de dados geográficos. Curitiba: MundoGEO, 2005. p. 11-52.
CUNHA, T. M. de A. Escalabilidade de Sistemas com Banco de Dados NoSQL: um
Estudo de Caso Comparativo com MongoDB e MySQL. 2011. 85 f. Trabalho de
Conclusão de Curso (Ciência da Computação) – Centro Universitário da Bahia – Estácio,
Salvador.
FROZZA, A. A. Plataforma UrbanMob: Infraestrutura para armazenamento de
trajetórias urbanas de objetos móveis. Projeto de IC submetido ao edital IFC
037/GDG/IFC-CAM/2012. Camboriú, 2012.
GIL, A. C. Como elaborar projetos de pesquisa. 5. ed. São Paulo: Atlas, 2008.
MALHEIROS, R. T. L. Pesquisa Bibliográfica: Transcrevendo conceitos e citando
autores nos trabalhos acadêmicos. Disponível em: <http://silvanosulzarty.blogspot.com.br/
2010/04/pesquisa-bibliografica-transcrevendo.html>. Acessado em: 22 ago. 2012.
ROB, P.; CORONEL, C.; CROCKETT, K. Database systems: design, implementation &
management. [S.l.; s.n.].Cengage Learning, 2008.
TIWARI, S. Professional NoSQL. [S.l.]John Wiley & Sons. 2011.
Download