A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelo de Objetos ODMG.

Apresentações semelhantes


Apresentação em tema: "Modelo de Objetos ODMG."— Transcrição da apresentação:

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 Tem estado : valor de seu atributo Tem identidade Subtipo Mutabilidade
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 Armazenado na atributo/propriedade do objeto Objeto attribute
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 Relacionamento Associação entre entidades (objetos)
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 Descrição da interface do objeto Várias implementações possíveis
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 tem tipos Simples e Estruturados
ODMG Tipo literal ODMG tem tipos Simples e Estruturados Simples Integer Float/ Real Boolean Char String Octet

12 Estruturados : construídos sobre tipos literais.
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 Particionamento de problema Reutilização 2 tipos
ODMG Herança Particionamento de problema Reutilização 2 tipos relacionamento de supertipo/subtipo ( herança de comportamento) EXTENDS (comportamento e estado)

16 relacionamento de supertipo/subtipo Subtipo
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 relacionamento de supertipo/subtipo Supertipo
ODMG Herança relacionamento de supertipo/subtipo Supertipo Herança de Interface Uma classe deve ser interface Não deve ter subtipo

18 relacionamento de supertipo/subtipo Supertipo
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 Operações podem ser sobrecarregadas
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 Object Definition Language Equivale a CREATE TABLE no SQL
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 Declaração de classe Nome da classe
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 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 Ex. Conectar classe Consumidor, Produto e Preço
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 Indicar superclasse com vírgula e nome
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 Class Restaurante ( key CNPJ, (telefone,IE)) { ... }
ODMG ODL – chaves Key Class Restaurante ( key CNPJ, (telefone,IE)) { ... }

36 Usa ODL como esquema de definição Tipos em OQL são os de ODL
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 Ex. Seja s uma variável do tipo CPP, objeto Produto-Consumidor-Preço
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 Computar relações como coleções SELECT <lista de valores>
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 Tenta trabalhar como SQL num contexto OO
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


Carregar ppt "Modelo de Objetos ODMG."

Apresentações semelhantes


Anúncios Google