Você está na página 1de 17

Banco de Dados Geogr cos a

Daniel Cason1 , Luiz Ot vio Ramos Gavaza1 , Rodrigo Almeida de Amorim1 a Departamento de Ci ncia da Computacao e Universidade Federal da Bahia (UFBa) Av. Adhemar de Barros s/n, Campus de Ondina
{cason,gavaza,amorim}@dcc.ufba.br
1

Abstract. This article treats of an special database, spatial databases are characterized by the organization of their data in special structures, that are able to store information about time-space of several phenomena and provide tools to make queries and handle stored data. Pratical examples are presented to show the advantages of handling spatial information with this kind of database. Resumo. Este artigo trata de um tipo especial de banco de dados, os Banco de Dados Geogr cos. Estes se caracterizam por organizar seus dados em esa truturas especiais, capazes de armazenar informacoes referentes a ocorr ncia e ` espaco-temporal de diversos fen menos e de fornecer um conjunto de ferra o mentas para realizar consultas e o manuseio dos dados armazenados. Exemplos pr ticos s o apresentados com o intuito de constatar a vantagem destas a a solucoes perante os bancos de dados comuns, quando lida-se com informacoes georreferenciadas.

1. Introducao
O Sistema de Informacoes Geogr cas (SIG) e um conjunto de aplicativos capazes de a lidar computacionalmente com dados georreferenciados, que s o aqueles aos quais est o a a associadas informacoes geogr cas, tais como a codicacao da sua localizacao espacial e a do tempo de observacao. Um SIG se diferencia dos sistemas de informacao1 tradicionais por ser capaz de armazenar n o s os atributos descritivos das entidades, mas tamb m os dados espaciais a o e ` associados a sua ocorr ncia[C mara 2005]. Assim, por exemplo, no cadastro de um rio, e a um SIG armazena suas informacoes descritivas, como vaz o, condicoes de navegabili a dade, extens o, auentes etc. al m das coordenadas dos limites do rio. a e A principal vantagem dos SIGs e a capacidade de armazenar e integrar numa unica base de dados informacoes relativas a v rios aspectos do espaco geogr co. Assim, dados a a provindos de diversos recenseamentos, de cadastros de moradores, im veis, propriedades o podem ser armazenados conjuntamente com dados relativos ao relevo, vegetacao, hidro graa da mesma regi o e todos estes dados podem ter suas coordenadas associadas a a posicoes em mapas ou imagens de sat lite, que tamb m estar o armazenadas no SIG. e e a Al m de centralizar o armazenamento de v rios dados distintos, os SIGs possie a bilitam que o usu rio combine as v rias informacoes armazenadas. Assim, e possvel a a
Sistema computacional respons vel por coletar, processar, transmitir e disseminar dados que represena tam informacao para o usu rio. a
1

