Você está na página 1de 4

Universidade Federal de Mato Grosso Instituto Universitrio do Araguaia a Departamento de Matemtica a

Bacharelado em Cincia da Computaao e c

Instalando banco de dados geogrco: PostGre SQL 8 e a extenso geogrca PostGis 1.11 a a
Autor: Ivairton Monteiro Santos

Introduo ca

Boa parte dos Sistemas de Informaao Geogrca (SIG) desenvolvidos atualmente utilizam a arquitetura c a baseada em arquivos e diretrios, essa arquitetura diculta a segurana, a administraao, a atualizaao o c c c e o controle desses sistemas. Com o crescimento cont nuo do volume de informaoes e o desenvolvimento de sistemas distribu c dos e em ambiente web, tem levado ` utilizaao da tecnologia baseada em Banco de Dados Geogrcos a c a (BDG), apresentando-se como a melhor forma de desenvolver sistemas e administrar ecientemente e de maneira segura um grande volume de dados geogrcos. a Alm das opoes de BDGs proprietrios, como o Oracletm Spatial, temos ` disposiao opoes de e c a a c c cdigo aberto, como o caso do PostGre SQL2 e sua extenso espacial PostGIS3 . O PostGre um Siso e a e tema Gerenciador de Bando Dados (SGBD) de cdigo aberto que conta com recursos como: consultas o complexas, chaves estrangeiras, integridade transacional, controle de concorrncia, triggers, views, stored e procedures. Pelas suas caracter sticas e potencialidades, tem sido amplamente aceito e empregado pela comunidade de desenvolvedores de sistemas que buscam por uma soluao de cdigo aberto (software c o livre). A extenso espacial PostGIS foi desenvolvida pela empresa Refractions e licenciada livremente a e para a comunidade de software livre, essa extenso tem a funao de permitir o armazenamento e traa c tamento de dados geogrcos no SGBD PostGre. O desenvolvimento da PostGIS obedece aos padres a o OpenGIS4 , que consiste em um conjunto de padres denidos por uma organizaao voluntria. o c a O uso do PostGre e sua extenso PostGIS, uma soluao de geoprocessamento robusta, com alta a e c performance, baixo custo e que possibilita a integraao com outros SIGs que utilizam o padro denido c a pelo consrcio OpenGIS. o

Vantagens em utilizar o PostGIS

