Questão de Banco de Dados — Normalização — CESGRANRIO 2025
Banco de Dados›Normalização
Código
cg057990
Banca
CESGRANRIO
Órgão
BANESE
Ano
2025
Cargo
Tec Ban III ( )
A tabela TAB, apresentada a seguir, armazena informações sobre agências bancárias:
NomeAgencia
NumAgencia
Conta
IdCliente
Agencia A
100
001
123456789
Agencia A
100
002
987654321
Agencia B
200
001
111222333
Agencia B
200
002
444555666
Considere que (NumAgencia, Conta) é a única chave candidata para TAB e, também, que as seguintes dependências funcionais (DF) são válidas para TAB:
NumAgencia → NomeAgencia
(NumAgencia, Conta) → IdCliente
No cenário apresentado, a tabela TAB não está na segunda forma normal (2FN), pois
ATAB aceita atributos multivalorados.
Ba chave candidata é composta e deveria conter no máximo um atributo.
Ca DF (NumAgencia, Conta) → NomeAgencia não é válida para TAB.
Da DF (NumAgencia, Conta) → IdCliente demonstra que IdCliente é um número que pode repetir-se em agências diferentes.
Ea DF NumAgencia → NomeAgencia demonstra que NomeAgencia depende apenas de parte da chave composta (NumAgencia).
Revelar gabarito e comentário▾
GabaritoE — a DF NumAgencia → NomeAgencia demonstra que NomeAgencia depende apenas de parte da chave composta (NumAgencia).
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: Segunda Forma Normal (2FN) e Dependência Parcial
Gabarito: letra E. A tabela TAB não está na 2FN porque a dependência funcional NumAgencia → NomeAgencia demonstra que o atributo não-chave NomeAgencia depende apenas de parte da chave composta (NumAgencia, Conta), configurando uma dependência parcial — exatamente o que a 2FN proíbe. A 2FN exige que todo atributo não-chave dependa da chave inteira, e não de um subconjunto dela.
A normalização é o processo de organizar os dados de um banco relacional para minimizar redundâncias e evitar anomalias de inserção, atualização e exclusão. Ela se dá por meio das formas normais, que são níveis progressivos de qualidade do esquema. A Primeira Forma Normal (1FN) exige que todos os atributos tenham valores atômicos (indivisíveis), ou seja, sem atributos compostos ou multivalorados. A Segunda Forma Normal (2FN) parte da 1FN e acrescenta uma exigência: nenhum atributo não-chave pode ter dependência parcial da chave. Isso só é possível quando a chave é composta (formada por mais de um atributo). Se a chave é simples (um único atributo), não há como existir dependência parcial, e a tabela, se estiver na 1FN, já está automaticamente na 2FN.
No caso da tabela TAB, a chave candidata é (NumAgencia, Conta). A dependência funcional NumAgencia → NomeAgencia mostra que NomeAgencia é determinado apenas por NumAgencia, que é uma parte da chave composta. Isso é a definição exata de dependência parcial: um atributo não-chave depende de um subconjunto próprio da chave. Para corrigir, seria necessário decompor a tabela, separando as informações da agência (NumAgencia, NomeAgencia) em uma tabela própria, e mantendo na tabela original apenas os atributos que dependem da chave inteira.
A pegadinha desta questão está em reconhecer que a violação da 2FN não é sobre a tabela em si, mas sobre as dependências funcionais que a regem. A banca apresenta alternativas que confundem a 2FN com outras formas normais ou com conceitos de modelagem, como atributos multivalorados (1FN) ou dependência transitiva (3FN). O candidato precisa identificar que a presença de uma dependência parcial é o único motivo que impede a tabela de estar na 2FN.
NÃO CAIA NESSA!
A banca tenta confundir a violação da 2FN com a da 1FN ou da 3FN. A alternativa A fala em atributos multivalorados (violação da 1FN), e a alternativa C fala em dependência transitiva (violação da 3FN). A questão é clara: a tabela está na 1FN (valores atômicos) e a única violação é a dependência parcial de NomeAgencia em relação a NumAgencia. Fique atento: a 2FN só se aplica quando a chave é composta, e a violação ocorre quando um atributo não-chave depende de apenas parte dela.
Critério
1FN (violação na A)
2FN (violação na E)
3FN (violação na C)
O que exige
Atributos atômicos, sem multivalorados
Todo atributo não-chave depende da chave inteira
Todo atributo não-chave depende apenas da chave (sem transitividade)
Quando se aplica
Sempre
Somente quando a chave é composta
Sempre (após 2FN)
Violação típica
Atributo multivalorado ou composto
Dependência parcial (atributo depende de parte da chave)
Dependência transitiva (atributo depende de outro não-chave)
Exemplo no caso TAB
Não há violação (valores são atômicos)
NumAgencia → NomeAgencia (NomeAgencia depende só de parte da chave)
Não há violação (nenhuma DF transitiva foi citada)
Alternativa A — ❌ Incorreta
A alternativa afirma que TAB aceita atributos multivalorados. Isso violaria a 1FN, que exige valores atômicos. No entanto, a questão não menciona atributos multivalorados; pelo contrário, a tabela apresentada tem valores simples e atômicos. A violação da 2FN é outra: a dependência parcial. A alternativa confunde a 1FN com a 2FN.
Alternativa B — ❌ Incorreta
A alternativa afirma que a chave candidata é composta e deveria conter no máximo um atributo. Isso é um absurdo: uma chave composta é perfeitamente válida e comum em bancos de dados relacionais. Não há regra que limite a chave a um único atributo. A existência de chave composta é justamente o que permite a ocorrência de dependência parcial, mas isso não é um problema em si — o problema é a dependência parcial de atributos não-chave.
Alternativa C — ❌ Incorreta
A alternativa afirma que a DF (NumAgencia, Conta) → NomeAgencia não é válida para TAB. Isso é falso: a dependência funcional é válida, pois NomeAgencia é determinado pela chave inteira. O problema é que NomeAgencia também é determinado por NumAgencia sozinho, o que configura a dependência parcial. A DF citada na alternativa é verdadeira, mas não é a causa da violação da 2FN.
Alternativa D — ❌ Incorreta
A alternativa afirma que a DF (NumAgencia, Conta) → IdCliente demonstra que IdCliente é um número que pode repetir-se em agências diferentes. Isso é uma interpretação equivocada. A DF indica que IdCliente é funcionalmente dependente da chave composta, ou seja, para cada combinação de NumAgencia e Conta, há um único IdCliente. Isso não implica que o número possa se repetir; pelo contrário, a DF garante a unicidade. A alternativa não tem relação com a violação da 2FN.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa afirma que a DF NumAgencia → NomeAgencia demonstra que NomeAgencia depende apenas de parte da chave composta (NumAgencia). Isso é exatamente a definição de dependência parcial, que viola a 2FN. Como NomeAgencia é um atributo não-chave e depende de NumAgencia, que é apenas uma parte da chave (NumAgencia, Conta), a tabela não está na 2FN. Para corrigir, seria necessário decompor a tabela, separando as informações da agência em uma tabela própria.