Buscar

banco-de-dados-geograficos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 94 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 94 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 94 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Brasília-DF. 
Banco de dados GeoGráficos
Elaboração
Jorge Umberto Scatolin Marques
Produção
Equipe Técnica de Avaliação, Revisão Linguística e Editoração
Sumário
APRESENTAÇÃO ................................................................................................................................. 4
ORGANIZAÇÃO DO CADERNO DE ESTUDOS E PESQUISA .................................................................... 5
INTRODUÇÃO.................................................................................................................................... 7
UNIDADE I
CONCEITOS DE BANCO DE DADOS ....................................................................................................... 9
CAPÍTULO 1
MODELAGEM DE DADOS ......................................................................................................... 9
CAPÍTULO 2
CLASSES E MODELO DE DADOS RELACIONAL - UML ............................................................... 16
CAPÍTULO 3
ORIENTAÇÃO A OBJETOS ....................................................................................................... 21
CAPÍTULO 4
MODELAGEM DE DADOS GEOGRÁFICOS .............................................................................. 25
UNIDADE II
SISTEMAS GERENCIADORES DE BANCO DE DADOS .............................................................................. 34
CAPÍTULO 1
SGDBS ................................................................................................................................... 34
CAPÍTULO 2
LINGUAGENS DE BANCO DE DADOS - SQL ............................................................................. 40
CAPÍTULO 3
SGBD COM EXTENSÕES ESPACIAIS ......................................................................................... 53
CAPÍTULO 4
BIBLIOTECA TERRALIB .............................................................................................................. 70
CAPÍTULO 5
TERRAVIEW ............................................................................................................................. 76
REFERÊNCIAS .................................................................................................................................. 94
4
Apresentação
Caro aluno
A proposta editorial deste Caderno de Estudos e Pesquisa reúne elementos que se 
entendem necessários para o desenvolvimento do estudo com segurança e qualidade. 
Caracteriza-se pela atualidade, dinâmica e pertinência de seu conteúdo, bem como pela 
interatividade e modernidade de sua estrutura formal, adequadas à metodologia da 
Educação a Distância – EaD.
Pretende-se, com este material, levá-lo à reflexão e à compreensão da pluralidade dos 
conhecimentos a serem oferecidos, possibilitando-lhe ampliar conceitos específicos da 
área e atuar de forma competente e conscienciosa, como convém ao profissional que 
busca a formação continuada para vencer os desafios que a evolução científico-tecnológica 
impõe ao mundo contemporâneo.
Elaborou-se a presente publicação com a intenção de torná-la subsídio valioso, de modo 
a facilitar sua caminhada na trajetória a ser percorrida tanto na vida pessoal quanto na 
profissional. Utilize-a como instrumento para seu sucesso na carreira.
Conselho Editorial
5
Organização do Caderno 
de Estudos e Pesquisa
Para facilitar seu estudo, os conteúdos são organizados em unidades, subdivididas em 
capítulos, de forma didática, objetiva e coerente. Eles serão abordados por meio de textos 
básicos, com questões para reflexão, entre outros recursos editoriais que visam a tornar 
sua leitura mais agradável. Ao final, serão indicadas, também, fontes de consulta, para 
aprofundar os estudos com leituras e pesquisas complementares.
A seguir, uma breve descrição dos ícones utilizados na organização dos Cadernos de 
Estudos e Pesquisa.
Provocação
Textos que buscam instigar o aluno a refletir sobre determinado assunto antes 
mesmo de iniciar sua leitura ou após algum trecho pertinente para o autor 
conteudista.
Para refletir
Questões inseridas no decorrer do estudo a fim de que o aluno faça uma pausa e reflita 
sobre o conteúdo estudado ou temas que o ajudem em seu raciocínio. É importante 
que ele verifique seus conhecimentos, suas experiências e seus sentimentos. As 
reflexões são o ponto de partida para a construção de suas conclusões.
Sugestão de estudo complementar
Sugestões de leituras adicionais, filmes e sites para aprofundamento do estudo, 
discussões em fóruns ou encontros presenciais quando for o caso.
Praticando
Sugestão de atividades, no decorrer das leituras, com o objetivo didático de fortalecer 
o processo de aprendizagem do aluno.
6
Atenção
Chamadas para alertar detalhes/tópicos importantes que contribuam para a 
síntese/conclusão do assunto abordado.
Saiba mais
Informações complementares para elucidar a construção das sínteses/conclusões 
sobre o assunto abordado.
Sintetizando
Trecho que busca resumir informações relevantes do conteúdo, facilitando o 
entendimento pelo aluno sobre trechos mais complexos.
Para (não) finalizar
Texto integrador, ao final do módulo, que motiva o aluno a continuar a aprendizagem 
ou estimula ponderações complementares sobre o módulo estudado.
7
Introdução
A necessidade de armazenar informações em bancos de dados tornou-se vital para 
os mais variados domínios de aplicações existentes, inclusive, sendo utilizada como 
estratégia de negócio entre empresas, segmentos, dispositivos etc. A maioria dessas 
aplicações está voltada para o armazenamento de dados comuns do mundo real, como 
dados de Cliente, Alunos, Fornecedores etc.
Entretanto, a modelagem de dados para essa aplicação tornou-se inviável para 
aplicações que utilizam dados Geográficos forçando a necessidade da criação de 
métodos e conceitos, tecnologias, ferramentas voltadas exclusivamente ao mundo Geo.
Dois exemplos que podem demonstrar definitivamente essas diferenças estão entre 
duas ferramentas do mesmo fabricante: PostgreSQL e PostGIS.
O PostgreSQL é um Sistema gerenciador de Banco de Dados criado para suprir o 
armazenamento de dados e manipulá-los de forma a satisfazer as necessidades de 
aplicações comuns, não Geográficas: ERPs em sua grande maioria.
O PostGIS é uma extensão criada para atingir os GISs tornando o PostgreSQL um banco 
de dados preparado para receber dados como medidas geográficas e funções geográficas.
Objetivos
 » Promover a introdução do aluno ao conceito de Banco de Dados, desde 
sua criação até sua utilização na prática, utilizando ferramentas, técnicas 
e exemplos. 
 » Produzir conhecimento sobre dados geográficos e como eles são abstraídos 
do mundo real para o mundo virtual. Também será demonstrado como 
importar e utilizar dados existentes, produzidos por outras empresas. 
 » Aperfeiçoar o conhecimento sobre linguagens de programação de banco 
de dados, a utilização em sistemas SGDBs, ferramentas específicas 
e exemplos de como implementar bibliotecas com linguagens de 
programação, técnicas de Orientação a Objetos e UML.
8
9
UNIDADE ICONCEITOS DE 
BANCO DE DADOS
CAPÍTULO 1
Modelagem de dados
Um dos métodos mais utilizados nos estudos iniciais sobre Modelagem de Dados é o 
criado por Peter Chen em 1976, baseado na teoria de E.F. Codd onde diziam:
A visão de uma dada realidade, baseia-se no relacionamento entre 
entidades, os quais retratam os fatos que governam esta mesma realidade, 
e que cada um (entidade ou relacionamento) pode possuir atributos.
O conceito de abstração também aparece nesse estudo inicial e podemos citar: classificação, 
abstração e agregação.
Base de dados relacionais 
A modelagem entidade-relacionamento ou MER, podemos obter esquemas ou modelos 
essenciais sobre o sistema ou projeto que estaremos desenvolvendo.
No estudo do MER, temos que deixar muito claro sobre o realmente nos interessa: a 
informação existente do negócio, ou seja, processos, procedimentos ou fluxo de dados, 
não nos vai interessarnesse momento.
Entidades
São objetos abstraídos do mundo real com sua identificação dos quais obterem seus 
atributos. As entidades se tornarão as tabelas de nossa base de dados e sua representação 
no Diagrama Entidade-Relacionamento será um retângulo.
Figura 1. Entidade.
Fonte: autor.
10
UNIDADE I │ MODELAGEM DE DADOS
Atributos
São as propriedades da Entidade (tabela) que se tornarão os campos das tabelas e 
armazenarão os dados em nossa base de dados. Geralmente, fazemos a pergunta: 
“O que descreve determinada tabela?” para podermos listar todos os atributos necessários 
para compor sua estrutura.
Os atributos podem ser nomes, valores, descrições e localizações, porém existe um campo 
que terá a função de identificar unicamente cada informação em uma determinada 
tabela: chamamos de chave primária.
Imagine que em nosso MER exista uma tabela chamada de Distritos e o mesmo possui 
uma lista de atributos: descrição, medidas etc.
Qual desses atributos identificaria unicamente um determinado Distrito? 
Percebam que descrição e medidas pode haver vários distritos com esses valores. Nesse 
caso, é comum criar um campo chamado Código onde cada distrito terá um único valor. 
Para esse campo damos o nome de Chave Primária.
Representando graficamente nosso MER teremos o seguinte DER:
Figura 2. Entidade e Atributos.
Fonte: autor.
Relacionamentos
Em modelagem de dados, é muito importante entendermos relacionamentos entre as 
Entidades, pois, é ele quem define o acontecimento que ligam duas ou mais Entidades.
Vamos nos basear em um exemplo onde temos um ambiente que possui um Distrito e 
esse possui várias Quadras.
11
MODELAGEM DE DADOS │ UNIDADE I
Percebam que o próprio pronunciar da frase já nos dá a orientação que precisamos: 
Distrito possui Quadras.
A palavra possui é o elo entre as Entidades Distrito e Quadra. Veja no DER:
Figura 3. Relacionamento entre duas Entidades.
Fonte: autor.
O sentido de leitura, nesse momento, não influencia no DER. Entretanto, existe um 
número de ocorrências entre as Entidades. 
Por exemplo: um Distrito possui várias Quadras, porém, uma determinada Quadra só 
poderá estar em um Distrito.
Quando esse fato ocorre, denominamos Grau do Relacionamento ou Cardinalidade.
Nesse momento definiremos quais os campos farão o relacionamento entre as Entidades.
Cardinalidade
Como vimos, a Cardinalidade influencia no número de ocorrências entre as Entidades 
e essas ocorrências, no mundo real, possuem três possiblidades:
Relacionamento um para um
Nesse tipo de relacionamento, cada Entidade só se relaciona com um e somente um 
elemento de outra Entidade. 
Por exemplo: na legislação brasileira um homem só pode se casar com uma e somente 
uma ao mesmo tempo. Para representar esse relacionamento teríamos o seguinte DER:
Figura 4. Relacionamento 1:1.
Fonte: autor.
12
UNIDADE I │ MODELAGEM DE DADOS
Relacionamento um para muitos
Esse relacionamento é o mais encontrado no mundo real onde, cada da Entidade 1 se 
relaciona com um ou muitos elementos da Entidade 2 mas cada elemento da Entidade 
2 só pode estar relacionado com um elemento da Entidade 1.
Um exemplo para esse tipo de relacionamento: 
 » Em um Distrito pode haver várias Quadras, entretanto, uma determinada 
