Questão de Banco de Dados — Formas normais — Quadrix 2025
Banco de Dados›Formas normais
Código
qg595603
Banca
Quadrix
Órgão
CORE-SP
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
As tabelas Aluno, Curso e Departamento são tabelas
de um banco de dados de cadastro de alunos e cursos de
uma universidade.
Na tabela Aluno, o atributo aluno_id identifica
unicamente cada estudante, determinando seu
nome, data de nascimento e o curso em que
está matriculado (aluno_ id → nome_aluno,
data_nascimento, curso_id). Na tabela Curso,
o curso_id é o identificador que determina o
nome do curso e o departamento ao qual ele
pertence (curso_id → nome_curso,
departamento_id). Já na tabela Departamento,
o departamento_id define unicamente o
nome do departamento (departamento_id →
nome_departamento).
Com base nessa situação hipotética e nas informações apresentadas, é correto afirmar que a maior classificação possível de normalização para as tabelas Aluno e Curso são, respectivamente,
A1FN e 2FN.
B1FN e 3FN.
C2FN e 1FN.
D2FN e 2FN.
E3FN e 3FN.
Revelar gabarito e comentário▾
GabaritoE — 3FN e 3FN.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Normalização de tabelas: 1FN, 2FN e 3FN
Gabarito: letra E. As tabelas Aluno e Curso podem ser normalizadas, no máximo, até a 3FN, pois ambas possuem chave primária simples (aluno_id e curso_id, respectivamente), o que elimina automaticamente a possibilidade de dependência parcial (violação da 2FN), e os atributos não chave dependem exclusivamente da chave, sem dependências transitivas. A fonte é o conceito clássico de formas normais de Codd, aplicado às dependências funcionais descritas no enunciado.
A normalização é o processo de organizar as tabelas de um banco de dados relacional para minimizar redundâncias e anomalias de inserção, exclusão e atualização. Ela é avaliada por meio das formas normais, que são regras progressivas: para uma tabela estar na 2FN, ela precisa antes estar na 1FN; para estar na 3FN, precisa estar na 2FN. A forma normal de uma relação é a mais alta que ela atende.
A 1FN exige que todos os atributos tenham valores atômicos (indivisíveis), ou seja, não pode haver atributos compostos (como endereço dividido em rua, número, CEP) nem multivalorados (como telefone com vários números). A 2FN exige que a tabela esteja na 1FN e que cada atributo não chave dependa da totalidade da chave primária (ou candidata), ou seja, não pode haver dependência parcial — o que só é possível quando a chave é composta. A 3FN exige que a tabela esteja na 2FN e que nenhum atributo não chave dependa transitivamente da chave, ou seja, um atributo não pode depender de outro atributo não chave que, por sua vez, depende da chave.
No caso da tabela Aluno, a chave é aluno_id (chave simples). Os atributos nome_aluno, data_nascimento e curso_id dependem funcionalmente de aluno_id. Como a chave é simples, não há como existir dependência parcial — ela estaria automaticamente na 2FN se estivesse na 1FN. Além disso, não há dependência transitiva: nome_aluno e data_nascimento dependem diretamente de aluno_id, e curso_id também depende de aluno_id (o fato de curso_id ser chave estrangeira para a tabela Curso não configura dependência transitiva, pois curso_id é um atributo que depende da chave, e não um atributo não chave que determina outro atributo não chave). Portanto, Aluno está na 3FN.
Na tabela Curso, a chave é curso_id (chave simples). Os atributos nome_curso e departamento_id dependem de curso_id. Pela mesma lógica, não há dependência parcial (chave simples) e não há dependência transitiva (os atributos dependem diretamente da chave). Portanto, Curso também está na 3FN.
A pegadinha desta questão está em reconhecer que chave simples elimina a possibilidade de violação da 2FN. Muitos candidatos procuram dependências parciais onde não existem, ou confundem a dependência de curso_id (que é chave estrangeira) com uma dependência transitiva. A chave estrangeira não gera dependência transitiva; ela apenas referencia outra tabela. A dependência transitiva ocorre quando um atributo não chave depende de outro atributo não chave.
Critério
Tabela Aluno
Tabela Curso
Chave primária
aluno_id (simples)
curso_id (simples)
Dependência parcial (viola 2FN)?
Não — chave simples elimina essa possibilidade
Não — chave simples elimina essa possibilidade
Dependência transitiva (viola 3FN)?
Não — atributos não chave dependem diretamente da chave
Não — atributos não chave dependem diretamente da chave
Maior forma normal atingida
3FN
3FN
Alternativa A — ❌ Incorreta
Afirma que Aluno está na 1FN e Curso na 2FN. Errado: ambas as tabelas têm chave simples, o que as coloca automaticamente na 2FN (se estiverem na 1FN), e não há dependências transitivas, então ambas podem chegar à 3FN. A alternativa subestima o nível de normalização possível.
Alternativa B — ❌ Incorreta
Afirma que Aluno está na 1FN e Curso na 3FN. Errado: Aluno também pode estar na 3FN, pois tem chave simples e sem dependências transitivas. A alternativa erra ao limitar Aluno à 1FN.
Alternativa C — ❌ Incorreta
Afirma que Aluno está na 2FN e Curso na 1FN. Errado: ambas as tabelas podem estar na 3FN. A alternativa inverte os níveis e subestima ambas as tabelas.
Alternativa D — ❌ Incorreta
Afirma que Aluno está na 2FN e Curso na 2FN. Errado: ambas podem estar na 3FN, pois não há dependências parciais (chave simples) nem transitivas. A alternativa para na 2FN sem justificativa.
Alternativa E — ✅ Correta ⟵ GABARITO
Afirma que Aluno e Curso estão, respectivamente, na 3FN e 3FN. Correto: ambas as tabelas têm chave primária simples, o que elimina a dependência parcial (2FN), e os atributos não chave dependem exclusivamente da chave, sem dependências transitivas (3FN). Portanto, a maior classificação possível de normalização para ambas é a 3FN.