Você está na página 1de 7

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

Comissão: CT7 - Sistemas de Informações Geográficas

Análise do módulo PostGIS (OpenGIS®) para armazenamento e tratamento de dados


geográficos com alta performance e baixo custo

Helton Nogueira Uchoa (Opengeo) (1)


Renata Juliana Cristal Coutinho (Opengeo) (1)
Paulo Roberto Ferreira (UFRJ)(2)
Luiz Carlos Teixeira Coelho Filho (UFAM) (3)
Jorge Luís Nunes e Silva Brito (UERJ) (4)
(1)
Opengeo Consultoria de Informática LTDA
Av. Marechal Floriano, 38 / 1203 – Centro
Rio de Janeiro – RJ – CEP: 20080-004
pesquisa@opengeo.com.br
(2)
Universidade Federal do Rio de Janeiro
Programa de Pós-Graduação em Engenharia de Transportes – COPPE - Mestrado
Cidade Universitária - RJ - CEP 21949-900
roberto@pet.coppe.ufrj.br
(3)
Universidade Federal do Amazonas
Programa de Pós-Graduação em Informática - Mestrado
Av. Gen Rodrigo Otávio Jordão Ramos 3000
Minicampus - Manaus / AM – CEP: 69077-000
lcoelho@ppgi.ufam.edu.br
(4)
Universidade do Estado do Rio de Janeiro
Programa de Pós-Graduação em Engenharia da Computação – Geomática
Rua São Francisco Xavier, 524 – Maracanã
Rio de Janeiro – RJ – CEP 20559-900
jnunes@uerj.br

RESUMO
O crescimento contínuo do volume de informações que necessitam ser armazenadas e espacialmente tratadas tem
causado dificuldades para muitas instituições que ainda trabalham com repositórios de dados baseados em diretórios e arquivos.
Os principais órgãos de mapeamento do país ainda possuem os repositórios baseados nesta arquitetura. Por isso, eles têm
buscado uma solução baseada num Banco de Dados Geográfico, já que esta é a forma ideal de administrar de maneira segura e
eficiente um grande volume de dados.
No Brasil, as principais soluções proprietárias para repositórios baseados em Banco de Dados utilizam, normalmente,
o Microsoft SQL Server® ou o Oracle® Spatial. As soluções de Geoprocessamento que utilizam esta arquitetura proprietária
possuem dois grandes problemas, a saber:
• A instituição (cliente) fica dependente de uma única empresa que impõe custos elevados para manter e atualizar
esta estrutura;
• O controle por demanda impossibilita que a estrutura seja ampliada para atender todas as demandas internas e
externas de uma instituição. Um exemplo claro desta situação pode ser observada nas prefeituras que não
conseguem integrar todas as secretarias a um repositório central, pois os custos com o aumento do número de
acessos são muito elevados, fruto deste controle por demanda.
Observando estes problemas presentes na área de Geotecnologias, empresas canadenses resolveram investir em um
modelo de negócios baseado em software livre (SL). Com isso, estas empresas passaram a desenvolver importantes projetos
para aplicações em Sistemas de Informação Geográfica (SIG).
O objetivo deste trabalho é analisar o módulo PostGIS que foi desenvolvido pela empresa canadense Refractions e
licenciado livremente para a comunidade mundial de SL. Este módulo tem o objetivo de permitir o armazenamento e
tratamento de dados geográficos no SGBD PostgreSQL, seguindo o padrão OpenGIS® Simple Features Specification (SFS –
OGC). Também na categoria de software livre, o PostgreSQL é um SGBD objeto-relacional com recursos comparáveis ao

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br


Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

Oracle®, porém ainda pouco conhecido pelos profissionais da área de GEO. Muitos profissionais de TI que trabalham com
Linux, conhecem bem o potencial do PostgreSQL e tem dado preferência ao mesmo em substituição das plataformas
proprietárias.
A análise efetuada neste trabalho permite concluir que o PostGIS se apresenta como um caminho viável para
implantação de uma solução corporativa de Geoprocessamento em instituições públicas que necessitam de performance e
baixo custo. Adicionalmente, conclui-se que a padronização OpenGIS® pode garantir a interoperabilidade de várias instituições
públicas, permitindo que a gestão pública do Brasil realmente entre na era da Geoinformação.

PALAVRAS-CHAVES: OpenGIS, PostGIS, Software Livre, PostgreSQL

