Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Desafio: praticando com a primeira forma normal

Com objetivo de contribuir para o conhecimento de todos, compartilho a minha solução.

Utilizei os conceitos de foreing keys, porque já tenho um certo domínio, mas em resumo a atilização de chaves estrangeiras aumenta a integridade dos dados e a confiabilidade dos mesmos.

Criação das tabelas

DROP TABLE IF EXISTS CLIENTES;

CREATE TABLE CLIENTES(
    COD_CLIENTE VARCHAR(10) NOT NULL,
    NOME VARCHAR(50) NOT NULL,
    PRIMARY KEY (COD_CLIENTE)
);

DROP TABLE IF EXISTS ITENS;

CREATE TABLE ITENS(
    COD_ITEM VARCHAR(10) NOT NULL,
    NOME VARCHAR(10) NOT NULL,
    PRIMARY KEY (COD_ITEM)
);

DROP TABLE IF EXISTS ENCOMENDA;

CREATE TABLE ENCOMENDA(
    COD_ENCOMENDA VARCHAR(10) NOT NULL,
    COD_CLIENTE VARCHAR(10) NOT NULL,
    COD_ITEM VARCHAR(10) NOT NULL,
    VALOR_ENCOMENDA DECIMAL(10,2) NOT NULL,
    QTD_PEDIDO INT NOT NULL,
    PRIMARY KEY (COD_ENCOMENDA),
    FOREIGN KEY (COD_CLIENTE) REFERENCES CLIENTES(COD_CLIENTE),
    FOREIGN KEY (COD_ITEM) REFERENCES ITENS(COD_ITEM)
);

Criação do script de insert

-- Inserindo dados na tabela CLIENTES
INSERT INTO CLIENTES (COD_CLIENTE, NOME) VALUES
('C001', 'João Silva'),
('C002', 'Maria Oliveira'),
('C003', 'Pedro Santos'),
('C004', 'Ana Costa'),
('C005', 'Lucas Almeida'),
('C006', 'Fernanda Lima'),
('C007', 'Carlos Pereira'),
('C008', 'Juliana Rocha'),
('C009', 'Roberto Gomes'),
('C010', 'Patrícia Martins');

-- Inserindo dados na tabela ITENS com nomes de frutas
INSERT INTO ITENS (COD_ITEM, NOME) VALUES
('I001', 'Maçã'),
('I002', 'Banana'),
('I003', 'Farinha'),
('I004', 'Fermento'),
('I005', 'Manga'),
('I006', 'Pera'),
('I007', 'Abacaxi'),
('I008', 'Leite'),
('I009', 'Morango'),
('I010', 'Cereja');

-- Inserindo dados na tabela ENCOMENDA
INSERT INTO ENCOMENDA (COD_ENCOMENDA, COD_CLIENTE, COD_ITEM, VALOR_ENCOMENDA, QTD_PEDIDO) VALUES
('E001', 'C001', 'I001', 10.00, 2),
('E002', 'C002', 'I002', 15.50, 1),
('E003', 'C003', 'I003', 20.00, 5),
('E004', 'C004', 'I004', 25.75, 3),
('E005', 'C005', 'I005', 30.00, 4),
('E006', 'C006', 'I006', 12.50, 2),
('E007', 'C007', 'I007', 18.00, 1),
('E008', 'C008', 'I008', 22.50, 6),
('E009', 'C009', 'I009', 14.00, 2),
('E010', 'C010', 'I010', 28.00, 3),
('E011', 'C001', 'I002', 15.50, 1),
('E012', 'C002', 'I003', 20.00, 5),
('E013', 'C003', 'I004', 25.75, 3),
('E014', 'C004', 'I005', 30.00, 4),
('E015', 'C005', 'I006', 12.50, 2),
('E016', 'C006', 'I007', 18.00, 1),
('E017', 'C007', 'I008', 22.50, 6),
('E018', 'C008', 'I009', 14.00, 2),
('E019', 'C009', 'I010', 28.00, 3),
('E020', 'C010', 'I001', 10.00, 2),
('E021', 'C001', 'I003', 20.00, 5),
('E022', 'C002', 'I004', 25.75, 3),
('E023', 'C003', 'I005', 30.00, 4),
('E024', 'C004', 'I006', 12.50, 2),
('E025', 'C005', 'I007', 18.00, 1),
('E026', 'C006', 'I008', 22.50, 6),
('E027', 'C007', 'I009', 14.00, 2),
('E028', 'C008', 'I010', 28.00, 3),
('E029', 'C009', 'I001', 10.00, 2),
('E030', 'C010', 'I002', 15.50, 1),
('E031', 'C001', 'I003', 20.00, 5),
('E032', 'C002', 'I004', 25.75, 3),
('E033', 'C003', 'I005', 30.00, 4),
('E034', 'C004', 'I006', 12.50, 2),
('E035', 'C005', 'I007', 18.00, 1),
('E036', 'C006', 'I008', 22.50, 6),
('E037', 'C007', 'I009', 14.00, 5);

Apresentação de resultado!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Oi Vitor, tudo bem?

Seu código está bem estruturado, e o uso das chaves estrangeiras contribui para manter a coerência entre as tabelas de CLIENTES, ITENS, e ENCOMENDA, garantindo que as referências entre elas sejam válidas.

Outro ponto positivo é a clareza e a organização na criação das tabelas, seguindo boas práticas como definir chaves primárias e valores NOT NULL, assegurando que os dados importantes estejam sempre preenchidos. Parabéns pela contribuição ao compartilhar essa solução.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Ei Monalisa, obrigado pelo retorno.

Espero que este artigo ajude nossos diletos colegas de aula!