Quadra só poderá existir naquele Distrito. 
Figura 5. Relacionamento 1:N.
Fonte: autor.
Veja que o sentida da leitura influencia no Relacionamento: 
Figura 6. Sentido do Relacionamento.
Fonte: autor.
13
MODELAGEM DE DADOS │ UNIDADE I
Tabela com os dados
Figura 7. Tabelas preenchidas.
Tabela Distritos Tabela Quadras
Distrito 1 Quadra 1
Quadra 2
Distrito 2 Quadra 3
Quadra 5
Quadra 6
Quadra 7
Distrito 3 Quadra 4
No relacionamento 1:N destacamos o campo que faz o relacionamento entre as tabelas 
e o chamamos de Chave Estrangeira.
A regra para criarmos uma Chave Estrangeira é:
Quando existe um relacionamento um para muitos, o campo Chave Primária da Tabela 
(Entidade) do lado 1 vai para o lado N como Chave Estrangeira.
Ao criarmos a estrutura das tabelas e preenchermos com os dados ficará assim:
Figura 8. Tabela dos dados de Distritos.
Tabela Distritos
Código do Distrito Descrição
1 Distrito 1
2 Distrito 2
3 Distrito 3
Tabela Quadras
Código da Quadra Descrição Código do Distrito
1 Quadra 1 1
2 Quadra 2 1
3 Quadra 3 2
4 Quadra 4 3
5 Quadra 5 2
6 Quadra 6 2
7 Quadra 7 2
Fonte: autor.
O campo Código do Distrito na Tabela Distritos é a Chave Primária, porém, na Tabela 
Quadras é a Chave Estrangeira.
14
UNIDADE I │ MODELAGEM DE DADOS
Relacionamento muitos para muitos
Esse Relacionamento tem característica única, pois, seja qual for o sentido da leitura 
sempre existirá um Relacionamento Muito para muitos. Veja um exemplo clássico:
Um Engenheiro X participa de um determinado Projeto Y. Entretanto, esse engenheiro 
pode participar de vários projetos e no Projeto Y podem trabalhar vários engenheiros.
Representando graficamente temos:
Figura 9. Relacionamento N:N.
Fonte: autor.
Como vimos no Relacionamento 1:N, para criarmos a Chave Estrangeira bastaria criar 
o campo da Tabela 1 na Tabela N. Mas e nesse caso, qual das Tabelas ficará com a Chave 
Estrangeira?
Existe uma regra para o caso N:N: 
 » Quando ocorre um relacionamento N:N, cria-se outra tabela com os 
campos chaves de ambas que ficará sendo a Chave Primária dessa tabela 
criada, ou seja, essa tabela possuirá uma Chave Primária Composta 
com mais de um campo. 
Figura 10. Nova tabela N:N.
Tabela Engenheiros
Código Nome
1 Carlos
2 Jorge
3 Henrique
4 Luiz
Tabela Projetos
Código Descrição
1 Projeto 1
2 Projeto 2
3 Projeto 3
4 Projeto 4
15
MODELAGEM DE DADOS │ UNIDADE I
Tabela Engenheiros/Projetos
Código do Engenheiro Código do Projeto
1 2
1 1
1 3
Fonte: o autor.
16
CAPÍTULO 2
Classes e modelo de dados relacional - 
UML
Diagrama de classes
Seu principal enfoque está em permitir a visualização das classes que comporão o sistema, 
bem como seus atributos e métodos, seus relacionamentos e com as classes se relacionam 
e trocam mensagens.
Classes, atributos e métodos
Classes costumam ter atributos que armazena dados dos objetos e métodos que são as 
funções que uma instância da classe possa executar. 
Uma classe pode ser representada por um retângulo e três divisões:
Figura 11. Representação da Classe.
Cliente
- CPF: varchar[20]
- Nome: varchar[60]
- Endereço: varchar[100]
+Consultar(CPF:varchar):int
Fonte: o autor.
1. Nome da Classe;
2. Atributos, seus tipos de dados e seus a visibilidade dos campos;
3. Métodos
Objetos
São membros ou exemplos de uma classe; é uma instância da classe. Cada instância tem 
seus próprios valores de atributos, compartilha os nomes dos atributos e os métodos 
com os outros objetos da mesma classe. Ex:
17
MODELAGEM DE DADOS │ UNIDADE I
Figura 12. Objeto.
Fonte: o autor.
Visibilidade (encapsulamento)
Indica o nível de acessibilidade de um determinado atributo ou método. 
Existem três tipos de visibilidades:
 » + público:
 › indica que o atributo ou método pode ser utilizado por qualquer classe.
 » - privado: 
 › indica que somente a classe possuidora do atributo ou método poderá 
utilizá-lo.
 » # protegido: 
 › indica que somente a classe possuidora do atributo ou método ou suas 
sub-classes podem ter acesso ao mesmo.
Relacionamentos
A funcionalidade do relacionamento entre as classes é a colaboração para permitir a 
execução de diversos processos executados pelo sistema.
Associações
Descreve o vínculo que ocorre entre duas classes, além de identificar algum nível de 
dependência entre elas.
Associação unária ou reflexiva
Ocorre quando existe um relacionamento de uma classe para consigo mesma.
18
UNIDADE I │ MODELAGEM DE DADOS
Figura 13. Relacionamento recursivo.
Fonte: o autor.
A informação 0 ... * significa multiplicidade. Nesse exemplo, indica que um determinado 
funcionário pode chefiar nenhum (0) ou muitos funcionários (*).
A multiplicidade procura determinar qual das classes envolvidas em umaassociação 
fornecem informações para outras.
Figura 14.
Tabela exemplo de multiplicidade
0 ... 1 No mínimo zero e no máximo um.
1 ... 1 Um e somente um
0 ... * No mínimo nenhum e no máximo muitos
1 ... * No mínimo um e no máximo muitos
Associação binária
Ocorre quando são identificados relacionamentos entre duas classes e constitui a 
maioria encontrada no diagrama de classes.
Figura 15. Associação Binária, a mais comum.
Fonte: o autor.
Além do nome da associação, também podemos indicar a direção das informações.
19
MODELAGEM DE DADOS │ UNIDADE I
Associação ternária ou N-ária
São associações que conectam mais de duas classes. O ponto de convergência das ligações 
entre as classes é indicado por um losango;
Figura 16. Associação Ternária.
Fonte: o autor.
Agregação
É um tipo especial de associação onde tenta-se demonstrar que as informações de um 
objeto (objeto-todo) precisam ser complementadas pelas informações contidas em um 
ou mais objetos de outra classe(objeto-parte).
Figura 17. Agregação.
Fonte: o autor.
Composição
A composição constitui uma variação da associação de agregação, pois tenta representar 
um vínculo mais forte entre os objetos onde os objetos-parte têm que pertencer 
exclusivamente a um único objeto-todo.
20
UNIDADE I │ MODELAGEM DE DADOS
Figura 18. Inverso da Agregação.
Fonte: o autor.
21
CAPÍTULO 3
Orientação a objetos
Conceito
As linguagens de modelagem orientadas a objetos surgiram em meados da década 
de 1970 e os trata-se de uma modelagem dos objetos do mundo real, estudando-os e 
criando classes a partir de suas características e comportamentos.
Esse conceito foi introduzido em Sistemas Gerenciadores de Banco de Dados, porém, 
foi pouco explorado comercialmente, ficando seu uso restrito Centro Acadêmicos 
e Científicos.
Esses sistemas ficaram conhecidos como SGDBOO – Sistemas de Gerenciamento de 
Dados Orientado a Objetos e uma de suas principais exigências é o armazenamento de 
objetos e suas operações de forma a prover uma integração transparente com a aplicação.
Veja na tabela a seguir, alguns SGBDOOs existentes no mercado:
Figura 19. Fabricantes de SGDOO.
Fabricante Website
EnterpriseDB <http://www.enterprisedb.com/>
GemStone <http://www.gemstone.com/>
EyeDB <http://www.eyedb.org/>
Caché <http://www.intersystems.com/br/>
Jasmine <http://www3.ca.com/us/default.aspx>
A seguir, vejamos os conceitos básicos necessários para um estudo de SGDBOO.
Classe
Usando a abstração, podemos classificar alguns objetos de acordo com seus 
comportamentos e atributos. A esse agrupamento damos o nome de Classes
Uma classe é composta pela sua descrição, que identifica propriedades da classe (atributos) 
e os métodos (comportamento).
Assim, por exemplo, em um dado contexto, Esfera, Cubo, Círculo, Quadrado, etc podem 
se tornar a classe Forma Geométrica.
http://www.eyedb.org/
http://www.intersystems.com/br/
22
UNIDADE I │ MODELAGEM DE DADOS
Figura 20 Definição de uma Classe.
Fonte: o autor.
Objeto
O objeto é um tipo abstrato que contém os dados mais os procedimentos que manipulam 
esses dados.
Segundo o dicionário, objeto é tudo que é manipulável e/ou manufaturável, tudo que é 
perceptível por qualquer um dos sentidos; o que é conhecido, pensado ou representado, 
em oposição ao ato de conhecer, pensar ou representar.
Portanto, objeto é a representação de elementos físicos do mundo real, que estudamos 
suas características e seus comportamentos.
Subclasse
Define uma nova classe originada de uma classe maior (classe-pai). Em nosso exemplo 
acima, podemos separar as formas geométricas dessa forma: 
 » Classe Pai ou SuperClasse: Forma Geométrica;
 » SubClasses: Forma Geométrica Bidimensionais: Círculo, Quadrado;
 » SubClasse: Forma Geométrica Tridimensionais: Esfera, Cubo.