O PostGre SQL suporta geometrias espaciais, porm a extenso PostGIS adiciona entidades geogrcas e a a ao SGBD. Ou seja, o PostGIS adiciona a capacidade de armazenamento e recuperaao de dados espaciais c segundo a especicaao Simple Features Specication (SFS) do consrcio internacional Open GeoSpatial c o (OGC). Alm do armazenamento de dados geogrcos, este mdulo tambm implementa diversas funcie a o e onalidades topolgicas, possibilitando um desenvolvimento de SIGs mais prtico, garantindo ainda, o a interoperabilidade com outros sistemas computacionais que tambm adotam o SFS. e O PostGIS possui ` disposiao funoes para anlise espaciais/topolgicas que estendem a funcionaa c c a o lidade do SGBD, atravs do prprio SQL. Entre as principais funoes, pode-se destacar: e o c Disjoint : analisa se duas geometrias possuem algum ponto em comum e retorna o valor verdadeiro se algum ponto for identicado; Intersects: analisa se duas geometrias possuem alguma interseao e retorna verdadeiro caso isso c ocorra; Touches: analisa se duas geometrias possuem alguma interseao e retorna verdadeiro caso isso c ocorra; Crosses: analisa se duas geometrias se cruzam e retorna verdadeiro caso isso ocorra;
1 Publicado

em agosto de 2007.

2 http://www.postgresql.org/ 3 http://postgis.refractions.net/ 4 http://www.opengeospatial.org/

Within: analisa se uma geometria est contida na outra e retorna verdadeiro caso isso ocorra; a Contains: analisa se uma geometria contm a outra e retorna verdadeiro caso isso ocorra. e Um exemplo de query SQL que utiliza uma dessas funoes seria: c SELECT t2.nome munic FROM municipios t1, municipios t2 WHERE TOUCHES(t1.the geom, t2.the geom)=true AND a t1.nome munic=Cuiab; No exemplo, ocorre uma seleao dos munic c pios que tocam a cidade Cuiab. a

A instalao ca

Este documento ir descreve a instalaao dos softwares em ambiente Linux, utilizando a distribuiao a c c SUSE 10.1. Antes da instalaao do SGBD PostGre e da extenso PostGIS conveniente instalar algumas c a e bibliotecas que iro incrementar a ecincia do sistema. a e

3.1

Projees cartogrcas co a

O processo de sistematicamente transformar partes da Terra, que possui forma esfrica, para que see jam representadas em uma superf cie plana mantendo as relaoes espaciais chamado de Projeao c e c Cartogrca. a Esse processo obtido pelo uso de Geometria e frmulas matemticas. A correspondncia entre os e o a e pontos da superf cies terrestre e a sua representaao, constitui o problema fundamental da cartograa, c pois impossibilita uma soluao perfeita, ou seja, uma projeao livre de deformaoes. c c c Tentando minimizar as distoroes, diferentes tcnicas de representaao so aplicadas no sentido de c e c a se alcanar resultados que possuam propriedades favorveis para um propsito espec c a o co, um exemplo de projeao seria o padro UTM. c a Para tratar essa questo, ser utilizada a Cartographic Projections Library 5 , uma biblioteca de a a projeoes cartogrcas, necessria para que o BDG possa projetar em um mesmo mapa diferentes c a a camadas de dados com diferentes projeoes. c Para instalar a biblioteca, basta acessar o site do desenvolvedor baixar a ultima verso estvel e a a proceder com a instalaao. Neste trabalho, baixou-se a verso compilada em pacote RPM e foi executado c a o comando (como root): # rpm -ivh proj-xxxxxx.rpm

3.2

Anlise espacial a

Ao utilizar um BDG, um dos objetivos que se tem ter a capacidade de realizar anlises espaciais e a atravs do prprio banco. Ou seja, por exemplo, espera-se que seja poss e o vel determinar intersecoes c entre elementos espaciais de camadas diferentes, armazenadas no BDG. Um exemplo prtico seria, a efetuar uma consulta no banco buscando por todas as farmcias contidas no bairro Bosque. A resposta a ser o cruzamento entre as informaoes da rea do bairro e dos pontos onde existem farmcias. a c a a H vrias funoes desse tipo e a biblioteca GEOS6 , alm de ser compat com o consrcio OpenGIS, a a c e vel o implementa vrias delas no PostGIS. Entre as funoes dispon a c veis pode-se listar: crosses, touches, overlaps, relate, boundary, buer. Para instalar a biblioteca, basta acessar o site e baixar a ultima verso estvel e proceder com a a a instalaao. Neste trabalho, bastou descompactar o arquivo de instalaao e executar os comandos: c c $ ./configure $ make # make install (como root)

3.3

Banco de dados PostGre SQL

Para instalar o banco de dados baixe a ultima verso estvel dispon no site. Descompacte o arquivo a a vel com o comando: $ tar -zxvf postgresql-xxxxxx.tar.gz
5 http://www.remotesensing.org/proj/ 6 http://geos.refractions.net/

Execute o comando $ ./configure (no diretrio onde o BD foi descompactado) e verique se o comando o nalizado com sucesso, caso seja necessrio resolva as dependncias de bibliotecas. Na seq encia exee a e u cute os comandos: $ make (compila) # make install (instala os arquivos do banco no sistema) # adduser postgres (cria o usurio postgres) a # mkdir /usr/local/pgsql/data (cria o diretrio onde os dados dos bancos de dados ser~o o a gravados) # chown postgres /usr/local/pgsql/data (define como dono do diretrio data o usurio o a postgres) # su - postgres (loga como usurio postgres) a # /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data (inicializa o diretrio de dados) o # /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & (inicializa o banco de dados) Para automatizar a inicializaao do PostGre copie o script shell presente no diretrio fonte do banco c o de dados a partir do caminho: ~ /postgresql-xxxxx/contrib/start-scripts/linux para o diretrio o /etc/init.d/postgresql. Congure o arquivo para permisso de execuao com o comando: # chmod a c +x /etc/init.d/postgresql. Por m, crie um link para o script no rc correspondente ` inicializaao a c do sistema, ou se preferir utilize o comando: updaterc.d postgresql defaults.

3.4

Extenso PostGIS a

