Você está na página 1de 5

BANCO DE DADOS (informática aplicada)

Professora: Veronica Aguiar

Grupo 2

 LANCHONETE

Luís Filiphe Cardim de Souza, Matheus Marcílio Moco e Hiata Anderson Carvalho de Moura

A lanchonete vai se chamar Hora do Lanche, e abaixo um esboço básico para o banco de dados da
lanchonete, estrutura simplificada usando o Microsoft Access:

Tabelas:

1. Clientes:
o ClienteID (Chave Primária)
o Nome
o Endereço
o Número de telefone
o ...
2. Pedidos:
o PedidoID (Chave Primária)
o ClienteID (Chave Estrangeira referenciando a tabela Clientes)
o Data do pedido
o Método de entrega (por exemplo, "No local" ou "Entrega")
o Status do pedido (por exemplo, "Em andamento", "Entregue")
o ...
3. ItensPedido:
o ItemID (Chave Primária)
o PedidoID (Chave Estrangeira referenciando a tabela Pedidos)
o Produto
o Quantidade
o ...
4. Produtos:
o ProdutoID (Chave Primária)
o Nome do produto
o Preço
o ...
5. Estoque:
o IngredienteID (Chave Primária)
o Nome do ingrediente
o Quantidade disponível
o ...

Relacionamentos:

 Um cliente pode fazer vários pedidos, então há um relacionamento entre a tabela Clientes e Pedidos
através do ClienteID.
 Cada pedido pode ter vários itens, então há um relacionamento entre Pedidos e ItensPedido através
do PedidoID.
 A tabela Produtos contém informações sobre os produtos que a lanchonete oferece. Esses produtos
estão associados aos itens do pedido.
 A tabela Estoque controla os ingredientes disponíveis e está relacionada aos produtos na tabela
Produtos.
Diagrama de Entidade-Relacionamento (DER):

+-----------------+ +-------------------+ +--------------+


| Clientes | | Pedidos | | ItensPedido |
+-----------------+ +-------------------+ +--------------+
| ClienteID (PK) |1----* | PedidoID (PK) |1----* | ItemID (PK) |
| Nome | | ClienteID (FK) | | PedidoID (FK)|
| Endereço | | Data do pedido | | Produto |
| Telefone | | Método de entrega | | Quantidade |
+-----------------+ | Status do pedido | +--------------+
+-------------------+

+---------------------+
| Produtos |
+---------------------+
| ProdutoID (PK) |
| Nome do produto |
| Preço |
+---------------------+

+---------------------+
| Estoque |
+---------------------+
| IngredienteID (PK) |
| Nome do ingrediente |
| Quantidade disponível|
+---------------------+

Este foi o esboço inicial e simplificado. Colocando no Microsoft Access de maneira pratica, fizemos
pequenas alterações:
Após decidirmos que esta seria a versão final, fomos realizar a interface do usuário:
As consultas propostas foram as seguintes:

Quais foram os pedidos que foram feitos pela Dona Maria no dia 17 desse mês.
SELECT *
FROM Pedidos
WHERE ClienteID = (SELECT ClienteID FROM Clientes WHERE Nome = 'Dona Maria')
AND DataPedido = DATE()

Qual foi o pedido mais caro feito no mês de fevereiro?


SELECT TOP 1 Pedidos.PedidoID, SUM(Produtos.Preco * ItensPedido.Quantidade) AS
ValorTotal
FROM Pedidos
INNER JOIN ItensPedido ON Pedidos.PedidoID = ItensPedido.PedidoID
INNER JOIN Produtos ON ItensPedido.Produto = Produtos.NomeProduto
WHERE MONTH(Pedidos.DataPedido) = 2
GROUP BY Pedidos.PedidoID
ORDER BY ValorTotal DESC

Quero saber o horário e o valor do primeiro pedido do dia 15 de janeiro e o horário e valor do úl mo pedido feito no
dia 15 de janeiro.
-- Primeiro pedido do dia 15 de janeiro
SELECT MIN(DataPedido) AS HorarioPrimeiroPedido,
SUM(Produtos.Preco * ItensPedido.Quantidade) AS ValorPrimeiroPedido
FROM Pedidos
INNER JOIN ItensPedido ON Pedidos.PedidoID = ItensPedido.PedidoID
INNER JOIN Produtos ON ItensPedido.Produto = Produtos.NomeProduto
WHERE DataPedido >= '2024-01-15 00:00:00' AND DataPedido < '2024-01-16 00:00:00';

-- Último pedido do dia 15 de janeiro


SELECT MAX(DataPedido) AS HorarioUltimoPedido,
SUM(Produtos.Preco * ItensPedido.Quantidade) AS ValorUltimoPedido
FROM Pedidos
INNER JOIN ItensPedido ON Pedidos.PedidoID = ItensPedido.PedidoID
INNER JOIN Produtos ON ItensPedido.Produto = Produtos.NomeProduto
WHERE DataPedido >= '2024-01-15 00:00:00' AND DataPedido < '2024-01-16 00:00:00';

Quero saber todos os pedidos feitos pelo João, incluindo o total de compra.

SELECT Pedidos.PedidoID,
Pedidos.DataPedido,
Produtos.NomeProduto,
ItensPedido.Quantidade,
Produtos.Preco * ItensPedido.Quantidade AS TotalPorItem,
SUM(Produtos.Preco * ItensPedido.Quantidade) OVER(PARTITION BY Pedidos.PedidoID)
AS TotalCompra
FROM Pedidos
INNER JOIN ItensPedido ON Pedidos.PedidoID = ItensPedido.PedidoID
INNER JOIN Produtos ON ItensPedido.Produto = Produtos.NomeProduto
INNER JOIN Clientes ON Pedidos.ClienteID = Clientes.ClienteID
WHERE Clientes.Nome = 'João';

Você também pode gostar