Modelo de Objetos ODMG - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Modelo de Objetos ODMG

Description:

Title: Modelo de Objetos ODMG Author: bogomil company Last modified by: bogomil company Created Date: 6/8/2006 12:29:31 PM Document presentation format – PowerPoint PPT presentation

Number of Views:83
Avg rating:3.0/5.0
Slides: 43
Provided by: bogo3
Category:
Tags: odmg | group | modelo | objetos

less

Transcript and Presenter's Notes

Title: Modelo de Objetos ODMG


1
Modelo de Objetos ODMG
2
ODMG
  • Modelo de objetos
  • ODL
  • OQL

3
Modelo ODMG
  1. Objetos
  2. Identidade de objeto
  3. Estado de objeto
  4. Comportamento de objeto
  5. Tipos de objeto
  6. Definição de tipo de objeto
  7. Tipos literais
  8. Propriedade de Objeto
  9. Herança
  10. Herança relacionamento de Super/Subtipo
  11. Herança relacionamento EXTENDS
  12. Herança Late binding

4
ODMG Objeto
  • Instância de tipo
  • Tem estado valor de seu atributo
  • Tem identidade
  • Subtipo
  • Mutabilidade
  • instância de tipo object mutável
  • Instância de tipo literal imutável
  • Encapsula estado e comportamento
  • Semântica rica e integridade

5
ODMG Identidade de Objeto
  • OID
  • Mantida pelo sistema
  • Atribuição automática e imutável
  • Uso para associações entre objetos

6
ODMG Estado de objeto
  • Armazenado na atributo/propriedade do objeto
  • Objeto attribute
  • Tem nome e valor
  • Sem OID
  • Vinculado a um objeto com OID
  • podem ser keys ( mantidas pelo usuário)

7
ODMG Estado de objeto
  • Relacionamento
  • Associação entre entidades (objetos)
  • Descrito por até 2 nomes
  • o primeiro é o caminho do relacionamento
  • O segundo, opcional, é o caminho inverso
  • Não possui OID
  • existe sse sobre um objeto com OID

8
ODMG Comportamento de objeto
  • Coleção de operações oferecidas na interface
  • Operação tem
  • valores de parâmetros
  • Valores de retorno
  • Executa tratamento de exceção

9
ODMG Tipos de Objeto
  • Instâncias de objetos
  • Descrição da interface do objeto
  • Várias implementações possíveis
  • Representação ( conjunto de estruturas de dados)
  • métodos ( corpo de procedimentos)
  • UML ou ODL

10
ODMG Tipo de definição de objeto
  • interface do objeto
  • incompleta se operações não são definidas
  • Insuficiente para criar objeto
  • Classe de implentação
  • Definição completa
  • Pode ser instanciada

11
ODMG Tipo literal
  • ODMG tem tipos Simples e Estruturados
  • Simples
  • Integer
  • Float/ Real
  • Boolean
  • Char
  • String
  • Octet

12
ODMG Tipo literal
  • Estruturados construídos sobre tipos literais.
  • Date
  • Time
  • Timestamp
  • Interval
  • Imutáveis
  • Novos tipos type generator
  • Especifica apenas estado
  • não comportamento ( operações)

13
ODMG Propriedades de objeto
  • Noção de tipo
  • Supertipo
  • Extensão
  • Chave
  • Propriedade de instância
  • Attribute tem nome e tipo
  • Relashionship tem caminho e multiplicidade
  • Não tem nome, mas o caminho sim
  • OID do objeto associado

14
ODMG Propriedades de objeto
  • Operação de instância
  • Nome
  • Valor de retorno
  • Assinatura ( composição de tipos de parâmetros,
    tipo do retorno e exceções)
  • Semântica padrão definida pela implementação ,
    senão, por fórmula

15
ODMG Herança
  • Particionamento de problema
  • Reutilização
  • 2 tipos
  • relacionamento de supertipo/subtipo ( herança de
    comportamento)
  • EXTENDS (comportamento e estado)

16
ODMG Herança
  • relacionamento de supertipo/subtipo
  • Subtipo
  • Um ou mais supertipos automatic.
  • Herda tudo ( operação, atributo, relacion.)
  • Pode haver redefinição ou adição de outras
    características
  • O objeto é uma instância de seus tipos e
    supertipos

17
ODMG Herança
  • relacionamento de supertipo/subtipo
  • Supertipo
  • Herança de Interface
  • Uma classe deve ser interface
  • Não deve ter subtipo

18
ODMG Herança
  • relacionamento de supertipo/subtipo
  • Supertipo
  • Herança de Interface
  • Uma classe deve ser interface
  • Não deve ter subtipo
  • Herança múltipla é possível
  • Mais de um supertipo

19
ODMG Relacionamento EXTENDS
  • Especializar uma classe
  • Reuso da interface e implementação
  • Herança múltipla aqui não é possível
  • Contudo pode haver mais de 1 supertipo

20
ODMG Late Binding
  • Operações podem ser sobrecarregadas
  • Mesmo nome, mesma assinatura com diferente
    implementação
  • Se esta operação usa relacionamento EXTENDS
    implementação do tipo específico será selecionada
    em tempo de execução

21
ODMG Entidades Compostas
  • Outros tipos de objetos
  • Classe é tipo básico
  • Relacionamento só pode derivar de classe
  • Tipo Coleção/ estruturas
  • Set
  • Bag
  • List
  • Array
  • Dictionary
  • Definidos por collection type generator