Podemos representar graficamente:
Figura 21. Representação de hierarquia de Classes.
Fonte: o autor
23
MODELAGEM DE DADOS │ UNIDADE I
Instância
São os objetos de uma classe. Cada objeto utilizado em uma aplicação pertencente a 
uma classe é uma instância dessa classe. Instanciar é o procedimento de transformar a 
Classe em objeto, 
Métodos
São procedimentos residentes nos objetos, que são instâncias de Classes, e determinam 
como eles irão atuar ao receber as mensagens. Métodos podem receber parâmetros, 
retornar valores, ou não. 
Herança
É um mecanismo que permite o compartilhamento de métodos e dados entre classes, 
subclasses e objetos. A hereditariedade permite a criação de novas classes programando 
somente as diferenças entre a nova classe e a classe-pai. Com a Herança, as demais 
Subclasses compartilharão dos métodos e atributos públicos de suas respectivas Super 
Classes, diretas ou indiretas. Veja no exemplo:
Figura 22. Herança de Classes.
A Classe Forma 
Tridimensional, conterá os 
métodos e atributos 
públicos de sua Super 
Classe, Forma Geométrica 
A Classe Esfera, receberá os 
atributos e métodos públicos 
de Sua Super Classe direta, 
Forma Geométrica e de sua 
Super Classe indireta, Forma 
Tridimensional 
Encapsulamento
É um mecanismo que permite o acesso aos dados do objeto somente através dos 
métodos desse objeto. Nenhuma outra parte do programa pode operar sobre os dados 
de nenhum objeto. 
24
UNIDADE I │ MODELAGEM DE DADOS
Polimorfismo
Uma mesma mensagem pode provocar respostas diferentes quando recebidas por 
objetos diferentes. Com o polimorfismo, pode-se enviar uma mensagem genérica e deixar 
a implementação a cargo do objeto receptor da mensagem.
Existem definições mais abrangentes, relacionadas à linguagem de programação que, 
pode ser definida como: fazer a mesma coisa de formas diferentes. Por exemplo: temos 
2 métodos que fazem o cálculo da área de um quadrado, porém, um deles recebe 
como parâmetro os 2 lados e o outro apenas um doas lados. O cálculo seria o mesmo, 
entretanto, quando utilizamos o método de um lado apenas, o processo seria definir 
como todos os lados iguais.
25
CAPÍTULO 4
Modelagem de dados geográficos
Vimos no Capítulo sobre Modelagem de Dados que para termos uma base de dados 
operacional, precisamos abstrair do mundo real várias informações e montar a estrutura 
dessa base. 
O estudo inicial foi para termos algum conceito sobre a Modelagem de Dados e 
utilizamos medidas e conceitos de eventos não-geométricos.
A partir de agora, iremos iniciar os estudos referentes a conceitos geométricos para a 
modelagem de dados.
Modelos de dados para aplicações geográficas têm são muitos específicos, tanto com 
relação à abstração de conceitos, entidades e seus relacionamentos.
Vários modelos existem para que possam refletir ao máximo os modelos relacionais 
convencionais à modelos de aplicabilidade geográfica.
Dados geográficos
Para decidirmos o melhor modelo a utilizar temos alguns conceitos são importantes 
destacar:
 » Abstração
 » Facilidade de uso
 » Mapeamentos espaciais
Abstração de dados geográficos
 » Nível que reflete a realidade: São conceitos do mundo real e seus 
fenômenos como: ruas, rios, etc.
 » Nível de apresentação: oferecem ferramentas visuais para poder 
especificar os diferentes aspectos das entidades geográficas.
 » Nível de implementação: define as estruturas de armazenamento de 
dados para implementar fisicamente cada classe.
Para entendermos o conceito de dados geográficos é importante saber o meio onde eles 
se encontram.
26
UNIDADE I │ MODELAGEM DE DADOS
Segundo Gatr91: 
O espaço geográfico é o meio físico onde as entidades geográficas 
coexistem. Uma entidade geográfica é qualquer entidade identificável 
do mundo real, possuindo características espaciais e relacionamentos 
espaciais com outras entidades geográficas.
Esses dados podem ser qualquer tipo de dados ligados à dimensão espacial e descreve 
fenômenos aos quais esteja associada alguma dimensão espacial.
Dados geográficos ou georreferenciados são dados espaciais em que a dimensão espacial 
está associada à sua localização na superfície da terra, num determinado instante ouperíodo de tempo [CCHM96] e possuem três características fundamentais:
 » Espacial: informam a posição geográfica e a geometria do fenômeno.
 » Não-espacial e temporal: descrevem o fenômeno, suas características 
temporais, o tempo de validade dos dados geográficos e suas variações 
sobre o tempo.
Também possuem propriedades:
 » Geométricas: propriedades métricas como pontos, linhas e polígonos 
representando a geometria das entidades e estabelecem seus 
relacionamentos métricos.
 » Topológicas: baseadas nas posições relativas dos objetos no espaço como 
conectividade, orientação, adjacência e contenção.
Modelos de dados OMT-G
O modelo OMT-G baseia-se em representações definidas pelo Diagrama de Classes 
da UML. 
UML é uma linguagem visual utilizada para modelar sistemas computacionais por meio 
do paradigma de Orientação a Objetos.
Seu objetivo é aumentar a capacidade de representação semântica do modelo e 
reduzir a distância entre o modelo mental do espaço a ser modelado e o modelo 
usual, oferecendo suporte a estruturas topológicas “todo-parte”, estruturas de rede, 
múltiplas representações de objetos e relacionamentos espaciais. Além disso, o 
modelo permite a especificação de atributos alfanuméricos e métodos associados para 
cada classe. 
27
MODELAGEM DE DADOS │ UNIDADE I
O modelo OMT-G é baseado em três conceitos principais:
 » Classes
 » Relacionamentos
 » Restrições de integridade espaciais
Diagrama de classes
No modelo OMT-G o diagrama de classes é usado para descrever a estrutura e o 
conteúdo de um banco de dados geográfico. 
O Diagrama de Classes contém apenas regras e descrições que definem a estrutura dos 
dados. Também contém os elementos específicos da estrutura de um banco de dados.
Classes
As classes do Modelo OMT-G representam os três grupos de dados: contínuos, discretos 
e não-espaciais e suas classes primitivas podem ser georreferenciadas ou convencionais.
Uma Classe Georreferenciada descreve um conjunto de objetos que possuem 
representação espacial e estão associados a regiões da superfície da terra representando 
a visão de Geo-Campos e Geo-Objetos. 
Já a classe convencional descreve um conjunto de objetos com propriedades, 
comportamentos, relacionamentos e semânticas semelhantes, que possuem alguma 
relação com os objetos espaciais, mas não possuem propriedades geométricas. Elas estão 
simbolizadas exatamente como na UML.
A distinção entre classes convencionais e as georreferenciadas permite que aplicações 
diferentes compartilhem dados não espaciais, facilitando a integração de aplicações e a 
reutilização de dados.
Veja a representação das Classes Georreferenciadas e a convencionais:
Figura 23. Modelos de Classes.
Modelo convencional
completo
 
simplificado
28
UNIDADE I │ MODELAGEM DE DADOS
Modelo Georreferenciada
completo
 
simplificado
 
Fonte: <http://www.dpi.inpe.br/livros/bdados>. p. 91. Acesso em: 2014.
O modelo OMT-G ainda define cinco classes descendentes do Geo-campo
 » Isolinhas, 
 » Subdivisão planar, 
 » Tesselação, 
 » Amostragem 
 » Malha triangular
Vejam sua representação:
Figura 24. Geo Campos.
Fonte: <http://www.dpi.inpe.br/livros/bdados>. p. 91 (2014)
As subclasses da classe Geo-Camposão as seguintes:
 » Subclasse Amostragem:
 › Representa uma coleção de pontos regular ou irregularmente distribuídos 
por todo o espaço geográfico. 
 » Subclasse Isolinhas:
 › Representa uma coleção de linhas fechadas que não se cruzam 
nem se tocam (aninhadas). Cada instância da subclasse contém um 
valor associado.
29
MODELAGEM DE DADOS │ UNIDADE I
 » Subclasse Subdivisão Planar:
 › Representa o conjunto de subdivisões de todo o domínio espacial em 
regiões simples que não se sobrepõem e que cobrem completamente 
este domínio. 
 » Subclasse Tesselação: 
 › Representa o conjunto das subdivisões de todo o domínio espacial em 
células regulares que não se sobrepõem e que cobrem completamente 
este domínio. Cada célula possui um único valor para todas as posições 
dentro dela.
 » Subclasse Rede triangular Irregular: 
 › Representa o conjunto de grades triangulares de pontos que cobrem 
todo o domínio espacial. 
A classe geo-objeto com geometria representa objetos que possuem apenas propriedades 
geométricas, e é especializada em classes: Ponto, Linha e Polígono. 
Figura 25. Geo Campos com Geometria.
Fonte: <http://www.dpi.inpe.br/livros/bdados>. p. 91 Acesso em: 2014
Figura 26. Geo Campo com Geometria e Topologia.
Fonte: <http://www.dpi.inpe.br/livros/bdados>. p. 91. Acesso em: 2014
Relacionamentos
A maioria dos modelos de dados não oferecem suporte à modelagem dos relacionamentos. 
Dada essa importância, o modelo OMT-G consegue representar três tipos de 
relacionamentos explícitos s entre suas Classes:
30
UNIDADE I │ MODELAGEM DE DADOS
 » Associações Simples:
 › Associações simples representam relacionamentos estruturais entre 
objetos de classes diferentes, convencionais ou georreferenciadas. 
Essa associação é representada por uma linha contínua ligando duas 
Classes e pode ter uma seta apontando o sentido da relação.
 » Relacionamentos topológicos em rede:
 › São relacionamentos entre objetos mantidos pela estrutura dos SIGs 
e são representados por nós e arcos conectados. São indicados por um 
nome entre duas linhas pontilhadas paralelas. 
 » Relacionamentos espaciais:
 › Representam as relações topológicas, métricas e ordinais. Podem ser 