Para instalar a extenso PostGIS, baixe a ultima verso estvel dispon a a a vel no site. Descompacte o arquivo com o comando: $ tar -zxvf postgis-xxxxx.tar.gz Lembre-se que o PostGre deve estar em execuao, ento, dentro do diretrio onde o PostGIS foi c a o descompactado execute os comandos: $ ./configure $ make # make install A extenso est instalada. O prximo passo criar um banco de dados espacial. a a o e

Inicializando um BDG

Ao criar um banco de dados no PostGre necessrio habilita-lo para armazenar e consultar dados gee a ogrcos. E conveniente que seja criado um usurio com permisso de acesso aos dados geogrcos: a a a a # su postgres (loga como usurio do banco) a $ createuser usuariosig (cria usurio que ter permiss~o para acesso ao BDG) a a a $ createdb bdsig -U usuariosig (cria um banco de dados bdsig em que o proprietrio a seja o usuriosig) a Para permitir acentos use a codicaao latina acrescentando ao comando de criaao do banco o parmetro: c c a -E latin1. O banco de dados bdsig ainda no capaz de tratar os dados geogrcos, necessrio adicionar a e a e a as funoes do PostGIS ao banco: c $ createlang plpgsql bdsig (faz com que o banco seja capaz de interpretar a linguagem de programa~o PL SQL) ca $ psql -f lwpostgis.sql -d bdsig (Carrega o conjunto de fun~es (stored procedures) co programada no arquivo sql para o banco) O arquivo lwpostgis.sql est no diretrio /usr/loca/pgsql/share/contrib. Aps esses comana o o dos, o banco est pronto para trabalhar com dados espaciais. Antes de utilizar o banco, recomendvel a e a utilizar o comando: $ vacuumdb -z bdsig. Este comando responsvel por limpar e analisar uma e a base de dados no PostGre, a opao -z executa uma funao de otimizaao que ir acelerar as consultas c c c a na base de dados. Resta como prxima etapa, fazer uso do BDG. o

Carregando dados geogrcos no BDG a

Para carregar os dados de um shape no PostGIS dever ser utilizado o aplicativo shp2pgsql, este aplicativo a responsvel por interpretar os dados de um shape, gerar a estrutura da tabela no banco e efetuar a e a inserao dos registros na tabela. Para obter maiores detalhes das funoes deste aplicativo, execute o c c comando com o parmetro de ajuda: $ shp2pgsql --help. a Para inserir um shape h dois mtodos, o primeiro executa a inserao diretamente no banco e a e c o segundo gera um arquivo SQL, que a partir dele insere os dados no banco de dados. Apesar do segundo mtodo parecer menos eciente ele interessante pois possibilita vericar o cdigo SQL que e e o ser executado, permitindo uma reviso e anlise. a a a Para inserir os dados direto no banco de dados, podemos utilizar o comando: $ shp2pgsql -c shp bairros bairros | psql -d bdsig -U usuariosig No comando acima, o aplicativo shp2pgsql gera a tabela bairros a partir do shape shp bairros, o resultado desse processamento ser repassado ao aplicativo psql que acessa o banco bdsig utilizando a o usurio usuariosig. a Na inserao com a geraao do arquivo SQL, os comandos a serem utilizados so: c c a $ shp2pgsql -c -D shp bairros bairros > arquivo.sql $ psql -d bdsig -U usuariosig -f arquivo.sql No comando acima, o processamento do comando shp2pgsql armazenado em arquivo, que pode ser e visualizado com qualquer editor de texto. Na seqencia, o arquivo carregado para o banco bdsig u e com acesso atravs do usurio usuariosig. e a

Acessando os dados no PostGIS

Nesse ponto, os dados j esto armazenados no banco de dados e podem ser acessados por qualquer a a aplicativo SIG que possa se conectar ao banco. Por exemplo, pode ser utilizado o aplicativo UDIG7 ou o QuantumSIG8 , ambos possuem a funcionalidade de se conectar ao PostGIS.

Referncias Bibliogrcas e a

UCHOA, H.N., COUTINHO, R.J.C, FERREIRA, P.R., COELHO FILHO, L.C.T., BRITO, J.L.N.S., Anlise do mdulo PostGis para armazenamento e tratamento de dados geogrcos com alta performance a o a e baixo custo, OpenGeo. Dispon em www.opengeo.com.br. vel

7 http://udig.refractions.net/ 8 http://www.qgis.org/

Você também pode gostar