ABSTRACT
The continuous growth of the volume of information that needs to be archived and specially processed has caused
difficulties for many institutions that still work with repositories of data based upon directories and files. The main mapping
agencies of Brazil still have their file systems based on this architecture. Because of that, they have searched for a solution
based upon geographical databases, as this is the ideal way of controlling large volumes of data in a safe, efficient way.
In Brazil, the main proprietary solutions for a repository based upon a database use normally Microsoft SQL ServerTM
or OracleTM Spatial. The geoprocessing solutions that use this proprietary architecture have two main problems.
• The institution (client) remains dependent on an only enterprise that imposes high costs for maintenance and
updating of this structure;
• The “on demand” control does not allow this structure to be enlarged in to serve all internal and external demands
that such institutions may have. A clear example of this situation can be observed in city management, that
cannot integrate all its counties to a central repository. This is caused by the costs related to the growth of access
are very large, a consequence of the “on demand” controlling strategy.
Taking a deeper look on these problems that exist in geotechnologies, some Canadian enterprises have decided to
invest in a business model based upon Free Software. As a consequence, these enterprises have started to develop important
projects for applications based on Geographical Information Systems (GIS).
The goal of this paper is to analyze the module PostGIS, that was developed by the Canadian enterprise Refractions,
and freely licensed for the geo-community. This module has the objective of allowing storage and treatment of geographic
data through the database PostgresSQL, according to the OpenGISTM standards – Simple Features Specification (SFS – OGC).
Also belonging the free software category, PostgreSQL is an object-relational database with resources comparable to Oracle TM,
but still unknown by geo-professionals. Many IT professionals that work with Linux know its potential and have substituted
proprietary platforms by it.
With more than 100 spatial/topological functions, PostGIS is regarded as a promising way for implementing a
corporative geoprocessing solution in public institutions that need high performance at low cost. The OpenGISTM standard can
guarantee interoperability between many institutions, allowing public administration in Brazil to really entering in the era of
Geoinformation.

KEYWORDS: OpenGIS, PostGIS, Free Software, PostgreSQL

1 INTRODUÇÃO • De 1986 à 1994, Michael Stonebraker chefiou um


grupo de desenvolvedores com o objetivo de
O PostgreSQL é o Sistema Gerenciador de Banco projetar um SGBD objeto-relacional. Este projeto
de Dados (SGBD) de código aberto que possibilitou o foi denominado Postgres (“Post” indica
desenvolvimento de soluções corporativas com uma melhor “posterior”, fazendo referência ao Ingres);
relação custo x benefício. Um ponto forte deste SGBD é a • O código deste projeto foi utilizado pela empresa
sua capacidade de tratar grandes volumes de dados com Illustra para o desenvolvimento de um projeto
escalabilidade, ou seja, a sua arquitetura pode ser comercial;
continuamente ampliada de acordo com a demanda dos • A Illustra Information Technologies uniu-se com
usuários. Exatamente neste contexto, entram as aplicações a Informix, sendo esta adquirida pela IBM em
na área de Geotecnologias que necessitam de uma infra- 2001. Oficialmente o desenvolvimento do
estrutura robusta e em contínua expansão. Postgres parou na versão 4.2 em 1994;
• Dois estudantes de graduação de Berkeley, Jolly
A evolução do PostgreSQL está baseada numa Chen e Andrew Yu, adicionaram o suporte SQL
longa história cujo início está no meio acadêmico, como ao PG em 1994/1995. Este projeto foi
mostram os fatos a seguir: denominado Postgres95. Ambos deixaram
• O Ingres (1977-1985) desenvolvido pela Berkeley, porém o Jolly Chen continuou
Universidade de Berkeley na Califórnia foi o mantendo e desenvolvendo o Postgres95 (este
ponto de partida para o PostgreSQL (PG); projeto foi desenvolvido em ANSI C);

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br


Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