calculadas a partir das coordenadas de cada objeto durante operações 
de análises espaciais. Tem por objetivo tornar explícita a interação 
espacial entre as classes e são representados por linhas pontilhadas. 
Também poderão ser seguidos de uma seta indicando em direção do 
relacionamento.
Figura 27. Relacionamentos Espaciais.
Fonte: <http://www.dpi.inpe.br/livros/bdados>. p. 94. Acesso em: 2014
Segundo (Câmara, 1995) (Egenhofer e Franzosa, 1991) (Egenhofer e Herring, 1990), 
o modelo OMT-G considera um conjunto de relacionamentos espaciais entre classes 
georreferenciadas:
 » Disjunto: Não existe nenhum tipo de contato entre as classes relacionadas. 
Contém: A geometria da classe que contém envolve a geometria das 
classes contidas. 
31
MODELAGEM DE DADOS │ UNIDADE I
 » Dentro de: Existem instâncias de uma classe qualquer, dentro da (contida 
na) geometria de instâncias das classes do tipo Polígono.
 » Toca: Existe um ponto (x,y) em comum entre as instâncias das classes 
relacionadas.
 » Cobre/coberto por: A geometria das instâncias de uma classe envolve a 
geometriadas instâncias de outra classe. 
 » Sobrepõe: Duas instâncias se sobrepõem quando há uma interseção de 
fronteiras.
 » Adjacente: Utilizado no sentido de vizinhança, ao lado de, contíguo.
 » Perto de: Utilizado no sentido de proximidade. 
 » Acima /Abaixo: Acima é mais alto que sobre, e abaixo mais baixo que sob.
 » Sobre/Sob: Utilizado no sentido de “em cima de” / “em baixo de”, no 
mesmo plano.
 » Entre: Utilizado no sentido posicional.
 » Coincide: Utilizado no sentido de igual. 
 » Cruza: Existe apenas um ponto P (x,y) comum entre as instâncias.
 » Atravessa: Uma instância atravessa integralmente outra instância, tendo 
no mínimo dois pontos P1 (x1,y1) e P 2(x2,y2) em comum.
 » Em frente a: utilizado para dar ênfase à posição de uma instância em 
relação à outra. 
 » À esquerda/à direita: Utilizado para dar ênfase na lateralidade entre as 
instâncias.
A representação gráfica poderá envolver relacionamento entre polígonos, linha com 
linha, linha com ponto, linha com polígono, ponto com polígono e ponto com ponto:
Figura 28.
32
UNIDADE I │ MODELAGEM DE DADOS
Fonte: <http://www.csr.ufmg.br/geoprocessamento/publicacoes>. Acesso em: 2014
Cardinalidade
O conceito de cardinalidade no Modelo de Dados Geográfico é baseado no modelo de 
dados Relacionais (UML), ou seja, também representa o número de instâncias de uma 
classe que pode estar relacionada com outra.
Generalização e especialização
A Generalização é o processo utilizado para definir classe utilizandoo partindo para 
as mais genéricas(superclasses) a partir de classes com características semelhantes 
(subclasses) (ELMASRI; NAVATHE, 2004) (LAENDER; FLYNN, 1994). 
33
MODELAGEM DE DADOS │ UNIDADE I
A especialização é o processo inverso, no qual classes mais específicas são detalhadas 
a partir de classes genéricas, adicionando novas propriedades na forma de atributos. 
Cada subclasse herda atributos, operações e associações da superclasse. No modelo 
OMT-G, as abstrações de generalização e especialização se aplicam tanto a classes 
georreferenciadas quanto a classes convencionais, seguindo as definições e a notação 
propostas na UML, em que um triângulo conecta a superclasse a suas subclasses. 
Figura 29.
Fonte: <http://www.csr.ufmg.br/geoprocessamento/publicacoes>. Acesso em: 2014
Agregação
A agregação é uma forma especial de associação entre objetos, onde se considera que 
um deles é formado a partir de outros. Anotação gráfica usada no modelo OMT-G segue 
a empregada na UML.
Uma agregação pode ocorrer entre classes convencionais, entre classes georreferenciadas 
ou entre uma classe convencional e uma classe georreferenciada. Quando a agregação 
ocorre entre classes georreferenciadas, é necessário usar a agregação espacial.
Figura 30.
Fonte: <http://www.csr.ufmg.br/geoprocessamento/publicacoes>. Acesso em: 2014
34
UNIDADE II
SISTEMAS 
GERENCIADORES DE 
BANCO DE DADOS
CAPÍTULO 1
SGDBs
Sistemas gerenciadores de Bando de Dados é um conjunto de softwares responsáveis 
por armazenar, modificar e extrair informações de uma base de dados. A esse conjunto 
de funções damos o nome de gerenciamento da Base de dados. Essas funções 
também são responsáveis pelas manutenções da base de dados e agir como interface 
entre aplicações e os dados físicos.
São inúmeras as possibilidades de utilização de um Sistema Gerenciador de Banco de 
Dados que vão desde pequenas aplicações pessoais até grandes Mainframes(sistema de 
computação de grande porte). Também existem vários Softwares disponíveis no mercado 
para esses fins. Podemos citar alguns: SQLServer, Oracle, DB2, Mysql, Firebird, PostgreSQL.
Os SGBDs também são representados por algumas tecnologias que constituem sua 
estrutura como, SGBDs Relacionais (SGBD-R) e SGBDs Objeto-Relacionais (SGBD-OR), 
com uma pequena porção para SGBDs Orientados-a-Objeto (SGBD-OO).
A popularização do SGBD-OR deu-se devido suas características de tipos de dados 
ricos e estendível, operações com linguagens de consultas, mecanismos de extensão 
e indexação. Isso tudo tornou o SGBD-OR uma solução para um universo maior de 
aplicações não convencionais.
Para cada aplicação devemos analisar minuciosamente qual SBGD escolher, entretanto, 
alguns requisitos importantes todos devem possuir:
 » Segurança:
 › Configuração de permissões aos níveis de acesso dos usuários
 » Confiabilidade:
 › Manter a integridade das informações em suas operações de inserção, 
alteração, consulta e exclusão.
35
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
 › Dados devem refletir a realidade de sua modelagem. 
 » Desempenho:
 › Mecanismos de aprimoramento de suas operações em relação ao 
tempo de acesso
 » Facilidade:
 › Facilidade de manutenção, utilização e abstração.
Mesmo com uma grande diversidade de SGBD, a maioria está dividida em: linguagens 
de definições de dados, linguagens de manipulação de dados e a estruturação de dados. 
Nesse material iremos trabalhar com o PostgreSQL e, antes de prosseguir, vamos entender 
sua estrutura, aprender como instalar, fazer suas configurações e dar prosseguimento ao 
estudo das linguagens de manipulação de dados. 
PostgreSQL
O PostgreSQL é um poderoso SGBD-OR, possui mais de 15 anos de desenvolvimento e 
uma arquitetura que ganhou forte reputação na confiabilidade, integridade dos dados e 
correção. Ele funciona em todos os principais sistemas operacionais, incluindo Linux, 
UNIX e Windows. Tem suporte completo para as chaves estrangeiras, junções views, 
triggers e procedimentos armazenados. Ele inclui 2008 tipos de dados, incluindo 
INTEGER, NUMERIC, boolean, CHAR, VARCHAR, DATE, INTERVAL, e TIMESTAMP. 
Ele também suporta o armazenamento de grandes objetos binários, incluindo imagens, 
sons ou vídeo. Possui interfaces de programação nativas para C / C ++, Java, Net, Perl, 
Python, Ruby, Tcl, ODBC, entre outros, e documentação excepcional.
<http://www.postgresql.org/about/>
<http://www.postgresql.org/docs/9.4/interactive/datatype.html>
Pesquise no site do projeto do PostgresSQL sobre alguns de seus limites como: 
 » Tamanho máximo do banco de dados, 
 » Tamanho máximo Tabela, 
 » Tamanho máximo de linha, 
 » Tamanho máximo do Campo, 
 » Máximo de Linhas por Tabela, 
36
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
 » Máximo de Colunas por Tabela, 
 » Índices máximos por tabela.
Instalação
Para instalar o PostgreSQL no Windows, acesse o endereço: <http://www.enterprisedb.
com/products-services-training/pgdownload#windows> e faça o download da versão 
de seu Sistema Operacional:
Figura 31. Instaladores.
Fonte: <http://www.postgresql.org>. Acesso em: 2014
Após o download, execute o programa baixado e logo o processo de instalação é iniciado.
Nessa etapa utilizaremos o método padrão de instalação, atentando-se para a digitação 
da senha de Administrador.
Antes de clicar em Finalizar, desmarque a opção:”Stack Builder may be used to download...”
Após a instalação, precisamos verificar se o PostgreSQL está funcionando corretamente. 
Para isso, clique no Botão iniciar, ou CTRL+R, digite “services.msc” e pressione “Enter”. 
Uma lista de serviços do Windows será aberta. Localize a seguinte e veja se o serviço 
está iniciado:
Figura 32. Serviços do Windows.
Fonte: o autor
Para acessar o serviço do SGDB, temos duas opções: linha de comando e um software 
gerenciador chamado PgAdmin. 
37
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Vamos adotar a seguinte metodologia: para acessar o SGBD utilizaremos o PgAdmin 
e para criação e manipulação das estruturas e dados, utilizaremos comandos da 
linguagem SQL. Para acessar o PgAdmin, vamos em Iniciar, Arquivos de Programas, 
PostgreSQL, PgAdmin.
Figura 33. Menu de acesso ao PostgreSQL.
Fonte: o autor
Perceba que antes mesmo de efetuar o login, temos algumas informações sobre o SGDB. 
Figura 34. Tela do Pgadmin.
Fonte: o autor
38
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Para efetuar o login, clique para expandir a opção de Servidores disponíveis. Depois, dê 
duplo clique na instância disponível, digite a senha inserida durante a instalação e 
clique ok.
Figura 35. Login.
Fonte: o autor
Vamos utilizar as facilidades do PgAdmin somente para criar a base de dados. O foco 
desse capítulo será a linguagem SQL. 
Clique com o botão direito na opção Databases, em seguida New Database e dê o nome 
de “base_teste” e pressione Ok.
Figura 36. Criar novo banco de dados.
Fonte: o autor
Será criada uma nova estrutura de Base de Dados 
Figura 37. Base de dados criada.
Fonte: o autor
39
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Após selecionar a “base_teste” note que será habilitada, na barra de ferramentas uma 
opção chamada SQL. Clique nessa opção e a tela que aparecerá será nossa ferramenta 
daqui pra em diante.
Figura 38. Utilitário de SQL.
Fonte: o autor
40
CAPÍTULO 2
Linguagens de banco de dados - SQL
Conceitos
A linguagem SQL (Structured Query Language), desenvolvida pela IBM na década de 
70 e adotada pela maioria de fabricantes de SGBDs, tornando-se praticamente sua 
linguagem padrão. 
A SQL é formada por duas sub-linguagens: 
DDL: Linguagem de definição de dados: fornece comandos para definir e modificar 
estruturas da base de dados:
 » Create: cria estrutura da base de dados e tabelas;
 » Alter: altera estrutura da base de dados, tabelas, campos, índices, etc;
 » Drop: remove estrutura da base de dados e tabelas, tabelas, campos, 
