Informática, perguntado por lucasagnes, 7 meses atrás

Um cliente solicitou sua empresa a criação de um banco de dados para armazenar os pedidos de uma lanchonete. A solicitação engloba o cadastro produtos, seus respectivos preços e tipos, além do cadastro dos dientes e a forma de pagamento de cada pedido. Após a reunião da equipe de analistas o seguinte DER (diagrama de entidade e relacionamento) foi elaborado como representação dos requisitos obtidos com o cliente:

As tabelas a seguir contêm os dados dos pedidos:

Chaves e Referências:

Tabela TIPO PRODUTO:
- ID é chave primária.

Tabela TIPO_PAGTO:
- ID é chave primária.

Tabela PRODUTOS:
- ID é chave primária.
- ID_TIPO_PRODUTO é chave estrangeira e referencia ID da tabela TIPO_PRODUTO.

Tabela PEDIDOS:
- ID é chave primária.
- ID_TIPO_PAGTO é chave estrangeira e referencia ID da tabela TIPO_PAGTO.

Tabela PEDIDOS_PRODUTOS:
- ID é chave primária.
- ID_PEDIDO é chave estrangeira e referencia ID da tabela PEDIDOS.
ID_PRODUTO é chave estrangeira e referencia ID da tabela PRODUTOS.

Com base nas informações descritas no DER e tabelas apresentadas, realize as seguintes atividades:

1) Crie um script contendo os comandos de criação das tabelas (CREATE TABLE), lembrando que os tipos dos campos
poderá ser ao seu critério, porém não fugindo da necessidade do campo.

2) Crie um script contendo os comandos de inserção de dados (INSERT), onde seja feita a inserção dos dados descritos nas
tabelas acima.

3) Crie os comandos para apagar o conteúdos das tabelas (DELETE).

Para esta atividade, você deve utilizar um software editor de texto no qual fará o desenvolvimento do seu trabalho. Esse
arquivo deverá ser anexado no momento do envio.

Alguém pode me ajudar pfv


dimasmycafe3: INSERT INTO PEDIDOS_PRODUTOS VALUES(1,1,2,2,5.00,10.00);
INSERT INTO PEDIDOS_PRODUTOS VALUES(2,1,6,1,6.00,6.00);
INSERT INTO PEDIDOS_PRODUTOS VALUES(3,2,3,3,7.00,21.00);
INSERT INTO PEDIDOS_PRODUTOS VALUES(4,2,6,1,6.00,6.00);
INSERT INTO PEDIDOS_PRODUTOS VALUES(5,3,4,1,7.50,7.50);
INSERT INTO PEDIDOS_PRODUTOS VALUES(6,3,6,1,6.00,6.00);
dimasmycafe3: DELETE FROM PEDIDOS_PRODUTOS
WHERE ID = 1
OR ID = 2
OR ID = 3
OR ID = 4
OR ID = 5
OR ID = 6;

DELETE FROM PRODUTOS
WHERE ID = 1
OR ID = 2
OR ID = 3
OR ID = 4
OR ID = 5
OR ID = 6
OR ID = 7
OR ID = 8;
dimasmycafe3: DELETE FROM PEDIDOS
WHERE ID = 1
OR ID = 2
OR ID = 3;

DELETE FROM TIPO_PRODUTO
WHERE ID = 1
OR ID = 2;

DELETE FROM TIPO_PAGTO
WHERE ID = 1
OR ID = 2;
dimasmycafe3: ta na mão
dimasmycafe3: Só uma correção...
CREATE TABLE PEDIDOS_PRODUTOS (
ID INT PRIMARY KEY,
ID_PEDIDO INT,
ID_PRODUTO INT,
QTDE INT,
VALOR_UNIT FLOAT (10,2),
VALOR_TOTAL FLOAT (10,2),

FOREIGN KEY (ID_PEDIDO)
REFERENCES PEDIDOS (ID),
FOREIGN KEY (ID_PRODUTO)
REFERENCES PRODUTOS (ID)
);
dimasmycafe3: Consegui colocar a resposta, se conseguir, pode apagar os meus comentários.
lucasagnes: muito obrigado cara
mariolucasbol: Conseguiu a resposta ?
lucasagnes: essa que está aí em cima

Soluções para a tarefa

Respondido por dimasmycafe3
36

Resposta:

Segue o Código... Mas não deixem de estudar! :D

Explicação:

CREATE TABLE TIPO_PRODUTO (

ID INT PRIMARY KEY,

DESCRICAO VARCHAR (10)

);

CREATE TABLE TIPO_PAGTO (

ID INT PRIMARY KEY,

DESCRICAO VARCHAR (10)

);

