objectivos n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Objectivos PowerPoint Presentation
Download Presentation
Objectivos

Loading in 2 Seconds...

play fullscreen
1 / 15

Objectivos - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

Objectivos. Objectivos promover normalização dos SGBDO’s para uma maior aceitação e divulgação garantir portabilidade de aplicações entre SGBDO’s definir interface portável ao nível de esquema de dados e linguagens de definição, manipulação e interrogação

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Objectivos' - egan


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
objectivos
Objectivos
  • Objectivos
      • promover normalização dos SGBDO’s para uma maior aceitação e divulgação
      • garantir portabilidade de aplicações entre SGBDO’s
      • 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 BD’s com as LP’s (p.e. com C++)
      • possibilitar interoperabilidade entre SGBDO’s
objectivos1
Objectivos
  • 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.
hierarquia de tipos pr definidos
Hierarquia de Tipos Pré-definidos
  • Denotable_Object
    • Object
      • Atomic_Object
        • Type
        • Exception
        • Iterator
      • Structured_Object
        • Collection<T>
          • Set<T>
          • Bag<T>
          • List<T>

String

Bit_String

          • Array<T>
        • Structure<e1:T1...en:Tn>
    • Literal
      • Atomic_Literal
        • Integer
        • Float
        • Character
        • Boolean
      • Structured_Literal
        • Immutable_Collection<T>
          • Immutable_Set<T>
          • Immutable_Bag<T>
          • Immutable_List<T>

Immutable_String

Immutable_Bit_String

          • Immutable_Array<T>
          • Enumeration
        • Immutable_Structure<e1:T1...en:Tn>
          • Date
          • Time
          • DateTime
          • Interval
  • Characteristic
    • Property
      • Attribute
      • Relationship
    • Operation
exemplo de modelo objecto

Diagrama de Classes OMT

Capítulos

título: string

no: integer

Documentos

título: string

revisão: date

Pessoas

bi: string

nome: string

nacionalidade: string

idade: integer

cpostal: char[4]

obras

autores

Textos

referencia:char[4]

Programas

linguagem: string

Exemplo de modelo objecto
  • 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<Pessoas> autores inverse Pessoa::obras;
      • relationship Set<Capítulos> capítulos inverse Capítulo::parte_de;
      • gravar() raises (erro_de_gravação);
      • adicionar_capítulo(in capítulo: Capítulo);
  • };
exemplo de odl
Exemplo de ODL
  • um exemplo de Objectstore/C++ com ODL
  • static os_List<Documento*> documentos;
  • class Documento {
    • public:
    • os_List<Pessoa*> autores inverse_member autorias;
    • os_List<Capitulo*> capitulos inverse_member pertence_a;
  • };
  • class Pessoa {
    • public:
    • os_List<Documento*> autorias inverse_member autores;
    • ...
  • };
oql object query language
OQL: Object Query Language
  • 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.
express es
Expressões
  • Expressões permitidas:
    • literais, aritméticas, comparações, lógicas
    • construtoras
    • acesso: ‘.’, ‘->‘, first(), last(), []
    • conversão: listtoset(), element(), flatten(), explicita
    • conjuntos: intersect, union, except
    • colecções:
      • for all ... in ... : ...
      • exists ... in ... : ...
      • <elemento> in <colecção>
      • select-from-where
      • sort ... by ...
      • count(), sum(), min(), max(), avg()
      • group ... in ... by ... with ...
exemplos de oql
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 1994.

select x.nome

from x in (select y.revisor from y in Textos where revisao > 1-1-94)

where x.nacionalidade = “Portugal”

mais exemplos de oql
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”)

ltimo exemplo de oql
Ú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<struct(jovens: boolean, experientes: boolean, maduros: boolean,

numero: integer, menor_idade: integer, maior_idade: integer)>

oql versus sql
OQLversus 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”)

exemplo de objective c com oql
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);

arquitectura odmg

Objective-C

com ODL/OML

....

...

...

Pré-Processador

de ODL/OML

....

...

...

....

...

...

Ficheiros .h

Objective-C

Ficheiros .m

Objective-C

Compilador

Objective-C

Meta Informação

....

...

...

....

...

...

Código Objecto

da aplicação

Código Objecto

do SGBDO

Linker

Criação

Aplicação

Base de Dados de Objectos

objectos

Arquitectura ODMG
conclus es
Conclusões
  • simples de seguir
  • tem como base um modelo menos simples que o relacional mas muito mais poderoso
  • a linguagem de interrogação é fechada, completa, as construções possuem uma semântica bem definida, e tem um poder expressivo superior ao SQL.
  • diminui a impedância semântica entre LP’s e LI’s
manipula o
Manipulação
  • OML: Object Manipulation Language
    • 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.
  • Mapeamento da ODMG-93 para LP’s
    • A proposta define o mapeamento para C++ e Smalltalk
    • 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