Pular para o conteúdo principal

Questão de Banco de Dados — Normalização — CESGRANRIO 2025

Banco de DadosNormalizaçã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

NumAgenciaConta

IdCliente

Agencia A

100001

123456789

Agencia A

100002

987654321

Agencia B

200001

111222333

Agencia B

200002

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

  1. ATAB aceita atributos multivalorados.
  2. Ba chave candidata é composta e deveria conter no máximo um atributo.
  3. Ca DF (NumAgencia, Conta) → NomeAgencia não é válida para TAB.
  4. Da DF (NumAgencia, Conta) → IdCliente demonstra que IdCliente é um número que pode repetir-se em agências diferentes.
  5. 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.

Gabarito: letra E

Link permanente: /questoes/cg057990