You are on page 1of 9

INPE - Instituto Nacional de Pesquisas Espaciais

CAP Computao Aplicada












Banco de Dados Geogrficos
Prof. Gilberto Cmara
Assit. Gilberto Ribeiro de Queiroz

Lista de Exerccios 1


por
Claudiney Calixto da Silva
ccalixto@comp.ita.br








So Jos dos Campos

2003

Questo 01 Um certo SGBD relacional (SGBDR) fabricado pela UC Labs permite que o
usurio escolha a forma de armazenamento de suas tabelas de dados, ou seja, ele permite
variar os tipos de arquivos usados para armazenar os dados das tabelas. A primeira forma
chamada Transaction-Safe Tables permite que os usurios do banco utilizem recursos de
transao. A segunda forma, Not Transaction-Safe no permite usar transaes. O
fabricante do SGBD diz que a grande vantagem da segunda forma de armazenamento sobre
a primeira que ela mais rpida, usa menos espao em disco e que usa menos memria
nas atualizaes. Com base nessas informaes, pergunta-se:

a) Quais seriam as vantagens oferecidas pela primeira forma de armazenamento que o
fabricante deixou de mencionar ?

As Transaes asseguram a integridade dos dados, sendo sua principal vantagem e
recurso essncial para determinados tipos de aplicaes.

b) Suponha que voc esteja desenvolvendo uma aplicao de uma loja virtual para a
Internet. Nesta loja voc dever anotar os itens da compra dos internautas assim
como dar baixa no estoque no momento em que ele confirmar a compra. Se voc
estivesse desenvolvendo esta aplicao com o SGBD da UC Labs por qual tipo de
armazenamento voc optaria? Por que ?

O tipo escolhido seria o Transaction-Safe Tables, pois neste contexto existem
operaes em que so necessrias a utilizao de recursos de Transao, de forma
a garantir a integridade do Banco de Dados. Por exemplo, a baixa dos produtos no
estoque, adicionando os mesmos em uma nota fiscal, pode ser vista como uma
operao pelo cliente, mas como muitas pelo Banco de Dados, sendo portanto
necessria a concluso de todo conjunto de operaes, ou que, no caso de uma
falha, nenhuma delas ocorra. Seria inaceitvel a baixa no estoque sem a entrada
dos produtos na nota fiscal.

c) No desenvolvimento de uma aplicao para consulta a uma grande base de dados
(como Yahoo ou AltaVista) voc optaria por qual tipo de armazenamento ?

O tipo escolhido seria Not Transaction-Safe, pois neste contexto a prioridade seria
a velocidade de acesso, uma vez que se tem um grande volume de informaes,
alm de ocupar menos espao em disco.

Questo 02 Desenhe um diagrama ER que mostre o esquema do modelo de dados do
SPRING. No precisa colocar atributos nas entidades, somente o nome da classe de
entidades e a cardinalidade dos relacionamentos.


Questo 03 Os dados geogrficos podem estar representados nas formas raster ou vector
(vetorial). Cite duas formas diferentes de representao vetorial e descreva algumas
vantagens e desvantagens de cada uma delas.

Ponto: Trata-se da forma mais simples de representao de Dados Geogrficos,
possuindo um par de coordenadas x e y, representando sua localizao espacial.
Porm sua utilizao deve ser escolhida de acordo com a escala do mapa e as
informaes que se deseja representar. Por exemplo, numa alta escala podemos
representar os clubes de uma cidade por pontos, porm numa escala mais aproximada
o interesse seja em visualizar o que h dentro do clube, no sendo possvel neste caso
utilizar a representao por ponto.

Linha: Uma linha pode ser composta por uma sucesso de pontos cuja referncia
espacial dada pelas coordenadas destes e sua utilizao deve ser avaliada de acordo
com o que ser representado. Por exemplo na representao de um rio, a linha pode
ser uma alternativa, porm para se delimitar uma regio na qual ser instalada uma
empresa a linha no seria uma boa alternativa, pois neste caso o interesse no est
apenas das delimitaes e mas tambm no interior do terreno.

Questo 04 Existem diferentes arquiteturas para banco de dados geogrficos. Cite e
explique as caractersticas, vantagens e desvantagens de algumas arquiteturas existentes.
Para cada arquitetura cite um sistema que a utilize.