buscar todos os dados associados a uma determinada regi o do espaco ou a ocorr ncia a e (localizacao geogr ca e temporal) de determinada informacao. a Visto a imensa quantidade de informacoes que estes sistemas armazenam, eles sempre foram de interesse de entidades governamentais, al m de empresas que tamb m e e tem interesse de realizar planejamento estrat gico. Por exemplo, no estado da Bahia, a e Companhia de Desenvolvimento Urbano (CONDER) mant m uma Ger ncia de Geoproe e a cessamento (GEOP) que e respons vel por fornecer aos org os p blicos e ao p blico em a u u geral recursos cartogr cos e informacoes georrefenciadas (localizacao de ruas, edifcios a p blicos etc.). u Com o advento da World Wide Web e sua popularizacao, tornou-se simples e f cil a disponibilizar ao p blico dados armazenados em um SIG. Portais como o GoogleM aps R , u LiveM aps R ou o pr prio INFORMS, mantido pela CONDER, disponibilizam on-line o servicos de pesquisa e visualizacao de mapas e fotos de sat lite. Al m de mostrar os e e mapas, estes sistemas permitem realizar operacoes como c lculo de dist ncias, c lculo de a a a areas, buscas por nomes de localidades, edifcios comerciais etc., que s o exemplos de a buscas possveis de se fazer em um SIG. Outros ainda permitem a marcacao de pontos ou delimitacao de areas e a sua associacao a uma entidade (comercial, empresa, local de ` interesse pessoal etc.), o que se reete em uma escrita em um SIG. Este artigo est organizado na seguinte forma: a pr xima secao diferencia as a o solucoes SIG que utilizam banco de dados relacionais (2.1) e as que utilizam Banco de Dados Geogr cos (BDG) (2.2); a secao 3 trata dos tipos e operacoes especiais providas a por um BDG; na secao 4 s o mostrados exemplos de uso de uma extens o do SQL para a a dados georreferenciados; a secao 5 relaciona v rias solucoes existentes no mercado para a armazenamento de dados geogr cos; e, nalmente, a secao 6 conclui o trabalho com as a consideracoes nais.

2. Banco de Dados Geogr cos a


Os dados de um SIG est o logicamente organizados em planos de informacao, tamb m a e conhecidos como nveis ou camadas. Cada plano cont m informacoes referentes a um e unico tipo de dados, tal como formacao geol gica, divis o poltica, hidrograa etc. Todos o a estes dados de diferentes planos est o necessariamente associados a objetos geogr cos a a que determinam sua localizacao fsico-temporal. Durante anos, as implementacoes de SIGs seguiram diferentes arquiteturas, distinguindo-se principalmente pela estrat gia adotada para armazenar e recuperar tais e dados. Tal estrat gia est intimamente ligada com o Sistema Gerenciador de Banco de e a Dados2 (SGBD) empregado pela solucao. Se o SIG segue uma arquitetura dual (gura 1), as componentes espaciais e convencionais dos objetos representados s o armazenadas separadamente. J na arquitetura a a integrada (gura 2), as duas componentes s o armazenadas em um mesmo SGBD. a
Conjunto de programas respons veis por gerenciar com eci ncia dados computacionais, fornecendo a e ` operacionalidades de controle de acesso, seguranca, replicacao, sincronizacao, atualizacao e acesso as informacoes.
2

Figura 1. Arquitetura dual

Figura 2. Arquitetura integrada

2.1. Arquitetura dual Nesta arquitetura, as componentes convencionais (tamb m chamadas de descritivas ou e alfanum ricas) s o armazenadas em um SGBD Relacional3 . Cada nvel e representado e a por uma tabela, cujos campos cont m, al m das informacoes do fen meno modelado, ree e o ` fer ncias aos objetos geogr cos associados a sua ocorr ncia. Tais objetos, armazenados e a e em arquivos com formato propriet rio, possuem identicadores unicos, que s o referena a ciados nas tabelas do banco. Desta forma, para armazenar dados relativos ao estado da Bahia, mantemos uma s rie de mapas armazenados no sistema de arquivos. Cada nvel de informacao inserido e ser uma tabela no banco de dados, cujas linhas cont m refer ncias ao mapa e a posicao a e e ` dentro do mapa associada a ocorr ncia do fen meno modelado. e o Esta foi a abordagem empregada nas primeiras geracoes de SIGs e pode ser en contrada em solucoes como o SPRING, ArcView, IDRISI. A sua principal vantagem e a simplicidade na elaboracao dos esquemas, associada ao largo uso dos bancos de dados relacionais. Por outro lado, com apenas uma das componentes armazenadas no banco, a manutencao da consist ncia dos dados torna-se um desao, visto que ela passa a ser res e ponsabilidade da aplicacao. Al m do mais a SQL n o possui suporte a consultas espaciais, sendo papel do e a programador traduzir estas consultas para buscas em tabelas e em arquivos, degradando a eci ncia do sistema. e Al m disto, os dados geogr cos possuem aspectos peculiares, como a e a codicacao da localizacao espacial, do tempo e da precis o de sua observacao, que s o a a difceis de serem modelados na aus ncia de recursos especcos[Borges et al. 2005]. e 2.2. Arquitetura integrada A arquitetura integrada, por sua vez, realiza armazenamento da componente descritiva e da componente geogr ca em um mesmo SGBD. Isto s se torna possvel com a adocao a o de SGBDs Objeto Relacionais (SGDB-OR), que s o extens es de SGDBs Relacionais a o
SGBD que organiza os dados como uma colecao de relacoes, cada qual com atributos de um tipo especco.
3

que permitem a denicao de tipos complexos de dados, assim como funcoes para a manipulacao dos mesmos. Desta forma, os nveis de dados s o representados por tabelas a que possuem campos especiais que armazenam a informacao espacial associada. Este ar mazenamento pode ser feito atrav s do tipo Binary Large Object4 (BLOB) ou atrav s de e e uma refer ncia a dados de tipos especiais denominados extens es espaciais. e o Desta forma, o conceito de Banco de Dados Geogr cos (BDG) se refere a a SGBD-ORs que possuem nativamente abstracoes para representar objetos (pontos, re tas, polgonos etc.) e funcoes geom tricas (como dist ncia, area, permetro, interseccao e a entre objetos etc.) especcos para a manipulacao de dados geogr cos. a Uma grande vantagem destas solucoes e o controle da integridade dos dados sendo realizado dentro do banco, o que possibilita aplicacoes com maior complexidade, sem grandes perdas de desempenho. Por outro lado, a exist ncia de extens es especiais possibilita modelos mais e o adequados, com sem ntica mais pr xima a dos dados geogr cos, al m de facilitar a o a e a realizacao de consultas e atualizacoes, visto a presenca de funcoes geom tricas es e peccas[Borges et al. 2005]. Apesar das vantagens deste modelo, os BDGs demoraram bastante para serem ` adotados. Isto se deve a complexidade de representar e manipular dados geogr cos, a que exigiu desenvolvimentos adicionais da tecnologia SGBD-OR. Hoje, por m, os Banco e de Dados Geogr cos s o os pontos centrais dos SIGs, sendo utilizados em conhecidos a a produtos comerciais, como o Oracle Spatial [Murrray 2003], que e uma extens o para o a R OracleEnterpriseEdition e no PostGIS [OGC 1996], que e uma extens o do Posta greSQL. As pr ximas secoes detalham os recursos fornecidos pelos Banco de Dados o Geogr cos, ou seja, os tipos e operacoes especiais empregados no tratamento de a informacoes georreferenciadas e as linguagens especcas de denicao, manipulacao e consulta de dados.

3. Tipos e operacoes espaciais


` Devido a especicidade das informacoes armazenadas, os BDGs possuem tipos especiais de dados, conhecidos como tipos espaciais. Eles possibilitam uma representacao mais ` pr xima a realidade dos objetos que comp em as componentes geogr cas dos dados, o o a ` tendo tipos relacionados a guras geom tricas de v rias dimens es (espaciais e tempoe a o rais), pontos, retas etc. Visto as muitas possibilidades de representar tais tipos, a Open Geoscience Con sortium (OGC)5 elaborou um padr o que e seguido pela maioria das implementacoes a existentes e que ser utilizado no decorrer do texto. a Segundo o padr o, a representacao destes tipos espaciais pode ser feita de duas a maneiras: de forma textual ou de forma bin ria. A representacao textual e mais adequada a
E uma colecao de dados bin rios armazenados em uma simples entidade em um SGBD. Tipicamente a BLOBs armazenam imagens, arquivos de audio ou multimdia. 5 Organizacao sem ns lucrativos que tem por objetivo realizar a padronizacao no processamento de dados geoespaciais.
4

para a compreens o humana e e unicada pelo padr o OGC. Por outro lado, a codicacao a a bin ria e mais adequada para o armazenamento computacional de informacoes, podendo a ser diferenciada a depender da solucao empregada. Para contornar este problema, a OGC dene as funcoes GeomF romT ext(text, SRID) e GeomF romW KB(byteW KB, SRID)6 , que traduzem os nomes de tipos (detalhados abaixo) para a representacao do BDG utilizado e vice-versa. O PostGIS, por exemplo, implementa o seguinte subconjunto dos tipos espaciais especicados pela OGC: POINT: Dene um ponto em uma determinada localizacao e dimens o. a ` LINESTRING: Dene uma linha baseada em um conjunto de pontos, pertencentes a uma mesma dimens o. a ` POLYGON: Dene um polgono baseado em diversos pontos pertencentes a uma mesma dimens o. a GEOMETRYCOLLECTION: Dene uma colecao de diversas geometrias, ou seja, de qualquer tipo especial denido. CIRCULARSTRING: Dene uma regi o circular. a Para todos os tipos espaciais acima, existe um tipo com prexo MULTI, que faz com que um conjunto de cada um destes tipos espaciais sejam denidos de uma unica vez. Por exemplo, o MULTIPOINT dene uma lista de pontos ao inv s de um ponto s . e o 3.1. Operacoes espaciais Para lidar com estes tipos e denida uma s rie de operacoes para sua manipulacao. Estas e operacoes, chamadas operacoes espaciais, se baseiam em relacionamentos topol gicos, o direcionais e m tricos. Segundo [RIGAUX et al. 2002], elas podem ser classicadas e como: Operacao un ria booleana: Realiza o mapeamento das componentes espaciais em va a lores booleanos. Como por exemplo, tem-se o operador Convex que testa se uma determinada componente e convexa ou n o. a Operacao un ria escalar: Realiza o mapeamento das componentes espaciais em valores a escalares. Como por exemplo, tem-se o operador Area que calcula a area de uma determinada componente. Operacao un ria espacial: Realiza o mapeamento das componentes espaciais em outras a componentes. Como por exemplo, tem-se o operador MBR que retorna o mnimo ret ngulo que envolve uma componente espacial e o operador Buffer que retorna a uma faixa da periferia ao redor da componente passada. Operacao bin ria booleana: Realiza o mapeamento de pares de componentes espaci a ais em valores booleanos. Como por exemplo, tem-se o operador Intersects que recebe como par metros duas componentes espaciais e retorna a presenca de a interseccao entre elas. Operacao bin ria escalar: Realiza o mapeamento de componentes espaciais em valores a escalares. Como por exemplo, tem-se o operador Distance que retorna a dist ncia a entre duas geometrias.
6

WKB e a sigla para Well Known Binary.

Operacao bin ria espacial: Realiza o mapeamento de componentes espaciais em ou a tras. Como por exemplo, o operador Union cria uma nova componente espacial baseada na uni o de outras duas. a Operacao n- ria espacial: Realiza o mapeamento de n-tuplas de componentes espaciais a em outras componentes. Como por exemplo, o operador ConvexHull que retorna a envolt ria convexa que das componentes passadas como par metro. o a

4. Linguagens de manipulacao de dados georreferenciados


Na d cada de 90 surgiram v rias propostas no objetivo de se estender a SQL-89 para e a acomodar consultas espaciais. Destacam-se as linguagens SF-SQL [OGC 1996] e a SpatialSQL [EGENHOFER 1994], que apresentam abordagens diferentes para a resolucao do mesmo problema. A SF-SQL possui tabelas de meta-dados que armazenam as componentes espaciais e os tipos espaciais utilizados na manipulacao destas, al m de contar com um conjunto e de tipos de geometrias vetoriais, operacoes topol gicas e operacoes m tricas. o e J a SpatialSQL realiza uma separacao entre o modo como os dados s o consula a tados e recuperados. Esta separacao e realizada com a denicao de duas linguagens, uma para consultar dados e outra para representacao de objetos espaciais. Esta divis o foi a realizada objetivando aproximar-se da forma como os seres humanos conceitualizam o espaco geogr co. a Com o objetivo de demonstrar o funcionamento de uma destas extens es da SQL, o ser utilizado um exemplo implementado sobre o PostGIS, mostrando o uso da SF-SQL. a O exemplo codica dois nveis de dados: os bairros da cidade de Salvador e a cobertura fornecida por antenas de celular espalhadas pela cidade. Este cen rio e ilustrado na gura a 3.

Figura 3. Bairros de Salvador e cobertura forncecida por duas operadoras

4.1. Denicao de dados Para a criacao das tabelas no banco de dados, o PostGIS possui duas tabelas especi ais de meta-dados: a SPATIAL REF SYS, que carrega os identicadores num ricos e e descricoes textuais do sistema de coordenadas no banco de dados espacial e a GEOME TRY COLUMNS, que tem o papel de armazenar as componentes espaciais, como ilustrado na gura 4.

Figura 4. Estrutura da SF-SQL

A criacao das tabelas e feita em duas etapas. Na primeira, cria-se uma tabela com as componentes descritivas, ou seja, os dados sem os objetos espaciais relacionados.
Codigo 1. Criacao de Tabelas CREATE TABLE "Bairro" ( "ID" i n t e g e r NOT NULL DEFAULT n e x t v a l ( seq_bairro : : r e g c l a s s ) , "NOME" c h a r a c t e r ( 2 0 ) NOT NULL, CONSTRAINT "Bairro_pk" PRIMARY KEY ( "ID" ) )

Com o c digo 1 e criada uma tabela chamada Bairro que possui os campos ID, o que representa a identicacao do bairro, vinda de uma seq encia chamada seq bairro e u Nome, que e uma string com o nome do bairro. ` O pr ximo passo e criar os atributos espaciais associados a esta tabela. O bairro o e representado por um polgono que, como j mencionado, e armazenado em uma tabela a especial fornecida pelo pr prio PostGIS. O c digo 2 exibe o prot tipo da funcao para o o o ` adicao destes atributos a tabela.
Codigo 2. Prototipo da funcao AddGeometryColumn ( <t a b e l a >, <c o l u n a >, <s r i d >, <t i p o >, <dimensao >)

cujos atributos s o: a tabela: nome da tabela onde ser adicionada uma componente espacial. a coluna: nome da coluna que armazena a componente espacial. srid: especica o sistema de refer ncia espacial usado para aquela componente espacial. e Em outras palavras, e uma chave estrangeira para a tabela SPATIAL REF SYS.

tipo: dene a qual dos tipos espaciais providos pelo banco de dados aquele componente representa. dimens o: uma componente pode ser bi, tri ou quadri-dimensional. a Assim, no exemplo em quest o utiliza-se o c digo 3 para criar um campo espacial a o chamado Dimens o na tabela Bairro: a
Codigo 3. Criacao do campo espacial Dimensao representado por um polgono SELECT AddGeometryColumn ( Bairro , DIMENSAO , 1, POLYGON , 2 ) ;

O mesmo procedimento e utilizado para as antenas: cria-se uma tabela no SGDB Relacional com os dados de cada uma delas e adiciona-se objetos que representam suas caractersticas espaciais (no caso, a localizacao e a area de cobertura).
Codigo 4. Criacao da tabela Antena, juntamente com as colunas espaciais CREATE TABLE "Antena" ( "ID" i n t e g e r NOT NULL DEFAULT n e x t v a l ( seq_antena : : r e g c l a s s ) , "Localizacao" c h a r a c t e r ( 2 0 ) NOT NULL, "Operadora" c h a r a c t e r ( 2 0 ) NOT NULL, CONSTRAINT "Antena_pkey" PRIMARY KEY ( "ID" ) ) SELECT AddGeometryColumn ( Antena , COORD , 1, POINT , 2 ) ; SELECT AddGeometryColumn ( Antena , COBERTURA , 1, POLYGON , 2 ) ;

As guras 5 e 6 representam gracamente os componentes espaciais criados para execucao do exemplo.

Figura 5. Polgono que repre senta o bairro.

Figura 6. Area de cobertura da antena.

E interessante notar as vantagens da abordagem utilizada pelo PostGIS. Primeiramente, as componentes descritivas podem ser migradas de outros SGDB Relacionais com facilidade, sendo necess ria somente a insercao das componentes espaciais. Estas, por a sua vez, possuem um formato bastante intuitivo, utilizando-se de termos geom tricos coe muns e de funcoes que permitem associar diversas componentes, gerando formatos mais complexos. 4.2. Manipulacao dos dados Uma vez criada as tabelas com seus respectivos componentes espaciais, parte-se para a insercao dos dados. A sintaxe para insercao de dados segue a mesma especicacao dos banco de dados relacionais, conforme o c digo 5. o

Codigo 5. Prototipo para insercao de dados em uma tabela INSERT INTO <t a b e l a > (< c o l u n a 1>,< c o l u n a 2 > , . . . , < c o l u n a n> ) VALUES (< v a l o r 1>,< v a l o r 2 > , . . . , < v a l o r n>) ;

No c digo 6 tem-se um exemplo onde s o inseridos dados nas tabelas Bairro e o a Antena. Percebe-se que os objetos da componente espacial s o passados na insercao como a sendo um dos campos da tabela, mesmo sendo tipos espaciais e sendo armazenados em estruturas especiais. Como estes tipos s o armazenados no seu formato bin rio especco, a a usa-se uma funcao que recebe uma declaracao textual do tipo, retornando as informacoes o especca da aplicacao. passadas na representaca
Codigo 6. Insercao de dados nas tabelas criadas. INSERT INTO "Bairro" ( "NOME" , "DIMENSAO" ) VALUES ( Barra , GeomFromText ( POLYGON((344 470, 315 411, 341 376, 372 414,344 470)) , 1) ) ; INSERT INTO "Bairro" ( "NOME" , "DIMENSAO" ) VALUES ( Cidade Baixa , GeomFromText ( POLYGON((315 411, 272 332, 297 290, 320 335, 341 376, 315 411)) , 1) ) ; INSERT INTO "Antena" ( "LOCALIZACAO" , "OPERADORA" , "COORD" , "COBERTURA" ) VALUES ( Iguatemi , A , GeomFromText ( POINT((312 296)) , 1) , GeomFromText ( POLYGON((310 368, 218 319, 326 181, 462 307, 310 368)) , 1) ) ; INSERT INTO "Antena" ( "LOCALIZACAO" , "OPERADORA" , "COORD" , "COBERTURA" ) VALUES ( Lauro de Freitas , B , GeomFromText ( POINT((321 30)) , 1) , GeomFromText ( POLYGON((419 114, 444 0, 251 0, 170 80, 419 114)) , 1) ) ;

Assim como em um banco de dados tradicional, o BDG realiza as checagens de integridade, garantindo que o tipo passado (retornado pela funcao GeomFromText) seja compatvel com o declarado para aquele campo. Estas, por sua vez, podem checar aspec tos espaciais, utilizando as funcoes espaciais para garantir, por exemplo, que duas antenas n o tenham a mesma localizacao, que n o haja mais que k antenas num mesmo bairro etc. a a 4.3. Construcao de ndices A criacao de ndices tem como objetivo incrementar a e ncia das consultas. Em um e BDG, na aus ncia de ndices, todas as buscas por caractersticas espaciais deveriam ser e realizadas atrav s de uma busca sequencial em todos os registros da base. Isto faria com e que seu funcionamento se assemelhasse ao de um Banco Relacional munido de campos especcos para armazenar coordenadas e outros dados geom tricos, o que n o justicaria e a a adocao de um BDG em detrimento de solucoes que utilizassem a arquitetura dual (vide secao 2.1). Em um BDG, al m de ndices em B-Tree [Bayer and McCreight 1972], muito e utilizados por outros bancos de dados e assim, empregados na indexacao de dados literais (n meros, letras, datas etc.), tem-se tamb m ndices em R-Tree [Guttman 1984]. u e

A R-Tree sintaticamente possui as mesmas caractersticas de um B-tree, se dife renciando pela sem ntica das operacoes de insercao, remocao e modicacao. Os dados a tratados por esta estrutura s o na verdade regi es planares que, baseadas em regras de a o posicionamento em relacao a outras regi es, s o ent o classicadas, distribudas e arma o a a zenadas em uma arvore. No PostGIS utiliza-se um outro tipo de ndice que e construido sobre uma estrutura de R-Tree, o Generalized Search Tree GiST [Joshep et al. 1995]. O GiST e uma forma geral de se indexar dados, sendo utilizado para aumentar a eci ncia de buscas baseadas e em estrutura de dados que n o s o susceptveis ao uso de B-Tree, como por exemplo, a a dados geogr cos. a De acordo com os manuais do PostgreSQL, a eci ncia dos ndices R-Tree e GiST e s o parecidas. Por m, no PostgreSQL as R-Trees tem duas limitacoes que as fazem indea e sej veis para o uso com dados geogr cos: a a Indices R-Tree no PostgreSQL n o podem controlar caractersticas de tamanho a maior que 8KB, limitacao que n o existe nos ndices GiST. a Os ndices R-Tree no PostgreSQL s o null safe (sem seguranca). Assim, ndices a n o podem ser construdos em colunas espaciais que contenham valores nulos. a O c digo 7 mostra o prot tipo para criacao de ndices para indexar as componentes o o espaciais.
Codigo 7. Prototipo para criacao de um ndice GiST CREATE INDEX <n om e i nd e x > ON <n o m e t a b e l a > USING GIST (< n o m e g e o m e t r i a s >) ;

O c digo 8 exemplica a criacao de ndices para as tabelas Bairro e Antena. o


Codigo 8. Criacao de um ndice GiST para alguns campos espaciais CREATE INDEX INDEX COORD ON "Antena" USING GIST ( "COORD" ) ; CREATE INDEX INDEX COBERTURA ON "Antena" USING GIST ( "COBERTURA" ) ; CREATE INDEX INDEX DIMENSAO ON "Bairro" USING GIST ( "DIMENSAO" ) ;

4.4. Consultas em BDGs Por ser uma extens o da SQL, a SF-SQL possui todos os recursos que permitem realizar a buscas das componentes descritivas, ou seja, dos campos cujo domnio n o seja algum a tipo espacial. Por outro lado, uma das grandes vantagens dos BDGs e a possibilidade de realizar consultas complexas e, ao mesmo tempo, ecientes tamb m para campos da e componente espacial. As consultas espaciais ser o apresentadas segundo a classicao feita por a [BRINKHOFF et al. 1993]. 4.4.1. Selecoes Espaciais Dado um conjunto de objetos espaciais D e um predicado de selecao espacial sobre atributos espaciais dos objetos em D, tais consultas determinam todos os objetos em D cujas geometrias satisfazem .

No c digo 9 utiliza-se o operador TOUCHES para selecionar todos os bairros da o cidade de Salvador que fazem fronteira com o bairro Iguatemi:
Codigo 9. Exemplo de uma selecao espacial SELECT B1 . "NOME" FROM "Bairro" B1 , "Bairro" B2 WHERE TOUCHES( B1 . "DIMENSAO" , B2 . "DIMENSAO" ) AND ( B1 . "NOME" <> Iguatemi ) AND ( B2 . "NOME" = Iguatemi )

4.4.2. Juncoes Espaciais Dado dois conjuntos de dados espaciais, D e D , e um predicado de selecao espacial , estas consultas determinam todos os pares (d, d ) DxD cujas geometrias satisfazem . O c digo 10 mostra uma consulta que seleciona todos os bairros da cidade de o Salvador que possuem cobertura da operadora A e a localizacao das antenas respons veis a por tal cobertura:
Codigo 10. Exemplo de uma juncao espacial SELECT B . "NOME" , A . "LOCALIZACAO" FROM "Bairro" AS B INNER JOIN "Antena" AS A ON ( i n t e r s e c t s ( B . "DIMENSAO" ,A . "COBERTURA" ) AND A . "OPERADORA" = A )

No exemplo acima, observa-se o uso do operador INNER JOIN com uma condicao ` e ` associada a campos espaciais adicionados a tabela. O seu formato e id ntico a uma juncao em um Banco de Dados Relacional, com o diferencial que, ao inv s de usar-se operadores e de comparacao tradicionais, utiliza-se funcoes espacias que retornam valores booleanos. Isto ocorre at porque n o se dene de maneira simples o comportamento de operadores e a <, >, between etc. para tipos espaciais. ` Apesar do exemplo se referir a SF-SQL, outras linguagens tamb m usam JOINs e para unir tabelas contendo campos espaciais, utilizando como condicao de juncao funcoes espaciais. 4.4.3. Selecoes por janela Dado um ret ngulo R com os lados paralelos aos eixos e um conjunto de objetos espaciais a D, estas consultas determinam todos os objetos em D cujas geometrias est o contidas em a R. No c digo 11 este tipo de operacao e exemplicada com uma consulta que seleo ciona todos os bairros da cidade de Salvador que est o situados no interior de uma regi o a a retangular de coordenadas (130 270, 450 270, 130 490, 450 490).
Codigo 11. Exemplo de uma selecao por janela SELECT B . "NOME" FROM "Bairro" AS B

WHERE ( c o n t a i n s ( GeomFromText ( POLYGON((130 270, 450 270, 450 490, 130 490, 130 270)) ) ,B . "DIMENSAO" ) )

4.4.4. Selecoes por regi o a Dada uma regi o R e um conjunto de objetos espaciais D, determinam todos os objetos a em D cujas geometrias est o contidos em R. a O c digo 12 seleciona todos os bairros da cidade de Salvador que possuem coo bertura total por qualquer operadora de celular, mostrando o nome da operadora. Ela retorna objetos cuja totalidade de pontos de uma componente (no caso, o polgono que representa um bairro) est presente tamb m em outra componente (no caso, o polgono a e que representa a cobertura de uma operadora).
Codigo 12. Exemplo de uma selecao por regiao SELECT B . "NOME" , A . "OPERADORA" FROM "Bairro" AS B INNER JOIN "Antena" AS A ON ( c o n t a i n s (A . "COBERTURA" ,B . "DIMENSAO" ) )

4.4.5. Selecoes por ponto Dado um ponto P e um conjunto de objetos espaciais D, determine todos os objetos em D cujas geometrias cont m P . e O c digo 13 seleciona todos os bairros de cidade de Salvador que possuem em o sua extens o a presenca de alguma antena de celular, se possuir retornar al m do nome do a e bairro, a operadora que de celular detentora da antena.
Codigo 13. Exemplo de uma selecao por ponto SELECT B . "NOME" , A . "OPERADORA" FROM "Bairro" AS B INNER JOIN "Antena" AS A ON ( c o n t a i n s ( B . "DIMENSAO" ,A . "COORD" ) )

5. Softwares para Banco de Dados Geogr cos a


Atualmente existem diversas opcoes de softwares livres e de c digo aberto (Open Source) o que podem ser utilizados para o Geoprocessamento nos Sistemas de Informacao Ge ogr cas em conjunto com os Banco de Dados. a Entre os programas utilizados como servidores, os principais s o os servidores de a mapas. Para esta funcao destacam-se o MapServer e GeoServer. O primeiro por con tar com in meros recursos e suporte a v rios formatos de arquivos e o segundo por ser u a considerado pela OGC7 como refer ncia para a funcao de servidor de mapas. e Programas clientes s o utilizados para visualizacao e processamento de dados esa paciais, an lises (queries) e juncoes (joins) de tabelas, projecoes, impress o e exportacao a a
As especicacoes estabelecidas pelo OGC denem padr es que visam a interoperabilidade de am o bientes relacionados a Geotecnologias. Todas as especicacoes do OGC podem ser lidas em http: //www.opengeospatial.org
7

de vetores etc. Destaca-se o TerraView, mantido pelo Instituto Nacional de Pesquisas Espaciais (INPE), que possui v rios recursos estatsticos, sendo largamente utilizado prina cipalmente em estudos acad micos; outros, como o GRASS GIS, o Thuban e JUMP (que e e altamente expansvel e personaliz vel, al m de possuir uma excelente documentacao) a e tamb m devem ser destacados. e J as bibliotecas s o utilizadas para fornecer novos recursos ou ampliar os a a existentes, como por exemplo, traducao de formatos de dados geogr cos, tratamento a das projecoes etc. Entre elas destacam-se o Terralib que, apesar de n o utilizar as a especicacoes da OGC, est entre as mais utilizadas; a Proj4, que se destaca na area a de tratamento de projecoes; a JTS Topology Suite, especialmente empregada em an lises a espaciais sobre geometrias 2D; a GEOS, que surgiu pra tornar o PostGIS totalmente compatvel com a Simple Features Specication8 (SFS) da OGC; a GDAL, bastante bastante utilizada na traducao de formatos de dados geogr cos; e, nalmente, a Geotools que a segue as especicacoes SFS da OGC, al m de possuir in meras funcionalidades extras. e u Entre os sistemas de gerenciamento de banco de dados, o PostgreSQL foi o primeiro SGBD com um m dulo capaz de tratar dados geogr cos vetoriais. Este m dulo, o a o chamado PostGIS, segue as especicacoes SFS da OGC. Compilado juntamente como a biblioteca GEOS, o PostGIS passa a conter mais de 130 funcoes para tratamento de dados geogr cos. a Em suas vers es mais recente, o MySQL segue as especicacoes SFS da OGC, o es de SIG tamb m com o MySQL, al m de o que torna possvel desenvolver aplicaco e e integrar solucoes ou dados com o PostGIS.

6. Conclus o a
Os BDGs s o, atualmente, as solucoes mais adequadas para instituicoes interessaa das em armazenar uma grande quantidade de dados georrefenciados. As abstracoes de representacao fornecidas permitem que especialistas da area possam armazenar informacoes sobre fen menos geogr cos de forma intuitiva, sem preocupacoes extras o a ` quanto a representacao computacional de estruturas complexas. Al m disto, os BDGs e suportam informacoes oriundas de diversas fontes independentes, permitindo a ltragem e mesclagem de dados de forma eciente, fornecendo resultados que dicilmente seriam obtidos manualmente ou atrav s de solucoes especcas. e Por outro lado, seu custo elevado e o fato de n o haver uma padronizacao forte a (como ocorre com bancos relacionais, que implementam a SQL) s o fatores que ainda dia cultam a sua disseminacao. Deve-se reiterar, por m, que existe um esforco em unicar e as solucoes em torno do padr o estabelecido pela OGC, permitindo uma maior intero a perabilidade. Al m do mais, a migracao de solucoes anteriores para BDGs tem sido e simplicada, com o uso de solucoes que s o extens es para Bancos de Dados Objeto a o Relacionais. Dentre as solucoes mais utilizadas, podemos citar o PostGIS (que e uma extens o a do PostgreSQL) e o Oracle Spatial (extens o do Oracle Enterprise Edition). Al m delas, a e temos tamb m grandes empresas empregando o Spatial Query Server (SQS), que e uma e
Especicacao que dene um formato, de acordo com o SQL padr o para armazenamento, leitura, a an lise e atualizacao de dados geogr cos atrav s de uma API. a a e
8

extens o do banco de dados Sybase, utilizada, por exemplo, pela Boeing nos sistemas de a defesa de seus projetos com avi es militares. o Outra utilizacao ampla dos BDGs e a sua associacao a t cnicas de mineracao de e dados (Data Mining), possibilitando a busca por padr es da evolucao espaco-temporal o de caractersticas geogr cas. Estas informacoes, por sua vez, s o utilizadas para a a predicao clim tica, estudo da proliferacao de doencas, an lises ambientais (desmata a a mento, deserticacao), mapeamento criminal, an lise de dados censit rios etc. a a

Refer ncias e
Bayer, R. and McCreight, E. M. (1972). Organization and maintenance of large ordered indices. Acta Inf., 1:173189. Borges, K. A. V., Jr., C. A. D., and Laender, A. H. F. (2005). Bancos de Dados Geogr cos, chapter Modelagem de dados geogr cos. Muna a doGEO. Disponvel em http://www.dpi.inpe.br/gilberto/livro/ bdados/cap1.pdf ( ltimo acesso em 28 de Maio de 2008). u BRINKHOFF, T., HORN, H., KRIEGEL, H. P., and SCHNEIDER, H. (1993). A storage and access architecture for efcient query processing in spatial database systems. pages 357376. Lecture Notes In Computer Science 692 - Springer-Verlag London, UK. C mara, G. (2005). Bancos de Dados Geogr cos, chapter Representacoes computacioa a nais do espaco geogr co. MundoGEO. Disponvel em http://www.dpi.inpe. a br/gilberto/livro/bdados/cap1.pdf ( ltimo acesso em 28 de Maio de u 2008). EGENHOFER, M. (1994). Spatial sql: A query and presentation language. volume 6, pages 8695. IEEE Transactions on Knowledge and Data Engineering. Guttman, A. (1984). R-trees: A dynamic index structure for spatial searching. In Yormark, B., editor, SIGMOD84, Proceedings of Annual Meeting, Boston, Massachusetts, June 18-21, 1984, pages 4757. ACM Press. Joshep, M., Hellerstein, Jeffrey, F. N., and Pfeffer, A. (1995). Generalized search trees for database systems. Proc. 21st Intl Conf. on Very Large Data Bases, Z rich, pages u 562573. Murrray, C. (2003). Oracle R Spatial Users Guide and Reference 10g Release 1 (10.1), chapter Redwood City, Oracle Corporation. OGC (1996). The OpenGIS R Guide - Introduction to Interoperable Geoprocessing, chapter Boston, Open GIS Consortium, Inc. RIGAUX, P., SCHOLL, M., and VOISARD, A. (2002). Spatial Databases with Application to GIS. San Francisco: Morgan Kaufmann.

A. Entrevista
A Companhia de Desenvolvimento Urbano do Estado da Bahia (CONDER) e uma empresa p blica, com personalidade jurdica de direito privado, patrim nio pr prio, autou o o ` nomia administrativo-nanceira e vinculada estruturalmente a Secretaria de Desenvolvimento Urbano. A CONDER possui um sistema de Geoprocessamento, O INFORMS (http://www.informs.conder.ba.gov.br/). Para obter algumas informacoes a respeito desse sistema Fabola Andrade, subge rente do setor de Geoprocessamento da CONDER, respondeu o question rio abaixo. a 1. Qual e o volume de dados atualmente armazenado no sistema de Geoprocessamento da CONDER? No banco de dados geogr co armazenado em Oracle com extens o espacial a a ArcSDE temos cerca de 300GB de dados. Contudo existem informacoes dis ponveis em arquivos em mais 250 GB. 2. Quanto prossionais trabalham no projeto de geoprocessamento? Geoprocessamento e uma area multidisciplinar e envolve diversos tipos de prossionais. Nossa equipe tem cerca de 60 pessoas, entre ge grafos, arquitetos, o engenheiros, urbanistas, administradores e analistas de sistema. A equipe de TI tem 12 prossionais, sendo 1 subgerente, 3 t cnicos de nvel superior (2 analistas e de sistemas e 1 de suporte), 5 t cnicos de nvel m dio (4 programadores e 1 de e e banco de dados) e 3 estagi rios (2 de suporte e 1 de desenvolvimento). a 3. Qual e o Banco de Dados no sistema de Geoprocessamento? Oracle 10g. 4. Esta solucao e fornecida por terceiros ou e desenvolvida pela CONDER? A montagem da estrutura de banco de dados e as edicoes dos dados s o feitas a pelos t cnicos internamente (analistas para banco e outros prossionais para e edicao). Usamos softwares de geoprocessamento comuns no mercado (famlia ArcGIS), at o momento sem customizacao desenvolvida sobre ele, portanto, ferramentas e nativas. Sistemas de cadastramento de dados alfanum ricos associados aos dados e espaciais foram desenvolvidos com contratacao externa, mas sofrem alteracoes por equipe interna. Tamb m existe uma solucao disponibilizada para prefeituras (sistema GEOPOe LIS), cujo desenvolvimento foi feito por terceiros em plataforma Terralib e VB. Apenas especicamos os requisitos e hoje controlamos implantacao e uso pelas prefeituras. As aplicacoes de disponibilizacao de mapas na Internet s o feitas internamente. a 5. Utilizam alguma outra tecnologia, como um servidor de mapas? Se sim, qual? Usamos servidor de mapas ArcIMS da ESRI.

6. Como e feita esta interacao entre o servidor Web (por exemplo), um banco de dados e um servidor de mapas? O servidor de mapas ArcIMS acessa o banco atrav s do gerenciador de objetos e espaciais ArcSDE, ele pode ser customizado em HTML e ASP para fazer consultas comuns com SQL. O ArcIMS disponibiliza um servico que e publicado pelo IIS. 7. Como e feito o armazenamento das imagens capturadas? Imagens de sat lite s o adquiridas atrav s das empresas detentoras dos direitos e a e de repasse das mesmas, como digitalglobe. Imagens a reas, ortofotos, geralmente fazemos contratacao de empresa que reae liza v o fotogram trico e tem a tecnologia necess ria para tratar este produto. o e a Qualquer contratacao deve passar por processo de licitacao. A especicacao do tipo e formato de imagem a ser produzida e feita pela equipe de cartograa, de acordo com as necessidades do projeto e das condicoes da area a ser mapeada. 8. Como e feito o mapeamento entre as imagens e os dados que s o apresentados a neles? Todos os objetos representados em um mapa devem estar georreferenciados dentro do mesmo sistema de projecao para que aja uma sobreposicao correta entre eles. Cada elemento comp e um nvel de informacao ou layer que representa o um objeto diferente no espaco, por exemplo, um layer de logradouros, um de edicacoes, um de rios, um de imagem... Os layers do tipo raster s o imagens, onde cada pixel corresponde a uma a coordenada (X, Y) que representa sua latitude e longitude na Terra. J os layers chamados vetoriais, s o tracados como desenhose representam a a elementos do espaco que podem ou n o ser vistos diretamente na foto. Estes a elementos t m representacao de polgono, linha ou ponto, a depender do objeto e que est o representando. Por exemplo, um ponto pode representar a localizacao a de uma escola. Estes elementos gr cos tamb m t m coordenadas associadas a e e que d o sua localizacao espacial. Cada um destes elementos gr cos corresa a ponde a uma linha na tabela de dados e pode ter v rios atributos alfanum ricos a e associados. Os layers aparecem individualizados e sobrepostos no mapa e o usu rio pode a selecionar os que desejam visualizar a cada momento. Esta explicacao est bem gen rica, mas d para ter uma id ia de como represen a e a e tar o dado, uma vez que existem v rios conceitos de cartograa relacionados. a 9. Como e feito o cruzamento de dados, ou seja, os Joins (juncoes) entre tabelas neste tipo de banco? Os dados espaciais s o armazenados em tabelas comuns de bancos de dados, a mas existe uma coluna com informacoes especcas sobre sua condicao espacial. O gerenciador de dados espaciais (ArcSDE) tem uma estrutura especca para controlar estas informacoes. Cada elemento representado na tabela espacial tem um atributo de identicacao (chave prim ria), que pode ser associado a qualquer a tabela de dados alfanum ricos, conforme modelo de dados denido. e

` 10. Fazem algum tipo de backup especico devido a natureza dos dados? Se sim, que tipo? O backup e o mesmo de banco de dados normal, com a ressalva que o volume de dados, em funcao das imagens, e grande. Geralmente usamos 2 tas DLT. 11. Quais s o os conhecimentos necess rios para que um estudante de Ci ncia de a a e Computacao possa trabalhar com Banco de Dados Geogr cos? a Ter conhecimentos b sicos de cartograa, como sistemas de projecao, escala, a localizacao espacial, pois estas informacoes s o essenciais para que os dados a manipulados permitam an lises corretas sobre o espaco estudado. E estas a informacoes devem ser manipuladas nos bancos de dados e nas aplicacoes.