Conceitos passados, novidades futuras

Uma descrição dos principais recursos que implementam e viabilizam Bancos de Dados Geográficos

Algum tempo atrás, apresentei aqui em GeoBytes a última (à época) versão da extensão Spatial do famoso gerenciador de bancos de dados Oracle, então em sua versão 8i. Acaba de ser lançada uma nova versão desse produto, a 10g, que expande a funcionalidade das versões anteriores e incorpora alguns conceitos fundamentais para quem pretende implementar grandes bancos de dados geográficos. Vamos rever alguns desses conceitos a seguir, porém não com o foco no Oracle em si, mas sim no que este tipo de recurso contribui para a viabilização de bancos de dados geográficos verdadeiros, isto é, desvinculados de um produto GIS "hospedeiro", membro de uma família vertical de produtos proprietários e fechados.

O primeiro desses recursos é o modelo de redes. Diversos produtos GIS do passado, e alguns em operação atualmente, especializavam-se em manter estruturas proprietárias dedicadas a representar e gerenciar elementos de redes, em diversas áreas de aplicação. Essas redes são formadas por nós e arcos e organizadas de modo que, a cada arco, estejam associados exatamente dois nós, sendo um de partida e um de chegada, caso o arco seja unidirecional. O arco pode ser bidirecional, e neste caso não importa a ordem dos nós conectados a ele – desde que sejam exatamente dois. Do ponto de vista do nó, é possível ter qualquer número de arcos a ele conectados.


Figura 1 – Esquema físico para representação de redes em banco de dados objeto-relacional

Esse tipo de estrutura tem um grande potencial na representação de variados tipos de redes de infra-estrutura, tais como redes de transmissão e distribuição de energia elétrica, telecomunicações, abastecimento de água, drenagem urbana, esgotamento sanitário, TV a cabo, distribuição de gás, e várias outras. Também é possível representar, em variados graus de detalhamento, redes de transportes (intraurbano e intermunicipal) e hídricas. Em cada caso, um enfoque orientado a objetos ajudaria na definição de uma hierarquia de classes, especializadas a partir dos conceitos genéricos de arcos e nós, de modo a permitir uma representação mais precisa do funcionamento real de cada uma dessas redes. Assim, por exemplo, em uma rede de abastecimento de água bastaria definir especializações dos nós para cumprir o papel de elementos de rede como hidrantes, tês, registros ou reservatórios, enquanto especializações dos nós poderiam caracterizar níveis de importância diferenciados para trechos da rede, por exemplo considerando o diâmetro, a classe de pressão ou o material das tubulações. Em uma rede de telecomunicações, por outro lado, os arcos podem ser diferentes meios para transporte de dados: links de satélite, fibras óticas, condutores metálicos, links de microondas, e por aí vai.


Figura 3 – Mapa esquemático de uma linha do metrô de São Paulo. Ponte: CPTM – Cia. Paulista de Trens Metroploitanos

Existem alguns problemas comuns a todos esses tipos de rede. O principal deles é a garantia da manutenção da integridade da rede, ou seja, de que a topologia da rede será sempre mantida ao longo de quaisquer operações de atualização de dados. Se for permitida a criação de nós isolados da rede, aos quais não está conectado arco algum, pode-se estar abrindo uma porta para dados imprecisos e pouco confiáveis, já que esta não é uma situação normal. Por outro lado, se nós isolados não forem permitidos, como incorporar um arco sequer à rede? Se o arco for incorporado primeiro, será necessário conectá-lo a dois nós previamente existentes. Se um desses nós não existir, será necessário criá-lo antes, daí o dilema. Outro problema topológico é a decisão de permitir ou não nós aos quais estão conectados exatamente dois arcos: nós "de passagem". Em certos tipos de redes, como a de abastecimento de água e a de telecomunicações, isso faz sentido: pode ser um nó em que o diâmetro da tubulação é reduzido, ou um repetidor para redes locais. Em outros, esse tipo de nó pode não ser permitido, como no caso de uma rede hídrica.


Figura 2 – Eventos ao longo de feições lineares (segmentação dinâmica)

