1 / 42

Modelo de Objetos ODMG

Modelo de Objetos ODMG. ODMG. Modelo de objetos ODL OQL. Modelo ODMG. Objetos Identidade de objeto Estado de objeto Comportamento de objeto Tipos de objeto Definição de tipo de objeto Tipos literais Propriedade de Objeto Herança Herança : relacionamento de Super/Subtipo

damisi
Download Presentation

Modelo de Objetos ODMG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modelo de Objetos ODMG

  2. ODMG • Modelo de objetos • ODL • OQL

  3. Modelo ODMG • Objetos • Identidade de objeto • Estado de objeto • Comportamento de objeto • Tipos de objeto • Definição de tipo de objeto • Tipos literais • Propriedade de Objeto • Herança • Herança : relacionamento de Super/Subtipo • Herança: relacionamento EXTENDS • 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 <nome> { <lista de declaração de elementos separados por vírgulas> }

  25. ODMG ODL – definição de classe class Restaurante { attribute string nome; attribute string endereço; relationship Set<Prato> serve inverse Prato::servidoEm; } class Prato { attribute string nome; attribute string nacionalidade; relationship Set<Restaurante> servidoEm inverse Restaurante::serve; }

  26. ODMG ODL- tipos de relacionamento • Classe : Restaurante • Set<Restaurante> : conecta este objeto com conjunto de objetos Prato • Bag<Restaurante>, List<Restaurante>, Array<Restaurante> : o object é conectado a bag,list, array de objetos Restaurante

  27. ODMG ODL - relacionamentos • Sempre binários • Muitos-para-muitos • SET<> para o tipo de relacionamento e o seu “inverso” • Muitos-para-um • Set<> 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 Set<Produto> compra inverse Produto::frequente; relationship Produto sempreCompra inverse Produto::favorito;} class Produto { relationship Set<Consumidor> frequente inverse Consumidor::compra; relationship Set<Consumidor> favorito inverse Consumidor::sempreCompra; } 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 Restaurante::comCPP; relationship Produto umProd inverse Produto::comCPP; } Será preciso alterar Restaurante e Produto para inlcuir relacionamentos comCPP e ambos do tipo SET(comCPP)

  31. ODMG ODL- tipos complexos attribute [STRUCT] |[ENUM] <nome> { <declarações>} <nome do atributo> ;

  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 <lista de valores> FROM <lista de coleções e nome para os membros> WHERE <condição> • 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_Management_Group

More Related