MODELAGEM CONCEITUAL DE
SISTEMAS DE INFORMAÇÃO
Reificação
EXEMPLO
Pessoa
1..*
membro
ParticipaDe
* Comissão
ParticipaDe (membro: Pessoa, Comissão)
A pessoa <Pessoa> participa da comissão
<Comissão>.
Cardinalidades


Card (Pessoa, Comissão, ParticipaDe) = (0..∞ )
Card (Comissão, Pessoa, ParticipaDe) = (1, ∞ )
Reificação
ParticipaDe (membro: Pessoa, Comissão)
Uma instância de ParticipaDe é um
relacionamento que representa o fato de que
uma pessoa é membro de uma comissão.
O mesmo fato pode ser visto como uma
entidade.
Se visto como entidade, dizemos que a
entidade reifica o relacionamento.
EXEMPLO
R1
Participação Pessoa
ParticipaDe
α
P1
Participação
Pessoa Comissão
β
P1
α
P1
C1
γ
P2
β
R2
P1
C2
γ
Participação Commissão
P2
C1
α
C1
β
C2
γ
C1
ParticipaDe(membro: Pessoa, Comissão)
Participação
EXEMPLO
ParticipaDe
Pessoa Comissão
P1
C1
P1
C2
P2
C1
R1
Participação Pessoa
α
P1
Participação
β
P1
α
γ
P2
β
R2
γ
Participação Commissão
α
C1
β
C2
γ
C1
Cada instância de ParticipaDe está associada a uma e apenas uma instância de
Participação
Relacionamentos intrínsecos: R1 (Participação, Pessoa) e R2 (Participação, Comissão)
As instâncias de ParticipaDe podem ser obtidas a partir das instâncias de Participação,
R1 e R2
EXEMPLO
ParticipaDe
Pessoa Comissão
P1
C1
P1
C2
P2
C1
R1
Participação Pessoa
α
P1
Participação
β
P1
α
γ
P2
β
R2
γ
Participação Commissão
α
C1
β
C2
γ
C1
A reificação não acrescenta conhecimento ao esquema mas é necessária se
precisamos registrar fatos adicionais
Por exemplo, para registrar a data na qual uma pessoa tornou-se membro da
comissão, ou sua função (presidente, vice), etc.
Tipos de Relacionamento de
Dependência Existencial
R(p1:E1, p2:E2) é um Tipo de Relacionamento de
Dependência Existencial e E1 é Dependente
Existencialmente de E2 ↔


Card (p1, p2, R) = (1, 1)
R é constante com relação a p1
Exemplo:

Nasceu (nativo: Pessoa, localDeNascimento: Cidade)
é um TR de Dependência Existencial e Pessoa é
Dependente Existencialmente de Cidade:
 cada instância de Pessoa tem um e apenas um
localDeNascimento,
 o localDeNascimento é sempre o mesmo
