Esta etapa do tutorial tem como objetivo apresentar o modelo de
dados do TDK.
|
Aguarde. Em construção !!! Abaixo uma visão inicial do que faremos.
|
Introdução
|
Este tutorial está dividido nas seguintes seções:
|
Seção 1
|
Na primeira seção, será dada uma visão geral de sistemas de informação
geográfica.
|
Seção 2
|
Na segunda seção, será dado um resumo das principais classes da Terralib.
|
Seção 3
|
Na terceira seção, será apresentado um resumo das principais tabelas da
Terralib.
|
Seção 4
|
Na quarta seção, serão mostradas as principais classes do modelo de dados do
Tdk.
|
|
Seção 1. Introdução aos conceitos de Sistema de Informação
Geográfica
|
Um Sistema de Informação Geográfica é um sistema para gerenciamento, análise e
apresentação de conhecimento geográfico. Para conseguir prover tais
funcionalidades, este sistema deve ser capaz de manter uma estrutura organizada
de conjuntos de informações geográficas, o que pode se traduzir em um tipo
especial de banco de dados, um banco de dados geográfico .
As informações geográficas de que tratamos são conceitos do mundo real,
naturais e humanos, tais como propriedades de solo, altitude, população, entre
outros, que tem como característica comum o fato de serem referenciáveis
geograficamente (altitude de um local, população de um município).
Note que as informações geográficas tem dois componentes distintos: um componente
descritivo e um componente espacial . No exemplo
da população de um município, o componente descritivo é a quantidade de pessoas
que moram no município, enquanto o componente espacial é o mapa municipal, com
suas fronteiras.
Para que estas informações possam ser utilizadas em um Sistema de Informação
Geográfica, traduzimos estes conceitos do mundo real em representações
computacionais dos mesmos, o que em geral dará origem a dados vetoriais
(linhas, pontos, polígonos) e dados matriciais (tabelas de dados, imagens).
|

Figura 1. Representações vetoriais e matriciais utilizadas em
SIG.
|
Como toda informação geográfica está disposta sobre um local da superfície
terrestre, e sobre um mesmo local podemos ter várias tipos de informações
diferentes, podemos imaginar vários planos de informação cobrindo a superfície.
|

Figura 2. Camadas de informações sobre a superfície da Terra.
|
Um plano de informação, ou layer (termo mais utilizado em
SIG), agrupa informações sobre coisas semelhantes, coisas que compartilham os
mesmos atributos, como por exemplo um mapa de municípios, que tem informações
sobre os diversos municípios que ocupam a região representada.
Alguns cuidados precisam ser tomados ao serem combinadas informações de camadas
diferentes. Por exemplo, ambas as camadas devem utilizar uma mesma projeção
cartográfica, pois de outra forma, as camadas não irão “encaixar”.
Projeção é o meio utilizado para apresentar em um plano a superfície curva da
Terra. Existem várias formas de fazer uma projeção, e todas elas envolvem algum
tipo de deformação, como podemos ver nas figuras.
|

Figura 3. Projeção cônica de Albers
|

Figura 4. Projeção cilíndrica de Miller
|
Em alguns tipos de aplicações pode haver o interesse em apenas parte da
totalidade dos dados contidos em um layer, e por isso é utilizado o conceito de
tema , para definir uma seleção sobre o conteúdo de layers. Para
uma certa aplicação, por exemplo, pode ser interessante visualizar informações
apenas sobre municípios com mais de um milhão de habitantes, ou apenas sobre
municípios em regiões de floresta. Critérios como estes podem definir uma
seleção temática sobre os dados de um layer, formando um tema.
Por motivos gerenciais, ou de segurança, pode ser necessário que apenas um
grupo de usuários do SIG tenha acesso ilimitado às informações contidas no
banco de dados, e outros grupos (ou indivíduos) tenham acesso limitado. Uma
vista do banco de dados é um mecanismo para controlar quais temas
um usuário pode visualizar em conjunto.
|
Seção 2 - Modelo de classes da TerraLib
|
Podemos apresentar a modelagem dos dados na TerraLib de duas formas: um modelo
de classes, que é utilizado para modelar a camada de software, e um modelo de
dados, que mostra como é feito o armazenamento em tabelas no banco de dados
relacional. Nesta seção apresentamos o modelo de classes, e na próxima
apresentamos o modelo de dados.
|