CREATE TABLE PRODUTOS (

ID INT PRIMARY KEY,

DESCRICAO VARCHAR (80),

VALOR FLOAT (10,2),

ID_TIPO_PRODUTO INT,

FOREIGN KEY (ID_TIPO_PRODUTO)

REFERENCES TIPO_PRODUTO (ID)

);

CREATE TABLE PEDIDOS(

ID INT PRIMARY KEY,

DATA VARCHAR (15),

ID_TIPO_PAGTO INT,

VALOR_TOTAL FLOAT (10,2),

FOREIGN KEY (ID_TIPO_PAGTO)

REFERENCES TIPO_PAGTO (ID)

);

CREATE TABLE PEDIDOS_PRODUTOS (

ID INT PRIMARY KEY,

ID_PEDIDO INT,

ID_PRODUTO INT,

QTDE INT,

VALOR_UNIT FLOAT (10,2),

VALOR_TOTAL FLOAT (10,2),

FOREIGN KEY (ID_PEDIDO)

REFERENCES PEDIDOS (ID),

FOREIGN KEY (ID_PRODUTO)  

REFERENCES PRODUTOS (ID)

);

INSERT INTO TIPO_PRODUTO VALUES (1,"CONSUMO");

INSERT INTO TIPO_PRODUTO VALUES (2,"VENDA");

INSERT INTO TIPO_PAGTO VALUES (1, "A VISTA");

INSERT INTO TIPO_PAGTO VALUES (2, "A PRAZO");

INSERT INTO PEDIDOS VALUES (1,"27/07/2020",1,16.00);

INSERT INTO PEDIDOS VALUES (2,"05/08/2020",2,27.00);

INSERT INTO PEDIDOS VALUES (3,"06/08/2020",1,13.50);

INSERT INTO PRODUTOS VALUES (1,"SABÃO EM PÓ 2 KG",17.00,1);

INSERT INTO PRODUTOS VALUES (2,"COXINHA",5.00,2);

INSERT INTO PRODUTOS VALUES (3,"EMPADINHA",7.00,2);

INSERT INTO PRODUTOS VALUES (4,"BOLO PEDAÇO",7.50,2);

INSERT INTO PRODUTOS VALUES (5,"DETERGENTE 5 LITROS",8.00,1);

INSERT INTO PRODUTOS VALUES (6,"PASTEL",6.00,2);

INSERT INTO PRODUTOS VALUES (7,"PIZZA PEDAÇO",7.00,2);

INSERT INTO PRODUTOS VALUES (8,"SUCO",7.00,2);

INSERT INTO PEDIDOS_PRODUTOS VALUES(1,1,2,2,5.00,10.00);

INSERT INTO PEDIDOS_PRODUTOS VALUES(2,1,6,1,6.00,6.00);

INSERT INTO PEDIDOS_PRODUTOS VALUES(3,2,3,3,7.00,21.00);

INSERT INTO PEDIDOS_PRODUTOS VALUES(4,2,6,1,6.00,6.00);

INSERT INTO PEDIDOS_PRODUTOS VALUES(5,3,4,1,7.50,7.50);

INSERT INTO PEDIDOS_PRODUTOS VALUES(6,3,6,1,6.00,6.00);

DELETE FROM PEDIDOS_PRODUTOS

WHERE ID = 1

OR ID = 2

OR ID = 3

OR ID = 4

OR ID = 5

OR ID = 6;

DELETE FROM PRODUTOS

WHERE ID = 1

OR ID = 2

OR ID = 3

OR ID = 4

OR ID = 5

OR ID = 6

OR ID = 7

OR ID = 8;

DELETE FROM PEDIDOS

WHERE ID = 1

OR ID = 2

OR ID = 3;

DELETE FROM TIPO_PRODUTO

WHERE ID = 1

OR ID = 2;

DELETE FROM TIPO_PAGTO

WHERE ID = 1

OR ID = 2;


felipebranve: alguém conseguiu as partes corretas?
lucasagnes: alguém??
clodoaldomatos81: boa tarde tem como alguem me ajudar a fazer esse mapa que consta na minha materia de Banco de Dados
mariolucasbol: Muitos tentamos mais só tem essa respostas que está ai na parte de cima não sabemos sé está correta
UJEFFFF: também tô enrolado nessa atividade aí rsrs
lucasagnes: acho que todo mundo tá
KAORISwar: conseguiram a reposta correeta?
James95: É SO CRIAR UMA BASE DE DADOS ANTES DE APLICAR OS COMANDOS, TODOS ESSES COMANDOS DERAM CERTO AQUI
MarcosFNG: Pelo que eu li ali está correto, só dar um create database e um use que é pra estar funcionando 100%; na dúvida é só jogar no mysql e antes de deletar e depois dar um show tables e um select * from pra cada tabela pra confirmar se está correto.
Respondido por GuilhermeSDB
12

