Download - Arquitetura de Software para Construção
-
8/2/2019 Arquitetura de Software para Construo
1/11
57
XVII Simpsio Brasileiro de Banco de Dados
Arquitetura de Software para Construode Bancos de Dados Geogrficos com SGBD Objeto-Relacionais
KARINE REIS FERREIRA, GILBERTO RIBEIRO QUEIROZ, JOO ARGEMIRO PAIVA , RICARDOCARTAXO MODESTO DE SOUZA, GILBERTO CMARA
Instituto Nacional de Pesquisas Espaciais - INPEAv. dos Astronautas, 1758, So Jos dos Campos (SP), Brazil 12227-001
{karine, gribeiro, miro, cartaxo, gilberto}@dpi.inpe.br
Resumo Este artigo descreve uma arquitetura de software para o desenvolvimento de banco de dados geogrficos
utilizando SGBDs objeto-relacionais, como o PostgreSQL e Oracle Spatial, compartilhando uma interface de
programao comum. Este trabalho parte da TerraLib, um software de cdigo fonte aberto e de ambientecolaborativo, usado para o desenvolvimento de ferramentas SIGs.
AbstractThis paper describes a software architecture for development of geographic databases that uses object-
relational DBMS, like PostgreSQL and Oracle Spatial, sharing a common programming interface. This work is
part of TerraLib, an open source software allowing a collaborative environment and use for the development of
multiple GIS tools.
1. IntroduoA rea de bancos de dados geogrficos (BDG) e o desenvolvimento de tecnologia de
sistemas de informao geogrfica (GIS) estaro passando por mudanas substanciais nosprximos anos, induzidas por uma nova gerao de SGBDs objeto-relacionais, como oORACLE e POSTGRESQL, que permitem incorporar tipos de dados espaciais. Deste modo,abre-se a perspectiva da construo de GIS onde tanto os atributos como as geometrias dedados espaciais sejam gerenciados pelo SGBD. Esta integrao tem o potencial de mudarcompletamente o desenvolvimento de tecnologia de GIS, permitindo a transio dos atuaissistemas monolticos (que contm centenas de funes) para uma nova gerao de aplicativosgeogrficos (spatial information appliances), sistemas dedicados para necessidadesespecficas [4]. Deste modo, um desafio importante para a comunidade de BDG encontrarmaneiras de utilizar a nova gerao de SGBD com tipos de dados espaciais.
Uma das respostas possveis para este desafio o estabelecimento de uma rede dedesenvolvimento cooperativo, baseado em tecnologia open source. De forma similar ssolues ligadas tecnologia Linux, a disponibilidade de software livre para GIS permitiria apesquisadores e provedores de solues o acesso a um conjunto mais amplo de ferramentas doque atualmente oferecido por companhias comerciais. Com esta motivao, os autores estodesenvolvendo a TerraLib [2], uma biblioteca de software livre base para uma nova geraode aplicativos geogrficos.
Um dos desafios importantes no desenvolvimento de uma biblioteca como a TerraLib compatibilizar as capacidades oferecidas pelos diferentes SGBD objeto-relacionais numanica interface de programao de aplicaes. Para isto, torna-se necessrio descrever as
-
8/2/2019 Arquitetura de Software para Construo
2/11
58
XVII Simpsio Brasileiro de Banco de Dados
operaes de consulta e armazenamento de dados espaciais de forma genrica, e realizar o
mapeamento para as caractersticas especficas de cada SGBD. Neste contexto, este artigo
descreve uma arquitetura de software para construo de bancos de dados geogrficos que
utilizam SGBD objeto-relacionais, mantendo uma mesma interface de programao. O
trabalho faz parte do desenvolvimento da TerraLib, cuja primeira verso possui drivers para
os SGBD ORACLE e POSTGRESQL. Nas sees seguintes, detalharemos a arquitetura desoftware utilizada. Na seo 2, descrevemos as extenses espaciais do ORACLE e do
POSTGRESQL. Na seo 3, descrevemos em detalhe a arquitetura de software. Na Seo 4,
ilustramos as capacidades da TerraLib a partir da descrio do aplicativo TerraView, um
ambiente simplificado para visualizar dados espaciais.
2. Extenses Espaciais de SGBDAtualmente, existem basicamente trs extenses comerciais disponveis no mercado
para tratar de dados geogrficos no formato vetorial: Oracle Spatial[11], IBM DB2 Spatial
Extender [9] e Informix [6]. No universo do software de cdigo fonte aberto e gratuito existe
um projeto para a construo de uma extenso geogrfica baseada no PostgreSQL [7],chamada de PostGIS [10]. Todas essas extenses baseiam-se nas especificaes do OpenGIS
[3], porm, apresentam variaes relevantes entre os modelos de dados, semntica dos
operadores espaciais, mecanismos de indexao e esquema e sintaxe da SQL estendida com
tipos espaciais. A seguir, so apresentadas as caractersticas e funcionalidades de algumas
destas extenses.
2.1.Oracle SpatialO Oracle Spatial uma extenso espacial do SGBD Oracle, que utiliza seu modelo
objeto-relacional. Esta extenso contm um conjunto de funcionalidades e procedimentos que
pemite armazenar, acessar e analizar dados espaciais em um banco de dados Oracle. Seu
modelo de dados consiste em uma estrutura hierrquica de elementos, geometrias e layers;
onde layers so compostos por geometrias, que por sua vez so compostas por elementos. Os
elementos podem ser do tipo Point, LineString ou Polygon (com ou sem ilhas). Uma
geometria pode ser formada por um nico elemento ou por um conjunto homogneo
(MultiPoint, MultiLinesString ou MultiPolygon) ou heterogneo (Collection) de elementos. E,
finalmente, um layer formado por um conjunto de geometrias que possuem os mesmos
atributos.
Devido utilizao de um modelo objeto-relacional, cada geometria armazenada em
um objeto chamado SDO_GEOMETRY. Este objeto contm a geometria em si, suas
coordenadas, e informaes sobre seu tipo e projeo. Em uma tabela espacial, os atributosalfanumricos da geometria so definidos como colunas de tipos bsicos (VARCHAR2,
NUMBER, etc) e a geometria, como uma coluna do tipo SDO_GEOMETRY. Sendo assim,
cada tabela espacial armazena um layer, o qual composto pelo conjunto de todas geometrias
desta tabela.
O Oracle Spatial fornece um conjunto de operadores e funes espaciais, que so
utilizados juntamente com a linguagem SQL, para suportar consultas espaciais. Para consultar
relaes topolgicas entre duas geometrias utilizado um operador chamado SDO_RELATE.
Este operador implementa o Modelo de 9-Intersees definido por Egenhofer [5]. Este
modelo considera as intersees, vazia (0) ou no vazia (1), entre os interiores, fronteiras e
exteriores de duas geometrias. O SDO_RELATE recebe como parmetro o tipo de relao
-
8/2/2019 Arquitetura de Software para Construo
3/11
59
XVII Simpsio Brasileiro de Banco de Dados
topolgica que deve ser computada. Os possveis parmetros so : Equal, Disjoint, Touch,
Inside, OverlapBdyIntersect, OverlapBdyDisjoint, Anyinteract, Contains, On, Covers e
Coveredby.
Quanto indexao espacial, esta extenso fornece dois tipos de ndices R-tree e
Quadtree. Cada um desses ndices apropriado para diferentes situaes e podem ser usados
simultaneamente para indexar uma mesma coluna geomtria. Um cenrio que ilustra o usoprtico desta extenso o seguinte: O oficial encarregado do servio contra incndios precisa
de uma lista de todas as reas sensveis dentro de um raio de 8 km de uma rea de lixo
txico.
Figura 01: Cenrio do problema
Partindo do princpio da existncia de duas tabelas com atributos espaciais:
zona_sensvel area_risco
Nome Atributo Tipo Nome Atributo Tipo
nome VARCHAR2(50) nome VARCHAR2(50)zona SDO_GEOMETRY local SDO_GEOMETRY
A seguinte consulta em SQL poderia ser utilizada para responder o problema:
SELECT ass.nome, ar.nome
FROM AREA_RISCO ar, AREA_SENSIVEL ass,
USER_SDO_GEOM_METADATA m
WHERE m.table_name = AREA_RISCO AND
(SDO_RELATE(ass.zona,
SDO_GEOM.SDO_BUFFER(ar.local, m.diminfo,
8000), mask=ANYINTERACT querytype=WINDOW) =TRUE);
2.2.PostgreSQLO PostgreSQL [12] um sistema gerenciador de banco de dados objeto-relacional,
gratuito e de cdigo fonte aberto. Em sua distribuio oficial, oferecido os seguintes
recursos para trabalhar com dados espaciais: Tipos geomtricos: point, box, path, polygon e circle.
-
8/2/2019 Arquitetura de Software para Construo
4/11
60
XVII Simpsio Brasileiro de Banco de Dados
Indexao espacial: possui uma R-Tree, cuja implementao est limitada a dadoscom at 8Kbytes, sendo bastante limitada para dados geogrficos reais. No entanto,
permite a definio de uma R-Tree sobre o mecanismo de indexao conhecido
como GiST [8]. Operadores espaciais: apresenta apenas alguns poucos operadores e bem limitados.
Por exemplo, no operador contm (@) uma das geometrias deve ser do tipo pontoe o operador igual (~=) s aplicado a duas geometrias do tipo polgono
(polygon).
Como as funcionalidades oferecidas so bastante limitadas para o desenvolvimento de
Sistemas de Informao Geogrficas, uma nova extenso est em desenvolvimento. O
PostGIS, como ela chamada, uma extenso geogrfica, gratuita e de cdigo fonte aberto,
que visa permitir ao SGBD PostgreSQL gerenciar informaes geo-espaciais. Sendo sua
definio e implementao baseadas nas especificaes do OpenGIS. Atualmente, o PostGIS
conta com os tipos de dados espaciais contidos na especificao do OGIS e utiliza um
mecanismo de indexao R-Tree sobre o esquema do GiST. Os operadores espaciais
encontram-se em desenvolvimento.
3. Arquitetura de SoftwareUm dos objetivos da TerraLib o desenvolvimento de aplicativos GIS baseados nos
avanos tecnolgicos dos sistemas de bancos de dados, especialmente os espaciais, realizando
a completa integrao dos tipos de dados espaciais dentro dos SGBDs [1]. Para realizar tal
tarefa, ela fornece uma arquitetura que d acesso direto aos dados que podem ser armazenados
em diversos SGBDs, como Oracle Spatial, PostgreSQL e MySQL, possibilitando a criao e a
manipulao de bancos de dados geogrficos. Essa arquitetura fornece uma interface comum
que possibilita ao desenvolvedor em no ter que se preocupar com os detalhes de cada SGBD.
Isso permite que este enfoque nas funcionalidades que um GIS deve ter, como ferramentas
para anlise espacial, visualizao grfica dos dados geogrficos e entrada de dados ao invs
de se preocuparem com o gerenciamento dos dados. A arquitetura para construo de bancos
de dados geogrficos apresentada neste trabalho (Figura 02) encontra-se implementada na
TerraLib e composta pelos seguintes componentes: Modelo de Dados: composto por um conjunto especfico de tabelas para a
representao dos dados geogrficos nos SGBDs. Kernel: composto pelas classes bsicas (estruturas de dados) para representao
em memria dos dados geogrficos tanto no formato vetorial quanto matricial, por
operadores topolgicos e direcionais, classes de sistema de projeo e algoritmos. Drivers: formado por classes que fornecem uma interface comum e que do o
suporte bsico para trabalhar com os dados geogrficos nos SGBDs. SGBDs: a TerraLib permite a integrao tanto com SGBDs Relacionais quantocom Objeto-Relacionais. Atualmente, ela possui interface com o SGBD relacional
MySQL e com os objeto-relacionais Oracle Spatial e PostgreSQL. Os drivers so
os responsveis em manter essas interfaces.
-
8/2/2019 Arquitetura de Software para Construo
5/11
61
XVII Simpsio Brasileiro de Banco de Dados
PostgreSQLMySQL
Modelo de Dados
Kernel
Driver PostgreSQLDriver MySQLDriver Oracle
Database Driver
Oracle
Figura 02: Arquitetura da TerraLib para construo de bancos geogrficos
3.1.Modelo de DadosO modelo de dados dessa arquitetura define um conjunto especfico de tabelas com o
objetivo de facilitar a representao dos dados geogrficos nos SGBDs. Neste esquema, as
informaes geogrficas sobre um determinado objeto ou fenmeno geogrfico so
representadas em um plano de informao (layer). Um plano de informao (PI) pode ser
composto por mais de um tipo de representao (vetorial ou matricial), estando ou no
associado a uma tabela de atributos no espaciais.
Na representao vetorial, um dado pode ser mapeado para trs tipos de tabelas com
colunas capazes de representar polgonos, linhas ou pontos. Estas tabelas possuem um campopara fazer a ligao com a tabela de atributos no espaciais correspondente. Na representao
matricial (raster) feito um particionamento do raster por linhas, onde cada linha
armazenada em um registro da tabela em colunas do tipo BLOB. A Figura 03 ilustra, de
maneira simplificada, o modelo de dados.
Conforme pode ser observado no modelo apresentado na Figura 03, a tabela planos
contm as informaes de cada PI, seu nome, retngulo envolvente (mbb) e o nome da tabela
de atributos no espaciais associada ele. A tabela representacao possui um campo que
contm o ndice do PI, outro chamado geomtipo que indica o tipo de representao (ponto,
linha, polgono ou matricial) e outro chamado tabela que contm o nome da tabela onde os
dados espaciais daquela representao esto armazenados.
Neste modelo, um PI pode estar associado a diferentes temas, cada um comcaractersticas especficas. Por exemplo, podemos ter um PI que contenha todos os estados do
Brasil com seus atributos, rea, populao, taxa de analfabetismo, dentre outros. Uma
consulta sobre esse PI, como por exemplo, selecione todos os estados onde a populao seja
maior que 5 milhes, resultaria em um novo tema associado a este PI, e no a um novo PI.
Este tema armazenado na tabela temas contendo as clusulas da consulta em SQL que o
gerou, e associado ao PI correspondente atravs do relacionamento entre as tabelas planos
e temas. Alm disso, cada tema associado a uma legenda, a qual armazenada na tabela
legendas, que contm caractersticas de visualizao, como cores, formatos e tamanhos.
-
8/2/2019 Arquitetura de Software para Construo
6/11
62
XVII Simpsio Brasileiro de Banco de Dados
Para uma melhor organizao dos dados no SGBD, este modelo implementa o
conceito de vises que so associadas aos usurios. Assim, cada usurio cria suas prprias
vises e associa a cada uma os temas relacionados. Pode-se dizer que o conceito de vises
semelhante a idia de diretrios, onde cada usurio possui seus diretrios que contm
informaes relacionadas sobre um mesmo assunto.
Figura 03 : Modelo de Dados simplificado
3.2.KernelAs classes do Kernel para manipulao dos dados em memria esto mostradas na
Figura 04. As instncias dessas classes podem ser armazenadas nos SGBDs seguindo o
esquema de representao mostrado na seo anterior, atravs do driver de banco de dados.
TePolygon
TePolygonSet
TeLinearRing
TeLine2D
TePoint
TeGeometry
TeGeomSingleTeGeomComposite
TeCoord2D TeRaster
TeLineSet
TePointSet
(TeCoord2D)
(TeCoord2D)
(TeLinearRing)
(TePolygon)
(TeLine2D)
(TePoint)
TT TT
Figura 04: Classes do Kernel da TerraLib
-
8/2/2019 Arquitetura de Software para Construo
7/11
63
XVII Simpsio Brasileiro de Banco de Dados
Uma instncia de um TePolygonSet pode ser armazenado no banco como um polgono
por tupla ou no, dependendo do driver e do suporte oferecido pelo banco, sendo transparente
para o desenvolvedor.
3.3.Database DriverO driver de banco de dados uma interface entre os diversos sistemas de bancos de
dados e o Kernel da TerraLib. Ele permite o armazenamento, recuperao e manipulao dos
dados geogrficos - a saber, os seus atributos espaciais e no espaciais - diretamente nos
SGBDs, sem a necessidade de utilizao de estruturas proprietrias. Para cada SGBD criado
um driver especfico que implementa um conjunto comum de interfaces para manipulao e
definio do esquema da base geogrfica. Essa arquitetura muito semelhante da ODBC.
Cada driver d o suporte necessrio para trabalhar com o esquema em um SGBD
especfico, fornecendo mtodos que criam este esquema e que fazem o mapeamento entre os
tipos de dados deste SGBD para os tipos de dados presentes no kernel da biblioteca. Alm
disso, ele traduz as consultas espaciais para o dialeto SQL de cada SGBD, delegando a estesua execuo. Esses drivers devem explorar ao mximo os recursos oferecidos pelos SGBDs,
principalmente, os que apresentam extenses espaciais capazes de fornecer mecanismos de
indexao espacial, tipos de dados e operadores espaciais. A interface comum desses drivers
definida por duas classes abstratas, TeDatabase e TeDatabasePortal.
A classe TeDatabase fornece a interface para: Estabelecimento de conexo com o servidor de banco de dados Execuo de comandos SQL DDL e DML Criao de novas tabelas Criao do modelo de dados da TerraLib Definio dos ndices espaciais Criao de integridade referencial e ndice secundriosA classe TeDatabasePortal apresenta em sua interface mtodos para:
Execuo de consultas SQL que retornem um conjunto de resultados Manipular o conjunto de resultados da execuo de uma consulta Insero, atualizao e recuperao das geometrias segundo o modelo de dados
apresentado anteriormente. Execuo de consultas espaciais Armazenamento e recuperao de dados matriciaisO driver de cada banco ser responsvel pelos detalhes de implementao desta
interface. Abaixo, so apresentados os drivers do Oracle Spatial e do PostgreSQL mostrando a
particularidades de cada um.
-
8/2/2019 Arquitetura de Software para Construo
8/11
64
XVII Simpsio Brasileiro de Banco de Dados
3.3.1. Driver Oracle. O driver de interface com o SGBD Oracle, utiliza os recursosoferecidos pela sua extenso espacial Oracle Spatial, como tipos de dados, operadores e
mtodos de indexao espaciais. Neste driver, os tipos vetoriais da TerraLib, TePoint,
TeLine2D e TePolygon, so mapeados para objetos do tipo SDO_GEOMETRY. Este objeto
armazena o tipo da geometria (como por exemplo, Point, Line String, Arc Line String,
Polygon, Polygon with holes), sua projeo e suas coordenadas. Cada geometria armazenada em um registro, por exemplo, um polgono que contm ilhas, armazenado
completamente em um SDO_GEOMETRY do tipo Polygon with holes.
Quanto indexao espacial, ele utiliza os mtodos fornecidos pela extenso, R-tree e
Quadtree. Neste caso, o desenvolvedor escolhe o tipo de indexao mais apropriada para seus
dados geogrficos. Alm disso, este driver utiliza funes disponveis nesta extenso para
avaliar a performance dos ndices criados (ANALYZE_RTREE) e para reconstruir um antigo
ndice, depois de inserir novas geometrias (ALTER INDEX REBUILD). As consultas
espaciais utilizam os operadores e funes espaciais disponveis. Por exemplo,
SDO_RELATE para consultar relaes topolgicas entre geometrias, SDO_BUFFER para
retornar uma nova geometria a partir de outra e SDO_DISTANCE para retornar a distncia
entre duas geometrias. Neste caso, o driver monta a consulta em SQL utilizando osoperadores e funes correspondentes, e o passa para o SGBD computar.
3.3.2. Driver PostgreSQL. O driver para banco de dados PostgreSQL utiliza os tiposPOINT, PATH, POLYGON e BLOB para armazenar em uma tupla os tipos de dados
TePoint, TeLine2D, TeLinearRing e TeRaster respectivamente. Cada anel (TeLinearRing) de
uma instncia de um TePolygon armazenado em uma tupla, pois o tipo POLYGON no
permite o armazenamento de polgonos com ilhas. Quanto indexao, este driver no utiliza
a R-Tree padro do PostgreSQL devido s suas limitaes, empregando a R-Tree construda
sobre o GiST.
Os mtodos de consultas espaciais deste driver utilizam uma estratgia de duas etapas
para o seu procesamento. Primeiramente, feito um filtro pelo retngulo envolvente da
geometria atravs de operadores que utilizam o ndice espacial do SGBD. Na segunda etapa, o
resultado avaliado com os operadores espaciais do kernel, que computam a geometria exata.
Isso feito porque o PostgreSQL no apresenta suporte para todos os operadores topolgicos.
Futuramente, este driver ser construdo sobre o PostGIS, de forma a delegar a esta extenso
tanto os recursos de indexao e tipos de dados quanto os operadores espaciais.
4. TerraViewO TerraView, desenvolvido pela DPI/INPE, um aplicativo open source construdo
sobre a TerraLib, utilizando a arquitetura apresentada neste trabalho. As Figuras 05 e 07ilustram sua interface grfica. Este software contm as seguintes caractersticas: Interface com diferentes SGBDs: possibilita que o usurio selecione o SGBD a ser
utilizado, instanciando o driver correspondente e fazendo a conexo com o servidor de
dados. Suporte a tipos de dados espaciais: o software suporta diferentes tipos de dados espaciais,
incluindo polgonos, linhas, redes, clulas, pontos, imagens e superfcies. Ferramentas de visualizao: permite a visualizao do dado geogrfico, de sua
componente espacial atravs do um canvas e de seus atributos afanumricos atravs de
uma tabela. Alm disso, possuem algumas ferramentas como zoom in e zoom out.
-
8/2/2019 Arquitetura de Software para Construo
9/11
65
XVII Simpsio Brasileiro de Banco de Dados
Integrao de dados espaciais: possibilita a integrao de layers de diferentes tipos(superfcies, pontos, etc.) combinados em um mesmo frame.
Importao de dados: permite a importao de dados a partir de arquivos em formatosproprietrio (como por exemplo, shape file e mif) para o esquema definido no SGBD.
Consultas espaciais: disponobiliza alguns tipos de consultas que podem ser aplicadas aosdados de um nico layer ou de dois layers distintos.
Figura 05: Interface Grfica do Aplicativo TerraView
Na Figura 05, mostrado a visualizao de dois PIs, setores e ruas, ambos formados
por dados de representao vetorial, um por polgonos e o outro por linhas, respectivamente.
Um tipo de consulta espacial feita sobre o plano setores mostrado na parte superior do PI,
onde todos os setores adjacentes a um especfico, selecionado pelo usurio diretamente no
canvas, foram retornados e preenchidos por branco. H ainda opes de fazer consultas entreos dados de dois PIs distintos, como por exemplo, retornar todas as ruas que cruzam as
fronteiras de um setor especfico. Esta consulta ilustrada na Figura 06, onde as ruas
retornadas so pintadas de branco. A Figura 07 mostra a visualizao de uma imagem no
TerraView, utilizando os recursos dos drivers para armazenar e recuperar dados matriciais.
-
8/2/2019 Arquitetura de Software para Construo
10/11
-
8/2/2019 Arquitetura de Software para Construo
11/11
67
XVII Simpsio Brasileiro de Banco de Dados
[4] Egenhofer, M. (1999). Spatial Information Appliances: A Next Generation of
Geographic Information Systems. First Brazilian Workshop on GeoInformatics, Campinas,
Brazil.
[5] Egenhofer, M. and J. Herring (1991). Categorizing Binary Topological Relationships
Between Regions, Lines, and Points in Geographic Databases. Orono, ME, Department of
Surveying Engineering, University of Maine.[6] Flannery, R. M. (2000). Informix Handbook, Informix Press.
[7] Geschwinde, E. and H.-J. Schoenig (2001). Postgresql : Developer' s Handbook. New
York, SAMS Publisher.
[8] Hellerstein, J. M., J. F. Naughton, et al. (1995). Generalized Search Trees for Database
Systems. Proc. 21st Int' l Conf. on Very Large Data Bases, Zrich.
[9] Mullins, C. S. (2000). DB2 Developer' s Guide. New York, SAMS Publisher.
[10] Ramsey, P. (2002). PostGIS Manual. 2002.
[11] Ravada, S. and J. Sharma (1999). Oracle8i Spatial: Experiences with Extensible
Databases. SSD' 99. R. H. Guting, D. Papadias and F. Lochovsky. Berlin, Springer-Verlag:
355-359.
[12] Stonebraker, M. and L. A. Rowe (1986). The Design of POSTGRES. ACM-SIGMODInternational Conference on the Management of Data. Washington, D.C.: 340-355.