• Chen buscou formar uma equipe pequena com implementa diversas funcionalidades topológicas,
bastante tempo disponível para continuar a possibilitando o desenvolvimento de Sistemas de
implementação das 250.000 linhas de código C. A Informação Geográfica (SIG) Corporativos. A topologia
equipe principal de desenvolvimento era formado também faz parte da especificação SFS (OpenGIS®),
por Marc Fournier (Canadá), Thomas Lockhart garantindo ao PostGIS interoperabilidade com inúmeros
(Califórnia), Vadim Mikheev (Rússia) e Bruce sistemas que também adotam o SFS.
Momjian (Pensilvânia);
• Em 1996, o nome foi alterado de Postgres95 para O licenciamento do PostGIS é definido pela GNU
PostgreSQL (versão 6.0). GPL (General Public License), garantindo todas as
liberdades1 de um software livre. Um fato importante a ser
Na época em que este artigo foi escrito, o destacado pela licença GNU GPL é que, ao contrário da
PostgreSQL se encontrava na versão 8.0.3, contando com BSD, qualquer melhoria do código-fonte do PostGIS deve
uma rápida evolução, tendo novas versões lançadas a cada ser devolvida ao mantenedor (líder do desenvolvimento) do
poucos meses. Entre as principais características do projeto. O PostGIS foi desenvolvido pela empresa
PostgreSQL, pode-se citar: canadense Refractions Research e, no período em que este
• Licenciamento BSD. Esta licença garante total artigo foi escrito, encontrava-se na versão 1.0.2.
liberdade de uso, alteração, modificação e
distribuição do sistema. Ela também permite que Para tratar grandes volumes de dados espaciais
versões proprietárias e comerciais sejam criadas a com maior eficiência, PostGIS implementa a indexação R-
partir do sistema licenciado nestes termos; Tree sobre a indexação GiST (Generalized Search Trees)
• 100% compatível com ANSI SQL (SQL92 e nativa do PostgreSQL. Apesar do PostgreSQL possuir
algumas funcionalidades do SQL 99). Este recurso nativamente três tipos de indexação (B-Tree, R-Tree e
permite uma grande facilidade na migração de GiST), a R-Tree nativa não apresenta a robustez exigida
dados de outros bancos que também sigam o para as aplicações relacionadas ao PostGIS.
ANSI SQL;
• SGBD Objeto-Relacional (classes e hierarquia). O O código-fonte disponível para download está
PostgreSQL está na mesma categoria de outros voltado para compilação em plataforma Linux/Unix,
SGBD's, tais como Oracle®, Microsoft SQL podendo ser compilado, com algumas adaptações, em
Server® e IBM DB2®, que evoluíram da qualquer plataforma. Visando direcionar o trabalho para
arquitetura de relacional para objeto-relacional, ou plataformas livres, todos os estudos serão conduzidos sobre
seja, implentaram algumas definições de uma configuração totalmente isenta de sistemas
orientação à objeto; proprietários.
• Extremamente modular, facilitando o trabalho dos
desenvolvedores que desejam implementar novas 2 PRINCIPAIS FUNÇÕES DO POSTGIS
funcionalidades. Esta característica possibilitou a
criação do módulo PostGIS, contendo inúmeras O PostGIS conta com um grande número de
funcionalidades para o desenvolvimento de funções para análises espaciais/topológicas que estendem o
aplicações que tratam a Geoinformação; próprio SQL do PostgreSQL. Para este trabalho, foram
• Possui as seguintes interfaces nativas: ODBC, selecionadas algumas funções, tendo em vista as demandas
cotidianas das instituições que tratam da Geoinformação,
JDBC, C, C++, PHP, Perl, TCL, ECPG, Python e
bem como, a complexidade computacional das mesmas:
Ruby. Neste quesito, o PostgreSQL supera todos
• Disjoint: analisa se duas geometrias possuem
os demais SGBD's, pois nenhum outro possui
tantas possibilidades de implementações inerentes algum ponto em comum e retorna o valor
ao SGBD. Com isso, as diversas “tribos” de verdadeiro (t, true) se nenhum ponto for
desenvolvedores poderão implementar funções identificado;
dentro do banco sem a necessidade de aprender • Intersects: analisa se duas geometrias possuem
uma nova linguagem; alguma interseção e retorna verdadeiro (t, true)
• Existem interfaces gráficas livres que permitem a caso isto ocorra;
gerência do PG de maneira simples: phpPgAdmin • Touches: analisa se duas geometrias possuem
e pgAdmin III. Estas interfaces facilitam a alguma interseção e retorna verdadeiro (t, true)
gerência dos bancos de dados, tornando os caso isto ocorra;
processos mais intuitivos. 1 Segundo a Fundação Software Livre (Free Software Foundation), as
quatro liberdades que definem o software livre:
O PostGIS é um módulo que adiciona entidades i. A liberdade de executar o programa, para qualquer propósito;
geográficas ao PostgreSQL. Nativamente, o PostgreSQL já ii. A liberdade de estudar como o programa funciona e adaptá-lo
para as suas necessidades. Acesso ao código-fonte é um
suporta geometrias espaciais, porém o PostGIS adiciona a pré-requisito para esta liberdade;
capacidade de armazenamento/recuperação segundo a iii. A liberdade de redistribuir cópias, permitindo a ajuda ao
especificação SFS (Simple   Features   Specification) do próximo;
iv. A liberdade de aperfeiçoar o programa e liberar os seus
consórcio internacional Open GeoSpatial (OGC). Além do aperfeiçoamentos, de modo que toda a comunidade se
armazenamento de dados geográficos, este módulo também beneficie. Acesso ao código-fonte é um pré-requisito para
esta liberdade.

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br


Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