Outro problema típico de redes é o desenvolvimento de algoritmos para simulação da operação. Esta atividade pode ser muito complexa, envolvendo parâmetros de engenharia e outros detalhes necessários para determinar o estado de cada elemento da rede em um determinado cenário operacional. Existem, por outro lado, aplicações que não demandam tamanho detalhamento, como por exemplo nos casos em que é necessário determinar se existe algum caminho válido entre dois nós, ou identificar todos os elementos da rede alcançáveis a partir de determinado nó.

A novidade no tratamento de redes é que, até recentemente, gerenciadores de bancos de dados espaciais genéricos e abertos, como o Oracle Spatial e o PostGIS eram apenas capazes de lidar com dados geométricos, não topológicos. Naturalmente, é possível criar estruturas de rede usando recursos tradicionais de bancos de dados, como a criação de uma tabela para os arcos, na qual dois atributos funcionam como chave estrangeira para acesso aos nós de partida e de chegada, sendo estes codificados em uma outra tabela, dedicada aos nós (Figura 1).

A vantagem de se ter os recursos para gerenciamento de redes inseridos no próprio gerenciador de bancos de dados está na disponibilidade de recursos adicionais, capazes de auxiliar na implementação das restrições de integridade aplicáveis e de oferecer funções pelas quais outros elementos do banco de dados possam ser integrados à rede. O SGBD pode também oferecer funções de análise da rede, como a determinação do caminho ótimo entre dois nós ou a criação de uma árvore geradora mínima. Porém, essas análises tipicamente envolvem algoritmos computacionalmente intensivos, cujo desempenho cai muito se a rede estiver armazenada em memória secundária (no caso, no banco de dados propriamente dito).

No caso do Oracle Spatial 10g, a primeira versão daquele produto a oferecer estruturas de rede, foi ainda incorporada a possibilidade de se ter, em cada arco da rede, recursos de segmentação dinâmica. Tais recursos são antigos em GIS, embora, curiosamente, não seja comum ver aplicações baseadas neles aqui no Brasil. Esses recursos são uma forma de sistema de referenciamento linear, no qual uma tabela de eventos é associada a um elemento linear (Figura 2). Cada evento ocorre a uma determinada distância, contada ao longo do elemento linear, do ponto de partida do elemento. Isso é semelhante ao sistema usado para endereçar ocorrências ao longo de uma rodovia ("o posto de gasolina X fica na altura do km 120 da rodovia BR-040"). Com esse recurso é possível construir uma rede de transportes rodoviários, configurando cidades e entroncamentos entre rodovias como nós e trechos de estrada como arcos, sendo que ao longo de cada arco é possível registrar a posição de elementos de interesse (postos de gasolina, postos policiais, placas de sinalização, pontos de interesse turístico, endereços rurais, buracos, obras, desvios, pontos críticos, etc.). Isso evita que esses elementos de interesse tenham que ser criados no banco de dados como pontos isolados, o que demandaria uma operação de seleção espacial para identificá-los e associá-los por proximidade à rodovia quando necessário.

O Spatial 10g ainda oferece a possibilidade de se criar e manter redes lógicas, ou seja, redes cujos elementos não são diretamente georreferenciados. É o caso, por exemplo, de mapas esquemáticos de metrô e trens urbanos (Figura 3). Nesses casos, é possível estabelecer um relacionamento entre um nó esquemático e a posição real do elemento correspondente no espaço geográfico, que no exemplo seria a localização física da estação de trem ou metrô.

A riqueza dessa classe de estruturas de dados abre, para os implementadores de soluções, uma enorme gama de possibilidades. Mesmo que não se vá ou não se possa usar um produto caro como o Oracle Spatial na solução, o interessante é constatar a viabilidade da incorporação de tais recursos a SGBD objeto-relacionais: algo que pode provocar tanto a concorrência do Oracle Spatial quanto os desenvolvedores de software livre a incorporar esses recursos e muitos outros a seus produtos. Quem ganha são os usuários.

Clodoveu Davis
Engenheiro Civil, Doutor em Ciência da Computação
Pesquisador da Prodabel Empresa de Informática e Informação do Município de Belo Horizonte
Professor da PUC-MG.
clodoveu.davis@terra.com.br