DEFINIÇÃO
A reificação de um Tipo de Relacionamento
R(p1:E1,…,pn:En) é um Tipo de Entidade E e
n Tipos de Relacionamentos Binários
intrínsecos Ri(p:E, pi:Ei), (i=1,…,n) com as
seguintes propriedades:
1.
2.
3.
Os Ri são TRs de dependência existencial, ou
seja, eles são constantes com relação a p e
Card (p;pi;Ri) = (1,1), ou seja, {p} → {pi}
Card (pi;p,Ri) = Card (pi; p1,…,pi-1,pi+1,..,pn;R)
Há uma correspondência biunívoca entre R e E:
R (e1,…,en) →  ! e (E(e) ˄ R1(e,e1) ˄ … ˄ Rn(e,en))
R1(e,e1) ˄ … ˄ Rn(e,en) → R (e1,…,en)
EXEMPLO
A reificação de ParticipaDe(membro:
Pessoa, Comissão) é o Tipo de
Entidade Participação e os dois Tipos
de Relacionamentos intrínsecos R1
(Participação, Pessoa) e R2
(Participação, Comissão), com as
seguintes propriedades:
EXEMPLO
ParticipaDe
Pessoa Comissão
P1
C1
P1
C2
P2
C1
1.
R1
Participação Pessoa
α
P1
Participação
β
P1
α
γ
P2
β
R2
γ
Participação Commissão
α
C1
β
C2
γ
C1
R1 e R2 são TRs de dependência existencial:
eles são constantes com relação a participação e
Card (participação; pessoa; R1) =
Card (participação; comissão; R2) = (1,1)
EXEMPLO
Pessoa
2.
Se
1..*
membro
ParticipaDe
* Comissão
Card (pessoa; comissão; ParticipaDe) = (0, ∞)
Card (comissão; pessoa: ParticipaDe) = (1, ∞ )
então
Card (pessoa; participação; R1) = (0, ∞)
Card (comissão; participação; R2) = (1, ∞ )
EXEMPLO
ParticipaDe
Pessoa Comissão
P1
C1
P1
C2
P2
C1
3.
R1
Participação Pessoa
α
P1
Participação
β
P1
α
γ
P2
β
R2
γ
Participação Commissão
α
C1
β
C2
γ
C1
Há uma correspondência biunívoca entre ParticipaDe e
Participação:
ParticipaDe (p, c) →  ! m (Participação (m) ˄ R1 (m, p) ˄ R2 (m, c)
R1 (m, p) ˄ R2 (m, c) → ParticipaDe (p, c)
Representação em UML –
TR binário
Pessoa
* Comissão
1..*
membro
Participação
papel: Papel
Classe associativa (Tipo de Entidade, Tipo de Relacionamento)
Os Tipos de Relacionamento intrínsecos não são mostrados
Classes associativas podem ter atributos e podem estar relacionadas
com outros tipos de entidade
Representação em UML –
TR n-ário
timeDeCasa
0..1
Time
visitante
0..1
*
Data
jogadoEm
Jogo
*
1 Estádio
resultado: Resultado [0..1]
espectadores: Natural [0..1]
O time de casa <Time> joga contra o
time visitante <Time> em <Data>
Reificação Implícita (binária)
Pessoa
Comissão
membro 1
1
1..*
* Participação
[«constante»]
[«constante»]
papel: Papel
Seja o Tipo de Relacionamento R
Defina o Tipo de Entidade E (que reifica R)
Defina os Tipos de Relacionamento Intrínsecos
Defina a restrição de unicidade da reificação

qualquer par (pessoa, comissão) está associado a, no máximo, uma
instância de Participação
Opcionalmente, defina R como um tipo derivado
Reificação Implícita (n-ária)
Time
timeDeCasa
1
visitante
1
1
{«constante»} *
*
{«constante»}
Data
* {«constante»}
jogadoEm
Jogo
*
1 Estádio
resultado: Resultado [0..1]
espectadores: Natural [0..1]
As cardinalidades são perdidas na reificação implícita n-ária; por exemplo:


Card (timeDeCasa, data; visitante) = (0, 1)
Card (visitante, data; timeDaCasa) = (0, 1)
A reificação implícita mostra três cardinalidades não restritivas.
A restrição de unicidade da reificação impõe que para cada tupla
(timeDeCasa, visitante, data) haja, no máximo, um jogo.
Reificação Implícita
A reificação implícita permite transformar qualquer
Tipo de Relacionamento em um conjunto de Tipos de
Relacionamento de dependência existencial.
A entrada da transformação é o Tipo de
Relacionamento R com suas cardinalidades
O resultado da transformação é:




O novo Tipo de Entidade E
Os tipos de Relacionamento intrínsecos com suas
cardinalidades
Um conjunto de restrições de cardinalidade (as não incluídas
no ítem 2.
A restrição de unicidade de reificação
Download

Slides Aula 4