Pular para conteúdo

Exercícios: Aula 10 - Projeto Parcial 🔐

Finalize o Módulo II testando sua capacidade de integração.


🟢 Nível: Básico

1. Revisão de Conceitos

Explique em um parágrafo como o DDL e o DML trabalham juntos em um projeto de software.

2. Identificação de Erros

Observe o script abaixo e aponte pelo menos 2 erros de integridade ou lógica:

CREATE TABLE vendas (
    id INT,
    produto VARCHAR(50),
    preco DECIMAL,
    data DATE
);
INSERT INTO vendas VALUES (1, 'Celular', -100, '2024-01-01');


🟡 Nível: Intermediário

3. DQL de Auditoria

Escreva uma consulta que retorne o nome do cliente e a quantidade total de pedidos que ele já fez, mas exiba apenas os clientes que fizeram zero pedidos. (Dica: Use LEFT JOIN e COUNT).

4. Transação de Cancelamento

Escreva o bloco de comandos (BEGIN...COMMIT) para cancelar um pedido: 1. Apagar o registro em itens_pedido. 2. Apagar o registro em pedidos. 3. O que acontece se você inverter a ordem e tentar apagar o pedido antes dos itens?


🔴 Nível: Desafio

5. O Desafio do DBA

Você foi solicitado a otimizar um banco que está lento. 1. Cite 3 colunas que obrigatoriamente deveriam ter Índices. 2. Escreva a consulta para mostrar o faturamento total por categoria, ordenado do maior para o menor. 3. Escreva uma restrição CHECK para garantir que a data de entrega nunca seja anterior à data do pedido.


📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Revisão de Conceitos **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (Revisão de Conceitos) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Identificação de Erros **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (Identificação de Erros) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: DQL de Auditoria **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (DQL de Auditoria) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Transação de Cancelamento **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (Transação de Cancelamento) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 1: Apagar o registro em `itens_pedido`. **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (Apagar o registro em `itens_pedido`.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Apagar o registro em `pedidos`. **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (Apagar o registro em `pedidos`.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: O que acontece se você inverter a ordem e tentar apagar o pedido antes dos itens? **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (O que acontece se você inverter a ordem e tentar apagar o pedido antes dos itens?) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: O Desafio do DBA **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (O Desafio do DBA) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 1: Cite 3 colunas que obrigatoriamente deveriam ter **Índices**. **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Parcial: Sistema Relacional**, o conceito abordado (Cite 3 colunas que obrigatoriamente deveriam ter **Índices**.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Escreva a consulta para mostrar o faturamento total por categoria, ordenado do maior para o menor. **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Escreva a consulta para mostrar o faturamento total por categoria, ordenado do maior para o menor.
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **Projeto Parcial: Sistema Relacional**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Escreva uma restrição `CHECK` para garantir que a data de entrega nunca seja anterior à data do pedido. **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Escreva uma restrição `CHECK` para garantir que a data de entrega nunca seja anterior à data do pedido.
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **Projeto Parcial: Sistema Relacional**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.