BDA - Aula 07 - 2014/2

Revisão de 15h09min de 6 de setembro de 2014 por Lclaudio (discussão | contribs) (Criou página com '= Modelo Entidade-Relacionamento = * Uma base de dados é modelada como ** conjunto de entidades ** associações entre entidades <br> * Entidade: um conceito com existênci...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

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


Exemplo

  • Entidades cliente e emprestimo
    • cada uma com seus atributos
    • ligadas pelo relacionamento beneficiario


Tipos de atributos


  • Atributo: propriedade da entidade
    • Exemplo: nome, endereco, sexo, datanascimento
  • Atributos podem ser
    • simples ou compostos
      • exemplo: nome, sexo, estadocivil, endereço
    • de valor único ou valor múltiplo
      • exemplo: telefone
    • derivados
      • exemplos:
        • Idade, se já existir a data de nascimento
        • Digito Verificador
        • Status


  • Atributos compostos, multi-valor e derivados
    • Associações também podem ter atributos


Cardinalidade de uma associação


  • Uma associação pode ser entendida como um relacionamento entre instâncias de Entidades devido a regras de negócio
  • Normalmente ocorre entre instâncias de duas ou mais Entidades, podendo ocorrer entre instâncias da mesma Entidade (auto-relacionamento).


  • Por que a associação é necessária?
    • Quando existem várias possibilidades de relacionamento entre o par das entidades e se deseja representar apenas um
    • Quando ocorrer mais de um relacionamento entre o par de entidades
    • Para evitar ambiguidade
    • Quando houver auto-relacionamento
  • Para definir o número de ocorrências de uma entidade usamos o conceito de Cardinalidade.


  • A Cardinalidade indica quantas ocorrências de uma Entidade participam no mínimo e no máximo do relacionamento.


id-cliente nro-conta data-acesso
c1 a1 20/09/2012
c2 a1 19/09/2012
c3 a2 01/06/2012


  • Exemplos:
  • Em alguns exemplos, podemos ter uma Seta indica entidade “um” em associações


Papéis (roles)

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


Chaves de associações


  • A chave da associação depende da cardinalidade
    • se a associação for
      • muitos para muitos
      • um para muitos
      • muitos para um
      • um-para-um
  • 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 pessoas onde ...
    • empregado pode fazer apenas uma tarefa em cada agência
    • empregados possuem diferentes tarefas em diferentes agências
      • Seta pode definir a cardinalidade


Chaves


  • A chave pode ser
    • super-chave
      • qualquer conjunto de atributos que identificam univocamente
    • chave candidata
      • conjunto mínimo de atributos
    • chave primária
      • a chave candidata escolhida
      • normalmente prefere-se um atributo separado por si só, mas há chaves compostas por vários atributos


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 numa tabela com as chaves primárias das entidades
    • (professor, disciplina)


  • Associação “um-para-um”
    • É possível mas não obrigatório, criar tabela
      • Ex: Veículo - Motor
    • Qualquer um dos lados pode ter uma chave estrangeira
      • Se a participação for parcial, aparecem nulls


  • Atributos compostos
    • cliente (id-cliente, primeiro-nome, nome-do-meio, último-nome, ...)