Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🏁 CONSIDERAÇÕES FINAIS: UNIDADE IV

Você concluiu o módulo avançado. Agora você possui o conhecimento para realizar consultas sofisticadas e gerenciar a evolução do Schema. 🛡️🧩


Objetivo: Aplicar os conhecimentos de DDL, DML, JOINs e Agregações em um cenário real da indústria: o Sistema de Plano de Saúde.


✅ Verificação de Aprendizagem (Unidade IV)

📝 Questões Objetivas

1. A Lógica Ternária do SQL manipula o valor NULL diferentemente de strings vazias. Em uma consulta com a cláusula WHERE IDADE = NULL, qual será o comportamento matemático do SGBD? a) O SGBD retornará todas as linhas onde a idade não foi preenchida. b) O SGBD acusará um erro de sintaxe, pois o = não aceita 4 letras. c) O SGBD não retornará nenhuma linha, dado que NULL = NULL resulta em Falso (Unknown) para a lógica booleana do WHERE. d) O SGBD retornará apenas o valor 0.

2. Qual operação de junção (JOIN) deve ser utilizada caso você deseje buscar 100% dos registros da tabela Primária (Esquerda), independentemente de haver correspondência válida na tabela Secundária (Direita)? a) INNER JOIN b) CROSS JOIN c) RIGHT EXCLUSIVE JOIN d) LEFT OUTER JOIN (LEFT JOIN)


📗 PASSO 1: Estrutura do Projeto (Relatório)

Crie as tabelas seguindo a arquitetura abaixo:

TabelaAtributos Principais
PLANOid (PK), nome (Not Null), valor (Decimal)
BENEFICIARIOid (PK), nome, altura (Decimal), plano_fk (FK)
DEPENDENTEid (PK), nome, beneficiario_fk (FK)

📗 PASSO 2: Atividade Prática (Consultas)

Com base no projeto, resolva os desafios: 🛡️

  1. 🏗️ DDL: Escreva o script de criação das três tabelas.
  2. 🔗 JOINs:
    • a. Liste os nomes dos beneficiários juntamente com o nome de seus dependentes.
    • b. Liste o beneficiário com o dependente de maior altura na base.
  3. 📊 Agregação:
    • a. Calcule a altura média dos beneficiários agrupados pelo Plano.
    • b. Liste os planos que possuem mais de 5 beneficiários (HAVING).

➡️ Clique aqui para revelar os Gabaritos e Soluções (SPOILER) ⬅️

📊 Gabarito das Questões Objetivas:

  1. Letra C. Em SQL moderno, verificações nulas devem obrigatoriamente usar o operador IS NULL. O sinal de igualdade falha misteriosamente (False/Unknown).
  2. Letra D (LEFT JOIN). Ele preserva o universo total da Entidade Dominante à esquerda e preenche com NULL a tabela dependente caso não encontre relacionamento.

🏗️ Resolução DDL:

CREATE TABLE PLANO (
    ID INT PRIMARY KEY AUTO_INCREMENT,
    NOME VARCHAR(50) NOT NULL,
    VALOR DECIMAL(10,2)
);

CREATE TABLE BENEFICIARIO (
    ID INT PRIMARY KEY AUTO_INCREMENT,
    NOME VARCHAR(100) NOT NULL,
    ALTURA DECIMAL(3,2),
    PLANO_FK INT,
    FOREIGN KEY (PLANO_FK) REFERENCES PLANO(ID)
);

🔗 Resolução JOINs e Agregação:

-- 2a. Beneficiário e Dependente
SELECT B.NOME, D.NOME 
FROM BENEFICIARIO B
JOIN DEPENDENTE D ON B.ID = D.BENEFICIARIO_FK;

-- 3a. Média por Plano
SELECT P.NOME, AVG(B.ALTURA) 
FROM PLANO P
JOIN BENEFICIARIO B ON P.ID = B.PLANO_FK
GROUP BY P.NOME;

-- 3b. Planos com mais de 5 beneficiários
SELECT P.NOME, COUNT(B.ID) 
FROM PLANO P
JOIN BENEFICIARIO B ON P.ID = B.PLANO_FK
GROUP BY P.NOME
HAVING COUNT(B.ID) > 5;

💡 Dica Final: Todo problema complexo pode ser decomposto em partes menores. Use essa técnica e aplique as ferramentas assimiladas. 🚀🛡️