Cardinalidade


  • No DER podemos completar as associações com a sua cardinalidade.
  • A cardinalidade define os graus de uma associação:





Relacionamento um-para-um (1:1)



  • Indica que uma única ocorrência de uma entidade pode se relacionar com apenas uma única ocorrência de outra entidade.



  • Este tipo de relacionamento é raro (no mundo cotidiano)



  • Exemplo: MARIDO (1) possui (1) ESPOSA







  • Exemplos de Maridos e suas respectivas Esposas







  • Uma forma interessante de armazenar:




  • Cada linha de uma tabela se relaciona facilmente com a linha de outra





Relacionamento um-para-muitos (1:N ou 1:M)



  • Indica que uma ocorrência de uma entidade pode se relacionar com muitas ocorrências de outra entidade


  • No entanto, a recíproca não é verdadeira


  • Este tipo de relacionamento é o mais encontrado








  • Uma situação comum: Um pai tem vários filhos







Relacionamento muitos-para-muitos (N:M)



  • Indica que várias ocorrências de uma entidade podem se relacionar com muitas ocorrências de outra entidade



  • Geralmente, um relacionamento desse tipo pode ser convertido e simplificado pela criação de uma entidade intermediária (do tipo associativa) e de dois relacionamentos do tipo 1:N (um-para-muitos)



  • Exemplo:
    • Sistema de compras: Um cliente pode comprar vários produtos, e um produto pode ser comprado por vários clientes
    • Nesse caso, existe a necessidade da implementação de uma entidade fraca entre as duas entidades



  • Essa entidade é chamada de entidade fraca pois sua chave primária é formada por duas chaves estrangeiras



  • Nesse caso, as chaves estrangeiras poderão se repetir, mas o conjunto delas duas nunca irá se repetir, formando a chave primária








  • Outra situação comum: Armazenar informações sobre professores e suas disciplinas.
  • Temos que levar em consideração duas premissas:
    • Um professor pode ministrar mais de uma disciplina
    • Uma disciplina pode ter mais de um professor







  • Essas condições forçam a ter uma segunda tabela para manter os relacionamentos acima.






Exercícios



  • Criar tabelas baseadas em cada informação abaixo. Não se esquecer de definir o ou os campos-chave. Pode ser que tenham que incluir:
    • 1. Novos atributos além dos que foram citados. Ex: Talvez achem interessante ter o atributo CPF para os funcionários
    • 2. Novas tabelas: Avaliar cada uma e definir se será necessário criar outras tabelas relacionadas


  1. Funcionário = {Nome + Endereço + Salário + Data-admissão}
  2. Cliente = {Nro-CPF + Nome + Endereço + Data-Nasc}
  3. Aluno = {Matrícula + Nome + Sexo + Data-nasc.}
  4. Dependente-Funcionário = {Matrícula-Func + Nome-dep + Data-nasc }
  5. Benefícios = {Matrícula-Func + Codbenefício + Data-benef}
  6. Notas = {Matrícula + Disciplina + Sem + Notas}
  7. Pedido = {NroPedido + Cliente + Data Pedido + Produto}
  8. Conta = {nro-conta + saldo + juro + período}
  9. Venda= {NF + Data + Valor + Cliente}
  10. Produto = {Cod+ Descricao + Tipo + Valor + Saldo}
  11. Professores = {Cod+ Nome + Titulacao + Data Nascimento + Endereco}
  12. Usuario = {Email + Nome + Endereço + Data-Nasc}
  13. Pagamentos= {NF + Data + Valor + Cliente}