Imagem
Sensor Remoto
Cadastral
Temtico Numrico
Geo- objeto
Agrupamento
Geo-Objetos
Geo- campo
Rede
Banco Dados
Geogrfico
est-em
Objeto no-
espacial
Projetos
parte-de
um
um
Planos de
Informao
um
parte-de
parte-de
parte-de
Arquitetura Dual:
Nesta arquitetura os Dados Geomtricos so armazenados em sistemas de arquivos
(fora do Banco de Dados), enquanto os atributos em tabelas de um SGBD relacional.
Esta arquitetura geralmente utilizada em SIG "desktop" como o SPRING, ArcView
e IDRISI.
Vantagens:
Permite acesso externo aos atributos (via SQL);
Permite a utilizao de ferramentas como geradores de formulrios; e
Permite a conexo a dados existentes.
Desvantagens:
SQL no suporta consultas espaciais;
Controle dos objetos espaciais feita fora do Banco de Dados (podendo gerar
inconsistncias, onde uma alternativa o armazenamento em campos Binrios
Longos no Banco de Dados); e
No permite ambiente multiusurio (exige duplicao, podendo ocasionar
inconsistncias).

Arquitetura em camadas:
Nesta arquitetura tanto os Atributos quanto os Dados Geomtricos so armazenados
dentro do Banco de Dados. Esta arquitetura geralmente utilizada em SIG
distribudos como o TerraLib/TerraView e ArcInfo 8. Dentre suas caractersticas
pode-se destacar a diviso de responsabilidades por camadas, sendo elas:
Interface (Interao com o usurio como o: TerraView e o ArcGIS 8);
Acesso (Bibliotecas de funes como o: ArcSDE e a TerraLib); e
Banco de Dados (Suporte apenas a campos longos: Access e o SQL Server. E
Suporte para tipos de Dados Espaciais: Oracle, PostGIS e o DB2).
Vantagens:
Permite construir SIG distribudos (multiusurios);
Tem controle de integridade dos dados espaciais; e
Permite accesso e atualizao multi-usurio.
Desvantagens:
Complexidade de implantao e uso; e
Solues proprietrias.

Servidor de Mapas Remotos:
Nesta arquitetura os Dados ficam armazenados no Servidor e so transferidos
arquivos Matriciais ao cliente (GIF, JPEG). Esta arquitetura geralmente utilizada
em SIG na Internet como o SIGMUN.
Vantagens:
No h necessidade carregar, instalar ou manter qualquer software ou dados
especiais.
Desvantagens:
A cada nova pesquisa, um novo mapa gerado.

Servidor de dados Remotos:
Nesta arquitetura os dados ficam no cliente e so transferidos arquivos vetoriais. Ela
geralmente utilizada em SIG na Internet como o SPRINGWeb.
Vantagens:
Maior rapidez de processamento; e
Cliente pode fazer suas anlises.
Desvantagens
Cliente precisa de aplicativo (plug-in); e
Tempo inicial de carga de dados (pode demorar).

Questo 05 Desejamos projetar uma aplicao de um sistema de transmisso e
distribuio de energia eltrica. Identifique os elementos necessrios para um sistema deste
tipo, descrevendo entidades, atributos e relacionamentos. Desenhe um diagrama de
Entidade-Relacionamento.

CentralDistribuicao
cen_codigo
cen_nome
cen_descricao
SubCentral
sub_codigo
sub_nome
sub_descricao
atende (FK)
Endereco
end_codigo
pos_codigo (FK)
pes_codigo (FK)
lfa_cep (FK)
end_num
end_complemento
Comercial
end_codigo (FK)
pes_codigo (FK)
Residencial
end_codigo (FK)
pes_codigo (FK)
Pessoa
pes_codigo
pes_nome
pes_descricao
Fisica
pes_codigo (FK)
fis_rg
fis_cpf
fis_nascimento
Juridica
pes_codigo (FK)
jur_cnpj
jur_razaosocial
jur_fantasia
Funcionario
fun_codigo
pes_codigo (FK)
cen_codigo (FK)
fun_cart_trabalho
Poste
pos_codigo
sub_codigo (FK)
Logradouro
log_codigo
cid_codigo (FK)
log_nome
log_tipo
Cidade
cid_codigo
cid_nome
uf_codigo (FK)
UF
uf_codigo
uf_sigla
uf_nome
LogFaixa
lfa_cep
log_codigo (FK)
lfa_num_inicial
lfa_num_final
Terceiro
ter_codigo
pes_codigo (FK)


Questo 06 Criar o esquema do banco de dados de uma livraria, mostrado abaixo:

a) Criar as tabelas.

Vide arquivo ddl.sql em anexo.

b) Criar as chaves primrias.

Vide arquivo ddl.sql em anexo.

c) Definir as restries de integridade referencial entre as tabelas.

Vide arquivo ddl.sql em anexo.

d) Definir as restries de integridade das colunas e linhas se houverem.

Vide arquivo ddl.sql em anexo.

e) Definir ndices sobre as colunas (ou conjunto de colunas) que voc julgar
necessrios.

Vide arquivo ddl.sql em anexo.

f) Dar exemplo de comandos SQL que faam a insero de dados nessas tabelas.

insert into UF (cod_uf, nom_uf) values ('SP', 'So Paulo');
insert into CATEGORIA (cod_categoria, nome) values (2, 'Informtica');
insert into PALAVRA_CHAVE (cod_palavra, palavra) values (1, 'GIS');

Mais exemplos, vide arquivo dados.sql em anexo.

g) Escrever o comando SQL que atualize o nome do bairro do cliente 1234
(cod_cliente) para Jardim Souto.

update Cliente set bairro = 'Jardim Souto' where cod_cliente = 1234;

h) Escrever os comandos SQL para as seguintes consultas:
1. Obter os dados de todos os funcionrios.

SELECT * FROM FUNCIONARIO;

2. Obter os pedidos com total pago maior que R$120,00.

SELECT * FROM PEDIDO WHERE TOTALPAGO > 120

3. Obter os pedidos com total pago maior que R$120,00, com o valor
convertido para dlar ($1,00 = R$3,50).

SELECT P.NUM_PEDIDO, P.DATA_PEDIDO, P.TOTALPAGO/3.50 TOTALDOLAR,
P.COD_CLIENTE, P.COD_FUNCIONARIO
FROM PEDIDO P
WHERE TOTALPAGO > 120

4. Obter os autores do livro de ISBN 0000000007.

SELECT A.*
FROM LIVRO L, LIVRO_AUTOR LA, AUTOR A
WHERE L.isbn=0000000007 AND L.cod_livro = LA.cod_livro AND LA.cod_autor = A.cod_autor

5. Obter todos os livros do autor "Jos Ramalho".

SELECT L.*
FROM LIVRO L, LIVRO_AUTOR LA, AUTOR A
WHERE A.nome = 'Jos Ramalho' AND A.cod_autor = LA.cod_autor AND LA.cod_livro = L.cod_livro

6. Listar as editoras que publicaram livros de "Tanenbaum".

SELECT DISTINCT E.*
FROM LIVRO L, LIVRO_AUTOR LA, AUTOR A, Editora E
WHERE A.nome = 'Tanenbaum' AND A.cod_autor = LA.cod_autor AND LA.cod_livro = L.cod_livro
AND L.cod_editora = E.cod_editora

7. Obter o maior e menor valor pago dos pedidos.

SELECT MAX(totalpago)
FROM PEDIDO

SELECT MIN(totalpago)
FROM PEDIDO

8. Obter a lista de todos os autores que publicaram livros pela editora "Makron
Books" (sem repetir o nome dos autores).

SELECT DISTINCT A.*
FROM AUTOR A, LIVRO L, LIVRO_AUTOR LA, EDITORA E
WHERE E.nome = 'Makron Books' AND E.cod_editora = L.cod_editora AND L.cod_livro =
LA.cod_livro AND LA.cod_autor = A.cod_autor

9. Obter o nmero de livros publicados por cada editora.

SELECT E.cod_editora Editora, COUNT(*) Total
FROM EDITORA E, LIVRO L
WHERE L.cod_editora = E.cod_editora
GROUP BY E.cod_editora

10. Obter as editoras e o nmero de livros para as editoras com mais de 5 livros
publicados.

SELECT E.cod_editora Editora, COUNT(L.cod_editora) Total
FROM EDITORA E, LIVRO L
WHERE L.cod_editora = E.cod_editora AND
(SELECT COUNT(*) FROM LIVRO WHERE LIVRO.cod_editora = E.cod_editora) > 5
GROUP BY E.cod_editora

11. Listar a quantidade de cada livro pedido ou encomendado. Ex: se um
determinado livro foi pedido 10 vezes e tambm foram feitas 5 encomendas
ento o resultado para este livro dever ser 15.

SELECT L.cod_livro, SUM(PL.quantidade) + SUM(EL.quantidade)
FROM LIVRO L, PEDIDO_LIVRO PL, ENCOMENDA_LIVRO EL
WHERE L.cod_livro = PL.cod_livro AND L.cod_livro = EL.cod_livro
GROUP BY L.cod_livro

i) Escrever o comando SQL para remover as editoras do estado do Rio Grande do Sul.

DELETE FROM EDITORA E WHERE E.cod_uf = 'RS'

Qual o efeito deste comando se as restries de integridade referencial estiverem
definidas e marcadas para deleo em cascata ?

Quando as Editoras forem removidas, todos registros relacionados a elas nas
outras Tabelas tambm sero removidos.

You might also like