Questão de Banco de Dados — Normalização — CESPE / CEBRASPE 2025
- Código
- ce417250
- Banca
- CESPE / CEBRASPE
- Órgão
- TRF 6
- Ano
- 2025
- Cargo
- AJ TRF6
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: Errado. A afirmação está incorreta porque a definição de 3NF não é apenas "todos os atributos dependerem diretamente da chave primária" — essa é uma descrição incompleta e que se confunde com a 2NF. A 3NF exige que a tabela esteja na 2NF e que não haja dependências transitivas entre atributos não chave, ou seja, atributos não chave não podem depender de outros atributos não chave. A definição correta é mais restritiva do que a apresentada no enunciado.
A normalização é um processo de análise de esquemas de relações com base em dependências funcionais e chaves primárias, com o objetivo de minimizar redundância e anomalias de inserção, exclusão e atualização. Cada forma normal adiciona uma restrição sobre a forma anterior. A 1NF exige que todos os atributos sejam atômicos (sem grupos repetitivos ou atributos compostos). A 2NF exige que a tabela esteja na 1NF e que cada atributo não chave dependa da chave primária inteira (dependência funcional total), eliminando dependências parciais — o que só é possível quando a chave é composta. A 3NF, por sua vez, exige que a tabela esteja na 2NF e que não existam dependências transitivas, ou seja, um atributo não chave não pode depender de outro atributo não chave.
A pegadinha da questão está em apresentar uma definição que mistura os requisitos da 2NF e da 3NF. A frase "todos os atributos dependerem diretamente da chave primária" é uma simplificação que se aplica à 2NF (dependência total da chave), mas não captura a essência da 3NF, que é a eliminação de dependências transitivas. Por exemplo, em uma tabela com chave cod_produto e atributos nome_produto e categoria, se categoria depende de nome_produto (e não diretamente de cod_produto), há uma dependência transitiva que viola a 3NF, mesmo que todos os atributos dependam da chave primária de alguma forma.
Para ilustrar, considere uma tabela Pedido com chave primária cod_pedido e atributos cod_cliente e nome_cliente. Se nome_cliente depende de cod_cliente (que é um atributo não chave), então nome_cliente tem uma dependência transitiva em relação à chave primária cod_pedido. Essa tabela estaria na 2NF (se cod_cliente dependesse totalmente da chave), mas não na 3NF, pois nome_cliente depende de um atributo não chave (cod_cliente).
A distinção crucial é: a 2NF elimina dependências parciais (atributos não chave dependendo de parte da chave composta), enquanto a 3NF elimina dependências transitivas (atributos não chave dependendo de outros atributos não chave). A afirmação do enunciado não menciona a proibição de dependências transitivas, que é o requisito central da 3NF. Portanto, a definição apresentada é insuficiente e incorreta.
Guarde essa fronteira: 2NF = dependência total da chave (sem dependência parcial); 3NF = sem dependência transitiva (atributos não chave independentes entre si). É exatamente nessa distinção que a questão se apoia.
Critério | 2ª Forma Normal (2NF) | 3ª Forma Normal (3NF) |
|---|---|---|
Pré-requisito | Estar na 1NF | Estar na 2NF |
O que elimina | Dependências parciais (atributo não chave depende de parte da chave composta) | Dependências transitivas (atributo não chave depende de outro atributo não chave) |
Exigência central | Todo atributo não chave depende da chave primária inteira (dependência funcional total) | Todo atributo não chave depende apenas da chave primária, nunca de outro atributo não chave |
Frase do enunciado | "Todos os atributos dependerem diretamente da chave primária" — correta para 2NF | "Todos os atributos dependerem diretamente da chave primária" — insuficiente/incorreta para 3NF |
A afirmação "Uma tabela está na 3.ª forma normal (3NF) se todos os atributos dependerem diretamente da chave primária" está errada porque:
Confunde 2NF com 3NF: A exigência de que todos os atributos dependam diretamente da chave primária é uma característica da 2NF (dependência funcional total), não da 3NF.
Omite o requisito essencial da 3NF: A 3NF exige que não haja dependências transitivas, ou seja, que nenhum atributo não chave dependa de outro atributo não chave. A frase do enunciado não menciona essa condição.
Definição incompleta: Uma tabela pode ter todos os atributos dependendo diretamente da chave primária e ainda assim violar a 3NF se houver dependência transitiva entre atributos não chave.
A definição correta seria: "Uma tabela está na 3NF se estiver na 2NF e cada atributo não chave não possuir dependência transitiva, para cada chave candidata." A banca explora exatamente essa lacuna conceitual.
A banca troca a definição da 2NF pela da 3NF. A frase "todos os atributos dependerem diretamente da chave primária" descreve a 2NF (dependência total), mas a 3NF vai além: exige que não haja dependência transitiva entre atributos não chave. O candidato que memoriza a definição de forma superficial cai na armadilha. Lembre-se: 2NF elimina dependência parcial; 3NF elimina dependência transitiva.
Gabarito: Errado.
Link permanente: /questoes/ce417250