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.SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **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.SELECTid,nome,status,data_criacaoFROMtb_registroWHEREstatus='ATIVO'ORDERBYdata_criacaoDESC;
- **Explicação:** A solução atende diretamente aos requisitos de **Projeto Parcial: Sistema Relacional**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.