Questão de Banco de Dados — Normalização — FCC 2026
Banco de Dados›Normalização
Código
fc142089
Banca
FCC
Órgão
MPE SE
Ano
2026
Cargo
Ana ( )
Uma organização registra seus colaboradores e os telefones associados no sistema com a seguinte tabela:
ColaboradorID
Nome
Telefones
1
Ana Paula
(11) 95678-8976; (11) 9887-1267
2
Carlos Pereira
(41) 9789-2234
3
Joana Silva
(11) 9689-3393; (21) 9523-4962
Nesse caso, ColaboradorID é chave primária e a coluna Telefones armazena múltiplos valores (separados por ";").
Para garantir que a tabela esteja em 1ª forma normal (1NF), deve-se
Arepetir o registro do colaborador para cada telefone dentro da mesma tabela, resultando em múltiplas linhas com o mesmo ColaboradorID.
Bcolocar os telefones em um campo aninhado (array ou lista) JSON, mantendo ColaboradorID e Nome na tabela atual.
Cmanter a tabela, mas garantir que não haja duplicatas de linha e tornar a coluna Telefones do tipo texto com separador padrão.
Dsubstituir a coluna Telefone por duas colunas fixas Telefone1 e Telefone2, reservado espaço para até 2 telefones por colaborador.
Equebrar a tabela em duas: uma tabela Colaborador (ColaboradorID, Nome) e outra tabela Telefones (ColaboradorID, Telefone), com cada telefone em uma linha.
Revelar gabarito e comentário▾
GabaritoE — quebrar a tabela em duas: uma tabela Colaborador (ColaboradorID, Nome) e outra tabela Telefones (ColaboradorID, Telefone), com cada telefone em uma linha.
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: Primeira Forma Normal (1FN)
Gabarito: letra E. Para que a tabela atinja a 1FN, a coluna Telefones — que armazena múltiplos valores separados por ";" — deve ser eliminada, criando-se uma tabela separada Telefones (ColaboradorID, Telefone), com cada telefone em uma linha própria. A 1FN exige que todos os atributos sejam atômicos, ou seja, que nenhuma coluna contenha valores multivalorados ou compostos.
A Primeira Forma Normal é o requisito fundamental do modelo relacional: cada célula da tabela deve conter um único valor indivisível. No exemplo dado, a coluna Telefones viola essa regra ao armazenar dois números separados por ponto e vírgula na mesma linha. Para corrigir, é preciso separar os dados em duas tabelas relacionadas: uma para os colaboradores e outra para os telefones, onde cada telefone ocupa uma linha distinta, referenciando o colaborador por uma chave estrangeira.
A normalização, de forma geral, busca eliminar redundâncias e anomalias de inserção, exclusão e atualização. No caso específico da 1FN, o foco é garantir a atomicidade dos dados. Se um colaborador tem dois telefones, a solução não é repetir os dados do colaborador em duas linhas (o que criaria redundância e problemas de atualização), nem criar colunas fixas para um número limitado de telefones (o que não resolve o problema para quem tem mais telefones que o previsto), nem manter os valores em um campo JSON (que continua sendo um campo multivalorado). A solução correta é a decomposição em duas tabelas.
A pegadinha desta questão está em confundir a 1FN com outras abordagens que até resolvem o problema de armazenamento, mas não seguem o princípio da atomicidade. A banca explora a tentação de "achar um jeito" de guardar os múltiplos valores sem quebrar a tabela, quando a única forma correta é a separação em uma nova relação.
Guarde o critério decisivo: 1FN = atributos atômicos. Qualquer alternativa que mantenha múltiplos valores em uma única coluna — seja por separador, JSON ou colunas fixas — viola a 1FN. A única saída é criar uma tabela auxiliar.
Critério
Alternativa A (repetir linhas)
Alternativa B (JSON)
Alternativa C (separador)
Alternativa D (colunas fixas)
Alternativa E (tabela separada)
Atomicidade dos atributos
❌ Telefone ainda multivalorado (vários na mesma linha)
❌ Campo JSON continua multivalorado
❌ Múltiplos valores na mesma célula
❌ Cada coluna é atômica, mas número fixo arbitrário
✅ Cada telefone em linha própria, coluna atômica
Respeito à chave primária
❌ ColaboradorID duplicado viola unicidade
✅ ColaboradorID permanece único
✅ ColaboradorID permanece único
✅ ColaboradorID permanece único
✅ ColaboradorID único em Colaborador; FK em Telefones
Escalabilidade (nº telefones)
✅ Ilimitado, mas com redundância
✅ Ilimitado, mas não atômico
✅ Ilimitado, mas não atômico
❌ Limitado a 2 (ou N fixo)
✅ Ilimitado, sem redundância
Anomalias de atualização/exclusão
❌ Alta redundância gera anomalias
❌ Atualização complexa (editar JSON)
❌ Atualização complexa (parsear string)
❌ Colunas nulas e limite fixo
✅ Nenhuma anomalia; cada telefone independente
Conformidade com 1FN
❌
❌
❌
❌
✅ Correta
Alternativa A — ❌ Incorreta
Repetir o registro do colaborador para cada telefone na mesma tabela resultaria em múltiplas linhas com o mesmo ColaboradorID, o que viola o princípio da chave primária (que deve ser única) e introduz redundância de dados. Essa abordagem não é a forma correta de atingir a 1FN, pois cria anomalias de atualização e exclusão.
Alternativa B — ❌ Incorreta
Colocar os telefones em um campo JSON (array ou lista) mantém a coluna Telefones como um atributo multivalorado. A 1FN exige que cada atributo seja atômico, e um campo JSON com múltiplos valores continua sendo um campo composto, violando a forma normal.
Alternativa C — ❌ Incorreta
Manter a tabela com a coluna Telefones como texto com separador padrão não resolve o problema. A coluna continua armazenando múltiplos valores em uma única célula, o que é exatamente o que a 1FN proíbe. A atomicidade não é alcançada apenas padronizando o separador.
Alternativa D — ❌ Incorreta
Substituir a coluna Telefones por duas colunas fixas (Telefone1 e Telefone2) é uma solução limitada e arbitrária. Ela não garante a atomicidade para colaboradores com mais de dois telefones e cria colunas com valores nulos para quem tem menos. A 1FN não se satisfaz com um número fixo de colunas; a abordagem correta é a separação em tabela própria.
Alternativa E — ✅ Correta ⟵ GABARITO
Quebrar a tabela em duas — Colaborador (ColaboradorID, Nome) e Telefones (ColaboradorID, Telefone) — é a solução correta. Cada telefone ocupa uma linha distinta na tabela Telefones, e a coluna Telefone passa a ser atômica. A tabela Telefones referencia o colaborador por uma chave estrangeira (ColaboradorID), estabelecendo um relacionamento 1:N. Isso elimina o atributo multivalorado e coloca a estrutura na 1FN.