índices, etc;
DML: Linguagem de manipulação de dados:fornece comandos para manipular os 
dados no banco de dados:
 » Select: executa uma consulta e retorna dados de uma ou mais tabelas;
 » Insert: insere dados em uma tabela;
 » Update: atualiza dados de uma tabela;
 » Delete: apaga dados de uma tabela;
Toda base de dados é formada principalmente de Tabelas, Campos, Índices e algumas 
dispõem de mecanismos como Funções.
Os campos são as menores unidades que compõem uma Base de Dados e seu conjunto 
forma uma Tabela. Um dado sozinho não consegue ser muito útil. Entretanto, um 
conjunto de dados forma o que hoje é a nova sensação do mundo moderno: a informação. 
Os campos podem armazenar vários tipos de dados, porém, temos que defini-los antes 
de começar a utilizá-los. O PostgreSQL suporta vários tipos de dados, como vimos em 
capítulos anteriores.
41
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Nossa base de dados “base_teste” terá sua primeira tabela com a seguinte estrutura:
Figura 39.
Nome da Tabela Distritos
Nome do Campo Tipo de Dado Descrição
dis_codigo Inteiro não nulo Código sequencial do Distrito
dis_descricao Texto tamanho 100 Descrição ou Nome do Distrito
Selecione a ferramenta SQL, digite o seguinte comando e clique em :
Figura 40. Criação de Tabelas.
Fonte: o autor
Se o comando estiver de acordo com o padrão SQL e digitado corretamente, a aba de 
mensagens mostrará se foi efetuado com sucesso e o tempo dessa execução.
Para conferir a tabela criada, vamos expandir a árvore de opções até chegarmos à 
tabela criada:
Figura 41. Primeira tabela criada.
Fonte: o autor
42
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Além de decidirmos o tipo de dados iremos armazenar, temos que nos atentar aos índices.
Índices são utilizados para várias funções, porém, sua utilização mais frequente é para 
aperfeiçoar consultas.
Existem dois tipos de índices que iremos descrever com mais detalhes: a chave primária 
e a chave estrangeira.
A Chave Primária é um campo ou uma combinação deles que informamos ao SBBD 
que não deixe que ocorram repetições. Por exemplo, em um cadastro de pessoas físicas, 
seria muito comum utilizarmos o CPF como chave primária.
Em nossa tabela “distritos” podemos utilizar o campo Código como chave primária. 
Nesse momento precisamos de um comando que altere a estrutura de nossa tabela.
Figura 41. Alteração de estrutura.
Fonte: o autor
Selecione a tabela “distritos” e pressione F5. Isso fará com que seja atualizado nossa 
árvore de opções do PgAdmin.
Veja que aparece a “constraint” criada após a execução do comando:
Figura 42. Chave primária.
Fonte: o autor
43
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Estando a tabela criada, vamos inserir alguns dados. Digite os comandos a seguir e, 
dessa vez, clique na opção .
Figura 43. Inserir dados por scripts.
Fonte: o autor
Para consultarmos os dados que acabamos de conferir:
Figura 44. Efetuando consulta SQL.
Fonte: o autor
A tecla F5 é o atalho para 
Continuando com a estrutura de nossa base de dados, teremos uma tabela chamada 
“quadras”. Nessa tabela armazenaremos os dados referentes às Quadras de cada Distrito. 
E como associamos a tabela Distritos com a tabela Quadras?
44
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Esse relacionamento será feito através da Chave Estrangeira. 
Agora, vamos criar nossa segunda tabela:
Figura 45. Criação de nova tabela.
Fonte: o autor
A regra para essa tabela é a seguinte:
Um Distrito pode possuir várias quadras, porém, uma determinada quadra só pode 
estar em um e somente um Distrito.
O que faremos para resolver esse problema?
Simples, nesse caso utilizaremos uma Chave Primária composta pelos campos Código 
do Distrito e Código da Quadra:
Figura 46. Chave Primária ou PK (Primary Key).
Fonte: o autor
45
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Conferindo, temos:
Figura 47. PK.
Fonte: o autor
E para finalizar, agora sim executaremos o comando que fará a ligação entre as tabelas 
Quadras e Distritos:
Figura 48. Chave estrangeira.
Fonte: o autor
Vamos inserir dados na tabela Quadras para que possamos trabalhar com as consultas 
m SQL.
Faremos acontecer um erro proposital com esse primeiro registro que estamos tentando 
inserir. Note a mensagem de erro logo abaixo do comando que digitamos. Esse erro é 
típico de quando estamos tentando inserir um registro na tabela B e está possui uma 
chave estrangeira da tabela A.
46
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Instantaneamente o mecanismo do SGBD bloqueia a inserção de dados mostrando a 
mensagem de “violação de chave estrangeira”.
Figura 49. Erro ao inserir dados.
Fonte: o autor
Vejam que estamos tentando inserir o código de distrito número 20 e esse código não 
existe na tabela de Distritos.
Normalmente quem mostrará os registros existentes em outras tabelas será 
a aplicação ou SIGa através de telas de consultas ou componentes como 
DropDowns.
Segue os comandos para completarmos nossa tabela.
Figura 50. Inserção por scripts.
Fonte: o autor
47
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Comando de consulta Select 
O comando Select da linguagem SQL é um comando que nos retorna informações de 
acordo com seus parâmetros. 
Sua sintaxe é:
 » Select <campos> from <tabela> [where <parâmetros>]
Antes de executarmos esse comando temos que preparado, mesmo que seja mentalmente, 
a frase que da consulta que gostaríamos que o SGBD nos retornasse. 
Por exemplo:
 » Selecione todos os dados da tabela Distritos.
Traduzindo para SQL temos:
 » Select * from Distritos
Figura 51. Selecionando os Distritos.
Fonte: o autor
Normalmente toda consulta SQL vem acompanhada de parâmetros. 
 » Selecione todas as Quadras do Distrito código 3.
 » Selecione todas as Quadras que contenham a palavra “excluir”.
 » Selecione todas as Quadras que o código seja maior que 5.
48
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Figura 52. Parâmetro simples.
Fonte: o autor
Figura 53. Parâmetros like.
Fonte: o autor
Figura 54. Parâmetros com operadores.
Fonte: o autor
49
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Update
O comando Update é utilizado para alterarmos o conteúdo de uma tabela e deve ser 
utilizado com parâmetros iguais ao comando Select. 
Sua sintaxe é:
 » Update <tabela> set <informações> [where <parâmetros>]
Vamos alterar a descrição da Quadra de código 8 para “Quadra 8”
Figura 55. Comando Update.
Fonte: o autor
Após o comando de alterar:
Figura 56. Conferindo.
Fonte: o autor
50
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Delete
O comando Delete é utilizado para excluirmos um registro de uma tabela. Também, 
por precaução, sempre é utilizado com parâmetro. Caso contrário corremos o risco de 
excluir todos os dados. Sua sintaxe é:
 » Delete from <tabelas> where <parâmetros> 
Vamos excluir o registro código 9 da tabela Quadras:
 » Delete from Quadras whre qua_codigo = 9
Executando:
Figura 57. Comando Delete.
Fonte: o autor
Figura 58. Conferindo após Delete.
Fonte: o autor
51
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Junções
Comandos de junções são comandos utilizados para juntar duas ou mais tabelas. 
Sua sintaxe é:
 » Select <campos> from <tabela 1> join <tabela2> on <chave primaria da 
tabela 1 = chave estrangeira na tabela 2> 
Em nosso exemplo, podemos utilizar o comando join para juntarmos a os dados da 
tabela Distrito com a tabela Quadras. Veja: 
Figura 59. Junção de mais tabelas.
Fonte: o autor
Operações espaciais
As consultas espaciais baseiam-se em relacionamentos espaciais de vários tipos: 
métricos, direcionais e topológicos.
Por serem dois conceitos de natureza distinta, as operações sobre as componentes 
espaciais de geocampos e geo-objetos também são diferentes. 
Como SQL-89 não acomodava consultas espaciais, várias propostas surgiram na década 
de 90 para estender a linguagem, notadamente (EGENHOFER, 1994) (OGIS, 995). 
Segundo Frank e Mark (1991), asextensões devem considerar dois pontos básicos: 
 » embora seja possível estender SQL com operadores espaciais, a semântica 
destes operadores deve ser formalmente definida; 
52
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
 » embora seja possível estender SQL para incluir controle de apresentação 