Figura 5. Parte do modelo de classes da TerraLib.
|
O modelo de classes apresentado na Figura 5 é um modelo de alto nível,
ilustrando apenas as relações entre as classes, sem entrar em detalhes sobre os
atributos e métodos das classes. Estão presentes neste modelo vários dos
conceitos introduzidos na seção 1. Um objeto da classe TeLayer
corresponde a um plano de informação, um objeto TeView
corresponde a uma vista. Vemos que não há limite para o número de layers e
views que podem haver no banco de dados, representado por um objeto da classe
TeDatabase .
Como podemos ver no diagrama, podemos ter apenas uma projeção cartográfica
associada a cada objeto TeLayer ou a cada objeto TeView, e esta projeção é
representada por um objeto da classe TeProjection .
No caso do layer, temos uma projeção comum para todas as representações que
este contiver porque podemos processar estas representações em conjunto, e já
no caso da view, a projeção é a mesma pois tudo que encontra-se sobre uma mesma
view será visualizado em conjunto.
Os objetos da classe TeTheme representam o conceito
de tema apresentado na seção 1, e cada tema está associado a um layer
específico. Cada tema também está sempre associado a uma única vista.
|
Seção 3 - Modelo de dados da TerraLib
|
Em um banco de dados TerraLib há dois tipos de tabelas: tabelas de dados e
tabelas de meta-dados. As tabelas de dados são os dados geográficos em si,
tanto o componente descritivo quanto o componente espacial, de que falamos na
seção 1. Já as tabelas de meta-dados, contém informações sobre como estão
organizados os dados, e ajudam as aplicações a decodificar as informações
contidas nas tabelas de dados. Chamamos o conjunto de tabelas de meta-dados de
modelo conceitual do banco de dados.
Apresentamos na Figura 6 uma parte do modelo conceitual da TerraLib, que iremos
explicar em seguida.
|

Figura 6. Parte do modelo conceitual da TerraLib.
|
A tabela principal neste modelo conceitual é a tabela te_layer,
que representa um plano de informação geográfica. As tabelas te_layer,
te_view, te_theme e te_projection representam
respectivamente os conceitos de plano de informação, vista, tema e projeção
cartográfica, e os relacionamentos entre elas são semelhantes aos
relacionamentos entre as classes TeLayer, TeView, TeTheme e TeProjection, que
foram apresentadas na seção 2.
As tabelas te_representation e te_layer_table
serão utilizadas para armazenar, respectivamente, os componentes espaciais e
descritivos das informações geográficas que estão em um mesmo plano de
informação, ou layer, conceitos que foram apresentados na seção 1.
Como podemos ver pelos campos da tabela te_representation, cada representação
tem um identificador único, que é sua chave primária repres_id, e está
associada a um layer específico através de uma chave estrangeira layer_id
, que é o identificador de um dos layers armazenado na tabela te_layer.
Além disso, cada representação tem um campo geom_type, que indica o
seu tipo: pode ser uma representação de pontos, linhas, polígonos, matricial,
de geo-campo, etc. Por fim, o campo geom_table aponta para uma tabela
de dados (não meta-dados!) que contém os dados do componente espacial da
informação geográfica em si.
A tabela te_layer_table é utilizada para armazenar o componente
descritivo de uma informação geográfica, como por exemplo dados demográficos
sobre um município. Esta tabela também tem uma chave primária table_id
e uma associação com um layer através da chave estrangeira layer_id.
Assim como a tabela te_representation, há um campo apontando para uma
tabela de dados, chamada attr_table , que contém os dados do
componente descritivo da informação geográfica representada.
|
Seção 4 - Modelo de classes do Tdk
|
|
Informações aqui sobre TdkProject, TdkView, TdkTheme, TdkLayer,
TdkGeographicObject, TdkObject, etc.
|
O modelo de dados conceitual do Tdk foi definido a partir do modelo da
TerraLib, seguindo as especificações do padrão de projeto Composite e
pode, portanto, ser estendido para acomodar novos componentes.
O elemento que define um objeto Tdk (TdkObject) é a raiz do modelo e
pode representar três tipos básicos de elementos:
-
Geometria – Uma representação geométrica simples (um ponto, linha, polígono,
imagem, ou qualquer outra representação geométrica).
-
Objeto Simples – Um objeto geográfico composto por n geometrias em atributos.
-
Coleção – Um conjunto de objetos simples ou de outras coleções.
Esses elementos são organizados hierarquicamente segundo as regras de que um
objeto simples agrupa um conjunto de geometrias e uma coleção agrupa objetos
simples ou outras coleções. Uma vez definida uma interface única e comum a
objetos e coleções, torna-se possível o tratamento uniforme entre estes
elementos.
|
|
|
Topo ^
|
|