Diagrama entidade relacionamento

7 respostas
PePeLeGaL

galera, :lol:

desde a primeira vez que estudei DER permanece uma duvida: um relacionamento n para m entre duas entidades, por exemplo, que tenha uma atributo nele. Nao entendi o porquê de nao se colocar o atributo em uma das duas entidades. 

temos as seguinte situacao abaixo:

entidade1: Peça
entidade2: Fornecedor
relacionamento: Fornece
cardinalidade: n para m.

Peça(Cod, Nome, Largura, Peso)
Fornecedor(CodF, Nome, E-mail, End, Tel)
Fornece(Preco)

Por que nao se coloca o atributo preco na tabela Peça ?  :roll: O que me disseram eh que se o atributo preco tivesse sido colocado na entidade Peça, entao ela teria um preco constante, e assim, todas as pecas teriam o mesmo valor.
Mas, entao, e o nome da peca, por que esta na tabela Peca ? Nao deveria estar no relacionamento Fornece ?  a entender que qualquer peca tera o mesmo nome.  :roll:

7 Respostas

kissdemon

Imagine uma entidade que relacione Peça e Fornecedor, Venda por exemplo, Pedido…algo do gênero. O relacionamento dela seria feito através das chaves, no caso o codPeca e CodForn certo?
Pois bem…imagine se o valor da peça muda…todos os que possuiam o CodPeca antes do valor da peça ser alterado tambem se alterariam. Isso não pode ocorrer. A “venda”, naquela data foi feita com aquele valor da peça, antes de ser alterado. Como contabilizar no fim do mes se no pedido não está registrado o valor da peça? Se existiram duas ou tres alterações de preço no decorrer do mês, como diferenciar quais foram feitas e com quais preços?

Cabral

PePeLeGaL,

geralmente num relacionamento n x m, nxn ou sei la como querem chamar a tabela que faz a relação com os dois aributos é somente uma tabela de ligação ou seja na tabela “Fornece” seria necessario as chaves de peça e de Fornecedor. Na minha opinião voce tem razão quando diz que o peço deveria estar na tabela de peças, pois senão você não vai conseguir salvar o preço de nenhuma peça.

o correto seria:

Peca ( Cod, Nome, Largura, Peso)
Fornece (Cod, CodF)
Fornecedor(CodF, Nome, email, end, tel)

Até mais

Ricardo Cabral

PePeLeGaL

mas a minha prof disse que a forma correta eh como eu especifiquei. Só nao entendi o porquê. :cry:

Veronicaaa

Olá

Realmente a sua professora está correta, em uma tabela nxm você pode dizer que “Um fornecedor FORNECE várias peças e uma peça pode ser FORNECIDA por vários fornecedores” a questão é que cada fornecedor vai querer colocar o seu prórpio preço para cada peça que ele fornecer.
Ex: Os Fornecedores A e B fornecem a Peça X, cada fornecedor vai ter um preço diferente para a mesma peça, se o preço da peça estiver atrelado à tabela “Peça” todos os fornecedores seriam obrigados a trabalhar com o mesmo preço SEMPRE para a mesma peça, no momento que você coloca o atributo preço na tabela “Fornece” você estará dizendo em cada registro da tabela que o Fornecedor A FORNECE a Peça X por R$xx e em outro registro estará dizendo que o Fornecedor B FORNECE a Peça X por R$xxx.
E isso para qualquer outro atributo que deva fazer parte do relacionamento das tabelas “Peça” e “Fornecedor”
Sua Tabela “Fornece” ficaria assim:
Fornece(#codPeca,#codFornecedor, preco)

T

Veronicaaa:
Olá

Realmente a sua professora está correta, em uma tabela nxm você pode dizer que “Um fornecedor FORNECE várias peças e uma peça pode ser FORNECIDA por vários fornecedores” a questão é que cada fornecedor vai querer colocar o seu prórpio preço para cada peça que ele fornecer.
Ex: Os Fornecedores A e B fornecem a Peça X, cada fornecedor vai ter um preço diferente para a mesma peça, se o preço da peça estiver atrelado à tabela “Peça” todos os fornecedores seriam obrigados a trabalhar com o mesmo preço SEMPRE para a mesma peça, no momento que você coloca o atributo preço na tabela “Fornece” você estará dizendo em cada registro da tabela que o Fornecedor A FORNECE a Peça X por R$xx e em outro registro estará dizendo que o Fornecedor B FORNECE a Peça X por R$xxx.
E isso para qualquer outro atributo que deva fazer parte do relacionamento das tabelas “Peça” e “Fornecedor”
Sua Tabela “Fornece” ficaria assim:
Fornece(#codPeca,#codFornecedor, preco)

Esses relacionamentos nxm são fodas! isso significa que você vai precisar de uma entidade abstrata!

Voce pode ter 1 ou mais fornecedores certo ? E voce tem 1 ou mais peças correto ??

mas o que é fornecer uma peça ou mais peças para 1 ou mais fornecedores! Seria vendas não ?

então voce teria uma entidade chamada vendas

aonde vc teria o o codigodofornecedor, o codigodapeça, o preco de venda…

ai vc teria um relacionamento assim

fornecedor -> venda <- peça

Acho que ficou legal né ?

clodoaldoaleixo

Eu aprendi que relacionamentos nxm, obrigatoriamente geram uma nova tabela…e ponto final, hehehe

T

exato! foi isso q eu disse hehehe!

forncecedor e peças relacionam com a nova entidade VENDAS

Criado 21 de março de 2007
Ultima resposta 26 de mar. de 2007
Respostas 7
Participantes 6