22
ODMG ODL
  • Object Definition Language
  • Equivale a CREATE TABLE no SQL
  • Definir classes persistentes
  • Objetos que permanecem armazenados
  • Definição é parte da linguagem OO host do BD

23
ODMG ODL
  • Declaração de classe
  • Nome da classe
  • Declaração opcional de chave ( key)
  • Declaração extent
  • Declaração de element
  • Attribute
  • Relationship
  • method

24
ODMG ODL definição de classe
  • class ltnomegt
  • ltlista de declaração de elementos separados
    por vírgulasgt

25
ODMG ODL definição de classe
  • class Restaurante
  • attribute string nome
  • attribute string endereço
  • relationship SetltPratogt serve inverse
    PratoservidoEm
  • class Prato
  • attribute string nome
  • attribute string nacionalidade
  • relationship SetltRestaurantegt servidoEm
    inverse Restauranteserve

26
ODMG ODL- tipos de relacionamento
  • Classe Restaurante
  • SetltRestaurantegt conecta este objeto com
    conjunto de objetos Prato
  • BagltRestaurantegt, ListltRestaurantegt,
    ArrayltRestaurantegt o object é conectado a
    bag,list, array de objetos Restaurante

27
ODMG ODL - relacionamentos
  • Sempre binários
  • Muitos-para-muitos
  • SETltgt para o tipo de relacionamento e o seu
    inverso
  • Muitos-para-um
  • Setltgt no relacionamento para classe-única e
    apenas a classe para a classe-muitos
  • Um-para-um
  • Tem classes no tipo em ambas direções

28
ODMG ODL - relacionamentos
  • class Consumidor
  • relationship SetltProdutogt compra inverse
    Produtofrequente
  • relationship Produto sempreCompra inverse
    Produtofavorito
  • class Produto
  • relationship SetltConsumidorgt frequente inverse
    Consumidorcompra
  • relationship SetltConsumidorgt favorito inverse
    ConsumidorsempreCompra

Muitos para muitos
Um-para- muitos
29
ODMG ODL
  • Se há necessidade
  • criar uma classe de conexão
  • os objetos representam tuplas de objetos que se
    deseja conectar
  • Ex. Conectar classe Consumidor, Produto e Preço
  • Criar classe de conexão CPP
  • Considere que cada produto tem um preço em cada
    estabelecimento ( preço não é atributo de produto)

30
ODMG ODL - relacionamentos
  • class CPP
  • attribute preço real
  • relationship Restaurante oRest inverse
    RestaurantecomCPP
  • relationship Produto umProd inverse
    ProdutocomCPP
  • Será preciso alterar Restaurante e Produto para
    inlcuir relacionamentos comCPP e ambos do tipo
    SET(comCPP)

31
ODMG ODL- tipos complexos
  • attribute STRUCT ENUM ltnomegt
  • ltdeclaraçõesgt
  • ltnome do atributogt

32
ODMG ODL- tipos complexos
  • Class Restaurante
  • attribute string nome
  • attribute STRUCT end
  • string rua, string cidade, string uf
    endereco
  • attribute ENUM lic
  • boate, nenhuma, bar licença

33
ODMG ODL - subclasse
  • Equivalente à LPOO
  • Indicar superclasse com vírgula e nome
  • subclasse lista apenas suas propriedades
  • Herda as propriedades da superclasse
  • Ex.
  • class BarX Restaurante ...

34
ODMG ODL declarar método
  • Tipo de retorno, se houver
  • Nome de método
  • Modo de argumentos e tipos (sem nome)
  • Modos In / out / inout
  • Exceção, se houver
  • Ex. real fecharConta ( in string) raise
    (semProduto)

35
ODMG ODL chaves
  • Key
  • Class Restaurante ( key CNPJ, (telefone,IE))
  • ...

36
ODMG OQL
  • Object Query Language
  • Consulta no padrão OO
  • Usa ODL como esquema de definição
  • Tipos em OQL são os de ODL
  • Tipos SET e BAG seguem a regra das relações

37
ODMG OQL Expressões de caminho
  • Seja x um objeto da classe C
  • Se a é um atributo de C então
  • x.a é o valor desse atributo
  • 2. SE r é um relacionamento de C então
  • x.r é o valor para o qual x está conectado a r.
  • Resposta pode ser objeto ou um conjunto de
    objetos, dependendo do tipo de r
  • 3. SE m é um método de C ENTÃO
  • x.m() é resultado da aplicação de m em x.

38
ODMG OQL
  • Ex. Seja s uma variável do tipo CPP, objeto
    Produto-Consumidor-Preço
  • s.preço preço no objeto s
  • s.restaurante.endereco

39
ODMG OQL
  • Computar relações como coleções
  • SELECT ltlista de valoresgt
  • FROM ltlista de coleções e nome para os membrosgt
  • WHERE ltcondiçãogt
  • Onde coleção pode ser
  • Extent de qualquer classeExpressão avaliada de
    uma coleção

40
ODMG OQL
41
ODMG OQL
  • Object Query Language
  • Tenta trabalhar como SQL num contexto OO

42
Referências
  • SETZER- Projetos de BDOO
  • ELMARSI/ NAVATHE- Sistemas de BD
  • ULLMAN Notas de aula
  • http//is.twi.tudelft.nl/szivan/oodbs/tit.html
  • http//en.wikipedia.org/wiki/Object_Database_Manag
    ement_Group
Write a Comment
User Comments (0)
About PowerShow.com