Beruflich Dokumente
Kultur Dokumente
Mdulo 10 - ODMG
modulo10.PRZ
11/09/01
Introduo
ODMG - Object Database Management Group Modelo de Objetos ODL - Object Definition Language OQL - Object QueryLanguage
modulo10.PRZ
11/09/01
Introduo
ODMG - Object Database Management Group:
Fundao: Objetivo: setembro de 1991 definir um padro para garantir a portabilidade das aplicaes escritas seguindo o modelo OO Presidente: R. G. G. Cattell Web site: www.odmg.org Verses: ODMG 1.2 (1993) ODMG 2.0 (maro 1997) ODMG 3.0 (janeiro 2000)
Modelo de Objetos
Literal = valor + comportamento Classificao dos literais:
atomic
corresponde aos tipos de dados simples
modulo10.PRZ
11/09/01
Modelo de Objetos
Objeto = OID + nome + estado + comportamento
OID = identificador interno gerado pelo sistema, no sendo visvel ao usurio nome: opcional dever ser nico no BD a que o objeto pertence os objetos nomeados serviro de pontos de entrada para o BD estado = valores das propriedades do objeto, incluindo: atributos do objeto relacionamentos (binrios) entre o objeto e outros objetos comportamento = operaes permitidas sobre o objeto
modulo10.PRZ 5 11/09/01
Modelo de Objetos
Fbrica = objeto utilizado para gerar ou criar outros objetos
possui necessariamente uma operao que gera novos objetos (como novos OIDs)
modulo10.PRZ
11/09/01
Modelo de Objetos
Interface = definio de estrutura + assinaturas de operaes
as interfaces no podem ser instanciadas, ou seja, no podem gerar conjuntos de objetos utilizadas essencialmente para organizar as operaes
modulo10.PRZ
11/09/01
Modelo de Objetos
Classes = definio de estrutura + assinaturas de operaes
as classes podem ser instanciadas, ou seja, podem gerar extenses - conjuntos de objetos - e definir chaves para estas extenses a definio da estrutura inclui a especificao de: atributos:
simples e complexos de referncia, utilizados para representar relacionamentos 1-n entre os objetos da classe e objetos de outra classe
relacionamentos:
utilizados para representar relacionamentos binrios 1-n ou n-m entre os objetos da classe e objetos de outra classe: permitem especificar o relacionamento inverso no devem ser utilizados quando o relacionamento n-m possui atributos
modulo10.PRZ 8 11/09/01
Modelo de Objetos
Herana Comportamental (via ":")
uma interface pode ser uma especializao de outras interfaces, das quais herda as operaes uma classe pode ser uma especializao de outras interfaces, das quais herda as operaes
modulo10.PRZ
11/09/01
Modelo de Objetos
Hierarquia de Interfaces Pr-definidas em ODMG:
Object
ObjectFactory
Iterator
Collection
Date
Time
Timestamp
Interval
Set
List
Bag
Array
Dictionary
modulo10.PRZ
10
11/09/01
Modelo de Objetos
Hierarquia de Interfaces Pr-definidas em ODMG (cont.):
operaes de ObjectFactory: new() cria um novo objeto (com um novo OID)
modulo10.PRZ
11
11/09/01
Modelo de Objetos
Hierarquia de Interfaces Pr-definidas em ODMG (cont.):
operaes de Collection: is_empty() insert_element(e) remove_element(e) contains_element(e) create_iterator() retorna um iterator para varrer a coleo excees para Collection: ElementNotFound
modulo10.PRZ
12
11/09/01
Modelo de Objetos
Hierarquia de Interfaces Pr-definidas em ODMG (cont.):
operaes de Iterator: reset() next_position() get_element(e) volta o iterador para o primeiro elemento avana o iterador para o prximo elemeto retorna o elemento corrente
modulo10.PRZ
13
11/09/01
Modelo de Objetos
Extenso = conjunto de objetos seguindo a definio de uma classe
uma extenso possui um nome uma extenso pode ter uma ou mais chaves, definidas por listas de atributos ou relacionamentos da classe se C uma especializao de D, ento a extenso de C deve ser um subconjunto de D
modulo10.PRZ
14
11/09/01
Modelo de Objetos
Banco de dados:
ODMG prov duas interfaces, com as respectivas operaes, para lidar com bancos de dados:
Interface operaes
DatabaseFactory new() Database bind(p,n) unbind(n) lookup(n)
comentrios
cria novo BD associa o objeto persistente p ao nome n desassocia o nome retorna o objeto de nome n
modulo10.PRZ
15
11/09/01
modulo10.PRZ
16
11/09/01
Artista
cria
compe
criada-por
Lote
inclui arremado-por incluida-em
Obra
(extends)
arremata
Cliente
Pintura
Escultura
Outra
modulo10.PRZ
17
11/09/01
compe
L1 L2
L1 L2
L1
L2
t1 t2 t3 t4
t1
t2 t3 t4
t1
t2 t3 t4
incluida-em
modulo10.PRZ 18
inclui
11/09/01
modulo10.PRZ
19
11/09/01
modulo10.PRZ
20
11/09/01
modulo10.PRZ
21
11/09/01
modulo10.PRZ
22
11/09/01
modulo10.PRZ
24
11/09/01
L.composto-por.valor no uma expresso de caminho vlida pois o resultado pode ser um objeto do tipo Set<float> ou do tipo Bag<float>
modulo10.PRZ 25 11/09/01
Consulta associativa:
segue a sintaxe bsica do SQL select-from-where
modulo10.PRZ
26
11/09/01
leiles;
Suponha que L20000829 seja o nome de um objeto do tipo Leilo "Retorne uma referncia a todos os lotes do leilo L20000829"
L20000829.composto-por;
modulo10.PRZ
27
11/09/01
'22K' '100'
t1
composto-por
numero
leiles
L1
composto-por
t2
numero
'101' '10K'
valor
Nota:
modulo10.PRZ
modulo10.PRZ
29
11/09/01
modulo10.PRZ
30
11/09/01
(for all v in c: b) retorna Verdadeiro sse todos os elementos da coleo c satisfazem b (exists v in c: b) retorna Verdadeiro sse existe um elemento da coleo c que satisfaz b
modulo10.PRZ
32
11/09/01
Todos os lotes dos leiles de 2000 tiveram apenas 1 pea? for all t in (select L.composto-por from L in leiles where L.data.year = '2000') : count(t.inclui) = 1;
modulo10.PRZ
33
11/09/01
modulo10.PRZ
34
11/09/01
modulo10.PRZ
35
11/09/01
modulo10.PRZ
36
11/09/01
modulo10.PRZ
37
11/09/01
Client
Object Implementation
Dynamic Skeleton Interface (DSI)
IDL Stubs
ORB Interface
IDL Skeleton
Object Adapter
ORB Core
modulo10.PRZ
38
11/09/01
Horizontal CORBAfacilities:
servios comuns a vrias reas de aplicao
Domain CORBAfacilities:
objetos-padro especializados para uma rea de aplicao
Application Objects:
objetos de uma dada aplicao, no sujeitos a padronizao
modulo10.PRZ 39 11/09/01
Query Processor
CASE Tool
Naming
Life Cycle
Query
CORBAservices
modulo10.PRZ 40 11/09/01
Resumo
Modelo OO:
Literal = valor + comportamento Objeto = OID + nome + estado + comportamento Fbrica = objeto utilizado para gerar ou criar outros objetos Interface = definio de estrutura + assinaturas de operaes no podem gerar conjuntos de objetos Classes = definio de estrutura + assinaturas de operaes as classes podem gerar extenses e definir chaves Herana Comportamental (via ":") Herana Comportamental e Estrutural (via Extends)
ODL - segue o modelo OO definido pelo ODMG OQL - semelhante a SQL, mas incluindo:
objetos arbitrrios como respostas variveis de iterao para varrer colees expresses de caminho para chegar aos objetos no nomeados vises, pertinncia e quantificao
modulo10.PRZ 41 11/09/01