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)
- exemplos:
- simples
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
- Desenvolver a avaliação das chaves para a seguinte situação:
- 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
- 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 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
- (professor, disciplina) => Vários professores ministram várias disciplinas
- Associação “um-para-um”
- Qualquer um dos lados pode ter uma chave estrangeira
- Raro de acontecer. Ex: CadastroMarido <==> CadastroEsposa
- Qualquer um dos lados pode ter uma chave estrangeira
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
- Deve gerar atributos atômicos:
- Cliente (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?
- Se for possível evitar o armazenamento, calcular sempre online


