Modelagem com Entidade-Relacionamento
Objetivos
- Entender como usar os conceitos de entidades e relacionamentos para
modelar sistemas
- Usado principalmente na fase de análise
- Entender como representar modelos ER em UML
Introdução
- Modelagem ER é uma metodologia antiga mas ainda usada no mundo de bancos
de dados para a análise e projeto de sistemas de informação
- Não usa conceitos O-O
- A discussão que segue apresenta conceitos ER e os apresenta em termos de
uma linguagem gráfica O-O (UML)
- É importante discutir ER porque ainda é muito usado na prática
Elementos de Modelagem ER
- A modelagem ER se baseia em artefatos
- Artefatos podem:
- ser físicos (produto, empregado)
- representar uma transação entre artefatos (pedido, entrega)
- Cada artefato contém informação sobre si
- Semelhante a atributos de um objeto
- Os relacionamentos podem ser binários (entre dois artefatos) ou entre mais
artefatos
- Os quatro elementos essenciais da modelagem ER:
- Tipos de entidades
- Atributos
- Tipos de relacionamentos
- Atributos de relacionamentos
Tipos de entidades
- "Tipo de entidade": conjunto de artefatos com a mesma estrutura
- Semelhante ao conceito de classe no mundo O-O
- Uma entidade é uma instância de um tipo de entidade
- Semelhante ao conceito de objeto
Atributos
- Um atributo é uma propriedade de um tipo de entidade
- Exatamente como o conceito de atributo de objeto no mundo O-O
- Entidades diferem devido ao valor dos atributos
- Entidades como os mesmos atributos não podem ser diferenciadas
- No mundo O-O, a situação é diferente, porque podemos diferenciar objetos
através de sua "identidade"
- Dois objetos com os mesmos atributos não têm a mesma identidade
- Uma chave é um conjunto de atributos que, coletivamente, identificam uma
entidade unicamente
- Uma chave pode conter atributos demais
- Uma chave para a qual nenhum subconjunto também é chave chama-se
chave candidata
- Uma chave primária é uma chave candidata escolhida para
identificar entidades (tipicamente num banco de dados)
Tipos de relacionamentos
- Descrevem associações entre tipos de entidades
- Instâncias de tipos de relacionamentos são "relacionamentos" (entre
entidades)
- O tipo de relacionamento diz que o relacionamento entre os tipos de
entidades pode ocorrer
- Para um determinado par de entidades, o relacionamento pode ou não
existir
- Exemplo:
- Empregado produz produto (tipo de relacionamento)
- Empregado João produz produto Telefone (relacionamento)
- Empregado Alfredo pode não produzir nada
Atributos de tipos de relacionamentos
- Tipos de relacionamentos podem ter atributos
- Exemplo:
- Empregado conserta produto
- Relacionamento "conserta" possui atributos
- data do conserto
- status do conserto
Restrições simples
- Restrições são regras que limitam certos aspectos de entidades e
relacionamentos
Cardinalidade
- Quantas entidades podem estar envolvidas de cada lado do relacionamento?
- Exemplo:
- Empregado possuir até dois telefones
- Cardinalidades frequentes:
- One-to-one: Uma entidade de tipo A está associada com no máximo
uma entidade de tipo B, e uma entidade de tipo B está associada com no
máximo uma entidade de tipo A
- One-to-many: Uma entidade de tipo A está associada com qualquer
número de entidades de tipo B, e uma entidade de tipo B está associada com
no máximo uma entidade de tipo A
- Many-to-one: Uma entidade de tipo A está associada com no máximo
uma entidade de tipo B, e uma entidade de tipo B está associada com qualquer
número de entidades de tipo A
- Many-to-many: Entidades de tipo A e B estão associadas com
qualquer número da outra
Dependência de existência
- Indica que uma entidade não pode existir sem a presença de outra
- Fala-se de entidade dominante e entidade subordinada
Exemplos
- Considere tipos de entidades conta e transação, e um
relacionamento log entre eles
- Há um relacionamento one-to-many de conta para transação
- Se uma entidade conta for removida, suas entidades associadas
transação devem também ser removidas
- Então conta é dominante e transação é subordinada
Especialização e generalização
- Usadas para reusar atributos e comportamentos entre entidades
- Exatamente como herança no mundo O-O
- Exemplo:
- Empregado é especialização de Pessoa
Modelagem ER com UML
- Embora modelos ER tenham diagramação própria, hoje usa-se mais UML
- veremos como representar conceitos ER usando UML
Tipos de entidades em UML
- Tipo de entidade = classe UML
- Entidade = objeto UML
- O estereótipo <<entity>> é frequentemente usado
- Também usa-se <<Business Object>> nos modelos conceituais
Atributos em UML
- Atributo de tipo de entidade = atributo de classe em UML
Tipos de relacionamentos em UML
- Tipo de relacionamento = relacionamento em UML
Atributos de tipos de relacionamentos em UML
- Usar classe de associação UML
Restrições simples em UML
- Use cardinalidade, navegabilidade de UML
Especialização e generalização em UML
intro programa