- 6)Construa um diagrama ER para uma Indústria, que atenda ao seguintes requisitos: Cada Funcionário pode estar alocado a somente um Departamento. Cada Funcionário pode pertencer a mais de um Projeto. Um projeto pode utilizar-se de vários Fornecedores e de várias Peças. Uma Peça pode ser fornecida por vários Fornecedores e atender a vários Projetos. Um Fornecedor pode atender a vários Projetos e fornecer várias Peças. Um Depósito pode conter várias Peças. Deseja-se ter um controle das peças utilizadas por cada Projeto, identificando o seu Fornecedor. Gravar as informações de data de Início e Horas Trabalhadas no Projeto.
Passo 1
Resumindo o que o enunciado pede: montar um diagrama Entidade-Relacionamento para uma indústria em que há as seguintes regras de negócio principais:
- Cada Funcionário está alocado a um só Departamento.
- Cada Funcionário pode participar de vários Projetos, e cada Projeto pode ter vários Funcionários. No vínculo entre Funcionário e Projeto devemos guardar data de início e horas trabalhadas.
- Cada Projeto utiliza várias Peças e conta com vários Fornecedores; cada Peça pode ser fornecida por vários Fornecedores e usada em vários Projetos; cada Fornecedor atende vários Projetos e fornece várias Peças. Como precisamos “controlar as peças usadas por cada Projeto identificando o seu Fornecedor”, este vínculo envolverá Projeto+Peça+Fornecedor.
- Cada Depósito pode conter várias Peças.
Conteúdo aplicado: modelagem ER, identificação de entidades, atributos, relacionamentos (binários e ternários) e cardinalidades.
Passo 2
Identificar as entidades com suas chaves primárias e atributos essenciais:
- Entidade Departamento:
• chave: deptID
• atributo: nomeDepto - Entidade Funcionário:
• chave: funcID
• atributos: nome, endereço, … - Entidade Projeto:
• chave: projID
• atributo: nomeProj - Entidade Fornecedor:
• chave: forID
• atributo: nomeFor - Entidade Peça:
• chave: pecID
• atributo: descrição - Entidade Depósito:
• chave: depID
• atributo: local
Passo 3
Relacionamentos envolvendo Funcionário:
- Alocação entre Funcionário e Departamento (1 para muitos):
• Cada funcionário está em um único departamento, cada departamento tem vários funcionários. - Participação entre Funcionário e Projeto (muitos para muitos), com atributos do relacionamento:
• dataInício
• horasTrabalhadas
Passo 4
Relacionamento ternário Fornecimento(Projeto, Fornecedor, Peça):
- Justificativa: para saber qual fornecedor forneceu qual peça para qual projeto, usamos um relacionamento ternário.
- Cardinalidades implícitas do ternário: cada tupla (Projeto, Fornecedor, Peça) indica “o fornecedor X fornece a peça Y ao projeto Z”.
- Sem atributos extras obrigatórios além da identificação do tripé, mas poderíamos incluir, por exemplo, quantidade se fosse necessário refinar o controle de peças.
Passo 5
Relacionamento Contém entre Depósito e Peça (muitos para muitos):
- Cada depósito pode conter várias peças.
- Cada peça (tipo) pode estar em vários depósitos.
- Poderíamos armazenar no relacionamento, se desejado, uma quantidadeEmEstoque.
Resposta
Entidades e chaves primárias:
• Departamento(deptID)
• Funcionário(funcID)
• Projeto(projID)
• Fornecedor(forID)
• Peça(pecID)
• Depósito(depID)
• Departamento(deptID)
• Funcionário(funcID)
• Projeto(projID)
• Fornecedor(forID)
• Peça(pecID)
• Depósito(depID)
Relacionamentos e cardinalidades:
• Departamento ←1:N→ Funcionário (Alocação)
• Funcionário ←M:N→ Projeto (Participação) com atributos dataInício e horasTrabalhadas
• Projeto–Fornecedor–Peça (Fornecimento): relacionamento ternário para indicar que um fornecedor fornece uma peça a um projeto
• Depósito ←M:N→ Peça (Contém), opcionalmente com quantidadeEmEstoque
• Departamento ←1:N→ Funcionário (Alocação)
• Funcionário ←M:N→ Projeto (Participação) com atributos dataInício e horasTrabalhadas
• Projeto–Fornecedor–Peça (Fornecimento): relacionamento ternário para indicar que um fornecedor fornece uma peça a um projeto
• Depósito ←M:N→ Peça (Contém), opcionalmente com quantidadeEmEstoque