Resposta:

CREATE TABLE TIPO_PRODUTO (

ID INTEGER PRIMARY KEY AUTOINCREMENT,

DESCRICAO VARCHAR (50) NOT NULL

);

CREATE TABLE TIPO_PAGTO (

ID INTEGER PRIMARY KEY AUTOINCREMENT,

DESCRICAO VARCHAR (50) NOT NULL

);

CREATE TABLE PRODUTOS (

ID INTEGER PRIMARY KEY AUTOINCREMENT,

DESCRICAO VARCHAR (50) NOT NULL,

VALOR DOUBLE (10) NOT NULL,

ID_TIPO_PRODUTO INTEGER (10) REFERENCES TIPO_PRODUTO (ID)

NOT NULL

);

CREATE TABLE PEDIDOS (

ID INTEGER PRIMARY KEY AUTOINCREMENT,

DATA DATETIME NOT NULL,

ID_TIPO_PAGTO INTEGER (10) REFERENCES TIPO_PAGTO (ID)

NOT NULL,

VALOR_TOTAL DOUBLE (10) NOT NULL

);

CREATE TABLE PEDIDOS_PRODUTOS (

ID INTEGER PRIMARY KEY AUTOINCREMENT,

ID_PEDIDO INTEGER (10) REFERENCES PEDIDOS (ID),

ID_PRODUTO INTEGER (10) REFERENCES PRODUTOS (ID),

QTDE INTEGER (10) NOT NULL,

VALOR_UNIT DOUBLE (10) NOT NULL,

VALOR_TOTAL DOUBLE (10) NOT NULL

);

INSERT INTO TIPO_PRODUTO(DESCRICAO)

VALUES

('CONSUMO'),

('VENDA');

INSERT INTO TIPO_PAGTO(DESCRICAO)

VALUES

('A VISTA'),

('A PRAZO');

INSERT INTO PRODUTOS(DESCRICAO,VALOR,ID_TIPO_PRODUTO)

VALUES

('SABÃO EM PÓ 2KG','17.00','1'),

('COXINHA','5.00','2'),

('EMPADINHA','7.00','2'),

('BOLO PEDAÇO','7.50','2'),

('DETERGENTE 5 LITROS','8.00','1'),

('PASTEL','6.00','2'),

('PIZZA PEDAÇO','7.00','2'),

('SUCO','7.00','2');

INSERT INTO PEDIDOS(DATA,ID_TIPO_PAGTO,VALOT_TOTAL)

VALUES

('27/07/2020','1','16.00'),

('05/08/2020','2','27.00'),

('06/08/2020','1','13.50');

INSERT INTO PEDIDOS_PRODUTOS(ID_PEDIDO,ID_PRODUTO,QTDE,VALOR_UNIT,VALOR_T

OTAL)

VALUES

('1','2','2','5.00','10.00'),

('1','6','1','6.00','6.00'),

('2','3','3','7.00','21.00'),

('2','6','1','6.00','6.00'),

('3','4','1','7.50','7.50'),

('3','6','1','6.00','6.00');

DELETE FROM PEDIDOS_PRODUTOS

WHERE ID = 1

OR ID = 2

OR ID = 3

OR ID = 4

OR ID = 5

OR ID = 6;

DELETE FROM PRODUTOS

WHERE ID = 1

OR ID = 2

OR ID = 3

OR ID = 4

OR ID = 5

OR ID = 6

OR ID = 7

OR ID = 8;

DELETE FROM PEDIDOS

WHERE ID = 1

OR ID = 2

OR ID = 3;

DELETE FROM TIPO_PRODUTO

WHERE ID = 1

OR ID = 2;

DELETE FROM TIPO_PAGTO

WHERE ID = 1

OR ID = 2;

Explicação:

Muito simples fazer, só abrir algum SGBD como Workbench, SQLite Studio e etc...

ir adicionando as tabelas e os itens, quando for fazer um commit ele gera automaticamente o script pronto pra voce.


felipebranve: ta correta a resposta?
GuilhermeSDB: Sim, foi revisado mais de 1 vez, se quiser saber se realmente funciona só abrir um SRBD e executar essa query, está tudo o que foi pedido pelo professor.
GuilhermeSDB: Faça o teste então, como eu falei foi revisado, ao tentar dar um delete no conteúdo da tabela inteiro ele retorna o erro por causa das Chaves Estrangeiras, fiquei com preguiça de resolver esse erro então utilizei assim, funcionando tá e realmente você está certo se tivessem 1.000 registros desse jeito fica impossível.
Perguntas interessantes