de geometrias, aconselha-se projetar uma linguagem separada para lidar 
com esta questão. 
SF-SQL
A SF-SQL, proposta pelo OGC - Open Geoscience Consortium, especifica um conjunto 
de tipos de geometrias vetoriais, operações topológicas e operações métricas. A proposta 
especifica ainda um esquema de tabelas para metadados das informações espaciais. 
Ela introduz o conceito de “tabela com feições” para representação dos dados geográficos. 
Nesta tabela, os atributos não espaciais são mapeados para colunas de tipos disponíveis na 
SQL-92, e os atributos espaciais para colunas cujo tipo de dados é baseado no conceito 
de “tipos de dados geométricos adicionais para SQL”. 
A representação dos atributos espaciais pode seguir dois modelos, chamados SQL-92 e 
SQL-92 com Tipos Geométricos. O primeiro modelo utiliza uma tabela para representar 
os atributos espaciais. O segundo utiliza tipos abstratos de dados específicos para 
geometrias, estendendo os tipos da SQL.
53
CAPÍTULO 3
SGBD com extensões espaciais
PostGis
É uma robusta extensão do SGDB PostgreSQL que é utilizado para manipular e 
armazenar dados espaciais. Sua primeira versão foi lançada em Maio de 2001.
Quais aplicativos suportam PostGIS ?
PostGIS tornou-se um banco de dados espacial amplamente utilizada, bem como o 
número de programas de terceiros que suportam o armazenamento e recuperação de 
dados usando-o também aumentou . Os programas que suportam PostGIS incluem 
os de código fonte aberto e software proprietário, utilizado tanto em aplicações web 
e desktop.
A tabela a seguir mostra uma lista de alguns dos softwares que utiliza PostGIS:
 » Open/Free:
 › Aplicações web
 · Mapserver
 · GeoServer (Java-based WFS / WMS -server )
 · SharpMap SDK - for ASP.NET 2.0
 · MapGuide Open Source (using FDO)
 » Aplicações Desktop:
 › uDig
 › QGIS
 › mezoGIS
 › OpenJUMP
 › GvSIG
 › OpenEV
54
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
 » Fechado/Proprietário:
 › Aplicações web:
 · Cadcorp GeognoSIS
 · Iwan Mapserver
 · MapDotNet Server
 · ERDAS
 › Aplicações Desktop:
 · AutoCAD Map 3D
 · Cadcorp SIS
 · Microimages TNTmips GIS
 · ESRI ArcGIS 9.3+
Tipos de dados espaciais
Um banco de dados comum tem strings, números e datas. Um banco de dados espacial 
acrescenta tipos adicionais (espaciais) para representar características geográficas. 
Esses tipos de dados podem encapsular estruturas espaciais como estruturas e 
dimensões que podem ser entendidos simplesmente como formas.
Os dados no PostGIS possuem a seguinte organização hierárquica:
Figura 60.
Fonte: <http://workshops.boundlessgeo.com/postgis-intro/introduction.html>. Acesso em: 2014
55
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Instalação
Para efetuarmos a instalação do PostGIS faremos o download do executável. Para isso, 
acesse o seguinte endereço e escolha a opção de acordo com seu Windows:
32 e 64 bits:
<http://download.osgeo.org/postgis/windows>
Após efetuar o download, clique duas vez no arquivo para iniciar a instalação:
Figura 61. Inicio da Instalação.
Fonte: o autor
O método de instalação é o padrão utilizado pela maioria dos programas feitos para o 
sistema operacional Windows.
Figura 62. Não será necessário criar Base nesse momento.
Fonte: o autor
56
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Não selecione a opção para criar banco de dados espacial.
Figura 63. Mesmo caminho do PostgreSQL.
Fonte: o autor
O diretório é o mesmo da instalação do PostgresSQL.
Figura 64. Mesmo usuário e senha do PostgreSQL instalado anteriormente.
Fonte: o autor
Coloque a senha do banco de dados criada anteriormente.
57
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Figura 65. Instalando.
Fonte: o autor
Avance até o final da instalação. 
Figura 66. Finalizando a instalação.
Fonte: o autor
Poderemos utilizar o mesmo PgAdmin que instalamos na versão tradicional 
do PostgreSQL.
58
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Figura 67. Utilitário PgAdmin.
Fonte: o autor
Crie uma base de dados chamada base_teste_geo:
Figura 68. Criando base de dados.
Fonte: o autor
Após criada, selecione nossa base de dados e expanda a opção Extensions e note que 
possuímos apenas uma extensão padrão
Figura 69. Schema criado.
Fonte: o autor
59
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Abra o utilitário de SQL e execute os seguintes comandos:
Figura 70. Criando a extensão do PostGIS.
Fonte: o autor
 » CREATE EXTENSION postgis_topology;
 » CREATE EXTENSION fuzzystrmatch;
 » CREATE EXTENSION postgis_tiger_geocoder;
Clica novamente na opção extensions e pressione F5 para atualizar. Instalamos nesse 
momento a extensão do PostGIS no PostgreSQL.
Figura 71. Extensões necessárias.
Fonte: o autor
Execute o seguinte comando para verificarmos a versão instalada de nossa extensão:
Figura 72. Conferindo a versão.
Fonte: o autor
60
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Carregando dados espaciais
Apoiado por uma ampla variedade de bibliotecas e aplicações, o PostGIS nos oferece 
muitas opções para o carregamento de dados. 
Primeiramente faça o download dos arquivos no seguinte endereço:
<https://drive.google.com/folderview?id=0B-7W6dVcImP3S21Oa1JOWjVuOXM&us
p=sharing>
Figura 73. Arquivos com dados espaciais.
Fonte: o autor
Ou na Biblioteca.
Depois, vá ao menu Iniciar, Postrgres e encontre o programa PostGIS Shapefile and 
DBF Loader.
Figura 74. Utilitário para inserir dados espaciais.
Fonte: o autor
61
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Clique na opção View Connection Detail e preencha as configurações e clique em Ok:
Figura 75. Mesmo login do PostgreSQL.
Fonte: o autor
Localize o arquivo nyc_census_blocks.shp no diretório que foi feito o download.
Figura 76. Localização dos Arquivos.
Fonte: o autor
Em seguida clique em Import e aguarde a importação
62
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Figura 77. Processo de importação.
Fonte: o autor
Se os dados foram importados com sucesso, foram criadas duas tabelas:
Figura 78. Tabelas importadas.
Fonte: o autor
Repita os passos para os demais arquivos:
 » nyc_streets.shp
 » nyc_neighborhoods.shp
 » nyc_subway_stations.shp
Obs: os arquivos podem ser selecionados e importados todos de uma única vez.
63
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Mas o que são Shapesfiles?
Shapesfiles são coleções de arquivos e normalmente utiliza as extensões .shp, .shx e .dbf.
O shapefile real refere-se especificamente aos arquivos com a extensão shp. No entanto, 
o arquivo .shp por si só é incompleta para a distribuição sem os arquivos de suporte 
necessários.
Arquivos obrigatórios :
 » .shp: formato shape tem geometria característica própria;
 » .shx: formato índice de posição da característica geométrica; 
 » .dbf: formato atributos colunar para cada forma, em dBase III
Arquivos opcionais incluem:
 » .prj: formato de do sistema e informações de projeção , um arquivo de 
texto simples que descreve a projeção usando o formato de texto.
 » O pgShapeLoader transforma os dados de formas utilizáveis em PostGIS, 
convertendo-os a partir de dados binários em uma série de comandos 
SQL que são então executados no banco de dados para carregar os dados .
SRID 
Um “SRID” significa identificador de referência espacial. Ele define todos os parâmetros 
do sistema e de projeção de coordenadas geográficas de nossos dados. Um SRID é 
conveniente, pois ele possui todas as informações sobre uma projeção de mapa em um 
único número.
Dicionário de Dados 
Os arquivos que acabamos de importar são dados referentes à cidade de Nova Iorque como 
ruas,cidades vizinhas, etc. e todas as consultas que faremos serão baseadas nesses dados.
Esse é o dicionário de dados:
Tabela 1 - Dicionário de dados dos arquivos importados. 
Tabela nyc_census_blocks (36592 records)
Campo Descrição
blkid A 15-digit code that uniquely identifies every census block. Eg: 360050001009000
popn_total Total number of people in the census block
popn_white Number of people self-identifying as “White” in the block
64
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Tabela nyc_census_blocks (36592 records)
Campo Descrição
popn_black Number of people self-identifying as “Black” in the block
popn_nativ Number of people self-identifying as “Native American” in the block
popn_asian Number of people self-identifying as “Asian” in the block
popn_other Number of people self-identifying with other categories in the block
hous_total Number of housing units in the block
hous_own Number of owner-occupied housing units in the block
hous_rent Number of renter-occupied housing units in the block
boroname Name of borough. Manhattan, The Bronx, Brooklyn, Staten Island, Queens the_geom Polygon boundary of the block
Tabela nyc_neighborhoods (129 records)
Campo Descrição
name Name of the neighborhood
boroname Name of borough. Manhattan, The Bronx, Brooklyn, Staten Island, Queensthe_geom Polygon boundary of the neighborhood
Tabela nyc_streets (19091 records)
Campo Descrição
name Name of the street
oneway Is the street one-way? “yes” = yes, “” = no
type Road type. Eg. primary, secondary, residential, motorway
the_geom Linear centerline of the street
Tabela nyc_subway_stations (491 records)
Campo Descrição
name Name of the station
borough Name of borough. Manhattan, The Bronx, Brooklyn, Staten Island, Queens routes Subway lines that run through this 
station transfers Lines you can transfer to via this station
express Stations where express trains stop, “express” = yes, “” = no
the_geom Point location of the station
Tabela nyc_census_sociodata
Campo Descrição
tractid An 11-digit code for every census tract. Eg: 36005000100
transit_total Number of workers in the tract
transit_public Number of workers in the tract who take public transit
transit_private Number of workers in the tract who use private automobiles / motorcycles
transit_other Number of workers in the tract who use other forms like walking / biking
transit_time_mins Total minutes spent in transit by all workers in the tract (minutes)
family_count Number of familes in the tract
family_income_median Median family income in the tract (dollars)
family_income_aggregate Total income of all families in the tract (dollars)
edu_total Number of people with educational history
edu_no_highschool_dipl Number of people with no highschool diploma
edu_highschool_dipl Number of people with highschool diploma and no further education
edu_college_dipl Number of people with college diploma and no further education
edu_graduate_dipl Number of people with graduate school diploma
Fonte: <https://drive.google.com/folderview?id=0B-7W6dVcImP3S21Oa1JOWjVuOXM&usp=sharing>. Acesso em: 2014
65
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
O dicionário de dados é uma ferramenta muito importante enquanto fazemos a modelagem 
dos dados e posteriormente, para realizarmos o desenvolvimento dos SIGs.
Aprofundando em SQL
Abra o utilitário SQL e digite o seguinte comando:
 » SELECT name FROM nyc_neighborhoods;
