Questão de Banco de Dados — Normalização — Quadrix 2025
Banco de Dados›Normalização
Código
qa699119
Banca
Quadrix
Órgão
CORE SP
Ano
2025
Cargo
Ana TI ( )
Texto para a questão
As tabelas Aluno, Curso e Departamento são tabelas de um banco de dados de cadastro de alunos e cursos de uma universidade.
tabela Aluno
aluno_id
INT (PK)
nome_aluno
CHAR (200)
data_nascimento
DATE
curso_id
INT (FK)
tabela Curso
curso_id
INT (PK)
nome_aluno
CHAR (200)
departamento_id
INT (FK)
tabela Departamento
departamento_id
INT (PK)
nome_departamento
CHAR (200)
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 Banco de Dados: Formas Normais
Gabarito: letra E. As tabelas Aluno e Curso estão, respectivamente, na 3FN e 3FN, pois cada uma possui chave primária simples, todos os atributos não-chave dependem funcionalmente da chave inteira (sem dependência parcial) e não há dependências transitivas entre atributos não-chave. A análise das dependências funcionais fornecidas no enunciado confirma que ambas as tabelas atendem aos requisitos da Terceira Forma Normal.
A normalização é o processo de organizar os dados em um banco de dados relacional para reduzir a redundância e evitar anomalias de inserção, exclusão e atualização. Ela é realizada por meio de uma série de Formas Normais (FN), cada uma com requisitos mais rigorosos que a anterior. Para entender a questão, é essencial dominar os conceitos de dependência funcional e as três primeiras formas normais.
Uma dependência funcional (representada por →) é um relacionamento entre atributos onde o valor de um atributo (ou conjunto de atributos) determina o valor de outro. Por exemplo, em aluno_id → nome_aluno, o valor de aluno_id identifica unicamente o valor de nome_aluno. A chave primária é o atributo (ou conjunto de atributos) que determina funcionalmente todos os outros atributos da tabela.
As formas normais são definidas da seguinte forma:
1FN (Primeira Forma Normal): Exige que todos os atributos sejam atômicos (indivisíveis) e que não haja grupos repetidos. É o requisito básico para uma tabela ser considerada relacional.
2FN (Segunda Forma Normal): Exige que a tabela esteja na 1FN e que não haja dependências parciais, ou seja, que nenhum atributo não-chave dependa de apenas uma parte da chave primária composta. Isso só é um problema quando a chave é composta.
3FN (Terceira Forma Normal): Exige que a tabela esteja na 2FN e que não haja dependências transitivas, ou seja, que nenhum atributo não-chave dependa de outro atributo não-chave. Todos os atributos não-chave devem depender exclusivamente da chave primária.
Vamos aplicar esses conceitos às tabelas do enunciado. A tabela Aluno tem aluno_id como chave primária (simples) e os atributos nome_aluno, data_nascimento e curso_id. As dependências funcionais são: aluno_id → nome_aluno, data_nascimento, curso_id. Como a chave é simples, não há como existir dependência parcial (isso só ocorreria com chave composta). Além disso, curso_id é uma chave estrangeira que referencia a tabela Curso, mas não há dependência transitiva entre os atributos não-chave: nome_aluno e data_nascimento dependem apenas de aluno_id, e curso_id também depende apenas de aluno_id (o fato de curso_id ser FK não cria uma dependência transitiva, pois ele não determina outros atributos não-chave da tabela Aluno). Portanto, a tabela Aluno está na 3FN.
A tabela Curso tem curso_id como chave primária (simples) e os atributos nome_curso e departamento_id. As dependências funcionais são: curso_id → nome_curso, departamento_id. Novamente, a chave é simples, então não há dependência parcial. E não há dependência transitiva: nome_curso e departamento_id dependem apenas de curso_id. Portanto, a tabela Curso também está na 3FN.
A pegadinha desta questão está em verificar se há dependências parciais ou transitivas. Como as chaves são simples, a 2FN é automaticamente satisfeita (desde que a 1FN também seja). E como não há atributos não-chave dependendo de outros atributos não-chave, a 3FN também é satisfeita. A banca tenta confundir o candidato fazendo-o acreditar que a presença de chaves estrangeiras (curso_id em Aluno, departamento_id em Curso) cria dependências transitivas, o que não é o caso.
Critério
Tabela Aluno
Tabela Curso
Chave primária
aluno_id (simples)
curso_id (simples)
Dependência parcial (2FN)
Não há (chave simples)
Não há (chave simples)
Dependência transitiva (3FN)
Não há (nome_aluno, data_nascimento, curso_id dependem só de aluno_id)
Não há (nome_curso, departamento_id dependem só de curso_id)
Forma normal atingida
3FN
3FN
Alternativa A — ❌ Incorreta
Afirma que Aluno está na 1FN e Curso na 2FN. A tabela Aluno não está apenas na 1FN, pois atende aos requisitos da 2FN e da 3FN. A tabela Curso também não está apenas na 2FN, pois atende à 3FN. O erro está em subestimar o nível de normalização das tabelas.
Alternativa B — ❌ Incorreta
Afirma que Aluno está na 1FN e Curso na 3FN. A tabela Aluno não está apenas na 1FN, pois atende à 2FN e à 3FN. A tabela Curso está corretamente classificada na 3FN, mas a classificação de Aluno está incorreta.
Alternativa C — ❌ Incorreta
Afirma que Aluno está na 2FN e Curso na 1FN. A tabela Aluno está na 3FN, não apenas na 2FN. A tabela Curso também está na 3FN, não apenas na 1FN. O erro está em subestimar o nível de normalização de ambas as tabelas.
Alternativa D — ❌ Incorreta
Afirma que Aluno está na 2FN e Curso na 2FN. Ambas as tabelas estão na 3FN, pois não possuem dependências transitivas. O erro está em não reconhecer que a ausência de dependências transitivas eleva as tabelas à 3FN.
Alternativa E — ✅ Correta ⟵ GABARITO
Afirma que Aluno e Curso estão, respectivamente, na 3FN e 3FN. Isso está correto, pois ambas as tabelas possuem chave primária simples (eliminando a possibilidade de dependência parcial) e não apresentam dependências transitivas entre atributos não-chave. Todos os atributos não-chave dependem exclusivamente da chave primária, atendendo aos requisitos da Terceira Forma Normal.