Escolar Documentos
Profissional Documentos
Cultura Documentos
Framework
Classes e Atributos
Tabela: Cliente
#IUOCliente (chave, unico)
nome (unico)
idade
debito
3476
Joo
34
0,00
23984
Maria
35
23,00
2983
Pedro
53
12,00
Associaes de * para *
Tabela: Curso_oferece_Disciplina
#IUOCurso (chave)
#IUODisciplina (chave)
235
8746
235
347
376
347
568
899
Associaes de 1 para *
Tabela: Cliente_fez_Emprestimo
#IUOCliente (chave)
8712
7868
8712
5221
893
8762
Associaes de 1 para 1
Tabela: Pagamento_referenteA_Venda
#IUOPagamento (chave, unico)
#IUOVenda(chave, unico)
678
543
965
67
908
561
Associaes Ordenadas
Tabela: Voo_guarda_Reserva
#IUOVoo (chave)
#IUOReserva(chave, unico)
Ordem
1233
12232
1233
4345435
5645
344386
5645
234323
5645
67665
2344
23722
Associaes Qualificadas
Qualificador um atributo da classe
qualificada: implementa-se como
associao para *.
Qualificador externo: implementa-se
como a associao ordenada, trocando
o ndice pelo valor do qualificador
externo.
Classe de Associao
Tabela: Emprego
IUOEmprego
IUOPessoa IUOEmpresa
salario
dataContratacao
44
233
1000
12/03/98
21
44
278
1200
14/10/02
645
345
233
3200
11/03/90
233
33
233
3400
30/11/98
34
63
278
2300
07/02/00
346
55
3332
780
14/09/01
Associaes Temporrias e
Associaes do Controlador
No so persistentes.
Herana
Tabela: PagamentoEmCheque
#IUOPagamentoEmCheque (chave) numeroDoCheque
valor
vencimento
7887879
8768769
60,00
13/02/04
9876978
6743680
12,00
15/02/04
9877655
8976876
99,88
12/05/03
8976678
4354545
80,90
17/09/04
Proxy Virtual
Carregamento preguioso
Funcionamento Geral de um
Proxy Virtual
Classe Proxy Virtual
Para qualquer mensagem recebida faa:
Se o objeto real no est em memria:
solicite o carregamento do objeto real
Fim
repasse a mensagem recebida ao objeto real.
Fim
Class VirtualSet {
private Vector iuos = new Vector();
private Iterator cursor;
...
Operaes de Insero e
Remoo
...
public void add ( Object obj ) { iuos.add ( obj.iuo() ); };
public void remove (Object obj ) { iuos.remove ( obj.iuo() ); };
...
Iterao
...
public void start () { cursor = iuos.iterator() } ;
public void hastNext () { return cursor.hasNext() } ;
public void next () { BrokerManager.instance().at (cursor.next()) };
}
Materializao
o ato de trazer um objeto da memria
secundria para a principal
feita por brokers especializados (um
singleton para cada classe persistente)
Ao materializar um objeto o
broker:
Exemplo
Um BrokerDeCliente deve:
Um BrokerDeCliente deve:
Caches
So mapeamentos que associam IUOs
com objetos reais
O BrokerManager verifica se um objeto
est em memria consultando as
caches
Caches
Classificaes:
Funcionamento
Um objeto materializado inserido em
uma OldCleanCache
Quando alterado movido para uma
OldDirtyCache
Quando criado inserido em uma
NewCache
Quando destrudo movido para uma
OldDeleteCache ou NewDeleteCache
Nos mtodos:
set (atributo)
associa, desassocia, adiciona e remove
(associaes)
BrokerManager.instance().ficouSujo(this)
Efeitos do Committ
Efeitos do Rollback