Exercicios sobre bancos de dados

Propaganda
Disciplina: Banco de Dados
Exercícios de elaboração de consultas em Álgebra Relacional e SQL.
Exercício 1)
O esquema abaixo representa uma parte de um esquema de um banco de
dados de uma empresa que comercializa produtos, comprados de determinados
fornecedores, e peças, fabricadas pela própria empresa usando os produtos em estoque.
A relação Produto armazena dados sobre os produtos e peças que a empresa vende:
código do produto/peça, descrição, unidade, valor de venda, código da categoria a qual
o produto/peça pertence, e um tipo que identifica se é uma peça (PC) ou um produto
(PR). A relação Fornecedor armazena dados sobre os fornecedores: código do
fornecedor, nome do fornecedor, cgc, nome de uma pessoa para contato. A relação
Cliente armazena o código do cliente, nome do cliente e o seu endereço. A relação
Fone armazena o código do cliente, o número de telefone e o tipo de telefone
(residencial, comercial, recados...). Um cliente pode ter vários telefones. A relação
Categoria armazena as várias categorias de produtos existentes em estoque: código e
nome da categoria. A relação ProdFor relaciona os produtos com seus respectivos
fornecedores e o prazo de entrega de cada fornecedor com relação a um produto (este
prazo é dado em dias) . A relação ProdPeça relaciona as peças e os respectivos
produtos que compõem cada peça. A relação Venda armazena todas as vendas
efetuadas na empresa: código da venda, data, valor total da venda, tipovenda (a prazo, à
vista). A relação ItVenda armazena todos os itens das vendas realizadas: código da
venda, código do produto, quantidade vendida e valor unitário do produto.
Produto = (Código, Descrição, Unidade, Valor, Codcateg, Tipo)
Fornecedor = (Codforn, Nomefor, Cgc, Contato)
Cliente = (Codcli, Nomecli, Ender)
Fone = (Codcli, Fone, Tipofone)
Categoria = (Codcateg, Nomecateg)
ProdFor = (Codprod, Codforn, Prazoentrega )
ProdPeça = (Codpeça, Codprod, Qtusada)
Venda = (Codvenda, Dtvenda, Valorvenda, Tipovenda, Codcli)
ItVenda = (Codvenda, Codprod, Qt, Valorunit)
Considerando o esquema Produto, escreva as seguintes consultas em SQL:
a) Listar para cada peça o seu nome e a quantidade de produtos distintos que compõem
a peça.
b) Listar para cada venda, o código da venda, a quantidade de diferentes produtos e o
valor total da venda. Mostrar apenas as vendas que possuem mais de 3 produtos
diferentes.
c) Para cada peça listar o nome da peça, o nome do produto usado na sua confecção e a
quantidade usada do produto.
d) Listar o nome de todos os clientes cuja total de compras já feitas assume um valor
superior a R$100.00. Listar também o valor desta soma.
Exercício 2)
O esquema abaixo representa um banco de dados de uma agenda.
Pessoa = (codpess, nomepess)
PessoaJ = (codpess, cgc, insc_est, cod_prop)
PessoaF = (codpess, dtnasc, cidnasc, estnasc)
Endereco = (codend, rua, num complem, cidend, estend, cep)
EndPessoa = (codpess, codend, tipoender)
Telefone = (codpess, fone, tipofone)
Amigo = (codpess, codamigo, desde)
Parente = (codpess, codparente, parentesco)
As relações deste esquema estão organizadas da seguinte forma:
Pessoa: todas as pessoas da agenda são inseridas nesta relação – tanto físicas como
jurídicas.
PessoaJ: os dados relacionados com pessoas jurídicas são armazenados nesta tabela.
PessoaF: os dados relacionados com pessoas físicas são armazenados nesta tabela.
Endereço: armazena todos os endereços utilizados na agenda.
EndPessoa: relaciona uma pessoa a um endereço.
Telefone: Armazena o telefone de todas as pessoas da agenda.
Amigo: Relaciona as pessoas que são amigas de outras pessoas (apenas pessoas físicas)
Parente: Relaciona as pessoas que são parentes de outras pessoas (apenas pessoas
físicas)
Considerando o esquema Agenda descrito acima, escreva as seguintes consultas em
SQL:
a) Selecionar o nome e endereço de todas as empresas.
b) Selecionar o código e nome de todas as pessoas que não possuem parentes anotados
na agenda.
c) Selecionar o código e nome de todas as pessoas que possuem amigos mas os seus
amigos não possuem parentes anotados na agenda.
d) Selecionar o nome e o cgc de todas as empresas cujo proprietário não mora na
mesma cidade onde está localizada a empresa.
e) Selecionar o nome de todos os proprietários anotados na agenda, seus telefones e
endereços.
f) Selecionar o código e o nome dos amigos do proprietário da Empresa X, além da
data de inicio da amizade.
g) Selecionar o código, o nome e o tipo de parentesco dos parentes dos amigos do José
da Silva.
h) Para cada pessoa que possui amigos, listar o código da pessoa, o nome da pessoa e a
quantidade de amigos que ela possui.
i) Para cada pessoa listar o código, o nome e data de nascimento. Se a pessoa possuir
amigos listar o nome dos seus amigos.
j) Para cada pessoa que possui mais do que 1 parente, listar o nome da pessoa e a data
de nascimento.
Download