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
- exemplos:
- simples ou compostos
- 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 |
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
- se a associação for
- 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
- Desenvolver a avaliação das chaves para a seguinte situação:
- 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
- super-chave
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
- 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”
- quando só pode pertencer a uma das sub-classes
- Sobreposta
- Quando pode estar presente em várias sub-classes
- Exemplo: Empregado que é também Cliente do banco
- Quando pode estar presente em várias sub-classes
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
- É possível mas não obrigatório, criar tabela
- Atributos compostos
- cliente (id-cliente, primeiro-nome, nome-do-meio, último-nome, ...)

