Modelo Entidade-Relacionamento

  • Uma base de dados é modelada como
    • conjunto de entidades
    • associações entre entidades


  • Entidade: um conceito com existência independente com objetos distintos de outros objetos
    • com existência física ou não
    • com um conjunto de atributos específicos
    • e um valor para cada um desses atributos
  • Exemplo: empregados, alunos, notas, consulta, sintomas, sonhos, ...


Exemplo

  • Entidades Consulta e Paciente
    • cada uma com seus atributos
    • ligadas pelo relacionamento CodPaciente


Tipos de atributos


  • Atributo: propriedade da entidade
    • Exemplo: nome, endereco, sexo, datanascimento
  • Atributos podem ser
    • simples
      • exemplo: Nome, Sexo, EstadoCivil,
    • compostos
      • exemplo: Endereço
    • de valor único ou valor múltiplo
      • exemplo: Telefone (s)
    • derivados
      • exemplos:
        • Idade, se já existir a data de nascimento
        • Digito Verificador
        • Status em função de alguma situação (Ex: Aprovado)


Papéis (roles)

  • Associações entre a mesma entidade
    • papéis ajudam a clarificar
    • Exemplo:
      • Professor ministra disciplina
      • Disciplina é ministrada pelo professor
      • Aluno pertence à turma
      • Turma contém alunos
      • Atendente aprova empréstimos
      • Aluno solicita empréstimos
      • Gerente autoriza empréstimo


Chaves


  • A chave define a individualidade da tabela e pode ser composta de um ou mais atributos
  • Numa associação com outra tabela, a cardinalidade deve ser explicitada.
      • um para muitos
      • muitos para muitos => força a decomposição para a 1a. opção
      • um-para-um => raramente acontece
  • Exemplo: Veículo (placa, chassis,motor)


  • Exercício:
    • Desenvolver a avaliação das chaves para a seguinte situação:
      • Nota fiscal e Itens da Nota Fiscal
      • Definir tabelas, associações e chaves




  • Avaliar o seguinte problema: Um sistema de lotação de médicos onde ...
    • cada médico pode assumir apenas um plantão em cada hospital
    • cada médico pode possuir diferentes funções em diferentes hospitais
      • A seta pode definir a cardinalidade




Entidade fraca e Entidade forte


  • Pode haver algum tipo de entidade que não possui nenhum atributo-chave, o que significa que ficamos impossibilitados de distinguir uma entidade específica dentro de todo o conjunto, já que é possível haver entidades duplicadas
  • A esse tipo de entidade chamados Entidade Fraca
  • Por outro lado, entidades que possuem atributos-chave são denominadas de Entidades Fortes
  • As entidades fracas tem como característica o fato de serem identificadas por meio de sua associação com outra entidade específica, denominada de entidade identificadora


  • Exemplo 1: Entidades Fracas


  • Exercício: Empréstimos e Devoluções
    • empréstimo (aluno, livro, data, ...)
    • devolução (aluno, livro, data, ...)
    • número sequencial para cada empréstimo?
    • Este número fica sendo a chave da devolução?


Especialização / Generalização

  • Especialização
    • vista de cima para baixo (top-down)
    • a partir da super-classe encontram-se sub-classes


  • Generalização
    • vista de baixo para cima (bottom-up)
    • a partir das sub-classes identifica-se a super-classe


Condições de especialização

  • Disjunta
    • quando só pode pertencer a uma das sub-classes
      • Exemplo: Conta pode ser ou “conta à vista” ou “conta a prazo”


  • Sobreposta
    • Quando pode estar presente em várias sub-classes
      • Exemplo: Empregado que é também Cliente do banco


Agregação

Cardinalidade em associações


  • Exemplo anterior:
    • empregados com diferentes cargos em diferentes agências


  • E se houver um Gestor para cada tarefa desempenhada por um empregado numa agência?


  • Solução: agregação!
    • uma associação passa a ser uma entidade


Exemplo de Modelo E-A


Conversão de entidades


  • Entidade forte converte-se numa tabela
    • atributos simples mantêm-se
    • chave da tabela é a mesma da entidade
  • Emprestimo (nro-emprestimo, valor)


Conversão de associações


  • Associação “muitos-para-muitos” converte-se em duas tabelas “um-para-muitos” com as chaves primárias das entidades
    • (professor, disciplina) => Vários professores ministram várias disciplinas
      • 1 professor pode ministrar várias disciplinas
      • 1 disciplina pode ser ministrada por vários professores


  • Associação “um-para-um”
    • Qualquer um dos lados pode ter uma chave estrangeira
      • Raro de acontecer. Ex: CadastroMarido <==> CadastroEsposa



Conversão de atributos


  • Atributos compostos:
    • Cliente (Id-cliente + primeiro-nome + nome-do-meio + último-nome)
      • Deve gerar atributos atômicos:
        • Id-cliente
        • Primeiro-nome
        • Nome-do-meio
        • Último-nome


  • Atributos derivados:
    • Se for possível evitar o armazenamento, calcular sempre online
      • Ex: Item Nota Fiscal (NroNF, CodProduto, Quantidade, ValorUnitário, ValorTotal)
      • Neste caso, ValorTotal deve ser mantido?