-
Pensei na resposta dessa forma:
CLIENTE
-------------------
Codigo
Nome
PEDIDO
--------------------
Numero
Data
ITEM_PEDIDO
--------------------
Codigo
Codigo_Produto
Qtd_pedida
Produto
-------------------
Codigo
Nome
Valor_Unit.
-
Tabelas: Produtos, Pedido, Itens do Pedido, Cliente
-
"(...) pedidos onde conste o código e o nome do cliente que faz o pedido; o número e a data do pedido"
"(...) e a lista de produtos pedidos contendo o código do produto, o nome do produto, a quantidade pedida do produto e o valor unitário do produto"
Um possível esquema desnormalizado seria esse:
Pedidos ( num_pedido, data_pedido, cod_cliente, nome_cliente , Produto(cod_produto, nome_produto, quantidade, valor_unitario) )
Note que nome_cliente não depende da chave primária num_pedido, mas está sendo determinado por cod_cliente.
Para ficar na terceira forma normal temos que criar a tabela Cliente de forma que nome_cliente seja determinado por cod_cliente.
Clientes ( cod_cliente, nome_cliente ) (1)
Agora temos que nos livrar do grupo de repetição para que a tabela Pedidos fique na primeira forma normal:
Pedidos ( num_pedido, data_pedido, cod_cliente, Produtos(cod_produto, nome_produto, quantidade, valor_unitario) )
Resulta em:
Pedidos ( num_pedido, data_pedido, cod_cliente ) (2)
Produtos(cod_produto, nome_produto, valor_unitario) (3)
E por fim, uma tabela para mapear muitos para muitos entre Pedidos e Produtos.
Pedidos_tem_Produtos ( num_pedido, num_produto, quantidade ) (4)
-
a pergunta esta mal formulada
-
Por favor, gostaria de ajuda nessa questão.
Onde o seguinte esquema falha na 3a forma normal? Claramente o esquema não é muito bom e vai gerar redundâncias, mas onde fera a 3 FN?
Clientes ( cod_cliente, nome_cliente )
Produtos (cod_produto, nome_produto, valor_unitario)
Pedidos ( num_pedido, data_pedido, cod_cliente, prod, quantidade )
-
Henrique Teófilo,
Acredito que esse esquema fere a 2FN, a partir do momento em que o campo "prod" depende de parte da chave primária da tabela Pedidos.
-
[cliente]-------1 <> n-------[pedido]
|
|
n
<>
n
|
|
[produtos]
O resultado seria 4 tabelas. Uma para cada entidade, e outra tabela de ligação entre pedido e produto.