• Crosses: analisa se duas geometrias se cruzam e ­ RIO DO PRADO


retorna verdadeiro (t, true) caso isto ocorra; ­ PALMOPOLIS
• Within: analisa se uma geometria está continda na
outra e retorna verdadeiro (t, true) caso isto
ocorra;
• Contains: analisa se uma geometria contém a
outra e retorna verdadeiro (t, true) caso isto
ocorra.

Na próxima seção, as funções descritas acima


serão analisadas através de algumas queries.

3 PERFORMANCE DE OPERAÇÕES TOPOLÓGICAS

Para a análise dos resultados das principais


operações topológicas/espaciais do PostGIS, foi
estabelecido um ambiente de teste (servidor Linux) com a
seguinte configuração:
• Processador Atlhon XP 3.200+;
• 1 GB de memória RAM;
• HD serial ATA de 120 GB.

A distribuição Linux utilizada foi o Fedora Core 3


com as seguintes aplicações configuradas/compiladas: Fig. 1 – Municípios que tocam o município de Rubim
• PostgreSQL 8.0.3;
• PostGIS 1.0.2; ➢ Análise: identificar todos os municípios que não
• Proj 4.4.9; estão ao redor do município de Rubin;
• GEOS 2.1.2. ➢ Query:
­ select t2.nome_munic, t2.gid from
Durante a condução dos testes, inúmeras outras municipios t1, municipios t2 where
aplicações estavam sendo executadas sobre o mesmo disjoint(t1.the_geom, t2.the_geom)='t' AND
computador, simulando um ambiente normalmente t1.nome_munic='Rubim';
encontrado nos órgãos públicos com pouca disponibilidade ➢ Tempo de execução: 980.335 ms
de recursos financeiros. Entre estas aplicações, estão: ➢ Resultado: o resultado desta query corresponde a
Apache, servidor X, MySQL, etc. todos os municípios, com exceção dos listados na
query anterior.
A base de municípios do IBGE e a base de
rodovias federais foram utilizadas para estes testes,
buscando compor situações do cotidiano. Esta base possui
cerca de 4.8 milhões de vértices.

Para que fosse possível visualizar os resultados das


análises num mapa, foi utilizado o MapServer. Este sistema
também possui as 4 liberdades inerentes aos softwares
livres.

➢ Análise: identificar todos os municípios que estão


ao redor do município de Rubin;
➢ Query:
­ select t2.nome_munic from municipios t1,
municipios t2 where touches(t1.the_geom,
t2.the_geom)='t' AND
t1.nome_munic='Rubim';
➢ Tempo de execução: 1149.628 ms
➢ Resultado:
­ ALMENARA
­ JACINTO
­ JEQUITINHONHA
­ SANTO ANTONIO DO JACINTO
­ FELISBURGO Fig. 2 – Municípios que não tocam o município de Rubim

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br


Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

➢ Análise: identificar todos os municípios que estão


ao redor do município de Uchoa;
➢ Query:
­ select t2.nome_munic, t2.gid from
municipios t1, municipios t2 where
touches(t1.the_geom, t2.the_geom)='t' AND
t1.nome_munic='Uchoa';
➢ Tempo de execução: 675.292 ms
➢ Resultado:
­ OLIMPIA
­ GUAPIACU
­ TABAPUA
­ CEDRAL
­ IBIRA
­ CATIGUA

Fig. 4 – Municípios que não tocam o município de Uchoa

➢ Análise: identificar todos as rodovias federais que


intersectam o município de Uchoa;
➢ Query:
­ select t2.rodovia from municipios t1, rodovias
t2 where intersects(t1.the_geom,
t2.the_geom)='t' AND
t1.nome_munic='Uchoa';
➢ Tempo de execução: 217.608 ms
➢ Resultado:
­ BR-456/SP
­ BR-456/SP
­ SP-379

Fig. 3 – Municípios que tocam o município de Uchoa

➢ Análise: identificar todos os municípios que não


estão ao redor do município de Uchoa;
➢ Query:
­ select t2.nome_munic from municipios t1,
municipios t2 where disjoint(t1.the_geom,
t2.the_geom)='t' AND
t1.nome_munic='Uchoa';
➢ Tempo de execução: 629.816 ms
➢ Resultado: o resultado desta query corresponde a
todos os municípios, com exceção dos listados na
query anterior.

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br


Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

➢ Análise: identificar todos as rodovias federais que


intersectam o município de Altamira;
➢ Query:
­ select t2.rodovia, t2.tipo from municipios t1,
rodovias t2 where intersects(t1.the_geom,
t2.the_geom)='t' AND
t1.nome_munic='Altamira';
➢ Tempo de execução: 2747.839 ms
➢ Resultado:
­ BR-163/PA
­ BR-163/PA
­ BR-163/PA
­ BR-163/PA
­ BR-230/PA
­ BR-230/PA
­ BR-158/PA
­ BR-230/PA

Fig. 5 – Rodovias que intersectam o município de Uchoa

➢ Análise: identificar todos as rodovias federais que


cruzam o município de Altamira;
➢ Query:
­ select t2.rodovia from municipios t1, rodovias
t2 where crosses(t1.the_geom,
t2.the_geom)='t' AND
t1.nome_munic='Altamira';
➢ Tempo de execução: 2682.713 ms
➢ Resultado:
­ BR-163/PA
­ BR-163/PA
­ BR-163/PA
­ BR-230/PA
­ BR-230/PA

Fig. 6 – Rodovias que intersectam o município de Altamira

➢ Análise: identificar todas as rodovias federais que


estão contidas no município de Altamira,
utilizando a função within;
➢ Query:
­ select t2.rodovia, t2.tipo from municipios t1,
rodovias t2 where within(t2.the_geom,
t1.the_geom)='t' AND
t1.nome_munic='Altamira';
➢ Tempo de execução: 2463.775 ms
➢ Resultado:
­ BR-163/PA
­ BR-230/PA
­ BR-158/PA

Fig. 5 – Rodovias que cruzam o município de Altamira

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br


Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo OpenGEO

O maior tempo de consulta não chegou a 3


segundos num computador com valor inferior a R$
3.000,00. Nenhum software proprietário foi utilizado para a
implementação desta solução, ou seja, o hardware seria o
único custo, além da capacitação, que uma instituição teria
para possuir o seu próprio Banco de Dados Geográfico.
Apesar disso, os órgãos de mapeamento oficial do país e a
grande maioria das instituições públicas continuam com os
investimentos voltados para uma arquitetura proprietária
com soluções, normalmente, americanas, comprando uma
estrutura cada vez mais dependente de empresas
estrangeiras e com alto custo de manutenção.

O PostgreSQL já está consagrado no mundo do


software livre sendo utilizado por grandes instituições como
a Câmara Municipal do Rio de Janeiro, a Prefeitura de
Diadema - SP, a Prefeitura de Pedras Grandes - SP, o
Hospital São Lucas (SE), a Secretaria da Agricultura e
Pecuária - CE, a Unisuam - RJ, a Telemar, etc. Porém, na
área de Geotecnologias, o seu potencial ainda é pouco
Fig. 7 – Rodovias que estão contidas no município de aproveitado, devido a falta de conhecimento dos
Altamira profissionais da área com relação às novas tecnologias
livres. Outro fator que tem dificultado o avanço deste
➢ Análise: identificar todas as rodovias federais que SGBD é a fomação acadêmica baseada em soluções
estão contidas no município de Altamira, proprietárias, tendo em vista que a grande maioria dos
utilizando a função contains; professores ainda preferem seguir a linha tracional de
➢ Query: ensino, direcionando o aprendizado para pacotes
­ select t2.rodovia, t2.tipo from municipios t1, consolidados no mercado.
rodovias t2 where contains(t1.the_geom,
t2.the_geom)='t' AND Espera-se que este trabalho possa chamar a
t1.nome_munic='Altamira'; atenção de professores, estudantes e profissionais da área de
➢ Tempo de execução: 2801.005 ms Geotecnologias para as mudanças tecnológias que estão
➢ Resultado: ocorrendo com a disponiblização de opções livres para toda
­ BR-163/PA a comunidade mundial.
­ BR-230/PA
­ BR-158/PA 5 REFERÊNCIAS BIBLIOGRÁFICAS

Como era de se esperar, as duas últimas análises Douglas, K; Douglas, S, 2003, PostgreSQL – A
apresentam resultados exatamente iguais, com comprehensive guide to building, programming and
performances também similares. administering PostgreSQL databases, Sams Publishing,
Indiana, USA, 790 páginas.
4 CONCLUSÃO
Site Oficial do PsotgreSQL, http://www.postgresql.org
Os testes conduzidos neste trabalho apresentam o
PostgreSQL/PostGIS como uma robusta opção para Site Oficial do MapServer, http://mapserver.gis.umn.edu
implementações de SIG corporativo. Outro fator
importante a destacar, é a flexibilidade do PostgreSQL no Site Oficial do PostGIS, http://www.postgis.org
desenvolvimento de novos módulos.

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Você também pode gostar