Traduzindo o comando para o português temos: 
 » selecione todos os registros da tabela nyc_neighborhoods e mostre somente 
o campo name
Figura 79. Tabela importada.
Fonte: o autor
Consultas sem parâmetros podem não ser muito úteis quando trabalhamos com 
dados geográficos. Vamos aplicar algumas condições em nossas consultas. Também 
conhecidas como filtros.
Vamos selecionar da tabela nyc_neighborhoods porém vamos trazer somente os 
campos que contenham a palavra ‘Brooklin’.
66
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
 » SELECT name FROM nyc_neighborhoods where boroname = ‘Brooklin’;
Figura 80. Consulta geral.
Fonte: o autor
Ordenações
Percebam que os dados coluna ‘name’ estão fora de ordem. O SQL possui um recurso 
de ordenação que nos possibilita aplica-lo de várias maneiras.
Complete o comando acima com a parte em negrito:
 » SELECT name FROM nyc_neighborhoods where boroname = ‘Brooklin’ 
order by name;
Figura 81. Consulta com parâmetros de ordenação.
Fonte: o autor
67
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Funções
Muitas vezes, não estamos interessados nas linhas individuais e sim em funções como 
média, estatísticas, desvios etc.
O PostgreSQL possui várias funções agregadas que podem ser uteis para diversas 
consultas. Um exemplo seria descobrir o total de pessoas e suas etnias da tabela nyc_
census_blocks. Os campos são esses:
popn_total
popn_white
popn_black
popn_nativ
popn_asian
popn_other
Se efetuarmos uma consulta simples com todos os campos teremos uma ‘massa de 
dados’ sem muito sentido:
Figura 82. Consulta geral.
Fonte: o autor
Vamos utilizar a função sum para somarmos cada campo de valores e agruparmos em 
outro campo. 
68
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Funções soma e média
O a função sum efetua a soma de todos os campos passados por parâmetros e temos que 
fazer um agrupamento em algum campo necessário. 
O agrupamento deve ser feito em todos os campos que utilizamos na função select.
Figura 83. Função Soma.
Fonte: o autor
Se alteramos a função sum pela função avg teremos a média de ocorrência dos dados 
na tabela:
Figura 84. Função de média e Legendas.
Fonte: o autor
69
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Notem que os campos foram criados com várias casas decimais e, nesse momento, 
essa quantidade de casas não nos é importante. Nesse caso poderíamos omitir as casas 
decimais com a função trunc ou ajusta-las para duas casas com a função round.
Figura 85. Funções úteis nativas.
Fonte: o autor
70
CAPÍTULO 4
Biblioteca TerraLib
Conceito
Segundo o site da TerraLib: 
é um projeto de software livre que permite o trabalho colaborativo entre 
a comunidade de desenvolvimento de aplicações geográficas, servindo 
desde à prototipação rápida de novas técnicas até o desenvolvimento de 
aplicações colaborativas. TerraLib é uma biblioteca de classes escritas 
em C++, com código fonte aberto e distribuída como software livre 
<www.terralib.org>. 
Figura 86. Estrutura da Biblioteca.
Fonte: www.terralib.org (2014)
Arquitetura
 » Kernel:
 › Existe um módulo central chamado kernel, composto de estruturas de 
dados espaço-temporais, suporte a projeções cartográficas, operadores 
71
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
espaciais e uma interface para o armazenamento e recuperação de 
dados espaço-temporais em bancos de dados objeto-relacionais, além 
de mecanismos de controle de visualização. 
 » Drivers:
 › A interface de recuperação e armazenamento é implementada em um 
módulo composto de drivers. Esse módulo também contém rotinas de 
decodificação de dados geográficos em formatos abertos e proprietários. 
As funções de análise espacial são implementadas utilizando as 
estruturas do kernel. 
 » Interfaces:
 › Finalmente, sobre esses módulos podem ser construídas diferentes 
interfaces aos componentes da TerraLib em diferentes ambientes de 
programação (Java, COM, C++) inclusive para a implementação de 
serviços OpenGIS como o WMS – Web Map Server (OGIS, 2005). 
Fonte site: <http://terralib.org/docs/v313/TutorialProgramacaoTerraLib313.htm#mod1>
Modelo conceitual
A TerraLib propõe não somente um modelo de armazenamento de dados geográficos 
em um SGBD-OR, mas também um modelo conceitual de banco de dados geográfico, 
sobre o qual são escritos seus algoritmos de processamento. As entidades que formam 
o modelo conceitual são: 
Banco de dados
Representa um repositório de informações contendo tanto os dados geográficos quanto 
o seu modelo deorganização. 
Layer
Representa uma estrutura de agregação de um conjunto de informações espaciais que 
são localizadas sobre uma região geográfica e compartilham um conjunto de atributos, 
ou seja, um layer agrega coisas semelhantes. Layers são inseridos no banco de dados 
através da importação de arquivos de dados geográficos em formatos de intercâmbio 
como shapefiles, ASCII-SPRING, MID/MIF, GeoTiff, JPEG ou dbf. A biblioteca fornece 
as rotinas de importação desses arquivos. Layers também podem ser gerados a partir 
de processamentos executados sobre outros layers já armazenados no banco. 
72
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Representação
Trata do modelo de representação da componente espacial dos dados de um layer e pode 
ser do tipo vetorial ou matricial. Na representação vetorial, a TerraLib distingue entre 
representações formadas por pontos, linhas ou áreas e também outras representações 
mais complexas formadas a partir dessas como células e redes. 
Projeção cartográfica
Serve para representar a referência geográfica da componente espacial dos dados 
geográficos. As projeções cartográficas permitem projetar a superfície terrestre em uma 
superfície plana. 
Diferentes projeções são usadas para minimizar as diferentes deformações inerentes ao 
processo de projeção de um elipsóide em um plano. Cada projeção é definida a partir 
de certo número de parâmetros como o Datum planimétrico de referência, paralelos 
padrão e deslocamentos (SNYDER, 1987). 
Tema
Serve principalmente para definir uma seleção sobre os dados de um layer. Essa seleção 
pode ser baseada em critérios a serem atendidos pelos atributos descritivos do dado 
e/ou sobre a sua componente espacial. 
Um tema também define o visual, ou a forma de apresentação gráfica da componente 
espacial dos objetos do tema. Para o caso de dados com uma representação vetorial a 
componente espacial é composta de elementos geométricos como pontos, linhas ou 
polígonos. Para os dados com uma representação matricial, sua componente espacial 
está implícita na estrutura de grade que a define, regular e com um espaçamento nas 
direções X e Y do plano cartesiano. 
Os temas podem definir também formas de agrupamento dos dados de um layer, 
gerando grupos, os quais possuem legendas que os caracterizam. 
Vista
Serve para definir uma visão particular de um usuário sobre o banco de dados. 
Uma vista define quais temas serão processados ou visualizados conjuntamente. 
Além disso, como cada tema é construído sobre um layer com sua própria projeção 
73
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
geográfica, a vista define qual será a projeção comum para visualizar ou processar os 
temas que agrega. 
Visual
Um visual representa um conjunto de características de apresentação de primitivas 
geométricas. Por exemplo, cores de preenchimento e contorno de polígonos, espessuras 
de contornos e linhas, cores de pontos, símbolos de pontos, tipos e transparência de 
preenchimento de polígonos, estilos de linhas, estilos de pontos, etc. 
Legenda – uma legenda caracteriza um grupo de dados, dentro de um tema, apresentados 
com o mesmo visual, quando os dados do tema são agrupados de alguma forma. 
Implementação com linguagens de programação
Para dar início a qualquer implementação com linguagens de programação, temos que 
ter bem definido o conceito da figura 84.
A Terralib permite a conexão com diversos Bancos de Dados existentes no mercado 
conforme esquema do site do fabricante:
Figura 87. Driver para banco de dados do Terralib. 
TeDataBase
TeADO
TeOracle TeSqlServer
TeMySQL TePostgreSQL
TePostGIS
Fonte: o autor
A Classe TeDatabase contém os métodos necessários para criar, popular e consultar um 
banco de dados.
Para instanciar uma classe TeDatabase, na linguagem de programação C++, para o 
SGDB MySQL, utilizamos o seguinte código:
74
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Figura 88. Conexão com Banco de Dados.
Fonte: o autor
Após a conexão se efetuada corretamente, poderemos importar um layer no padrão 
MID/MIF, utilizando o seguinte trecho de código.
Figura 89. Importação de um Shape.
Fonte: o autor
Note que o código foi inserido após o banco de dados ser aberto e antes de ser fechado. 
Essa lógica utilizamos como boas práticas de programação: 
1. Abrir o Banco de Dados, 
2. Executar os procedimentos, 
3. Fechar o Banco de Dados.
75
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Podemos ainda, passar todas as configurações de projeção via código, conforme a linha 29.
Notem que é possível utilizar uma linguagem de programação para desenvolvermos 
uma aplicação GIS, utilizando a biblioteca Terralib. Entretanto, para quem não tem 
habilidades ou formação em programação, fica meio difícil prosseguir com o estudo 
dessa biblioteca.
Pensando nisso, foi desenvolvido uma ferramenta que ajudará muito quem não conhece 
programação: O TerraView.
76
CAPÍTULO 5
Terraview
Conceito
Como o próprio site do fabricante define, 
“O Terraview é um visualizador de dados geográficos armazenados 
em um banco de dados do modelo TerraLib. Além de ferramentas de 
visualização o TerraView possui também uma série de ferramentas de 
análise9 - Visualização da base dedados”.
A figura a seguir, mostra de uma forma geral a tela principal da ferramenta, porém, 
como a premissa principal de trabalho é a conexão com o banco de dados, iremos 
detalhar cada opção somente depois de conectarmos em nossa base de dados.
Instalação
Para instalar o Terraview:
1. Acessar o site do fabricante: http://www.dpi.inpe.br/terraview/php/
dow.php?body=Dow
2. Preencher o email, 
3. Escolher o sistema operacional desejado 
4. Fazer o download.
Figura 90. Cadastro de Email no site do Terraview.
Fonte: o autor
77
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Figura 91. Área de download do Terraview.
Fonte: o autor
Em nosso material utilizaremos o Sistema Operacional Windows 7. Portanto, para 
seguir os exemplos, baixe a versão para Windows.
A instalação é a instalação padrão da maioria de aplicativos padrão Windows. Com um 
ponto de atenção para a escolha de opções extras.
Execute o arquivo baixado e avance até a tela para escolher opções da ferramenta 
Terraview. 
Figura 92. Passo 1 da instalação do Terraview.
Fonte: o autor
78
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Marque todas as opções e prossiga.
Figura 93. Opções de instalação.
Fonte: o autor
Baixe também os dados para podermos acompanhar os exemplos do material:
<http://www.dpi.inpe.br/terraview/docs/tutorial/Dados_Tutorial.rar>
ou na Biblioteca do curso.
Para utiliza-lo, descompacte em um diretório de fácil acesso e onde possa lembrar.
Criando base de dados
Ao instalar o Terraview e abrir a ferramenta, perceba que a maioria das opções dos 
menus e barras de ferramentas, serão habilitadas somente após efetuarmos uma 
conexão com o banco de dados. 
Para isso, vá ao menu Arquivo e escolha a opção Bando de Dados. Ou clique no ícone 
 da barra de ferramentas.
