Pular para o conteúdo principal

Questão de Banco de Dados — Normalização — Quadrix 2025

Banco de DadosNormalizaçã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,

  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 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.

Gabarito: letra E

Link permanente: /questoes/qa699119