Questão nº 35
Questão de Tecnologia da Informação · CESGRANRIO BASA 02/2021 (nº 35)
Considere a tabela não normalizada `CLIENTE-v1` (`CPF`,
`nome`, `endereço`, `cidade`, `UF`, `telefone`, `conta-corrente`)
que possui as seguintes características:
• a chave primária é o atributo `CPF`;
• o atributo `conta-corrente` é uma chave estrangeira;
• todos os atributos são determinados funcionalmente
por `CPF`;
• o atributo `UF` é determinado funcionalmente pelo atribu-
to `cidade`; e
• não há atributos multivalorados.
Qual forma normal foi violada e que tabelas devem ser
criadas como consequência dessa violação?
- AA tabela `CLIENTE-v1` não está na primeira forma nor-
mal (1FN), e, portanto, devem ser criadas as tabelas
`CLIENTE-v2` (`CPF`, `nome`, `endereço`, `cidade`, `UF`, con-
ta-corrente) e `CLIENTE_TELEFONE` (`CPF`, `telefone`). - BA tabela `CLIENTE-v1` não está na primeira forma nor-
mal (1FN), e, portanto, devem ser criadas as tabelas
`CLIENTE-v2` (`CPF`, `nome`, `endereço`, `cidade`, `UF`, tele-
fone) e `CLIENTE_CONTA` (`CPF`, `conta-corrente`). - CA tabela `CLIENTE-v1` não está na terceira forma nor-
mal (3FN), e, portanto, devem ser criadas as tabelas
`CLIENTE-v2` (`CPF`, `nome`, `endereço`, `cidade`, `telefone`,
`conta-corrente`) e `CIDADE` (`cidade`, `UF`). (alternativa correta) - DA tabela `CLIENTE-v1` não está na segunda forma nor-
mal (2FN), e, portanto, devem ser criadas as tabelas
`CLIENTE-v2` (`CPF`, `nome`, `endereço`, `cidade`, `UF`) e
`CLIENTE_CONTA_TELEFONE` (`CPF`, `conta-corrente`,
`telefone`). - EA tabela `CLIENTE-v1` não está na terceira forma nor-
mal (3FN), e, portanto, devem ser criadas as tabelas
`CLIENTE-v2` (`CPF`, `nome`, `telefone`, `conta-corrente`) e
`CLIENTE_ENDERECO` (`CPF`, `endereço`, `cidade`, `UF`).
Resposta comentada
Gabarito Alternativa C
Conceito-chave: A 3FN exige que todo atributo não-chave dependa apenas da chave primária, e não de outros atributos não-chave (chamada dependência transitiva). Aqui, UF depende de cidade, que não é chave — isso viola a 3FN.
- (A) Incorreta: A tabela já está na 1FN (não há atributos multivalorados), então a violação não é de 1FN; além disso, separar
telefoneem outra tabela seria para resolver multivalorado, o que não existe aqui. - (B) Incorreta: Mesma armadilha da letra A: não há violação de 1FN, e separar
conta-correnteem outra tabela não resolve a dependência transitiva deUFcomcidade. - (C) Correta: A violação é de 3FN porque
UFdepende decidade(dependência transitiva viaCPF → cidade → UF). A solução correta é criar a tabelaCIDADE (cidade, UF)e removerUFdeCLIENTE-v2, mantendocidadecomo chave estrangeira. - (D) Incorreta: A 2FN só se aplica a chaves compostas; aqui a chave é simples (
CPF), então não há violação de 2FN. Além disso, juntarconta-correnteetelefoneem uma tabela não resolve a transitividade. - (E) Incorreta: A violação é de 3FN, mas a solução proposta está errada: separar
endereço,cidadeeUFem outra tabela não elimina a dependência transitiva deUFcomcidade(que continuaria na tabelaCLIENTE_ENDERECO); o correto é isolarcidade → UFna tabelaCIDADE.
Armadilha da banca (distrator mais tentador, letra E): Ela usa o nome "3FN" corretamente, mas propõe uma decomposição que não remove a dependência transitiva — UF ainda dependeria de cidade dentro da tabela CLIENTE_ENDERECO. A banca testa se você entende que a solução exige criar uma tabela específica para a dependência funcional cidade → UF, não apenas agrupar atributos de endereço.
Fonte: CESGRANRIO BASA 02/2021 Técnico Científico - Tecnologia da Informação. Reproduzida para fins de estudo.