Na tela a seguir, vamos escolher a Operação “Criar”.
79
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Figura 94. Configuração e criação do banco de dados.
Fonte: o autor
1. Tipo de Banco de Dados: define o SGDB
2. Servidor: endereço IP onde o servidor está rodando
3. Porta: porta que o SGDB “ouve” as conexões
4. Usuário
5. Senha
6. Selecionar Base de Dados: se fôssemos utilizar uma já existente
7. Nome do Banco de Dados: banco de dados novo. 
8. Encoding: tipo de acentuação.
Ao término da criação da base de dados, termos uma nova estrutura de tabelas, prontas 
para receber os dados da ferramenta Terraview:
Figura 95. Tabelas criadas.
Fonte: o autor
80
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
E também, algumas opções do menu e das barras de ferramentas serão habilitadas.
Veja na figura a seguir:
Figura 96. Área de trabalho do Terraview.
Fonte: o autor.
Barra de ferramentas
Figura 97. Barrade Ferramentas.
Fonte: o autor
A Barra de Ferramentas tem por finalidade oferecer algumas opções do Menu de forma 
mais rápida. A seguir, veja a função de alguns ícones:
 - Aciona as configurações de Banco de Dados
 - Cursor de apontamento
 - Cursos de Pan – Mover os objetos dentro da Área de desenho.
 - Cursos de Gráficos
 - Cursos de Distância – serve para calcular a distância ente dois pontos no desenho
 - Recompor – faz com que a o desenho se ajusta à área de visualização com todos os 
dados visíveis
 - visualização de gráficos
81
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
 - Desenhar – faz com que o desenho seja produzido na área de visualização
 - Importação de arquivos
 - Criação de Vistas
 - Criação de Temas
 - Visualização anterior
 - Próxima visualização
 - Mostra ou esconde a área de banco de dados
 - Mostra ou esconde as áreas de Vistas
 - Mostra ou esconde a Grade de dados
 - Mostra ou esconde a área de desenho
Trabalhando com dados vetoriais
Com ferramenta Terraview, podemos importar e trabalhar com vários formatos de dados. 
Vamos utilizar os dados do pacote, disponibilizado pelo INPE.
Importaremos os arquivos Districti.mif e Districts.mif que contém dados referentes à 
cidade de São Paulo.
Para isso, com o banco de dados selecionado na árvore de banco de dados, escolha a 
opção importar, através do ícone .
Na tela a seguir, escolha as opções Arquivo. Na tela de abertura, escolha o tipo de 
arquivo MIF, localize e selecione o arquivo Districts.MIF e clica em Abrir.
Figura 97. Abertura de arquivo tipo .mif.
Fonte: o autor
82
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Figura 98. Opções de Projeção.
Fonte: o autor
Escolha em “Ligação entre as Tabelas de Atributos e Geometrias” a opção Selecionar 
Coluna e em Coluna de Ligação, escolha a coluna ID.
Em seguida, clique na opção Projeção para verificarmos suas configurações para 
podermos utilizar nas próximas importações.
Em alguns casos as Projeções já são reconhecidas pelo Terraview.
Figura 99. Configuração de Projeção.
Fonte: o autor
Após essas opções, clique em OK e sim para a mensagem sobre a criação de uma nova 
coluna identificadora.
Se importou corretamente, uma mensagem perguntando ser deseja visualizar os dados 
será exibida na tela. Clique em “Sim” e veja o que contém o arquivo Districts.mif:
83
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Figura 100. Visualização de Districts.mif.
Fonte: o autor
Antes de explorarmos as opções que a ferramenta possui, vamos conferir no que essa 
importação refletiu em nossa base de dados.
Abra a ferramenta PGAdmin e verifique a quantidade de tabelas criadas. Se já estiver 
com a ferramenta aberta, clique na opção de tabelas e dê um F5.
Perceba que foram criadas mais tabelas, dentre elas a tabela “district”.
Vá até o PGAdmin e execute o seguinte código no editor de SQL:
 » select * from districs
Podemos notar que uma consulta prévia desses dados nos é mostrados na área de grade 
da ferramenta Terraview. 
Figura 101. PGadmin: consulta.
Fonte: o autor
84
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Selecionando objetos
Cada área ou objeto geográfico possui geometrias e atributos. As geometrias são facilmente 
percebidas na área de desenho e os atributos são visualizados na área de Grade.
Ao clicarmos com o cursor de apontamento sobre um objeto na área de desenho, sua 
cor é alterada e instantaneamente as informações aparecerão na área de grade.
Podemos ainda, através do cursor de informação, selecionar um objeto gráfico e 
visualizar os atributos em uma tela popup.
Para remover o realce, basta clicar novamente com o cursos de seleção sob o objeto 
selecionado.
Figura 102. Seleção de Objeto.
Fonte: o autor
Figura 103. Propriedade do Objeto. 
Fonte: o autor
85
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Planos, vistas e temas
Por ser uma ferramenta que se utiliza da biblioteca Terralib, utilizaremos no Terraview 
os mesmos termos como Layer, Vistas e Temas.
Planos
Os Planos, ou layer, além do descrito na seção 8.5, podemos incluir que é uma estrutura 
que agrega dados geográficos que estão sob uma mesma região geográfica e que agregam 
elementos semelhantes.
Podemos importar vários planos e selecioná-los conforme a necessidade:
Figura 104. Árvore de Planos.
Fonte: o autor
Vistas
Uma Vista vai definir as informações dos Planos que devem ser visualizados juntos. 
Sistemas de coordenadas não-cartográficas não poderão ser superpostos em Planos 
com projeções cartográficas.
Clique com o botão direito sobre a Vista Districts e em seguida propriedades para 
verificar qual é o tipo de sua Projeção.
Figura 105. Propriedade da Vista.
Fonte: o autor
86
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
Temas
Um Tema pertence a uma Vista que define a projeção na qual os seus temas são mostrados, 
como mostra a figura:
Figura 106. Árvore de Temas.
Fonte: o autor
O Tema contém valores de parâmetros gráficos de apresentações de componentes 
geométricos de objetos, além de poder definir uma maneira de agrupas seus objetos dando 
origem às legendas. Os temas também podem definir gráficos que foram resultados de 
análises de atributos de objetos individuais.
Esse Tema foi automaticamente criado quando importamos o shape Districti.mif e 
Districts.mif.
Para darmos sequência em nossos estudos sobre Temas, primeiramente vamos importar 
o arquivo subway_station.shp seguindo as mesmas configuração da importação anterior:
Figura 107. Importação de arquivos de Shape.
Fonte: o autor
Note que o Terraview não reconheceu as configurações de Projeção. Nesse caso, deve 
ser feita manualmente:
87
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
Figura 108. Configuração manual de Projeções.
Fonte: o autor
Confirme as opções e responda não à pergunta sobre a visualização de dados. Se 
responder sim, uma nova View será criada. Mais adiante criaremos nossas próprias 
Views e Temas.
Veja que foi criado um novo Plano na árvore de Planos:
Figura 109. Árvore de Planos.
Fonte: o autor
Importe agora o arquivo railways_stations.geo utilizando as mesmas configurações as 
importações anteriores. Confirme e responda não à pergunta de visualização dos dados.
Figura 110. Árvore de Planos.
Fonte: o autor
Obs:
 » Subway_stations.shp: contém pontos com localizações das estações 
de metrô da cidade de São Paulo.
88
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS
 » Railways_stations.geo: arquivo de dados que contém pontos com 
as localizações das estações ferroviárias da cidade de São Paulo. Este 
arquivo está em formato Geo/Tab que é formato de exportação de dados 
do software SPRING. 
Criando novos temas e vistas
Após os arquivos de dados geográficos terem sido importados e com os planos devidamente 
criados, podemos criar quantos Temas forem necessários.
Primeiramente, vamos remover todas as Vistas existentes, clicando com o direito sobre 
cada uma e em Remover.
Agora, para criar uma nova Vista, clique no botão e dê um nome como na figura:
Figura 111. Criar Vista.
Fonte: o autor
Com uma Vista criada, podemos criar vários temas relacionados à ela.
Para criar um novo Tema, clique no atalho da barra de ferramentas. Aparecerá a 
seguinte tela.
Figura 112. Detalhe de Vista, Temas e Planos.
Fonte: o autor
89
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II
No detalhe, temos a tela para criar um novo Tema, as Árvores de Planos e Vistas/Temas. 
Notem que a mesma Vista “CidadeSP” aparece na árvore e na tela de criação do Tema.
Clique em OK e vamos trabalhar com o novo Tema. 
Para visualiza-lo, clique sob o tema Districts e no botão ... da barra de ferramentas.
Percebam que esse Tema já tínhamos criado quando importamos o arquivo Districs.mif.
Vamos criar uma situação onde precisaríamos colocar sobre a imagem da cidade de São 
Paulo, sua malha de Ferrovias. Para isso, temos que criar um Tema associado a uma 
mesma Vista, ou seja, no nosso caso, criaremos

Continue navegando