Questão de Banco de Dados — Banco de Dados — FGV 2023
Banco de Dados›Banco de Dados
Código
fg073201
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Médio
Cargo
Técnico Judiciário - Especialidade - Programação de Sistemas
A normalização de dados é o processo de analisar os esquemas de relações com base nas dependências funcionais de seus atributos e chaves primárias, envolvendo uma série de Formas Normais (FN). Observe a instância da tabela PEDIDO a seguir.As colunas de PEDIDO têm valores atômicos e as colunas não chaves (DATA, ID_CLIENTE, NOME_CLIENTE) são totalmente dependentes da chave primária (ID_PEDIDO).Portanto, PEDIDO está normalizada nas FN:
A1FN e 2FN;
B1FN e 3FN;
C2FN e 3FN;
D2FN e 4FN;
E3FN e 4FN.
Revelar gabarito e comentário▾
GabaritoA — 1FN e 2FN;
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 dados: 1FN, 2FN e 3FN
Gabarito: letra A. A tabela PEDIDO está na 1FN e na 2FN, mas não na 3FN, porque existe uma dependência transitiva: NOME_CLIENTE depende de ID_CLIENTE, que é um atributo não chave. A 3FN exige que nenhum atributo não chave dependa transitivamente da chave primária, o que é violado aqui.
A normalização é o processo de organizar os dados em tabelas para reduzir redundâncias e evitar anomalias de inserção, atualização e exclusão. Ela é feita por etapas, as chamadas Formas Normais (FN), cada uma com um requisito mais forte que a anterior. Para entender a questão, precisamos dominar três delas:
1FN (Primeira Forma Normal): exige que todos os atributos tenham valores atômicos, ou seja, indivisíveis. Não pode haver atributos multivalorados (mais de um valor na mesma célula) nem compostos (que podem ser divididos em partes menores). O enunciado já afirma que as colunas de PEDIDO têm valores atômicos, então a tabela está na 1FN.
2FN (Segunda Forma Normal): exige que a tabela esteja na 1FN e que todo atributo não chave seja totalmente dependente da chave primária. Isso significa que não pode haver dependência parcial, ou seja, um atributo não chave não pode depender de apenas parte de uma chave composta. O enunciado afirma que as colunas não chave (DATA, ID_CLIENTE, NOME_CLIENTE) são totalmente dependentes da chave primária (ID_PEDIDO), então a tabela está na 2FN.
3FN (Terceira Forma Normal): exige que a tabela esteja na 2FN e que não haja dependência transitiva. Isso ocorre quando um atributo não chave depende de outro atributo não chave, que por sua vez depende da chave primária. Na tabela PEDIDO, temos: ID_PEDIDO → ID_CLIENTE e ID_CLIENTE → NOME_CLIENTE. Logo, NOME_CLIENTE depende transitivamente da chave primária, violando a 3FN.
A pegadinha da questão está em reconhecer que a 3FN não é satisfeita. O candidato pode ser levado a pensar que, como os atributos são atômicos e totalmente dependentes da chave, a tabela está na 3FN. No entanto, a presença de uma dependência transitiva entre atributos não chave é exatamente o que impede a 3FN. Para normalizar na 3FN, seria necessário separar a tabela em duas: uma com ID_PEDIDO, DATA e ID_CLIENTE, e outra com ID_CLIENTE e NOME_CLIENTE.
Guarde a fronteira entre dependência parcial (viola a 2FN) e dependência transitiva (viola a 3FN): é exatamente nela que as alternativas se dividem.
Critério
1FN
2FN
3FN
4FN
Valores atômicos
✅ Exigido e atendido
✅ Herdado da 1FN
✅ Herdado da 2FN
✅ Herdado da 3FN
Dependência total da chave primária
—
✅ Exigido e atendido (enunciado)
✅ Herdado da 2FN
✅ Herdado da 3FN
Ausência de dependência transitiva
—
—
❌ Violado (NOME_CLIENTE depende de ID_CLIENTE, não chave)
✅ Herdado da 3FN (mas já violado)
Ausência de dependência multivalorada
—
—
—
❌ Não avaliado na questão (conceito avançado)
Resultado na tabela PEDIDO
✅ Atende
✅ Atende
❌ Não atende
❌ Não atende
Alternativa A — ✅ Correta ⟵ GABARITO
A tabela está na 1FN, pois os atributos são atômicos, e na 2FN, pois os atributos não chave são totalmente dependentes da chave primária. No entanto, não está na 3FN, pois há dependência transitiva: NOME_CLIENTE depende de ID_CLIENTE, que é um atributo não chave. Portanto, a alternativa que lista apenas 1FN e 2FN está correta.
Alternativa B — ❌ Incorreta
Afirma que a tabela está na 1FN e 3FN. O erro está em considerar que a tabela está na 3FN, o que não ocorre devido à dependência transitiva entre NOME_CLIENTE e ID_CLIENTE. A 3FN exige a eliminação de dependências transitivas, o que não é o caso.
Alternativa C — ❌ Incorreta
Afirma que a tabela está na 2FN e 3FN. O erro está em incluir a 3FN, que é violada pela dependência transitiva. Além disso, a tabela também está na 1FN, mas a alternativa não a menciona.
Alternativa D — ❌ Incorreta
Afirma que a tabela está na 2FN e 4FN. O erro está em incluir a 4FN, que trata de dependências multivaloradas, um conceito mais avançado e não aplicável aqui. A tabela não está na 4FN, pois não há dependências multivaloradas.
Alternativa E — ❌ Incorreta
Afirma que a tabela está na 3FN e 4FN. O erro está em incluir tanto a 3FN quanto a 4FN, ambas violadas. A tabela não está na 3FN devido à dependência transitiva e não está na 4FN, pois não há dependências multivaloradas.