Professor: Claudio Maximiliano Zaina Aluno: Alef Vinicius Cardoso e Silva Prontuário: 1380516 Aluno: Protuário: BANCO DE DADOS II
Escopo Sistema de uma disk entrega de lanche O cliente poderá ir ate o estabelecimento para solicitar o seu pedido para entrega ou até mesmo por telefone, onde ele informa o nome do pedido, quantidade, alguma observação referente ao pedido, e o tipo de pagamento que ele realizará além do seu endereço e seu nome. Caso o cliente queira fazer seu cadastro para promoções e fácil acesso aos pedidos deverá informar seu nome, endereço, cpf e telefone. O atendente por sua vez possui um nome, cpf, função e um código que o liga ao atendimento que fez, ele registra o pedido no sistema e informa ao cozinheiro que, por sua vez, verifica o pedido e suas observações e então prepara os lanches. Assim que estão prontos ele informa ao entregador que também possui um código e uma data a qual o liga as suas entregas que realiza. O sistema deverá informar quais os quatro lanches mais vendidos no mês para fazer promoções sobre estes, e uma lista dos clientes mais ativos para posteriores sorteios de vales e outros prêmios. Diagrama MER
Esquemas de tabelas Atendente( nome,cpf,funcao) chave primaria(cpf) Entrega(codigoEnt,dataEntrega,nome ) chave primaria(codigoent) Cliente (cpfat,nome,endereco,cpf,telefone,datacad ) chave primaria(cpf), (cpfat) referencia Atendente(cpf) Lanche(preco double,nomep,codl) chave primaria (codl) Pedido(codigoPed,cpfAt,codL,codigoEnt,dataPed,nomeP,quantidade,observação,tipoPag,endereco, nome) chave primaria (codigoped), foreign key (cpfat) referencia Atendente(cpf), foreign key (codigoent) referencia Entrega(codigoEnt), foreign key (codl) referencia Lanche (codl) Script para Gerar Tabelas drop database Trabalho; create database Trabalho; use Trabalho; create table Atendente( cpf varchar(17) not null, funcao varchar(15), primary key(cpf) create table Entrega( codigoent int not null, dataentrega date not null, primary key (codigoent)
create table Cliente ( cpfat varchar(17) not null, endereco varchar(40) not null, cpf varchar(17) not null, telefone varchar(15) not null, datacad date, primary key(cpf), foreign key (cpfat) references Atendente(cpf) create table Lanche( preco double not null, nomep varchar(40) not null, codl int not null, primary key (codl) create table Pedido( codigoped int not null, cpfat varchar(17) not null, codl int not null, codigoent int not null, dataped date, nomep varchar(40) not null, quantidade int not null, observacao TEXT, tipopag varchar(15), endereco varchar(50) not null, primary key (codigoped), foreign key (cpfat) references Atendente(cpf), foreign key (codigoent) references Entrega(codigoEnt), foreign key (codl) references Lanche (codl) Script de Inserção de Dados delete from atendente; insert into atendente (cpf,nome,funcao) values ("123.123","joao","atendente/caixa" insert into atendente (cpf,nome,funcao) values ("123.456","maria","atendente/loja" insert into atendente (cpf,nome,funcao) values ("123.321","beatriz","atendente/loja" delete from entrega; insert into entrega (codigoent,dataentrega,nome) values (1,"2014-09-20","marcos" insert into entrega (codigoent,dataentrega,nome) values (2,"2014-09-22","lucas" insert into entrega (codigoent,dataentrega,nome) values (3,"2014-09-25","antonio"
insert into entrega (codigoent,dataentrega,nome) values (4,"2014-09-25","antonio" insert into entrega (codigoent,dataentrega,nome) values (5,"2014-09-25","lucas" insert into entrega (codigoent,dataentrega,nome) values (6,"2014-09-25","marcos" delete from cliente; insert into cliente (cpfat,nome,endereco,cpf,telefone,datacad) values ("123.456","Anna","belem 3-67","777.234","2381-5555","2014-09-15" insert into cliente (cpfat,nome,endereco,cpf,telefone,datacad) values ("123.321","Marcelo","natal 20-27","777.111","2381-5555","2014-09-15" insert into cliente (cpfat,nome,endereco,cpf,telefone,datacad) values ("123.321","Augusto","rio branco 23-47","111.234","2381-4455","2014-09-16" insert into cliente (cpfat,nome,endereco,cpf,telefone,datacad) values ("123.456","Cleyton","salvador 13-23","222.345","2381-5556","2014-09-15" insert into cliente (cpfat,nome,endereco,cpf,telefone,datacad) values ("123.123","Claudio","Av Ipes 24-24","333.345","2381-2424","2014-09-14" delete from Lanche; insert into Lanche (preco,nomep,codl) values (11.0,"X-tudo",1 insert into Lanche (preco,nomep,codl) values (8.0,"X-calabresa",2 insert into Lanche (preco,nomep,codl) values (6.0,"X-frango",3 insert into Lanche (preco,nomep,codl) values (7.0,"X-salada",4 delete from pedido; values (1,"123.123",1,"2014-09-20","X-tudo",1,"sem queijo","cartao","rio branco 13-10","julio",1 values (2,"123.456",2,"2014-09-21","X-salada",2,"sem salada","dinheiro","rio branco 12-10","julio",4 values (3,"123.123",3,"2014-09-22","X-frango",1," ","dinheiro","rio branco 23-47","augusto",3 values (4,"123.456",4,"2014-09-20","X-frango",2," ","dinheiro","rio branco 23-47","augusto",3 values (5,"123.123",5,"2014-09-25","X-tudo",1," ","cartao","natal 13-10","julio",1 values (6,"123.456",6,"2014-09-24","X-tudo",3," ","cartao","belem 3-67","anna",1 values (7,"123.321",1,"2014-09-23","X-frango",2,"sem alface","dinheiro","belem 3-67","anna",3 values (8,"123.123",2,"2014-09-22","X-calabresa",1,"sem calabresa","cartao","belem 3-67","anna",2
Script de Consulta De Dados (10 consultas) #selecione e mostre o nome de cada atendente e a quantidade de lanche vendida select Atendente.nome,sum(quantidade) as quantidade from Atendente,Pedido where cpfat = cpf group by (nome #nome dos atendentes e produtos vendidos com suas respectivas quantidades datados de 22-09- 2014 select Atendente.nome,nomeP from Atendente,Pedido where dataped = "2014-09-22" and cpf = cpfat; #quais clientes fizeram pedidos e sao cadastrados no sistema select distinct C.nome from cliente C,pedido P where C.endereco = P.endereco; #nome do atendente e do entregador que atenderam a senhorita anna na data de 24-09-2014 select A.nome,E.nome from atendente A, entrega E,pedido P where P.nome = "anna" and dataped = "2014-09-24" and A.cpf = P.cpfAt and E.codigoEnt = P.codigoEnt; #Mostre as nome do pedidos das entregas que foram feitas entre os dias 23 a 26 de setembro select nomep,dataentrega from pedido P,entrega E where dataentrega > "2014-09-23" and dataentrega < "2014-09-26" and E.codigoEnt=P.codigoEnt; #quantos lanches foram vendidos no dia 20 de setembro e quem os entregou select sum(quantidade) as total,e.nome from pedido,entrega E where dataped = "2014-09-20" and dataentrega = dataped; #qual funcionario cadastrou o cliente que comprou mais lanche select distinct A.nome, count(quantidade) from atendente A,cliente C, pedido P where A.cpf = P.cpfAt and P.endereco = C.endereco group by(p.endereco #selecione e mostre qual atendente vendeu mais lanche select RES.nome,max(RES.quantidade) from atendente,(
select A.nome,SUM(quantidade) as quantidade,cpfat from Atendente A,Pedido P where cpfat = cpf group by (A.nome) order by (quantidade) desc ) as RES; #valor total de cada lanche vendido select L.nomeP,preco,sum(quantidade) as quantidade,sum((preco*quantidade)) as total from lanche L,pedido P where L.codL = P.codL group by (nomep #valor total vendido de lanches ate hoje; select SUM((quantidade*preco)) as Total from pedido P,lanche L where P.codL = L.codL;