Prévia do material em texto
Disciplinas especiais DISCIPLINA: PROJETO DE BANCO DE DADOS PROFESSOR TUTOR: ALBERTO TAVARES DA SILVA ALUNO: __________________________________________________ CURSO: __________________________________________________ Marque o tipo de trabalho acadêmico ( ) TA1 ( ) TA2 ( ) TA3 ( X ) Nota única · PROPOSTA: Considere minimundo cujo modelo conceitual é representado pelo diagrama entidade-relacionamento a seguir: PEDIDO 1 (3 pontos): Gerar o modelo lógico considerando os atributos de cada entidade: cliente ( codigo_cliente smallint(6), nome_cliente varchar(20), endereco varchar(30), cidade varchar(15), CEP varchar(8), UF varchar(2), CGC varchar(20), IE varchar(20), ) produto ( codigo_produto smallint(6), unidade varchar(3), descricao varchar(30), val_unit decimal(12,2), ) vendedor ( codigo_vendedor smallint(6), nome_vendedor varchar(20), salario_fixo decimal(12,2), faixa_comissao char(1), ) pedido ( num_pedido int(11), prazo_entrega smallint(6), codigo_cliente smallint(6), codigo_vendedor smallint(6), ) item_do_pedido ( num_pedido int(11), codigo_produto smallint(6), quantidade decimal(10,0), PRIMARY KEY (num_pedido,codigo_produto), ) PEDIDO 2 (2 pontos): Gerar o script SQL de criação do banco de dados PROJETO. PEDIDO 3 (5 pontos): Elaborar as consultas SQL a seguir: 3.1 Quantidade de vendedores por faixa de comissão. 3.2 Nome de cliente(s) que realizaram dois ou mais pedidos. 3.3 Descrições de produtos e respectivas quantidades totais pedidas (soma da quantidade acima de 3). 3.4 Nome de clientes que pediram “chocolate”. 3.5 Nomes de clientes que não fizeram pedidos. · CHAVE DE RESPOSTA: Pedido 1) Pedido 2) CREATE DATABASE `projeto`; CREATE TABLE CLIENTE ( codigo_cliente smallint not null PRIMARY KEY, nome_cliente varchar(20), endereco varchar(30), cidade varchar(15), CEP varchar(8), UF varchar(2), CGC varchar(20), IE varchar(20) ) CREATE TABLE VENDEDOR ( codigo_vendedor smallint not null, nome_vendedor varchar(20), salario_fixo decimal(12,2), faixa_comissao char(1), PRIMARY KEY (codigo_vendedor) ) CREATE TABLE PEDIDO ( num_pedido int not null PRIMARY KEY, prazo_entrega smallint not null, codigo_cliente smallint not null, codigo_vendedor smallint not null, FOREIGN KEY (codigo_cliente) REFERENCES CLIENTE(codigo_cliente), FOREIGN KEY (codigo_vendedor) REFERENCES VENDEDOR(codigo_vendedor) ) CREATE TABLE PRODUTO ( codigo_produto smallint not null, unidade varchar(3), descricao varchar(30), val_unit decimal(12,2), PRIMARY KEY (codigo_produto) ) CREATE TABLE ITEM_DO_PEDIDO ( num_pedido int not null , codigo_produto smallint not null , quantidade decimal, FOREIGN KEY (num_pedido) REFERENCES PEDIDO(num_pedido), FOREIGN KEY (codigo_produto) REFERENCES PRODUTO(codigo_produto), PRIMARY KEY (num_pedido , codigo_produto) ) Pedido 3): 3.1 ) select faixa_comissao, count(faixa_comissao) as qte from vendedor group by faixa_comissao 3.2) select nome_cliente from cliente where codigo_cliente in ( select distinct codigo_cliente from pedido group by codigo_cliente having count(*) >= 2 ) 3.3) select p.descricao, sum(ip.quantidade) as soma from produto p join item_do_pedido ip on p.codigo_produto = ip.codigo_produto group by p.codigo_produto having soma > 3 3.4) select c.nome_cliente from cliente c join pedido p on p.codigo_cliente = c.codigo_cliente join item_do_pedido ip on p.num_pedido = ip.num_pedido join produto pr on ip.codigo_produto = pr.codigo_produto where pr.descricao = 'chocolate' 3.5) select c.nome_cliente from cliente c left join pedido p on p.codigo_cliente = c.codigo_cliente where p.codigo_cliente is null; image1.png image2.png image3.jpg image4.jpg image5.jpg image6.jpg