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.