Considere o esquema relacional da tabela abaixo: Venda(CodVe...
Venda(CodVenda, Cliente, Endereco, Cep, Cidade, Estado, Telefone, Produto, Quantidade, ValorUnitario, ValorTotal)
A quantidade de tabelas, após a aplicação da primeira, segunda e terceira formas normais, será
Pensei em 4 tabelas:
1)Venda:codVenda, codCliente, valorTotal.
2)ItemVenda:codVenda,codProduto, quantidade.
3)Cliente:codCliente,endereco, cep, cidade, estado, telefone.
4)Produto:codProduto, valorUnitario.
*Acho que poderiam existir também outras 4 entidades: Estado, Cidade, Telefone e Endereco(residencial e entrega).
Não concordo com a resposta... questão fácil de anulação. Porém na prova para não correr risco marcaria a 5.
Venda(CodVenda, CodCliente)
Produto(CodProduto, Produto, ValorUnitario)
Item(CodVenda, CodProduto, Quantidade, ValorTotal)
Venda(CodCliente, Cliente, Endereco, Cep, Cidade, Estado, Telefone)
Esta questao possivelmente foi extraida do capitulo 12 do livro "Banco de dados Teoria e Desenvolvimento" de Willian Pereira Alves, Editora Etica
Questão muito complicada... eles não definem bem as regras do negócio. Uma solução possível seria:
Venda (*CodVenda*, Cliente, ValorTotal)
Venda_Produto (*CodVenda*, *Produto*, ValorUnitario, Quantidade)
Cliente (*CodCliente*, Cep)
CEP (*Cep*, Cidade, Estado)
Com esta solução, estaríamos na 3FN se considerarmos que o ValorUnitario de um produto não depende do mesmo e sim da venda (ou seja, das chaves CodVenda+Produto). Isso porque o valor do produto pode mudar de uma venda para a outra.
Nas outras soluções propostas acima, há uma clara dependência entre CEP e Cidade e Estado na tabela Cliente, o que viola a 3FN. Nessa solução que agora apresento, a única bizarrice é o fato de não termos uma coluna Produto. Mas pelo menos, a 3FN está sendo respeitada. Uma outra possível solução com 5 colunas permitiria termos uma tabela Produto, mas como o gabarito diz que só temos 4.
Como disse, é complicado ter que adivinhar o que a FCC quer como resposta... VENDA();
PRODUTO();
CLIENTE();
CEP(); Errei a questão, mas imagino que sejam necessárias, ao menos, 5 relações:
- Cliente
- Telefone (Entidade fraca ligada ao cliente)
- Venda
- Item Produto
- Produto
Para está na 1FN é necessário decompor o campo "endereço" em vários atributos e portanto uma outra tabela, caso contrário incorrerá em campo multivalorado.
Acho que 5 tabelas ou mais seria necessário.
Questão de fácil anulação. Vejam o exemplo da "tabela telefone".
[]´s Realmente muito subjetiva... mas uma tabela é certa: item_venda! Ou seja, no mínimo 4.
Agora com relação a telefone e 3FN... poderia haver mais tabelas!!
Pelo menos 5 tabelas até a 3FN
Venda
Produto
Contato
Cliente
Endereço
A alternativa correta é a D - 4.
Para resolver essa questão, é necessário compreender o conceito de formas normais em bancos de dados relacionais. As formas normais são regras para organizar o esquema de um banco de dados de maneira a reduzir a redundância de dados e melhorar a integridade referencial. Vamos explicar como chegar ao número de tabelas após normalização.
- Primeira Forma Normal (1FN): Exige que não haja grupos repetitivos de campos, ou seja, todos os atributos devem ser atômicos. Neste caso, começamos com a premissa de que todos os atributos na tabela Venda já são atômicos.
- Segunda Forma Normal (2FN): Além dos requisitos da 1FN, a 2FN exige que a tabela não contenha dependências parciais, ou seja, que todos os atributos não-chave sejam dependentes da chave primária completa. Isso pode levar à separação da tabela em mais tabelas para satisfazer essa condição.
- Terceira Forma Normal (3FN): Além dos requisitos das formas anteriores, a 3FN exige que não haja dependências transitivas, ou seja, que os atributos não-chave sejam dependentes apenas da chave primária e nada mais. Isso também pode resultar na criação de tabelas adicionais.
Aplicando essas regras ao esquema relacional da questão:
- Podemos criar uma tabela de Clientes (CodCliente, Cliente, Endereco, Cep, Cidade, Estado, Telefone).
- Uma tabela de Produtos (CodProduto, Produto, ValorUnitario).
- A tabela de Vendas original seria reduzida a (CodVenda, CodCliente, CodProduto, Quantidade, ValorTotal).
- Observa-se aqui que o ValorTotal pode ser considerado redundante, pois é derivado da Quantidade e do ValorUnitario. A rigor, ele poderia ser removido na normalização, mas isso não reduziria o número de tabelas.
Assim, após a aplicação das três formas normais, teremos quatro tabelas: Clientes, Produtos, Vendas, e a possível tabela de ValorTotal, caso se opte por mantê-la. Logo, a alternativa D - 4 está correta.