Você está na página 1de 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.

Banco Dados Geogrfico parte-de Projetos parte-de parte-de Objeto noespacial Planos de Informao um Agrupamento Geo-Objetos um Imagem Sensor Remoto Cadastral Rede Geo-objeto

parte-de

Geo-campo um Temtico Numrico

est-em

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.

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.
UF uf_codigo uf_sigla uf_nome CentralDistribuicao cen_codigo cen_nome cen_descricao Funcionario fun_codigo pes_codigo (FK) cen_codigo (FK) fun_cart_trabalho

Cidade cid_codigo cid_nome uf_codigo (FK)

SubCentral sub_codigo sub_nome sub_descricao atende (FK) Terceiro ter_codigo pes_codigo (FK)

Logradouro log_codigo cid_codigo (FK) log_nome log_tipo

Poste pos_codigo sub_codigo (FK)

Pessoa Endereco end_codigo LogFaixa lfa_cep log_codigo (FK) lfa_num_inicial lfa_num_final pos_codigo (FK) pes_codigo (FK) lfa_cep (FK) end_num end_complemento pes_codigo pes_nome pes_descricao

Juridica pes_codigo (FK) Comercial end_codigo (FK) pes_codigo (FK) Residencial end_codigo (FK) pes_codigo (FK) jur_cnpj jur_razaosocial jur_fantasia

Fisica pes_codigo (FK) fis_rg fis_cpf fis_nascimento

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.

Você também pode gostar