A relação Vendas, apresentada a seguir, foi montada para arm...
Vendas (NumeroNota, CodProduto, DescProduto, NomeCliente, CPFCliente,
Data, QtdeVendida, ValorUnitVendido, Peso, Telefone*)
Foram especificadas as seguintes dependências funcionais:
CodProduto → {DescProduto, Peso}
NumeroNotaFiscal → {Data, CPFCliente}
{NumeroNotaFiscal,CodProduto} → {QtdeVendida, ValorUnitVendido}
CPFCliente → NomeCliente
Considerando-se que para um dado valor em CPFCliente podem existir vários telefones associados e vice-versa, qual o conjunto de tabelas que armazena as informações apresentadas, atende às dependências funcionais e se encontra na terceira forma normal?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: C - Clientes(<u>CPFCliente</u>, NomeCliente)<br/>TelefoneCliente(<u>CPFCliente, Telefone</u>)<br/>Nota(<u>NumeroNota</u>, CPFCliente, Data)<br/>Produtos(<u>CodProduto</u>, DescProduto, Peso)<br/>NotasProdutos(<u>NumeroNota, CodProduto</u>, QtdeVendida, ValorUnitVendido)
O tema central desta questão é a normalização de banco de dados, especificamente até a Terceira Forma Normal (3FN). A normalização é um processo crítico no design de banco de dados que visa reduzir a redundância e evitar anomalias de inserção, atualização e exclusão de dados.
Na Terceira Forma Normal, uma relação deve atender aos requisitos da Segunda Forma Normal e, além disso, todos os seus atributos não-primeiros devem ser dependentes somente da chave primária. Isto significa que não pode haver dependências transitivas de atributos não-chave.
Para resolver a questão, é importante entender como cada relação foi dividida:
- Clientes: Armazena CPFCliente e NomeCliente, atendendo à dependência funcional CPFCliente → NomeCliente.
- TelefoneCliente: Lida com o atributo multivalorado Telefone, permitindo a associação de múltiplos telefones a um único cliente.
- Nota: Registra NumeroNota, CPFCliente e Data, atendendo à dependência funcional NumeroNotaFiscal → {Data, CPFCliente}.
- Produtos: Armazena CodProduto, DescProduto e Peso, atendendo à dependência funcional CodProduto → {DescProduto, Peso}.
- NotasProdutos: Armazena NumeroNota, CodProduto, QtdeVendida e ValorUnitVendido, que são dependentes tanto de NumeroNota quanto de CodProduto, conforme especificado pelas dependências.
Análise das Alternativas Incorretas:
A - Esta opção tenta armazenar múltiplos telefones diretamente na tabela Clientes, o que não é apropriado para um atributo multivalorado na 3FN.
B - Inclui o atributo ValorUnitVendido na tabela Produtos, o que infringe a regra de dependências funcionais, já que o valor vendido depende de cada venda específica, e não apenas do produto.
D - Mistura dados de venda e cliente em uma única tabela, o que pode gerar dependências transitivas, violando a 3FN.
E - Combina atributos de Cliente e Telefone numa mesma tabela, sem considerar o atributo multivalorado adequadamente.
Entender essas características é fundamental para garantir que o banco de dados seja eficaz e eficiente, minimizando a redundância e mantendo a integridade dos dados.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo