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

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

Modelo de objectos - 1 Objectivos m Objectivos promover normalização dos SGBDOs para uma maior aceitação e divulgação garantir portabilidade de aplicações.

Apresentações semelhantes


Apresentação em tema: "Modelo de objectos - 1 Objectivos m Objectivos promover normalização dos SGBDOs para uma maior aceitação e divulgação garantir portabilidade de aplicações."— Transcrição da apresentação:

1 Modelo de objectos - 1 Objectivos m Objectivos promover normalização dos SGBDOs para uma maior aceitação e divulgação garantir portabilidade de aplicações entre SGBDOs definir interface portável ao nível de esquema de dados e linguagens de definição, manipulação e interrogação conseguir forte integração das BDs com as LPs (p.e. com C++) possibilitar interoperabilidade entre SGBDOs

2 Modelo de objectos - 2 Objectivos m Produtos Normalizados versus Produtos Iguais a interface comum ao nível de esquema de dados e linguagens envolvidas permite a inovação em muitas outras áreas permitindo que os produtos se distingam a vários níveis: –performance –linguagens de programação suportadas –ambientes de desenvolvimento –ferramentas para construção de aplicações –redes –plataformas –bibliotecas de tipos –ferramentas para construção de interfaces gráficas –ferramentas para apoio ao projecto –etc.

3 Modelo de objectos - 3 Hierarquia de Tipos Pré-definidos q Denotable_Object q Object qAtomic_Object qType qException qIterator qStructured_Object qCollection q Set q Bag q List String Bit_String q Array qStructure q Literal qAtomic_Literal qInteger qFloat qCharacter qBoolean qStructured_Literal qImmutable_Collection q Immutable_Set q Immutable_Bag q Immutable_List Immutable_String Immutable_Bit_String q Immutable_Array q Enumeration qImmutable_Structure q Date q Time q DateTime q Interval o Characteristic o Property oAttribute oRelationship o Operation

4 Modelo de objectos - 4 Exemplo de modelo objecto q Definição de um Tipo interface Documento : Atomic_Object Extent(documentos); key (título); { attribute string título; // deve ser único attribute Date revisão; relationship Set autores inverse Pessoa::obras; relationship Set capítulos inverse Capítulo::parte_de; gravar() raises (erro_de_gravação); adicionar_capítulo(in capítulo: Capítulo); }; Documentos título: string revisão: date Capítulos título: string no: integer Textos referencia:char[4] Programas linguagem: string Diagrama de Classes OMT Pessoas bi: string nome: string nacionalidade: string idade: integer cpostal: char[4] autoresobras

5 Modelo de objectos - 5 Exemplo de ODL m um exemplo de Objectstore/C++ com ODL static os_List documentos; class Documento { public: os_List autores inverse_member autorias; os_List capitulos inverse_member pertence_a; }; class Pessoa { public: os_List autorias inverse_member autores;... };

6 Modelo de objectos - 6 OQL: Object Query Language m Princípios orientadores: não ser computacionalmente completa, mas permitir fácil acesso a uma base de dados de objectos ser declarativa ter como base o modelo objecto ODMG ter uma sintaxe abstracta possuir semântica formal facilmente definível ter construções idênticas às de SQL sem privilegiar a cláusula select-from-where dispôr de primitivas para manipulação de conjuntos e também listas, vectores, bags, etc.

7 Modelo de objectos - 7 Expressões m Expressões permitidas: q literais, aritméticas, comparações, lógicas q construtoras acesso:., ->, first(), last(), [] conversão: listtoset(), element(), flatten(), explicita conjuntos: intersect, union, except q colecções: for all... in... :... exists... in... :... in select-from-where sort... by... count(), sum(), min(), max(), avg() group... in... by... with...

8 Modelo de objectos - 8 Exemplos de OQL 1. Obter o conjunto dos nomes de todas as pessoas com nacionalidade portuguesa. select distinct x.nome from x in Pessoas where x.nacionalidade=Portugal 2. Obter o conjunto de nomes, moradas e códigos postais de todas as pessoas com nacionalidade portuguesa. select distinct struct(n: x.nome, m: x.morada, c: x.cpostal) from x in Pessoas where x.nacionalidade = Portugal 3. Obter a lista de nomes dos revisores portugueses dos textos revistos depois de 1 Jan de select x.nome from x in (select y.revisor from y in Textos where revisao > ) where x.nacionalidade = Portugal

9 Modelo de objectos - 9 Mais exemplos de OQL 4. Obter os nomes das 3 pessoas mais novas de nacionalidade portuguesa. select w.nome from w in (sort x in (select y from y in Pessoas where y.nacionalidade = Portugal) by x.idade)[0:2] 5. Obter os títulos dos documentos cujos autores são na sua totalidade de nacionalidade portuguesa. select x.titulo from x in Documentos where (for all y in x.autores: y.nacionalidade=Portugal)

10 Modelo de objectos - 10 Último exemplo de OQL 6. Para cada uma das seguintes 3 gamas etárias (12-30,30-55,55-...) calcular o número de pessoas que se encontram nessa gama bem como a idade maior e menor encontrada nessa gama. group x in Pessoa by (jovens: x.idade >= 12 and x.idade < 30, experientes: x.idade >=30 and x.idade < 55, maduros: x.idade >= 55) with (numero: count(partition), menor_idade: min(select x.idade from x in partition) maior_idade: max(select x.idade from x in partition)) R: set

11 Modelo de objectos - 11 OQL versus SQL SQL select livros.titulo from livros where not exist ( select autor from autores, pessoas where autores.pessoa=pessoas.id and autores.livro=livros.id and not(pessoas.nacionalidade=Portugal)) OQL select x.titulo from x in Documentos where (for all y in x.autores: y.nacionalidade=Portugal)

12 Modelo de objectos - 12 Exemplo de Objective-C com OQL Set autores; int idade;... idade=65; autores = (select distinct y from x in Textos, y in x.autores where y.idade=idade); if(![autores empty]) reformar(autores);

13 Modelo de objectos - 13 Arquitectura ODMG Aplicação Linker Base de Dados de Objectos Criação Código Objecto do SGBDO Objective-C com ODL/OML Código Objecto da aplicação Ficheiros.h Objective-C Ficheiros.m Objective-C Compilador Objective-C Pré-Processador de ODL/OML Meta Informação objectos

14 Modelo de objectos - 14 Conclusões q simples de seguir q tem como base um modelo menos simples que o relacional mas muito mais poderoso q a linguagem de interrogação é fechada, completa, as construções possuem uma semântica bem definida, e tem um poder expressivo superior ao SQL. q diminui a impedância semântica entre LPs e LIs

15 Modelo de objectos - 15 Manipulação m OML: Object Manipulation Language q não é definida pela proposta de norma, pelo que deverá ser definida por quem implementa a norma por forma a permitir criar, destruir, modificar e referenciar objectos. m Mapeamento da ODMG-93 para LPs q A proposta define o mapeamento para C++ e Smalltalk q Um mapeamento deverá ser feito aos vários níveis: modelo objecto ODMG ODL, OML e OQL hierarquia de tipos base operações sobre bases de dados e transacções


Carregar ppt "Modelo de objectos - 1 Objectivos m Objectivos promover normalização dos SGBDOs para uma maior aceitação e divulgação garantir portabilidade de aplicações."

Apresentações semelhantes


Anúncios Google