Pular para o conteúdo principal

Questão de Banco de Dados — Formas normais — Quadrix 2025

Banco de DadosFormas 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.

Imagem da questão

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,
  1. A1FN e 2FN.
  2. B1FN e 3FN.
  3. C2FN e 1FN.
  4. D2FN e 2FN.
  5. 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.

Gabarito: letra E

Link permanente: /questoes/qg595603