Você está na página 1de 94

Banco de Dados Geográficos

Brasília-DF.
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
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

4
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.

5
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.

6
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.

7
8
CONCEITOS DE UNIDADE I
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 interessar nesse 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.

9
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.
10
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.

11
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.

12
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.
13
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 Tabela Projetos


Código Nome Código Descrição
1 Carlos 1 Projeto 1
2 Jorge 2 Projeto 2
3 Henrique 3 Projeto 3
4 Luiz 4 Projeto 4

14
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.

15
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:

16
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.

17
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 uma associaçã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.


18
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.

19
UNIDADE I │ MODELAGEM DE DADOS

Figura 18. Inverso da Agregação.

Fonte: o autor.

20
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.

21
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

22
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 19. Herança de Classes.


Figura 22. Herança de Classes.

A Classe Forma
A Classe Esfera, receberá os
Tridimensional, conterá os
atributos e métodos públicos
métodos e atributos
de sua Super Classe direta,
públicos de sua Super
Forma Tridimensional e de
Classe, Forma Geométrica
sua Super Classe indireta,
Forma Geométrica

T2. Encapsulamento
Encapsulamento
É um mecanismo que permite o acesso aos dados do objeto somente através dos métodos
Édesse
um mecanismo que outra
objeto. Nenhuma permite
parte odoacesso aospode
programa dados do sobre
operar objeto
os somente
dados de através
nenhum dos
objeto. desse objeto. Nenhuma outra parte do programa pode operar sobre os dados
métodos
de nenhum objeto.
T2. 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 23
implementação a cargo do objeto receptor da mensagem.
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.

24
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.
25
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 ou
perí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.

26
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

27
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.

28
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:
29
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.

30
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.

31
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 utilizando o partindo para
as mais genéricas(superclasses) a partir de classes com características semelhantes
(subclasses) (ELMASRI; NAVATHE, 2004) (LAENDER; FLYNN, 1994).

32
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

33
SISTEMAS
GERENCIADORES DE UNIDADE II
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.
34
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,

35
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.
36
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

37
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

38
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

39
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.

40
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

41
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

42
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?
43
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

44
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.
45
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

46
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.

47
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

48
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

49
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

50
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), as extensõ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;

51
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.

52
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

53
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

54
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

55
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.

56
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.

57
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

58
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

59
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

60
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


61
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.

62
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

63
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

64
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’.
65
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

66
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.

67
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

68
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

69
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

70
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 de organizaçã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.

71
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

72
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 TeMySQL TePostgreSQL

TeOracle TeSqlServer 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:
73
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.


74
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.

75
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

76
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

77
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”.


78
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

79
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. Barra de 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
80
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

81
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:

82
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

83
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

84
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

85
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:

86
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.

87
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

88
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 um Tema conforme a figura a seguir:

Figura 113. Tema Ferrovias.

Fonte: o autor

Antes de visualizar, vamos criar mais um Tema chamado Estações seguindo a figura:

Figura 114. Tema Estações.

Fonte: o autor

89
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS

Agora chagou o momento de visualizarmos os Temas. Para isso, selecione um Tema


desejado na Área de Temas e clique no botão .

Figura 115. Tema Estações.

Fonte: o autor

Podemos ainda, melhorar a aparência de nossos Temas. Percebam que tanto as Estações
quanto as Ferrovias, não ficaram com uma boa visualização.

Para darmos destaque aos pontos criados, selecione um ponto qualquer, clique com o
botão direito e em seguida, Visual e Default:

Figura 116. Aparência dos Temas.

Fonte: o autor

Altere as opções: Cor do Ponto, tamanho e Tipo para a configuração que mais agrada e
clique em OK.
90
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II

Figura 117. Melhorando a visualização.

Fonte: o autor

O Terraview ainda nos dá a opção de selecionar os Temas que gostaríamos de visualizar.


Para isso, basta clicar no checkbox que fica ao lado do nome do Tema. Para testar,
desmarque o Tema District e clique no botão de visualização:

Figura 118. Visualização sem Districts.

Fonte: o autor

Tabelas de pontos

Se os dados geográficos dos arquivos importados possuírem geometrias de pontos, eles


podem ser disponibilizados em formato DBF. Um exemplo seria se o arquivo Shape
.shp que contém polígonos e linhas e o aquivo dbf contém os atributos do objeto.
91
UNIDADE II │ SISTEMAS GERENCIADORES DE BANCO DE DADOS

Importando tabelas no formato DBF

Para importarmos uma tabela de pontos, vamos utilizar o arquivo homicides2002.dbf


que já está pronto em nosso diretório de exemplos. Clique no menu Arquivo, Importar
Tabela de Pontos e encontre o arquivo.

Figura 119. Configuração da Tabela de Pontos.

Fonte: o autor

Configure os parâmetros conforme a figura 119. Não esqueça de configurar a Projeção


conforme fizemos anteriormente.

Após tudo configurado, clique em Executar e responda não para a pergunta de


visualização. Se clicar em Sim, o Terraview criará uma nova Vista separada da CidadeSP.
Um novo plano foi criado:
Figura 120. Novo Plano.

Fonte: o autor

Para visualizarmos, crie um novo Tema e escolha o homicides2002 como plano e


CidadeSP como Vista.

Existe também a opção de alterarmos a cor de visualização do objeto que representa a


cidade de São Paulo. Para isso, faça o mesmo procedimento feito anteriormente: botão
direito, Visual, Default:

92
SISTEMAS GERENCIADORES DE BANCO DE DADOS │ UNIDADE II

Figura 121. Configuração

Fonte: o autor

Veja como ficou a visualização do Desenho:

Figura 122. Tabela de Pontos importada.

Fonte: o autor

93
Referências

BERTINI, G. C.; CÉZAR NETO, J. Uma modelagem orientada a objeto para o


Mapa Urbano Básico de Belo Horizonte. Informática Pública: 2004.

BORGES, Karla A. V., FONSECA, Frederico T.. Modelagem de dados geográficos


─ uma extensão do modelo OMT para aplicações geográficas Belo Horizonte:
Fundação João Pinheiro, 1997.

CÂMARA, Gilberto. Modelos, linguagens e arquiteturas para bancos de dados


geográficos. São José dos Campos: INPE, 1995.

Chen, Peter. The entity-relationship model - toward a unified view of data.


ACM Transactions on Database Systems. Local: Editora, 1976.

Sites
< http://www.dpi.inpe.br/livros/bdados/capitulos.html/>.

< http://www.postgresql.org/>.

< http://postgis.net/>.

< http://www.terralib.org/>.

< http://www.dpi.inpe.br/terraview/index.php/>.

< http://www.nyc.gov/html/dcp/html/neighbor/index.shtml/>.

94

Você também pode gostar