Questão nº 56
Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 56)
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; (alternativa correta)
- B1FN e 3FN;
- C2FN e 3FN;
- D2FN e 4FN;
- E3FN e 4FN.
Resposta comentada
Gabarito Alternativa A
A normalização de dados é um processo para organizar as colunas e tabelas de um banco de dados, reduzindo a redundância e melhorando a integridade dos dados, seguindo regras chamadas Formas Normais (FN).
(A) Correta: A tabela está em 1FN porque, como o enunciado afirma, "As colunas de PEDIDO têm valores atômicos", ou seja, cada célula contém um único valor indivisível. A tabela está em 2FN porque, como o enunciado também afirma, "as colunas não chaves (DATA, ID_CLIENTE, NOME_CLIENTE) são totalmente dependentes da chave primária (ID_PEDIDO)". Além disso, quando a chave primária é composta por um único atributo (como `ID_PEDIDO`), a tabela automaticamente satisfaz a 2FN se já estiver em 1FN, pois não há "parte da chave" para que um atributo não-chave dependa parcialmente.
(B) Incorreta: A tabela não está em 3FN. Para estar em 3FN, além de estar em 2FN, nenhum atributo não-chave pode depender de outro atributo não-chave (dependência transitiva). Na tabela `PEDIDO`, `ID_CLIENTE` é um atributo não-chave e `NOME_CLIENTE` é outro atributo não-chave. Observando os dados, `ID_CLIENTE` determina `NOME_CLIENTE` (ex: `ID_CLIENTE` 1 sempre é "João", `ID_CLIENTE` 2 sempre é "Maria"). Isso é uma dependência transitiva (`ID_PEDIDO` -> `ID_CLIENTE` -> `NOME_CLIENTE`), o que impede a tabela de estar em 3FN. (Armadilha da banca: Muitos alunos podem não identificar a dependência transitiva `ID_CLIENTE` -> `NOME_CLIENTE` ou esquecer de verificar a 3FN após a 2FN, especialmente quando o enunciado já "confirma" 1FN e 2FN.)
(C) Incorreta: A tabela não está em 3FN, conforme explicado na alternativa (B).
(D) Incorreta: A tabela não está em 3FN, e consequentemente, não pode estar em 4FN, que é uma forma normal mais avançada que exige a 3FN.
(E) Incorreta: A tabela não está em 3FN, e consequentemente, não pode estar em 4FN.
Fonte: FGV TJ-SE Servidor 2023 Técnico Judiciário - Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.